可能常用MODBUS的新手,可能會有一個疑問?
為什麼我在人機輸入時,只需要輸入位址+40001 或+30001,就可以讀寫MODBUS位址。
但在查MODBUS的協議時,反而找不到+40001/+30001的意義?
功能碼03就是+30001碼?功能碼04就是+40001嗎? NO, NO,NO
==============================================
例:下圖中,是一個
光看這裡並沒有提到功能碼03/04要怎麼讀寫?
從wiki百科裡,可以看到:其實Modbus是由Modicon發表的。
Modbus是一種串行通訊協定,是Modicon公司(現在的施耐德電氣 Schneider Electric)於1979年為使用可程式化邏輯控制器(PLC)通訊而發表。Modbus已經成為工業領域通訊協定事實上的業界標準,並且現在是工業電子裝置之間常用的連接方式。
==============================================
下以的資料,是來自modbus組識網站底下:https://www.modbus.org/
https://www.modbus.org/docs/PI_MBUS_300.pdf (非常非常舊的資料了)
在功能碼03的範例有提到:
要讀40108~40110的地址的暫存器,但實際上,
發生的功能碼是03,位址是6B=107 (相當於+40001=40108)
功能碼06,也是+40001
在功能碼04的範例有提到:
要讀30009的地址的暫存器,但實際上,
發生的功能碼是04,位址是08 (相當於+30001=30009)
沒有留言:
張貼留言