在 Modbus網(wǎng)絡(luò)通信的兩種傳輸模式中( ASCII或RTU),傳輸設(shè)備以將Modbus消息轉(zhuǎn)為有起點和終點的幀,這就允許接收的設(shè)備在消息起始處開始工作,讀地址分配信息,判斷哪一個設(shè)備被選中(廣播方式則傳給所有設(shè)備),判知何時信息已完成。部分的消息也能偵測到并且錯誤能設(shè)置為返回結(jié)果。
1、ASCII幀
使用ASCII模式,消息以冒號(:)字符(ASCII碼 3AH)開始,以回車換行符結(jié)束(ASCII碼 0DH,0AH)。
其它域可以使用的傳輸字符是十六進制的0...9,A...F。網(wǎng)絡(luò)上的設(shè)備不斷偵測“:”字符,當(dāng)有一個冒號接收到時,每個設(shè)備都解碼下個域(地址域)來判斷是否發(fā)給自己的。
消息中字符間發(fā)送的時間間隔最長不能超過1秒,否則接收的設(shè)備將認(rèn)為傳輸錯誤。一個典型消息幀如下所示:
2.RTU幀
使用RTU模式,消息發(fā)送至少要以3.5個字符時間的停頓間隔開始。在網(wǎng)絡(luò)波特率下多樣的字符時間,這是最容易實現(xiàn)的(如下圖的T1-T2-T3-T4所示)。傳輸?shù)牡谝粋€域是設(shè)備地址??梢允褂玫膫鬏斪址鞘M制的0...9,A...F。網(wǎng)絡(luò)設(shè)備不斷偵測網(wǎng)絡(luò)總線,包括停頓間隔時間內(nèi)。當(dāng)?shù)谝粋€域(地址域)接收到,每個設(shè)備都進行解碼以判斷是否發(fā)往自己的。在最后一個傳輸字符之后,一個至少3.5個字符時間的停頓標(biāo)定了消息的結(jié)束。一個新的消息可在此停頓后開始。
整個消息幀必須作為一連續(xù)的流轉(zhuǎn)輸。如果在幀完成之前有超過1.5個字符時間的停頓時間,接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個新消息的地址域。同樣地,如果一個新消息在小于3.5個字符時間內(nèi)接著前個消息開始,接收的設(shè)備將認(rèn)為它是前一消息的延續(xù)。這將導(dǎo)致一個錯誤,因為在最后的CRC域的值不可能是正確的。一典型的消息幀如下所示:
3.地址域
消息幀的地址域包含兩個字符(ASCII)或8Bit(RTU)??赡艿膹脑O(shè)備地址是0...247 (十進制)。單個設(shè)備的地址范圍是1...247。主設(shè)備通過將要聯(lián)絡(luò)的從設(shè)備的地址放入消息中的地址域來選通從設(shè)備。當(dāng)從設(shè)備發(fā)送回應(yīng)消息時,它把自己的地址放入回應(yīng)的地址域中,以便主設(shè)備知道是哪一個設(shè)備作出回應(yīng)。
地址0是用作廣播地址,以使所有的從設(shè)備都能認(rèn)識。當(dāng)Modbus協(xié)議用于更高水準(zhǔn)的網(wǎng)絡(luò),廣播可能不允許或以其它方式代替。
4.如何處理功能域
消息幀中的功能代碼域包含了兩個字符(ASCII)或8Bits(RTU)??赡艿拇a范圍是十進制的1...255。當(dāng)然,有些代碼是適用于所有控制器,有此是應(yīng)用于某種控制器,還有些保留以備后用。
當(dāng)消息從主設(shè)備發(fā)往從設(shè)備時,功能代碼域?qū)⒏嬷畯脑O(shè)備需要執(zhí)行哪些行為。例如去讀取輸入的開關(guān)狀態(tài),讀一組寄存器的數(shù)據(jù)內(nèi)容,讀從設(shè)備的診斷狀態(tài),允許調(diào)入、記錄、校驗在從設(shè)備中的程序等。
當(dāng)從設(shè)備回應(yīng)時,它使用功能代碼域來指示是正?;貞?yīng)(無誤)還是有某種錯誤發(fā)生(稱作異議回應(yīng))。對正?;貞?yīng),從設(shè)備僅回應(yīng)相應(yīng)的功能代碼。對異議回應(yīng),從設(shè)備返回一等同于正常代碼的代碼,但最重要的位置為邏輯1。
例如:一從主設(shè)備發(fā)往從設(shè)備的消息要求讀一組保持寄存器,將產(chǎn)生如下功能代碼:0 0 0 0 0 0 1 1 (十六進制03H)
對正?;貞?yīng),從設(shè)備僅回應(yīng)同樣的功能代碼。對異議回應(yīng),它返回:1 0 0 0 0 0 1 1 (十六進制83H)
除功能代碼因異議錯誤作了修改外,從設(shè)備將一獨特的代碼放到回應(yīng)消息的數(shù)據(jù)域中,這能告訴主設(shè)備發(fā)生了什么錯誤。
主設(shè)備應(yīng)用程序得到異議的回應(yīng)后,典型的處理過程是重發(fā)消息,或者診斷發(fā)給從設(shè)備的消息并報告給操作員。
5.字符的連續(xù)傳輸
當(dāng)消息在標(biāo)準(zhǔn)的Modbus系列網(wǎng)絡(luò)傳輸時,每個字符或字節(jié)以如下方式發(fā)送(從左到右):最低有效位...最高有效位
使用ASCII字符幀時,位的序列是:
使用RTU字符幀時,位的序列是:
6.Modbus協(xié)議下的數(shù)據(jù)傳輸
西門子S7-1200 與 觸摸屏之間無線Modbus通信。威綸通觸摸屏作為主站,S7-1200作為從站,并采用PLC專用無線通訊終端DTD434MC作為實現(xiàn)無線通訊的硬件設(shè)備。
多臺匯川PLC之間基于MODBUS通訊協(xié)議下的無線通信。采用PLC專用無線通訊終端DTD435M作為實現(xiàn)無線通訊的硬件設(shè)備,無需更改網(wǎng)絡(luò)參數(shù)直接替換有線連接。
基于Modbus RTU協(xié)議下實現(xiàn)的1主多從自組網(wǎng)無線通信形式,主站為組態(tài)王,從站為DTD433H。采用無線開關(guān)量信號測控終端DTD433H與無線通信數(shù)據(jù)終端DTD433MC,作為實現(xiàn)無線通訊的硬件設(shè)備。DTD433H具備輸入和輸出開關(guān)量信號功能,信號傳輸方向由用戶原系統(tǒng)主從設(shè)備所實現(xiàn)的功能決定。
2臺組態(tài)王和1臺三菱FX5u PLC之間無線以太網(wǎng)通信,采用了三菱PLC無線通訊終端DTD419MB作為實現(xiàn)無線通訊的硬件設(shè)備。無需更改網(wǎng)絡(luò)參數(shù)和原有程序,通過DTD419MB即可直接替換組態(tài)王與PLC之間有線以太網(wǎng)通訊,且穩(wěn)定方便的實現(xiàn)ModbusTCP/IP協(xié)議下無線以太網(wǎng)通訊。
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5288瀏覽量
169663 -
plc
+關(guān)注
關(guān)注
5001文章
12946瀏覽量
459228 -
MODBUS
+關(guān)注
關(guān)注
28文章
1718瀏覽量
76421 -
三菱
+關(guān)注
關(guān)注
32文章
790瀏覽量
42663 -
ASCII
+關(guān)注
關(guān)注
5文章
171瀏覽量
34949 -
ModBus協(xié)議
+關(guān)注
關(guān)注
3文章
167瀏覽量
33314 -
無線通訊
+關(guān)注
關(guān)注
5文章
563瀏覽量
39278 -
上位機
+關(guān)注
關(guān)注
27文章
927瀏覽量
54551 -
RTU
+關(guān)注
關(guān)注
0文章
384瀏覽量
28547 -
組態(tài)王
+關(guān)注
關(guān)注
11文章
130瀏覽量
25799
發(fā)布評論請先 登錄
相關(guān)推薦
評論