威倫MT6170iH用的是EB8000軟件,里面MODBUS協議的0x、1x、3x、4x、5x、6x這些,還有像4x_bit、3x_bit8這種寫法,其實是指不同類型的設備區域,各自支持的功能碼也不太一樣,簡單說一下:
0x就是可以讀也可以寫的線圈,差不多相當于PLC的DO輸出點。讀的時候用功能碼01H,寫的話就用05H。
1x是只讀的觸點,類似PLC的DI輸入點,讀位狀態的時候用02H功能碼。
3x是只讀的模擬量,比如PLC的AI輸入,讀數據用04H功能碼。
4x是可以讀寫的寄存器,類似于PLC的AO輸出。讀的話用03H,寫的話用10H功能碼。
5x和4x看起來差不多,功能碼也一樣。區別在于如果是雙字的數據,比如32_bit無符號類型,用5x和4x讀出來的高低字順序是反過來的。比如4x讀出來是0x1234,那5x讀的就是0x3412。
6x也是可讀可寫的類型,讀的時候還是用03H,但寫的時候用06H,也就是只能寫單個寄存器。
3x_bit和3x的功能碼是一樣的,區別就是3x是讀整個數據,而3x_bit是用來讀某個bit的狀態。
4x_bit和4x也是一樣,功能碼一樣,區別就是一個是讀整個數據,一個是讀其中某一位的狀態。
就這樣,懂的都懂~
0x就是可以讀也可以寫的線圈,差不多相當于PLC的DO輸出點。讀的時候用功能碼01H,寫的話就用05H。
1x是只讀的觸點,類似PLC的DI輸入點,讀位狀態的時候用02H功能碼。
3x是只讀的模擬量,比如PLC的AI輸入,讀數據用04H功能碼。
4x是可以讀寫的寄存器,類似于PLC的AO輸出。讀的話用03H,寫的話用10H功能碼。
5x和4x看起來差不多,功能碼也一樣。區別在于如果是雙字的數據,比如32_bit無符號類型,用5x和4x讀出來的高低字順序是反過來的。比如4x讀出來是0x1234,那5x讀的就是0x3412。
6x也是可讀可寫的類型,讀的時候還是用03H,但寫的時候用06H,也就是只能寫單個寄存器。
3x_bit和3x的功能碼是一樣的,區別就是3x是讀整個數據,而3x_bit是用來讀某個bit的狀態。
4x_bit和4x也是一樣,功能碼一樣,區別就是一個是讀整個數據,一個是讀其中某一位的狀態。
就這樣,懂的都懂~