在很多設備的MODBUS資料裡,除了16進制的位址外。
還有Modicom Format的位址?
如下圖:
上圖中有說明Holding Register所以可以得知,功能碼是03
在這沒有標功能碼,但其中Modicom Format就已經隱藏功能碼在其中了。
4XXXX 是功能碼03
3XXXX 是功能碼04
可以查MODBUS的協議當中有寫到:
----
---
===
在實際應用時,也是可以這樣使用。
如台達人機,有不同的MODBUS協議
其中Modbus RTU / ASCII Hex Address (Master)
就是直接寫入16進制的位址,並透過RW、R 不同的代號,來區分功能碼03 或04
另外也有Modbus nW RTU / ASCII (Master)
都是用相同的W來當代號,但就是透過位址(Modicom Format )來區分是功能碼03或04
所以簡單來說,Modicom Format 就是已經內含功能碼的位址了!!
除了自已要了解外,也可以選擇有支援Modicom Format 的處理裝置,也可以直接Modicom Format 輸入在裝置當中。
如:台達人機就是有含此功能。
Modicom Format 是什麼?Modbus 位址?
http://www.plcnc.info/forum.php?mod=viewthread&tid=2324&fromuid=1
(出處: PLC+CNC)
Modbod 基本分為RTU 和ASCII
回覆刪除RTU 效率比較高,傳輸一個四位數10進制的格式,
只需要2個byte,而ASCII需要4個byte,
標準的 modbus 都有標頭,通常是@
結尾通常是CR + LF (歸位+換行)
資料包含在標頭和結尾間,整個稱做封包,
標頭後接Command code 表示這個包的目的
結尾前接check sum 表示這個包的檢查資訊
至於command code 與check sum之間的資料各式,就要看command code 是什麼來決定,
由於各種儀器的複雜度不相同,未必都會符合modbus的標準規範,所以通常應該向儀器製造商取得框架表,然後依照框架格式發送讀寫命令
另外延伸常用的 modbus 各式 標頭是02,結尾是03 資料包含在標頭和結尾間,整個稱做封包,不一定有check sum,不一定有command code
還有一種稱為無協定,可以自訂標頭結尾,也不一定需要,甚至可能只是幾個文字碼所代表的命令碼
有一些有支援多筆資料,連續傳輸的格式
太感謝你的分享了!
刪除還有很多是我還沒遇到的!
本篇文章的圖片已無法顯示,是否可請版主重新上傳呢,謝謝。
回覆刪除收到,最近有空再整理一篇吧~
刪除https://vkinngworld.blogspot.com/2023/11/modbus-40001-30001modicom-format.html
刪除已重新寫一篇,還有不了解的地方,請再提出