2017年1月25日 星期三

Modicom Format 是什麼?Modbus 位址?

在很多設備的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)


5 則留言:

  1. 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

    還有一種稱為無協定,可以自訂標頭結尾,也不一定需要,甚至可能只是幾個文字碼所代表的命令碼

    有一些有支援多筆資料,連續傳輸的格式

    回覆刪除
    回覆
    1. 太感謝你的分享了!
      還有很多是我還沒遇到的!

      刪除
  2. 本篇文章的圖片已無法顯示,是否可請版主重新上傳呢,謝謝。

    回覆刪除
    回覆
    1. 收到,最近有空再整理一篇吧~

      刪除
    2. https://vkinngworld.blogspot.com/2023/11/modbus-40001-30001modicom-format.html
      已重新寫一篇,還有不了解的地方,請再提出

      刪除