回 帖 发 新 帖 刷新版面

主题:[讨论]VB和智能仪表的通讯

现有上海自动化仪表六厂智能仪表通讯协议如下: 

1 接口标准: 
可选232,485 

2 通讯方式 
采用主从控制方式,上位机为主站,仪表为从站.主站对从站采用二进制进行异步半双工数据通讯,最多可连接32台仪表. 

3 从机地址和通讯波特率: 
从机地址=仪表通讯地址(Addr)+0XA0 
例:仪表通讯地址为5,则从机地址=0X05+0XA0=0XA5 
波特率设置;固定为9600 

4 通讯数据格式 
采用10位无奇偶校验桢格式,1位起始位,8位字长,1位停止位. 
格式如下: 
起始位 DATA.0.1.2.3.4.5.6.7 停止位 

通讯数据格式采用数据链格式,数据链包括从机地址,命令,数据,校验和,结束字等内容. 

从机地址:1字节,采用压缩BCD码,地址范围为0XA0-0XFE; 
命令:1字节,共有5条命令,范围为0X01-0X05; 
数据:采用压缩BCD码,根据命令可有00-04个字节; 
校验和:1字节16进制数,是从机地址至最后一个数据的累加和的最低字节,然后与0X7F相"与"的值; 
结束字:1字节,固定为0XFF. 

5 命令格式: 
(0) 握手命令 
该命令可检查通讯链路中有无当前地址的仪表. 
主机发送桢格式:(4字节) 
从机地址 0X00 校验和 0XFF 
握手命令 结束字 
下位机应答桢格式:(4字节) 
10      00   从机地址&7F   校验和 
1字节  1字节    1字节      1字节 

(1)概观读命令 
该命令可一次读出测量值,设定值和控制的相关参数,效率高. 
主机发送桢格式:(4字节) 
从机地址 0X01 校验和 0XFF 
概观读命令 结束字 

下位机应答桢格式:(11字节) 
PV       PWR     SP     AL     AM     FW     校验和 
2字节   2字节   2字节  1字节  1字节  1字节   1字节 

(2)读参数命令 
该命令发送5字节,可读出被读地址的参数数值. 
主机发送桢格式:(5字节) 
从机地址  0X02      0X01   校验和   0XFF 
1字节  读参数命令 参数地址  1字节   结束字 

下位机应答桢格式:(3字节) 
被读参数值  校验和 
  2字节      1字节 
其中:第一字节为数据高位,第二字节为数据地位. 

(3)写参数等命令略 

[color=FF0000]求教怎么通过本协议和VB进行串口数据通讯? 
在网上浏览了很多串口通讯资料,但是本协议和所搜索到的例子不是完全一致的,特别是校验和的计算,没有示例算法,不知道该怎么样输入的数据,以下输入不知道哪里出了问题. 

我用串口调试精灵测试过,输入数据A50126FF,但是没有输出! 


不知道是哪里不对,请高人指点![/color]

回复列表 (共6个回复)

沙发

高手都到哪里去了?

板凳

我用串口调试精灵测试过,输入数据A50126FF,但是没有输出! 

你的输出是指,串口调试没有返回数据吗,还有你的命令是十六进制对吧,可是我看不出它们代表的是什么字符

3 楼

是没有返回数据!

你说看不出代表什么字符是什么意思?

详细的通讯协议我扫描了一份,请再看看!

4 楼

按照通讯协议,如果要改仪表参数<温度设定值?,设仪表地址为01 则命令为:
A10300050021FF
如果此命令正确的话,则把仪表参数<温度设定值>,设定为50.0度,

试一下是不是这样的

你用的是PID仪表,我曾经也做过组态,如果可以的话.加QQ371070269互相交流一下

5 楼

主要是校验和问题
有的仪表可能是这样:前面的数据 + 校验和 =0xff

6 楼

已解决,原来关键是通讯线的问题,上润要求是AB交差接线,六厂是不要交差接线

我来回复

您尚未登录,请登录后再回复。点此登录或注册