VB用Modbus RTU协议和仪表通讯的问题
发布网友
发布时间:2022-04-09 20:06
我来回答
共2个回答
热心网友
时间:2022-04-09 21:36
这两个问题应该是同一个原因,Integer类型不够大。
在VB6里,Integer是有符号的,其取值范围是 -32767 到 32676。
试试看用 Long 取代 Integer 吧,应该能行。
再说说ModBus,读取指令 02 03 14 50 00 01 指定了读取一个单位(16位)的数据。
如果数据超过了65536,一个16位就显示不过来了,试试读取两个字的数据吧。
当然,也有部分设备使用某个特定数组来表示溢出,查查说明书应该会有收获。
发送问题也是类似的,如果该地址数据是有符号的,那么上限就是32767。
试试写两个字(32位)的数据。
热心网友
时间:2022-04-09 22:54
dim a() as byte 改成这样再试试