modbus字符串的結(jié)束符介紹
Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語(yǔ)言。通過此協(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)控。此協(xié)議定義了一個(gè)控制器能認(rèn)識(shí)使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進(jìn)行通信的。它描述了一控制器請(qǐng)求訪問其它設(shè)備的過程,如何回應(yīng)來自其它設(shè)備的請(qǐng)求,以及怎樣偵測(cè)錯(cuò)誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。
當(dāng)在一Modbus網(wǎng)絡(luò)上通信時(shí),此協(xié)議決定了每個(gè)控制器須要知道它們的設(shè)備地址,識(shí)別按地址發(fā)來的消息,決定要產(chǎn)生何種行動(dòng)。如果需要回應(yīng),控制器將生成反饋信息并用Modbus協(xié)議發(fā)出。在其它網(wǎng)絡(luò)上,包含了Modbus協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。這種轉(zhuǎn)換也擴(kuò)展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)地址、路由路徑及錯(cuò)誤檢測(cè)的方法。
此協(xié)議支持傳統(tǒng)的RS-232、RS-422、RS-485和以太網(wǎng)設(shè)備。許多工業(yè)設(shè)備,包括PLC,DCS,智能儀表等都在使用Modbus協(xié)議作為他們之間的通訊標(biāo)準(zhǔn)。
modbus字符串的結(jié)束符
接收到一串字符,總要知道在那個(gè)地方結(jié)束吧,這就是結(jié)束符的作用,接收方不管以后還會(huì)收到多少個(gè)字符。當(dāng)接收到結(jié)束符時(shí),以后再接收的字符就算是下一輪的東西了,從起始符到結(jié)束符之間的字符就是它要分析的字符! MODBUS的ASCII方式結(jié)束符是--- Chr$(13) + Chr$(10)
現(xiàn)在的組合是“:02030A000004FB“+ Chr$(13) + Chr$(10)
至此,ASCII方式的發(fā)送就完成了,控制器接收到此串字符后,根據(jù)MODBUS協(xié)議定義的通訊規(guī)范分析此串字符的作用,然后返回相應(yīng)的字符!
注意:發(fā)送的字符都是以十六進(jìn)制數(shù)表示!
RTU方式發(fā)送時(shí)的規(guī)范定義如下:
至少3.5個(gè)字符傳輸時(shí)間的停頓間隔時(shí)間標(biāo)定消息的開始 設(shè)備地址 + 功能代碼+ 數(shù)據(jù) + 校驗(yàn) + 至少3.5個(gè)字符傳輸時(shí)間的停頓間隔時(shí)間標(biāo)定了消息的結(jié)束
其他的就不用說了,與ASCII方式一樣的作用,唯獨(dú)這3.5個(gè)字符的時(shí)間搞暈了很多人,實(shí)際我也不敢太解釋,大致說一下吧,您就當(dāng)聽著玩,比如通訊格式是9600,E,8,1 波特率是做什么的?一秒傳輸多少個(gè)位(比如一秒傳送9600個(gè)位),一個(gè)字符是多少個(gè)位呢?通訊格式已經(jīng)標(biāo)定了(7個(gè)位或是8個(gè)位),那3.5個(gè)字符的傳送時(shí)間就好算了吧:
3.5*11(或10)=39個(gè)位(35個(gè)位),傳3.5個(gè)字符需要的時(shí)間是:39/9600=4毫秒。
不是說八位嘛,怎么乘11,記住了,還有一個(gè)起始位,奇或偶的校驗(yàn)位(無奇偶校驗(yàn),則沒有此位),停止位(兩個(gè)停止位就是2了。)
如9600,N,8,2為11個(gè)位, 9600,N,7,1.為9個(gè)位
就是說,您得保證發(fā)送字符串的連續(xù)性,中間停頓時(shí)間超過4毫秒,接收方就認(rèn)為您已經(jīng)發(fā)送完了這組消息,開始處理了。這就是至少3.5個(gè)字符傳輸時(shí)間的停頓間隔時(shí)間標(biāo)定了消息的結(jié)束的含義
如果您發(fā)送的太連續(xù),下一組消息與上一組消息之間的間隔時(shí)間沒超過4毫秒,接收方就認(rèn)為這些字符是一組消息,按一組消息去處理。所以,您發(fā)送結(jié)束一組命令后,必須間隔4毫秒才能發(fā)送下一組命令。 這就是至少3.5個(gè)字符傳輸時(shí)間的停頓間隔時(shí)間標(biāo)定消息的開始的含義
非常好我支持^.^
(1) 100%
不好我反對(duì)
(0) 0%
相關(guān)閱讀:
- [電子說] EtherCAT從站轉(zhuǎn)modbus RTU協(xié)議轉(zhuǎn)換網(wǎng)關(guān)用modbus slave測(cè)試的方法 2023-10-24
- [電子說] DLT698轉(zhuǎn)modbus協(xié)議網(wǎng)關(guān)把電能數(shù)據(jù)接到wincc的方法 2023-10-24
- [電子說] 軟啟動(dòng)器與PLC通過ModbusRTU轉(zhuǎn)Profinet網(wǎng)關(guān)連接的配置案例 2023-10-24
- [電子說] Modbus485轉(zhuǎn)profinet網(wǎng)關(guān)連接伺服主軸驅(qū)動(dòng)器與PLC的具體應(yīng)用 2023-10-24
- [電子說] 通過MODBUS轉(zhuǎn)PROFINET(PROFINET轉(zhuǎn)MODBUS)網(wǎng)關(guān)連接EP1C系列通用伺服驅(qū)動(dòng)器 2023-10-24
- [電子說] 軟啟動(dòng)器與PLC通過ModbusRTU轉(zhuǎn)Profinet網(wǎng)關(guān)連接的配置案例 2023-10-24
- [電子說] Modbus485轉(zhuǎn)profinet網(wǎng)關(guān)連接伺服主軸驅(qū)動(dòng)器與PLC的具體應(yīng)用 2023-10-24
- [電子說] Python 中的5種隱藏技巧 2023-10-21
( 發(fā)表人:李建兵 )