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

 

作者 admin