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