Modbus 是公開的通信協議,是一種單主站的主/從通信模式。Modbus 通信標準協議可以通過各種方式傳播,如 RS232C、RS485、光纖、無線電等。Modbus基於串行傳輸時有兩種模式,ASCII和RTU,兩種模式針對數據打包、解碼方式的定義不同,支持Modbus協議的設備一般都支持 RTU 模式。西門子plc S7-200SMART CPU通過硬件自帶的RS485通信端口或擴展的通信信號板,和軟件上開發的Modbus RTU通信標準指令庫,可以幫助客戶快速便捷的實現設備間的Modbus RTU通信。
Modbus RTU通信標準指令庫
標準指令庫-主站:主站初始化MBUS_CTRL指令&主站讀寫MBUS_MSG指令
● EN:使能參數,必須保證每個掃描周期都能開啟(SM0.0)。
● Mode:模式參數,為1時使能Modbus協議功能。
● Baud:波特率參數,根據通訊兩側的協議和速度要求需設定為一致。
● Parity:校驗方式參數,0=無校驗,1=奇校驗,2=偶校驗。
● Port:端口號參數,0=使用集成的通訊口,1=CM01信號板。
● Timeout:超時時間參數,主站等待從站響應的時間,以ms為單位。
● Done:初始化完成位。
● Error:初始化錯誤代碼(詳見係統手冊指令說明)。
● EN:使能參數,必須保證同一時刻隻有一個讀寫功能處於使能狀態。
● First:讀寫請求位,每一個新的讀寫請求需要用脈衝觸發。
● Slave :從站地址參數,可選擇的範圍1-247。
● RW:讀寫參數,0=讀,1=寫。
● Addr:讀寫從站對應連續地址區域的起始地址。
● Count:讀寫從站對應連續地址的個數。
● DataPtr:讀寫操作對應主站連續地址區域的起始地址,用於存儲準備寫入的數據或要讀回的數據。
● Done:讀寫功能完成位。
● Error:讀寫指令錯誤代碼(詳見係統手冊指令說明)。
標準指令庫-從站:從站初始化MBUS_INIT指令&從站響應請求MBUS_SLAVE指令
● EN:調用使能位,一般使用SM0.1。
● Mode:模式參數,啟動停止Modbus,0=停止,1=啟動。
● Addr:從站地址,Modbus從站地址,取值1-247。
● Baud :波特率參數,根據通訊兩側的協議和速度要求需設定為一致。
● Parity:校驗方式參數,0=無校驗,1=奇校驗,2=偶校驗。
● Port:端口號參數,0=使用集成的通訊口,1=CM01信號板。
● Delay:附加字符間延時,缺省值為0。
● MaxIQ:參與通信的zui大IO點數,一般設為256。
● MaxAI:參與通信的zui大AI通道數,zui多56個。
● MaxHold:zui大保持寄存器區,參與通訊的V區大小。
● HoldStart:保持寄存器區起始地址,以指針方式指定。
● Done:初始化完成位。
● Error:初始化錯誤代碼(詳見係統手冊指令說明)。
● EN:調用使能位,一般使用SM0.0。
● Done:通訊完成位。
● Error:通訊錯誤代碼(詳見係統手冊指令說明)。
應用實例
通過Modbus標準指令庫,實現主從站CPU之間的數據交換,其中主站IP地址為192.168.2.1,從站IP地址為192.168.2.2,主站Modbus地址為0,從站Modbus地址為1,將從站VB1000-VB1004中的數據讀取至主站VB100-VB104中,數據交換區將主站中VB200-VB204的數據寫入從站VB2000-VB2004。
主站程序:
從站程序: