用vb6_0实现pc机对多台流量计远程数据采集与监控

上传人:kms****20 文档编号:40206350 上传时间:2018-05-24 格式:DOC 页数:11 大小:38.50KB
返回 下载 相关 举报
用vb6_0实现pc机对多台流量计远程数据采集与监控_第1页
第1页 / 共11页
用vb6_0实现pc机对多台流量计远程数据采集与监控_第2页
第2页 / 共11页
用vb6_0实现pc机对多台流量计远程数据采集与监控_第3页
第3页 / 共11页
用vb6_0实现pc机对多台流量计远程数据采集与监控_第4页
第4页 / 共11页
用vb6_0实现pc机对多台流量计远程数据采集与监控_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《用vb6_0实现pc机对多台流量计远程数据采集与监控》由会员分享,可在线阅读,更多相关《用vb6_0实现pc机对多台流量计远程数据采集与监控(11页珍藏版)》请在金锄头文库上搜索。

1、用用 VB6_0VB6_0 实现实现 PCPC 机对多台流量计远程数据采集与监控机对多台流量计远程数据采集与监控用 VB6.0 实现 PC 机对多台流量计远程数据采集与监控节能法律、法规节能先关表格下载节能宣传栏节能相关技术标准相关部门文件栏 目 树 形 导 航| 首页 | 行业信息 | 公司信息 | 部门信息 | 生产管理 | 技术资料 | 员工沟通 | 网上学习 | 帮助导航 | |技术设备部首页|设备管理|计量管理|节能管理|部门动态|法规制度|技术交流|设备之窗|您现在的位置: 珠海供水 技术交流 技术设备部正文 用户登录 新用户注册 图文用 VB6.0 实现 PC 机对多台流量计远程

2、数据采集与监控 【字体:小 大】用 VB6.0 实现 PC 机对多台流量计远程数据采集与监控作者:喻维纲 技术设备部来源:湘潭钢铁公司自动化部 点击数:18 更新时间:2005-10-28摘要: 利用 VB6.0 ActiveX 控件的 MSComm 通信控件,实现了 Windows9X 下单台 PC 机与多台智能流量计的串行通讯,达到了对分散设备的集中控制和计量数据的采集和自动上报功能。关键词:PC 机;流量计;智能仪表;RS485;串口;事件驱动Collecting and controlling the Long-distance Data of Flowrates by Using P

3、ersonal Computer Base on VB6.0Xiang Tan Steel Automatic Department Yu Wei GangAbstract: This paper describes one personal computer series-communicating with many intellectual-flowrates under Windows9X by using MSComm controls of VB6.0 ActiveXs.Coming to centralized controlling scattered measure Equi

4、pment and Automatic data collecting and switching.Key word: Personal computer; floweret; intellectual meter; Serial communicationRS485; incident driving一、 引言在工业生产中,能源、动力介质的测量设备分布在现场的各个区域,给设备的监控和数据的统计带来诸多不便,随着智能仪表技术的不断发展,其通讯技术也在不断加强,当今的流量测量仪表大多带有 RS-485 通讯接口,完全可以运用现场总线方式实现多台测量仪表的集中监控与数据采集。本文利用 VB6.0

5、的 ActiveX 控件Microsoft Communication 控件,方便的实现了 Window9X 环境下一台 PC 机与多台流量计测量仪表的串行通信功能,完成 24 台流量计的数据采集与管理。二、 系统的硬件设计:根据 RS485 电气规定,在两线制传输方式下,RS485 驱动器可带 32 个接收器,实现多半点双工通讯,通讯距离在 15m 时波特率可达 10Mb/s,通讯距离在 1.2m 范围内波特率可达 100Mb/s,超过此距离可用 Repeater(中继器) ,增大传输距离,系统方框图如图所示:图中 PC 机通过 RS232 接口,经 RS232RS485 模块与多台流量计仪

6、表相连接,一条总线上最多可接 32 台,每台仪表被赋予各自的通讯地址码用以识别身份,这样上位 PC 即能通过 RS485 总线对挂在总线上的每个仪表进行通讯。实现对流量计的远程数据采集与监控。三、 流量计结构及通讯功能:3.1 流量计大致由三部分组成:1、 流量传感器,包括壳体组合,前置放大电路等;2、 温度传感器组合;3、 流量积算仪表组合。随着单片技术的不断发展,流量积算仪大多采用单片计算机组成的智能系统,在完成系统的采样积算等功能的同时,还可以采用一定的通讯协议与遵循相同协议的设备联网,积算仪表系统中有1K 以上字节的 EPROM 可以永久保存数据和命令,用户的命令和系统运行参数可通过串

7、口从 PC 机发送到积算仪表,积算仪表将其格式化后存入不同的 EPROM 地址中,供运行时直接调用。3.2 积算仪表与计算机的通讯采用 RS-485 半双工的方式,积算仪表作为从机,上位 PC 机作为主机,控制和监视流量计的运行,通讯波特率大多为 9600bps,通讯格式为:1 位起始位,8 位数据位,1 位奇偶校验位,1 位停止位,每个从站被赋予唯一的本机地址,采用主机轮询,从机应答的通讯方式。主机通过发送命令帧启动一次通讯,从机接收到数据后,判断呼叫地址是否和本机地址相同,若不同,则不与理睬,若相同则根据命令帧中的特征字(命令字) ,发送主机要求的数据帧。以 TLXZ 系列流量计为例,命令

8、帧的格式如下:项号 1234字节数 1 字节 2 字节 4 字节 1 字节意义起始字节(STX)从机地址(ADDR)特征字异或校验(BCC)第一项为帧头(STX)取值 41H,用以标志一帧的开始;第二项为从机地址(ADDR)流量计地址码,取值为 031,当地址码两个字节都为 255 时为广播地址;第三项命令特征字为 3A、3C、3F,用以命令流量计回传的数据内容,第四项 BCC 为异或校验,为前面数据的异或校验和用于通讯校错。数据帧比较长,有个字节,其格式如下:项号 1231字节数 1 字节 2 字节 8 字节 1 字节意义起始字节(STX)从机地址(ADDR)用户数据异或校验命令帧与数据帧除

9、第三项外,其它意义相同,数据帧的第三部内容是从机根据主机发出的命令帧向主机发出的本机即时、累计数据,或运行参数。另外主机还有一个特殊的命令帧参数修改数据帧,它的格式为:项号 12345字节数 1 字节 2 字节 1 字节 8 字节 1 字节意义起始字节(STX)从机地址(ADDR)命令字用户数据异或校验该帧的命令字特征为 3E,起始码为 3F,用以区别其它命令帧,第三部分是主机向从机发送的从机运行参数,从机收到此帧后,将数据格式化,存入 EPROM 中,以发送流量计的运行参数,对此帧从机不回应。四、 VB6.0 中的 ActiveX 控件:在 Windows 环境下,出于对系统的安全考虑,操作

10、系统完全接管了各种硬件资源,不允许用户直接对包括串口在内的硬件中断进行管理,以往人们只能通过繁琐的 API 函数或 VisualC+标准通讯函数来控制各种硬件,现在 VB6.0 提供了一个 ActiveX 控件Microsoft Communication Control,Version 6.0,称为 MSComm 控件,利用它可以方便地进行计算机串口的通讯管理。MSComm 控件有许多属性,其中与串口有关的重要属性有:CommPort 设置串口号,类型 short,设置为 1、2、3等,分别表示 COM1、COM2、COM3Settings 设置串口通讯参数(B、P、D、S) ,类型stri

11、ng ,B 表示波特率,P 表示奇偶校验(N无校验,E偶校验,O奇校验,M符号校验,S空格校验) ,D 表示有效数据位数,S 表示停止位数PortOpen 设置或返回通信端口状态,类型 Bool;InputMode 从接收缓冲区读取数据格式,类型VARIANT,设置为 0 时表示字符串格式,设置为 1 时表示二进制格式Input 设置从缓冲区中读取数据,类型 Long;Output 向发送缓冲区中写入数据,类型 Long;InputLen 设置或返回 Input 每次读取的字节数,类型Short;Rthreshold 设置返回要接收的字符数,类型 Short;Sthreshold 设置并返回发

12、送缓冲区中允许的最少字符数,类型 Short;CommEvent 串口事件,类型 Short;InputMode 使程序方便地选择从缓冲区读取数据格式。当串口接收到信息时 MSComm 控件提供两种处理方法,一种为查询方式,一种为事件响应方式,利用 SetCommEvent()函数设置串口响应事件。当响应事件发生时,系统会激活 OnComm()事件。在 OnComm()事件中添加用户处理代码,则可实现类似中断的串口事件处理。五、 用 VB6.0 实现对流量计积算仪表的串行通讯控制:在 Windows9X VB6.0 编程环境下,新建工程引用 MSComm 通讯控件,在窗体中至少添加以下几个基本

13、控件:1、 1 个 MSComm 控件,控制名为 MSComm1,用于软件对串口的访问;2、 两个定时器控件,名为(TimPeriodic 和TimNonPeriodic) ,TimPeriodic 用于使 PC 机定时向各仪表发送周期性命令,使其定时回传实时数据;TimNonPeriodic 用于控制两次非周期性指令传送之间的时间间隔;3、 1 个非周期性命令发送按钮 CmdNonPeriodic,用于非周期性指令的传送启动;4、若干个用于显示仪表参数的文本框和设置仪表参数的对话框;监控软件的核心是如何读取和处理现场仪表的实时数据,编程时应注意以下几个问题:、 主机采用轮询方式访问从机,从机

14、应答到发送完数据有一定的时间间隔,一般设定为 23 秒;、 由于采用一个串口和半双工通讯方式,一方发送数据时另一方必须等待接收,因此在发送非周期性命令时,必须停止轮询,否则会发生数据包碰撞,使通讯失败;、 主机呼叫从机无应答时,要有报警设置,提示通讯出错,一般设置 3 次呼叫无应答后,即可停止呼叫,提示通讯出错,跳过此从机继续执行;、 当从机故障或停运时,应可自动跳过对此从机轮询,以节省轮询时间,并在显示窗口提示,同时写入故障记录。下面给出读取和处理现场仪表数据时的源代码,供参考:5.1 窗体中各控件初始设置:Sub Form-load()MSComm1,CommPort=2 /选用 COM2

15、 口通讯MSComm1,Setting=“9600,N,8,1 /设置通讯参数MSComm1,Inputlen=0 /Input 将读取缓冲区全部内容MSComm1,InputlenSize=1024 /设置接收缓冲区大小MSComm1,PortOpen=True n /打开通讯端口MSComm1,InBufferCount=0 /清除发送缓冲区MSComm.OutbufferCount=0 /清除接收缓冲区TimNonPeriodic.Interval=3000 /设置 3 秒定时间间隔TimNonPeriodic.Interval=500 /设置 0.5 秒定时间间隔CmdPressed=

16、False /命令按钮在未激活状态DuringPeriodic=False /周期命令传输未开始DuringNonPeriodic=False /非周期命令传输未开始End Sub5.2 周期性命令的发送:Sub TimPeriodic_Timer()If DuringNonPeriodic=True Then Exit Sub /非周期命令数据传送未结束退出过程DuringPeriodic=True /周期命令准许发送Call Send Date (Periodic_COMMAND) /发送周期性命令MSComm1.Rthreshold=R_PERIOPIE_BYTE /接收字节后引发 OnCommgk 事件End Sub5.3 非周期命令的发送Sub CmdNomPeriodic_click()CmdPressed=true /允许发送End SubSub TimNoPeriodic_Timer()/发送周期性命令If DuringPeriod

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号