2017年8月2日 星期三

Modbus 位址為什麼要加40001

從這份文件裡面可以查到:
http://www.modbus.org/docs/PI_MBUS_300.pdf
當我們功能碼03時,讀取的位址6B=107
對應的位址是40108=(40001+107)

當我們功能碼04時,讀取的位址08=08
對應的位址是30009=(30001+08)



所以呢!!!
16進制位址+40001 是一種隱藏功能碼的表示方式。 如果沒有寫任何功能碼的情形下。40001就是指功能碼03 + 00位址

而不是全部都加40001,在功能碼04的情形下,是要加30001的。

還有其他情形,是需要加不同的值。






===========================
簡單來說,什麼時候該加40001呢?
通常PLC自已編,都不用加40001。
在使用HMI這種通訊都幫你管理的情形下,有時就需要加。
1.如果是16進制輸入,大多都"不加"40001
2.如果是10進制輸入,就應該要"加"40001
3.如果無法輸入40001,超出範圍,那也"不加"。






























沒有留言:

張貼留言