基于VB6.0的工控机与智能流量积算仪的串口通信

上传人:飞*** 文档编号:40595534 上传时间:2018-05-26 格式:DOC 页数:5 大小:32KB
返回 下载 相关 举报
基于VB6.0的工控机与智能流量积算仪的串口通信_第1页
第1页 / 共5页
基于VB6.0的工控机与智能流量积算仪的串口通信_第2页
第2页 / 共5页
基于VB6.0的工控机与智能流量积算仪的串口通信_第3页
第3页 / 共5页
基于VB6.0的工控机与智能流量积算仪的串口通信_第4页
第4页 / 共5页
基于VB6.0的工控机与智能流量积算仪的串口通信_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于VB6.0的工控机与智能流量积算仪的串口通信》由会员分享,可在线阅读,更多相关《基于VB6.0的工控机与智能流量积算仪的串口通信(5页珍藏版)》请在金锄头文库上搜索。

1、摘要:以 VB6.0 为软件开发平台,在分析工控机与 D088C/ZM 智能流量积算仪通信原理的基础上,利用 MSComm 控件和 MODBUS 协议,实现了上位机与该智能流量积算仪的串口通信功能,使上位机可以实时的采集流量值、设定瞬时流量值等,并将其成功地应用到底吹氩流量的闭环控制系统中。关键词: VB 流量积算仪 串口通信 MODBUS 协议 MSComm 控件The Serial Communication between Industrial Computer and Intelligent Flow Totalizer Based on VB6.0NIU Hui, MENG Hua,

2、 HOU Jian-ming(Electrical Information College of Hebei University of Science and Technology, Shijiazhuang 050054,China)Abstract: To VB6.0 to software development platform,based on analysis of the IPC and D08-8C/ZM Intelligent Flow Totalizer communications principle, use MSComm control and MODBUS pro

3、tocol, IPC achieved with the Intelligent Flow Totalizer instrument serial communications functions, allowing the PC can collect real-time flow value, set instantaneous flow value and successfully applied to the closed-loop bottom argon flow control system. Keywords: VB flow totalizer serial communic

4、ation MODBUS protocol MSComm control1 引言 本文主要从应用的角度利用 VB6.0 的 MSComm 控件和 MODBUS 协议,成功实现了某流量控制系统中工控机与带 RS232 输出接口的智能数字流量积算仪之间的串口通信功能。D088C/ZM 数字显示表应用于底吹氩流量控制系统中流量的显示,工控机通过读取其显示值作为反馈信号,从而实现流量的闭环控制。2 D088C/ZM 型智能数字流量显示积算仪与串口通信2.1 硬件构成D0712A 型质量流量传感器采用毛细管传热温差量热法原理测量气体的质量流量(无需温度压力补偿)。将传感器加热电桥测得的流量信号送入放大器

5、放大,放大后的流量检测电压与设定电压进行比较,再将差值信号放大后去控制调节阀门,闭环控制流过通道的流量使之与设定的流量相等。当本流量积算仪与 MFC(质量流量计)配套使用时,只需用电缆通过 D 型插头将流量积算仪与 MFC 连接起来即可。然后采用一台上位机与一台D088C/ZM 流量积算仪进行通信的方式,使用 RS232 通讯方式:将 2 引脚(TXD)与上位机串口的 RXD(工控机串口的 2 引脚)相连;3 引脚(RXD)与上位机串口的TXD(工控机串口的 3 引脚)相连;5 引脚(SG)与上位机串口的 SG(工控机串口的 5引脚)相连。2.2 通讯原理工控机作为上位机与从机(数字流量积算仪

6、)采用主从应答方式进行通信,一个网络中只有一个主机(上位机,节点地址为 0),主机通过站号(数字流量积算仪的唯一地址)区分不同的从机。上位机始终处于主动状态,根据程序运行的需要向(通信端口)数字流量积算仪发出读写等命令;从机处于被动状态,接收并响应上位机的命令。需要读采样数据时,上位机通过通信口向指定地址的数字流量积算仪发出读数据命令,数字流量积算仪响应并将数据准备好,按统一的数据通信帧格式编成响应字符串,主机再次读通信口接收缓冲区即可读到所需的数据。向数字流量积算仪写数据时,上位机向指定数字流量积算仪发出写命令及参数数据,积算仪即可接受并返回响应情况。上位机通过 RS232 通信进行运行状态

