Modbu常用功能碼

 modbus常用功能碼:

    0x01: 讀線圈寄存器

    0x02: 讀離散輸入寄存器

    0x03: 讀保持寄存器

    0x04: 讀輸入寄存器

    0x05: 寫單個線圈寄存器

    0x06: 寫單個保持寄存器

    0x0f:  寫多個線圈寄存器

    0x10: 寫多個保持寄存器

    如上所示一共8種功能碼。這其中有涉及到線圈、離散輸入、保持、輸入四種寄存器:

   線圈寄存器,實際上就可以類比爲開關量,每一個bit都對應一個信號的開關狀態。所以一個byte就可以同時控制8路的信號。比如控制外部8路io的高低。 線圈寄存器支持讀也支持寫,寫在功能碼裏面又分爲寫單個線圈寄存器和寫多個線圈寄存器。對應上面的功能碼也就是:0x01  0x05  0x0f

   離散輸入寄存器,如果線圈寄存器理解了這個自然也明白了。離散輸入寄存器就相當於線圈寄存器的只讀模式,他也是每個bit表示一個開關量,而他的開關量只能讀取輸入的開關信號,是不能夠寫的。比如我讀取外部按鍵的按下還是鬆開。所以功能碼也簡單就一個讀的 0x02

   保持寄存器,這個寄存器的單位不再是bit而是兩個byte,也就是可以存放具體的數據量的,並且是可讀寫的。比如設置時間年月日,不但可以寫也可以讀出來現在的時間。寫也分爲單個寫和多個寫,所以功能碼有對應的三個:0x03 0x06 0x10

   輸入寄存器,只剩下這最後一個了,這個和保持寄存器類似,但是也是隻支持讀而不能寫。一個寄存器也是佔據兩個byte的空間。類比通過讀取輸入寄存器獲取現在的AD採集值。對應的功能碼也就一個 0x04  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章