modbus字符串的結束符介紹
Modbus協議是應用于電子控制器上的一種通用語言。通過此協議,控制器相互之間、控制器經由網絡(例如以太網)和其它設備之間可以通信。它已經成為一通用工業標準。有了它,不同廠商生產的控制設備可以連成工業網絡,進行集中監控。此協議定義了一個控制器能認識使用的消息結構,而不管它們是經過何種網絡進行通信的。它描述了一控制器請求訪問其它設備的過程,如何回應來自其它設備的請求,以及怎樣偵測錯誤并記錄。它制定了消息域格局和內容的公共格式。
當在一Modbus網絡上通信時,此協議決定了每個控制器須要知道它們的設備地址,識別按地址發來的消息,決定要產生何種行動。如果需要回應,控制器將生成反饋信息并用Modbus協議發出。在其它網絡上,包含了Modbus協議的消息轉換為在此網絡上使用的幀或包結構。這種轉換也擴展了根據具體的網絡解決節地址、路由路徑及錯誤檢測的方法。
此協議支持傳統的RS-232、RS-422、RS-485和以太網設備。許多工業設備,包括PLC,DCS,智能儀表等都在使用Modbus協議作為他們之間的通訊標準。

modbus字符串的結束符
接收到一串字符,總要知道在那個地方結束吧,這就是結束符的作用,接收方不管以后還會收到多少個字符。當接收到結束符時,以后再接收的字符就算是下一輪的東西了,從起始符到結束符之間的字符就是它要分析的字符! MODBUS的ASCII方式結束符是--- Chr$(13) + Chr$(10)
現在的組合是“:02030A000004FB“+ Chr$(13) + Chr$(10)
至此,ASCII方式的發送就完成了,控制器接收到此串字符后,根據MODBUS協議定義的通訊規范分析此串字符的作用,然后返回相應的字符!
注意:發送的字符都是以十六進制數表示!
RTU方式發送時的規范定義如下:
至少3.5個字符傳輸時間的停頓間隔時間標定消息的開始 設備地址 + 功能代碼+ 數據 + 校驗 + 至少3.5個字符傳輸時間的停頓間隔時間標定了消息的結束
其他的就不用說了,與ASCII方式一樣的作用,唯獨這3.5個字符的時間搞暈了很多人,實際我也不敢太解釋,大致說一下吧,您就當聽著玩,比如通訊格式是9600,E,8,1 波特率是做什么的?一秒傳輸多少個位(比如一秒傳送9600個位),一個字符是多少個位呢?通訊格式已經標定了(7個位或是8個位),那3.5個字符的傳送時間就好算了吧:
3.5*11(或10)=39個位(35個位),傳3.5個字符需要的時間是:39/9600=4毫秒。
不是說八位嘛,怎么乘11,記住了,還有一個起始位,奇或偶的校驗位(無奇偶校驗,則沒有此位),停止位(兩個停止位就是2了。)
如9600,N,8,2為11個位, 9600,N,7,1.為9個位
就是說,您得保證發送字符串的連續性,中間停頓時間超過4毫秒,接收方就認為您已經發送完了這組消息,開始處理了。這就是至少3.5個字符傳輸時間的停頓間隔時間標定了消息的結束的含義
如果您發送的太連續,下一組消息與上一組消息之間的間隔時間沒超過4毫秒,接收方就認為這些字符是一組消息,按一組消息去處理。所以,您發送結束一組命令后,必須間隔4毫秒才能發送下一組命令。 這就是至少3.5個字符傳輸時間的停頓間隔時間標定消息的開始的含義
非常好我支持^.^
(1) 100%
不好我反對
(0) 0%
相關閱讀:
- [電子說] EtherCAT從站轉modbus RTU協議轉換網關用modbus slave測試的方法 2023-10-24
- [電子說] DLT698轉modbus協議網關把電能數據接到wincc的方法 2023-10-24
- [電子說] 軟啟動器與PLC通過ModbusRTU轉Profinet網關連接的配置案例 2023-10-24
- [電子說] Modbus485轉profinet網關連接伺服主軸驅動器與PLC的具體應用 2023-10-24
- [電子說] 通過MODBUS轉PROFINET(PROFINET轉MODBUS)網關連接EP1C系列通用伺服驅動器 2023-10-24
- [電子說] 軟啟動器與PLC通過ModbusRTU轉Profinet網關連接的配置案例 2023-10-24
- [電子說] Modbus485轉profinet網關連接伺服主軸驅動器與PLC的具體應用 2023-10-24
- [電子說] Python 中的5種隱藏技巧 2023-10-21
( 發表人:李建兵 )