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