相關文章
Related articles聯系電話:021-36320996
西門子S7-200 smart為中國用戶的使用習慣而集成了1個RS485通訊口,該通訊口可以實現RS485自由口通訊,西門子已經為客戶開發ModbusRTU主站和從站通訊指令庫-USS通訊指令庫,受到了廣大PLC用戶的歡迎,其中大的實惠就是可以連接modbus協議的值編碼器了,RS485的通訊口modbus的協議,我們就習慣的將modbus編碼器簡稱為RMB編碼器,RMB和人民幣諧音,好記。
我們這里要介紹S7-200 smart和值多圈編碼器的通訊,S7-200 smart作為主站,值編碼器作為從站,那么西門子S7-200 smart與RMB值多圈編碼器編碼器如何通信?
首先是硬件準備:
然后西門子PLC S7-200 smart 的接線方式,如圖1
還有編碼器的接線方式,如表1
芯纜顏色 | 信號輸出 | 硬件對應接口 |
棕色 | 10…30Vd工作電源 | PLC的24VDC傳感器電源輸出 L+ |
藍色 | 0V GND | PLC的24VDC傳感器電源輸出 M |
黑色 | RS485A編程、輸出 | PLC的port 0 9芯插頭的3腳 |
白色 | RS485B編程、輸出 | PLC的port 0 9芯插頭的8腳 |
表1
這里的接線編碼器的電源從PLC里取
S7-200 SMART設置方法
S7-200 SMART CPU上的通信口0(Port0)通過指令庫支持Modbus RTU從站模式。
S7-200 SMART CPU 上的通訊口0和1(Port0和Port1)通過指令庫支持Modbus RTU主站模式。
S7-200 SMART CPU 上的通訊口0和1(Port0和Port1)不能同時作為Modbus RTU主站或從站。
S7-200 SMART CPU 本體集成通信口(Port 0)、可選信號板(Port 1)可以支持Modbus RTU協議,成為Modbus RTU主站站。此功能是通過 S7-200 SMART的自由口通信模式實現,因此可以通過無線數據電臺等慢速通信設備傳輸。
注:SB CM01(RS485/RS232) 訂貨號:6ES7 288-5CM01-0AA0
S7-200 SMART 軟件的幫助有明確說明
打開軟件 找到庫 選擇初始化主站 或者從站程序塊 然后按F1
從站參數“端口”(Port) 設置物理通信端口(0 = CPU 中集成的 RS-485,1 = 可選信號板上的 RS-485 或 RS-232)。主站參數“端口”(Port)設置物理通信端口(0 = CPU 中集成的 RS-485,1 = 可選 CM01 信號板上的 RS-485 或 RS-232)。清晰的寫著他們都可以既做主又可以做從
而且兩個口是獨立的 既可以同時做主 可以同時做從 還可以向你說的一個做主一個做從。
Modbus RTU 從站協議
Modbus 從站協議指令使用以下 CPU 資源:
MBUS_INIT 指令會初始化 Modbus 從站協議,并使分配的 CPU 端口(0 或 1)于 Modbus 從站通信。
CPU 端口用于 Modbus 通信時,無法再將其用于任何其它用途,包括與 HMI 的通信。
Modbus 從站指令會影響所有與由 MBUS_INIT 指令分配的端口上的自由端口通信相關聯的 SM 位置。
Modbus 從站指令程序大小
Modbus 從站指令使用 3 個子例程和 2 個中斷。
Modbus 從站指令需要 2113 個字節的程序空間來存儲兩個從站指令和支持例程。
Modbus 從站指令的變量需要 786 個字節的 V 存儲器塊。該區域的起始地址由用戶,保留給 Modbus 變量。
1.打開 Micro/WIN SMART軟件 - -> 選好PLC型號 - -> ModbusRTU的指令在軟件安裝編程軟件之后的庫 菜單里面可以找到在“庫”中調用“MBUS_CTRL”和“MBUS_MSG“兩個子程序
使用 SM0.0 調用 MBUS_CTRL 完成主站的初始化,并啟動其功能控制。
上圖示例為編程插入指令
各參數意義如下:
1、EN(使能):必須保證每一掃描周期都被使能(使用 SM0.0)
2、Mode(模式):為 1 時,使能 Modbus 協議功能
3、Baud(波特率):編碼器支持的通訊波特率為9600,19200,38400,57600,115200。PLC與編碼器之間,雙方約定一個相同的通信速度稱之為波特率。 通訊中要求雙方有相同的波特率, 以便正確地識別被傳輸的數據位。 波特率決定了通訊的速度,波特率越小, 通訊速度越慢, 同時出錯率也越低。9600的波特率通訊速度較慢但是比較穩定,抗干擾能力強,19200為常用波特率.本例使用的編碼器通過EASYPRO軟件可以將編碼器簡單調整波特率為19200.
4、Parity(校驗):校驗方式選擇2=偶較驗 本例試用的編碼器為偶校驗
5、Port(端口號):0 = CPU 集成的 RS 485 通訊口
6、Timeout(超時):主站等待從站響應的時間,以毫秒為單位,典型的設置值為 1000 毫秒(1 秒)
注意: 這個值必須設置足夠大以保證從站有時間響應。
7、Done(完成位):初始化完成,此位會自動置1。可以用該位啟動 MBUS_MSG 讀寫操作
二、PLC讀取編碼器參數的操作
各參數意義如下:
1、EN(使能):同一時刻只能有一個讀寫功能(即 MBUS_MSG)使能
注意:建議每一個讀寫功能(即 MBUS_MSG)都用上一個 MBUS_MSG 指令的 Done 完成位來激活,以保證所有讀寫指令循環進行。
2、First(讀寫請求位):每一個新的讀寫請求必須使用脈沖觸發
3、Slave(從站地址):可選擇的范圍 1 – 247,如果一個PLC帶多個編碼器的話,PLC作為主站,編碼器作為從站,需要對編碼器進行地址設置。本例使用的編碼器自帶的EasyPRO設置軟件,可以非常簡單的可以設置編碼器從站地址。
4、RW(讀寫請求):0 = 讀
注意:
1. 開關量輸出和保持寄存器支持讀和寫功能
2. 開關量輸入和模擬量輸入只支持讀功能
5、Addr(讀寫從站):選擇讀寫的數據類型,數據地址:30002
本例的編碼器數據地址是30002
6、Count(數據個數):通訊的數據個數(位或字的個數)
本例的編碼器數據位數是2 位
注意: Modbus主站可讀/寫的大數據量為120個字(是指每一個 MBUS_MSG 指令)
7、DataPtr(數據指針):
1. 如果是讀指令,讀回的數據放到這個數據區中
2. 如果是寫指令,要寫出的數據放到這個數據區中
8、Done(完成位):讀寫功能完成位
給MODBUS指令分配庫寄存器
編譯、下載,可以在狀態圖表里監控VD200數據
PLC讀到的編碼器數據存放在VD200里。一般的編碼器讀到的是編碼器的原始數據,需要通過公式計算來轉換成需要的數據.還有根據安裝方法不一樣,會需要調整編碼器數據的方向,順時針為面對編碼器轉軸端面, 順時針旋轉, 編碼器數值增大。逆時針為面對編碼器轉軸端面, 逆時針旋轉, 編碼器數值增大。比如在起重大車的車輪上,一左一右,編碼器都是裝在外邊,這時一個編碼器順時針,一個編碼器逆時針. 本例的編碼器可以使用EASYPRO軟件簡單調整編碼器的每圈分辨率,旋轉方向.讀到的數據可以不用公式計算直接使用在程序中.