7、监控、参数设置、诊断等远程测控功能,实现这些功能采用了不同的通信格式。其中 MODBUS 协议通讯原理图如下:2.3 通讯协议本通信协议应用于 D088C/ZM 型流量积算仪与上位机的通信,数据以 16 进制格式传输,波特率:9600;数据位 8 位;停止位:1 位;效验位:无。本协议与 MODBUS 协议兼容,可以通过上位机显示流量积算仪的瞬时流量、累积流量、满量程、单位和阀状态(包括阀控、关闭和清洗),而且可以通过上位机设定流量积算仪的瞬时流量、使流量积算仪的累积流量清零。因此在本协议用到了 MODBUS 协议的命令$03(Reading 19words)、命令$05(Force sing

8、le coil)和命令$06(Writing 1 word) 【2】。使用命令$03 可以通过上位机读流量积算仪的当前状态,其通信协议的具体格式为:上位机 积算仪:01 03 00 02 00 08 E5 CC 各字节含义:01: MODBUS 地址;03: 功能码 03(Reading 19words);00 02:起始地址,00 为高 8 位,02 为低 8 位;00 08:读取的字数;E5 CC:CRC 效验值,E5 为 CRC 的低 8 位,CC 为高 8 位。上位机 积算仪:01 03 10 (1)(16) CRCL CRCH各字节含义:01:MODBUS 地址;03:MODBUS

9、命令号;10:上传的字节数;(1)(4):瞬时流量值;“0009”表示数字“09”,“1019”表示“0.9.”;(5)(10):流量累积值;同上;(11)(14):满量程;同上;(15):流量单位;00 表示 SCCM 和 SCC,01 表示 SCCM 和 SL,11 表示 SLM 和SL;(16):阀状态;00 表示关闭,80 表示阀控,FF 表示清洗;CRCL:CRC 的低八位;CRCH:CRC 的高 8 位。3 用 VB 实现串行通讯3.1MSComm 控件VB 的通信控件 MSComm 能够提供串行通信的全部功能,程序编写、调试简单方便,开发速度快,该控件封装了通信过程中的底层操作程

10、序,用户只需设置和监控控件的属性和事件,就可以方便地实现异步串行通信【4】。采用 MSComm 控件接收数据,按照接收方式分两种形式:事件驱动方式,定时查询方式。本例为适应流量的实时控制采用定时驱动方式,若定时器计时到,通过串行通信口向指定地址流量积算仪发出读写等操作命令,等待时间到则检查 InBufferCount 属性值来判断输入缓冲区中是否接受到了相应数目的字符,从而进行读取、判断数据合法性和数据存储、处理等操作。3.2 通信功能的编程实现程序框图如下:串口初始化:MSComm1.CommPort = 1MSComm1.SThreshold = 1MSComm1.Settings = “

11、9600,N,8,1“MSComm1.InBufferSize = 1024MSComm1.OutBufferSize = 1024MSComm1.InputMode = comInputModeBinary打开串口并定时发送数据命令:Private Sub Timer1_Timer()Dim bytearray(0 To 7) As Bytebytearray(0) = &H1bytearray(1) = &H3bytearray(2) = &H0bytearray(3) = &H2bytearray(4) = &H0bytearray(5) = &H8bytearray(6) = &HE5

12、bytearray(7) = &HCCMSComm1.InputLen = 21MSComm1.InBufferCount = 0MSComm1.OutBufferCount = 0MSComm1.RThreshold = 1MSComm1.PortOpen = TrueIf MSComm1.PortOpen = True ThenMSComm1.Output = bytearrayEnd IfEnd Sub接受数据:Private Sub MSComm1_OnComm()DoDoEventsLoop Until MSComm1.InBufferCount = 21Dim dataread()

13、 As ByteDim tempdata As VariantDim str As StringIf MSComm1.CommEvent = comEvReceive Thentempdata = MSComm1.InputReDim dataread(UBound(tempdata) As ByteFor i = 0 To UBound(tempdata)dataread(i) = tempdata(i)End Sub同理利用以上程序框图和通信协议可以完成下图的所有功能:4 结束语 利用 VB6.0 的 MSComm 控件和 MODBUS 协议,实现了工控机与带 RS232 输出接口 的智能

14、数字流量积算仪之间的串口通信功能,使其能够实时的采集瞬时流量,并成功的应 用于底吹氩流量闭环控制系统。这种通信方式灵活方便,结构简单,可靠性高,完全达到 了预期的要求,具有较好的实际价值和使用性。 参考文献:【1】 范逸之主编Visual Basic 与 RS232 串行通信控制北京:中国青年出版社, 2002【2】 D08-8C/ZM 型流量积算仪使用手册北京:北京七星华创电子股份有限公司,2006 【3】 李鹏等计算机通信技术及其程序设计西安:西安电子科技大学出版社,1998 【4】 李玉东Visual Basic6.0 控件大全北京:电子工业出版社,2005 作者简介:牛辉(1982.11 ),男,硕士研究生,从事复杂工业过程智能控制方面的研 究 通信地址:河北省石家庄市新华路 505 号河北科技大学电气信息学院 邮编:050054 电话:13673211591

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

当前位置:首页 > 资格认证/考试 > 其它考试类文档

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