PC和宇电AI706M、702M以及XL-10000称重仪表的串口通信,要求共用一个485总线,出问题了,请教各位!
702M706M的协议如下:
读: 地址代号+52H(82)+要读的参数代号+0+0+校验码
写: 地址代号+43H(67)+要写的参数代号+写入数低字节+写入数高字节+校验码
MSComm1.Settings = "9600,n,8,2"
MSComm1.InputMode = comInputModeBinary '设置接收数据模式为二进制形式
返回数据:无论是读还是写,仪表都返回以下10个字节数据:测量值PV+给定值SV+输出值MV及报警状态+所读/写参数值+校验码
其中PV、SV及所读参数值均各占2个字节,代表一个16位二进制有符号补码整数,低位字节在前,高位字节在后,整数无法表示小数点,要求用户在上位机处理。
称重仪表协议:
MSComm2.Settings = "9600,e,8,1" '起始位: 1位。 数据位: 8位。 停止位: 1位。 奇偶校验方式: 偶校验。
MSComm2.InputMode = comInputModeText 'text mode comm
这两种仪表的协议不一样,但是要求共用一条485总线。
[解决办法]
宇电的仪表我用过,和其他仪器杂用一般不会有问题的啊。
你为什么不将两个仪器的串口设置为一样?比如都是:9600,N,8,1
[解决办法]
我建议:
1、将Setting 统一
2、把InputMode统一
3、采用Timer中轮询的方式,不要用中断方式通信。
[解决办法]
即使校验位设置有不同,也是允许的.但一个通信程序中建议全部按2进制接收模式,其转换为字符是非常方便和迅速的.
[解决办法]