地磅称重仪表远程数据采集与监控的开发应用
利用ActiveX控件的MSComm通信控件,实现了 Windows下单台PC机与多台计量仪表的串行通讯,达到了 对分散设备的集中控制和计量数据的自动采集、自动汇总以及自动打印功能。
在工业生产中,能源、物资的计量设备分布在现 场的各个区域,给设备的监控和数据的统计带来诸多 不便。随着智能仪表技术的不断发展,其通讯技术也 在不断加强,当今的测量仪表大多带有RS - 485或 RS- 232通讯接口,用现场总线方式可以实现多台测 量仪表的集中监控与数据采集,实现了仪表直接接入 PC机,利用在现场安装大屏幕实时显示计量仪表数 据,使现场配料人员做到心中有数,利用“远程传 输”实现了 Windows环境下一台PC机与多台测量仪 表的串行通信功能,并且对仪表数据实现自动计量与 自动汇总。
1.系统的硬件设计
根据RS - 485电气规定,在两线制传输方式下, RS - 485驱动器可带32个接收器,实现多半点双工 通讯。系统方框图如图1所示。
图1中PC机通过RS - 232接口,经RS232 —RS485模块与多台流量计仪表相连接,一条总线上最 多可接32台,每台仪表被赋予各自的通讯地址码用 于识别身份,这样上位PC即能通过RS ?85总线对 挂在总线上的每台仪表进行通讯,实现对计量仪表的 远程数据采集与监控。
2.计量仪表及通讯功能
通常采用MODBUS通讯协议,采用RS - 485 半双工的方式,积算仪表作为从机,上位PC机作 为主机,控制和监视计量仪表的运行,通讯波特 率大多为9 600bps ,通讯格式为:1位起始位,8 位数据位,1位奇偶校验位,1位停止位,每个从 站被赋予唯一的本机地址,采用主机轮询、从机 应答的通讯方式。主机通过发送命令帧启动一次 通讯,从机接收到数据后,判断呼叫地址是否和 本机地址相同,若不同,则不予理睬,若相同则 根据命令帧中的特征字(命令字),发送主机要求 的数据帧[1]。
3.Windows 下的 ActiveX控件
在Windows环境下,出于对系统的安全考虑, 操作系统完全接管了各种硬件资源,不允许用户直接 对包括串口在内的硬件中断进行管理,以往人们只能 通过繁琐的API函数或Visual C++标准通讯函数来 控制各种硬件,现在VB6. 0提供了一个ActiveX控件 Microsoft Communication Cbntrol, Version 6. 0 ,称为MSComm控件,利用它可以方便地进行计算机 串口的通讯管理。
4.用程序实现对仪表的串行通讯控制
在Windows VB6. 0编程环境下,新建工程
引用MSCbmm通讯控件,在窗体中至少添加以下几 个基本控件:①1个MSCOmm控件,控制名为 MSCOmml ,用于软件对串口的访问;②两个定时器 控件,名为 TimPeriodic 和 TimNonPeriodic , Tim-Pe-riodic 用于使PC机定时向各仪表发送周期性命令, 使其定时回传实时数据;TimNonPeriodic用于控制两 次非周期性指令传送之间的时间间隔[2];③1个非周 期性命令发送按钮CmdNonPeriodic ,用于非周期性 指令的传送启动[2];④若干个用于显示仪表参数的 文本框和设置仪表参数的对话框。
对于监控软件的核心是如何读取和处理现场仪表 的实时数据,编程时应注意以下几个问题:①主机采 用轮询方式访问从机,从机应答到发送完数据有一定 的时间间隔,一般设定为2?3s;②由于采用一个串 口和半双工通讯方式,一方发送数据时另一方必须等 待接收,因此在发送非周期性命令时,必须停止轮 询,否则会发生数据包碰撞,使通讯失败。
数据的接收和处理:计量仪表回传数据时即 可在主机上引发OnComm ()事件,在此事件处理 函数中,首先判断接收数据的完整性,然后将数据一 次全部读到所定义的变量参数中,根据仪表通讯协议 中定义的内容,分别取出各个字节,解析出意义,在 屏幕上显示,利用在VB监控程序中加入DATA控 件,将数据存入数据库中,使用VB的报表功能即可 产生日报、月报及年报。
5.结束语
本文利用Windows下的ActiveX控件实现了在
Windows环境下单台PC与多台计量仪表的远程通讯 监控。本系统在莱钢特钢有限公司双平台秤中成功使 用,实现了分散计量点数据的自动采集、自动汇总, 及时反映出生产中计量数据,为生产的成本控制起到 了积极作用,整个系统结构简单、方便、灵活,具有 较好的实际价值和使用性。