圖久智能控制器、模塊、軟件支持modbus標(biāo)準(zhǔn)協(xié)議通信能力,可對(duì)接第三方設(shè)備,如空調(diào)機(jī)組、VRV多聯(lián)機(jī)空調(diào)、新風(fēng)系統(tǒng)、變配電系統(tǒng)等等,常見的寄存器及功能碼介紹如下:
0x01: 讀線圈寄存器
0x02: 讀離散輸入寄存器
0x03: 讀保持寄存器
0x04: 讀輸入寄存器
0x05: 寫單個(gè)線圈寄存器
0x06: 寫單個(gè)保持寄存器
0x0f: 寫多個(gè)線圈寄存器
0x10: 寫多個(gè)保持寄存器
如上所示一共8種功能碼。這其中有涉及到線圈、離散輸入、保持、輸入四種寄存器。這名字也不知道誰(shuí)起的,讓人看了一點(diǎn)不通俗易懂,搞得暈暈乎乎。實(shí)際上你要是看清他的本質(zhì)就很簡(jiǎn)單了。下面分別解釋一下:
線圈寄存器,實(shí)際上就可以類比為開關(guān)量,沒一個(gè)bit都對(duì)應(yīng)一個(gè)信號(hào)的開關(guān)狀態(tài)。所以一個(gè)byte就可以同時(shí)控制8路的信號(hào)。比如控制外部8路io的高低。 線圈寄存器支持讀也支持寫,寫在功能碼里面又分為寫單個(gè)線圈寄存器和寫多個(gè)線圈寄存器。對(duì)應(yīng)上面的功能碼也就是:0x01 0x05 0x0f
離散輸入寄存器,如果線圈寄存器理解了這個(gè)自然也明白了。離散輸入寄存器就相當(dāng)于線圈寄存器的只讀模式,他也是每個(gè)bit表示一個(gè)開關(guān)量,而他的開關(guān)量只能讀取輸入的開關(guān)信號(hào),是不能夠?qū)懙?。比如我讀取外部按鍵的按下還是松開。所以功能碼也簡(jiǎn)單就一個(gè)讀的 0x02
保持寄存器,這個(gè)寄存器的單位不再是bit而是兩個(gè)byte,也就是可以存放具體的數(shù)據(jù)量的,并且是可讀寫的。比如我我設(shè)置時(shí)間年月日,不但可以寫也可以讀出來現(xiàn)在的時(shí)間。寫也分為單個(gè)寫和多個(gè)寫,所以功能碼有對(duì)應(yīng)的三個(gè):0x03 0x06 0x10
輸入寄存器,只剩下這最后一個(gè)了,這個(gè)和保持寄存器類似,但是也是只支持讀而不能寫。一個(gè)寄存器也是占據(jù)兩個(gè)byte的空間。類比我我通過讀取輸入寄存器獲取現(xiàn)在的AD采集值。對(duì)應(yīng)的功能碼也就一個(gè) 0x04