Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。
在Modbus網(wǎng)絡(luò)上傳輸
標(biāo)準(zhǔn)的Modbus口是使用RS-232C兼容串行接口,它定義了連接口的針腳、電纜、信號位、傳輸波特率、奇偶校驗??刂破髂苤苯踊蚪?jīng)由Modem組網(wǎng)。
控制器通信使用主—從技術(shù),即僅一設(shè)備(主設(shè)備)能初始化傳輸(查詢)。其它設(shè)備(從設(shè)備)根據(jù)主設(shè)備查詢提供的數(shù)據(jù)作出相應(yīng)反應(yīng)。典型的主設(shè)備:主機和可編程儀表。典型的從設(shè)備:可編程控制器。
主設(shè)備可單獨和從設(shè)備通信,也能以廣播方式和所有從設(shè)備通信。如果單獨通信,從設(shè)備返回一消息作為回應(yīng),如果是以廣播方式查詢的,則不作任何回應(yīng)。Modbus協(xié)議建立了主設(shè)備查詢的格式:設(shè)備(或廣播)地址、功能代碼、所有要發(fā)送的數(shù)據(jù)、一錯誤檢測域。
從設(shè)備回應(yīng)消息也由Modbus協(xié)議構(gòu)成,包括確認(rèn)要行動的域、任何要返回的數(shù)據(jù)、和一錯誤檢測域。如果在消息接收過程中發(fā)生一錯誤,或從設(shè)備不能執(zhí)行其命令,從設(shè)備將建立一錯誤消息并把它作為回應(yīng)發(fā)送出去。
在其它類型網(wǎng)絡(luò)上傳輸
在其它網(wǎng)絡(luò)上,控制器使用對等技術(shù)通信,故任何控制都能初始和其它控制器的通信。這樣在單獨的通信過程中,控制器既可作為主設(shè)備也可作為從設(shè)備。提供的多個內(nèi)部通道可允許同時發(fā)生的傳輸進(jìn)程。
在消息位,Modbus協(xié)議仍提供了主—從原則,盡管網(wǎng)絡(luò)通信方法是“對等”。如果一控制器發(fā)送一消息,它只是作為主設(shè)備,并期望從從設(shè)備得到回應(yīng)。同樣,當(dāng)控制器接收到一消息,它將建立一從設(shè)備回應(yīng)格式并返回給發(fā)送的控制器。
查詢——回應(yīng)周期
(1)查詢
查詢消息中的功能代碼告之被選中的從設(shè)備要執(zhí)行何種功能。數(shù)據(jù)段包含了從設(shè)備要執(zhí)行功能的任何附加信息。例如功能代碼03是要求從設(shè)備讀保持寄存器并返回它們的內(nèi)容。數(shù)據(jù)段必須包含要告之從設(shè)備的信息:從何寄存器開始讀及要讀的寄存器數(shù)量。錯誤檢測域為從設(shè)備提供了一種驗證消息內(nèi)容是否正確的方法。
(2)回應(yīng)
如果從設(shè)備產(chǎn)生一正常的回應(yīng),在回應(yīng)消息中的功能代碼是在查詢消息中的功能代碼的回應(yīng)。數(shù)據(jù)段包括了從設(shè)備收集的數(shù)據(jù):象寄存器值或狀態(tài)。如果有錯誤發(fā)生,功能代碼將被修改以用于指出回應(yīng)消息是錯誤的,同時數(shù)據(jù)段包含了描述此錯誤信息的代碼。錯誤檢測域允許主設(shè)備確認(rèn)消息內(nèi)容是否可用。
兩種傳輸方式
控制器能設(shè)置為兩種傳輸模式(ASCII或RTU)中的任何一種在標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò)通信。用戶選擇想要的模式,包括串口通信參數(shù)(波特率、校驗方式等),在配置每個控制器的時候,在一個Modbus網(wǎng)絡(luò)上的所有設(shè)備都必須選擇相同的傳輸模式和串口參數(shù)。
所選的ASCII或RTU方式僅適用于標(biāo)準(zhǔn)的Modbus網(wǎng)絡(luò),它定義了在這些網(wǎng)絡(luò)上連續(xù)傳輸?shù)南⒍蔚拿恳晃?,以及決定怎樣將信息打包成消息域和如何解碼。
在其它網(wǎng)絡(luò)上(象MAP和Modbus Plus)Modbus消息被轉(zhuǎn)成與串行傳輸無關(guān)的幀。
(1)ASCII模式
當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以ASCII(美國標(biāo)準(zhǔn)信息交換代碼)模式通信,在消息中的每個8Bit字節(jié)都作為兩個ASCII字符發(fā)送。這種方式的主要優(yōu)點是字符發(fā)送的時間間隔可達(dá)到1秒而不產(chǎn)生錯誤。
代碼系統(tǒng):
十六進(jìn)制,ASCII字符0...9,A...F
消息中的每個ASCII字符都是一個十六進(jìn)制字符組成
每個字節(jié)的位:
1個起始位
7個數(shù)據(jù)位,最小的有效位先發(fā)送
1個奇偶校驗位,無校驗則無
1個停止位(有校驗時),2個Bit(無校驗時)
錯誤檢測域
LRC(縱向冗長檢測)
(2)RTU模式
當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以RTU(遠(yuǎn)程終端單元)模式通信,在消息中的每個8Bit字節(jié)包含兩個4Bit的十六進(jìn)制字符。這種方式的主要優(yōu)點是:在同樣的波特率下,可比ASCII方式傳送更多的數(shù)據(jù)。
代碼系統(tǒng):
8位二進(jìn)制,十六進(jìn)制數(shù)0...9,A...F
消息中的每個8位域都是一個兩個十六進(jìn)制字符組成
每個字節(jié)的位
1個起始位
8個數(shù)據(jù)位,最小的有效位先發(fā)送
1個奇偶校驗位,無校驗則無
1個停止位(有校驗時),2個Bit(無校驗時)
錯誤檢測域
CRC(循環(huán)冗長檢測)
無線Modbus的實現(xiàn)
遵從Modbus通訊協(xié)議,可以通過對接無線終端和需要無線功能的設(shè)備Rs485/Rs232接口變?yōu)闊o線Modbus通訊。也就是說,在有線Modbus網(wǎng)絡(luò)通訊無誤的情況下,只需要與兼容Modbus通訊協(xié)議的無線模塊(DTD433M/DTD434M/DTD435M/DTD418M/DTD419M)對接硬件接口參數(shù),即可實現(xiàn)多臺設(shè)備的無線Modbus網(wǎng)絡(luò)通訊。
下圖是使用DTD434MC實現(xiàn)威綸觸摸屏作為主站,與多個S7-1200plc進(jìn)行無線Modbus通訊的案例。
下圖是使用DTD419MB實現(xiàn)2個組態(tài)王作為主站,與1個FX5Uplc進(jìn)行無線ModbusTCP/IP以太網(wǎng)通訊的案例。
審核編輯 黃宇
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5343瀏覽量
170804 -
通信協(xié)議
+關(guān)注
關(guān)注
28文章
840瀏覽量
40215 -
MODBUS
+關(guān)注
關(guān)注
28文章
1757瀏覽量
76760
發(fā)布評論請先 登錄
相關(guān)推薦
評論