威伦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也是一样,功能码一样,区别就是一个是读整个数据,一个是读其中某一位的状态。
就这样,懂的都懂~