在我们使用组态软件进行数据采集时,一般都会使用软件自带的对应驱动来采集,但是在设备是非标准协议下,需要我们对非标准通讯协议组件进行接入。在斜沟锅炉房系统中需采集一台皮带秤的数据,而皮带秤积算仪的通讯协议为皮带秤产家自定义协议。
该皮带秤是通过四台重量传感器与一台速度传感器将信号采集到皮带秤积算仪上,从而计算出皮带的速度、流量与累积,通讯方式是使用硬接线连接到工控机多串口卡,信号线A、B分别接多串口卡九针2、1针头,皮带秤积算仪通讯接口为RS-485。
通过组态王软件定义组态王设备:智能模块→北京亚控→串口数据发送→COM,组态王设备地址、通讯参数与皮带秤积算仪地址、通讯参数一一对应。建立两个变量,变量pdc_fs使用WHDATA寄存器,将ASCII串转换成16进制数据,从COM发送;变量pdc_js使用RDDATA寄存器,从COM读的16进制数据,转换成字符串。注解如下:
注意:
1)、寄存器字符串范围不能超过128个字符。
2)、写: 将写的内容追加在缓冲区的末尾,如果缓冲区已经满,则丢弃时间最早的数据。必须保证字符的个数是偶数。
3)、读:
<1>如果缓冲区没有数据,则从串口读取数据。
<2>如果缓冲区中数据少于127则全部取出。
<3>从缓冲区取数据,如果缓冲区数据大于127,则只取127, 剩余数据仍然在缓冲区中。
4)、读和写的缓冲区是分离的。
5)、注意不要使RDATA,WDATA寄存器发生争夺数据的情况, 在一般情况下,一个应用中只使