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

扫码手机浏览

关键词:摘要:以VB6.0为软件开发平台,在分析与D08-8C/ZM智能流量积算仪通信原理的基础上,利用MSComm 控件和MODBUS协议,实现了上位机与该智能流量积算仪的串口通信功能,使上位机可以实时的采集流量值、设定瞬时流量值等,并将其成功地应用到底吹氩流量的闭环控制系统中。关键词: VB流量积算仪串口通信MODBUS协议MSComm控件The Ser...
  • 关键词:

摘要:以VB6.0为软件开发平台,在分析与D08-8C/ZM智能流量积算仪通信原理的基础上 ,利用MSComm 控件和MODBUS协议,实现了上位机与该智能流量积算仪的串口通信功能,使上位机可以实时的采集流量值、设定瞬时流量值等 ,并将其成功地应用到底吹氩流量的闭环控制系统中。
关键词: VB流量积算仪串口通信MODBUS协议MSComm控件
The Serial Communication between Industrial Computer and Intelligent Flow Totalizer Based on VB6.0
NIU Hui,MENG Hua, 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 protocol, 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 communication MODBUS protocol MSComm control
1 引言
本文主要从应用的角度利用VB6.0的MSComm 控件和MODBUS协议 ,成功实现了某流量控制系统中工控机与带RS-232输出接口的智能数字流量积算仪之间的串口通信功能 。D08-8C/ZM数字显示表应用于底吹氩流量控制系统中流量的显示,工控机通过读取其显示值作为反馈信号,从而实现流量的闭环控制。
2 D08-8C/ZM型智能数字流量显示积算仪与串口通信
2.1 硬件构成
D07-12A型质量流量传感器采用毛细管传热温差量热法原理测量气体的质量流量(无需温度压力补偿)。将传感器加热电桥测得的流量信号送入放大器放大 ,放大后的流量检测电压与设定电压进行比较,再将差值信号放大后去控制门,闭环控制流过通道的流量使之与设定的流量相等 。当本流量积算仪与MFC(质量流量计)配套使用时 ,只需用通过D型插头将流量积算仪与MFC连接起来即可 。然后采用一台上位机与一台D08-8C/ZM流量积算仪进行通信的方式,使用RS232通讯方式:将2引脚(TXD)与上位机串口的RXD(工控机串口的2引脚)相连;3引脚(RXD)与上位机串口的TXD(工控机串口的3引脚)相连;5引脚(SG)与上位机串口的SG(工控机串口的5引脚)相连。
2.2 通讯原理
工控机作为上位机与从机(数字流量积算仪)采用主从应答方式进行通信,一个网络中只有一个主机(上位机 ,节点地址为0),主机通过站号(数字流量积算仪的唯一地址)区分不同的从机。上位机始终处于主动状态,根据程序运行的需要向(通信端口)数字流量积算仪发出读写等命令;从机处于被动状态 ,接收并响应上位机的命令 。需要读采样数据时,上位机通过通信口向指定地址的数字流量积算仪发出读数据命令,数字流量积算仪响应并将数据准备好 ,按统一的数据通信帧格式编成响应字符串 ,主机再次读通信口接收缓冲区即可读到所需的数据。向数字流量积算仪写数据时,上位机向指定数字流量积算仪发出写命令及参数数据,积算仪即可接受并返回响应情况。上位机通过RS-232通信进行运行状态监控 、参数设置、诊断等远程测控功能 ,实现这些功能采用了不同的通信格式 。其中MODBUS协议通讯原理图如下:



2.3 通讯协议
本通信协议应用于D08-8C/ZM型流量积算仪与上位机的通信,数据以16进制格式传输,波特率:9600;数据位8位;停止位:1位;效验位:无。本协议与MODBUS协议兼容 ,可以通过上位机显示流量积算仪的瞬时流量、累积流量 、满量程 、单位和阀状态(包括阀控、关闭和清洗),而且可以通过上位机设定流量积算仪的瞬时流量、使流量积算仪的累积流量清零。因此在本协议用到了MODBUS协议的命令$03(Reading 1~9words) 、命令$05(Force single coil)和命令$06(Writing 1 word) 【2】 。
使用命令$03可以通过上位机读流量积算仪的当前状态,其通信协议的具体格式为:
上位机积算仪:010300020008E5CC
各字节含义:
01:MODBUS地址;
03:功能码03(Reading 1~9words);
00 02:起始地址 ,00为高8位,02为低8位;
00 08:读取的字数;
E5 CC:CRC效验值,E5为CRC的低8位 ,CC为高8位。
上位机 积算仪:010310 (1)~(16) CRCLCRCH
各字节含义:
01:MODBUS地址;
03:MODBUS命令号;
10:上传的字节数;
(1)~(4):瞬时流量值;“00~09”表示数字“0~9 ”,“10~19”表示“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能够提供串行通信的全部功能,程序编写、调试简单方便 ,开发速度快,该控件封装了通信过程中的底层操作程序,用户只需设置和监控控件的属性和事件 ,就可以方便地实现异步串行通信【4】 。
采用MSComm控件接收数据,按照接收方式分两种形式:事件驱动方式,定时查询方式。本例为适应流量的实时控制采用定时驱动方式 ,若定时器计时到,通过串行通信口向指定地址流量积算仪发出读写等操作命令,等待时间到则检查InBufferCount属性值来判断输入缓冲区中是否接受到了相应数目的字符 ,从而进行读取、判断数据合法性和数据存储 、处理等操作。
3.2通信功能的编程实现
程序框图如下:


串口初始化:MSComm1.CommPort = 1
MSComm1.SThreshold = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.InBufferSize = 1024
MSComm1.OutBufferSize = 1024
MSComm1.InputMode = comInputModeBinary
打开串口并定时发送数据命令:Private Sub Timer1_Timer()
Dim bytearray(0 To 7) As Byte
bytearray(0) = &H1
bytearray(1) = &H3
bytearray(2) = &H0
bytearray(3) = &H2
bytearray(4) = &H0
bytearray(5) = &H8
bytearray(6) = &HE5
bytearray(7) = &HCC
MSComm1.InputLen = 21
MSComm1.InBufferCount = 0
MSComm1.OutBufferCount = 0
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
If MSComm1.PortOpen = True Then
MSComm1.Output = bytearray
End If
End Sub
接受数据:Private Sub MSComm1_OnComm()
Do
DoEvents
Loop Until MSComm1.InBufferCount = 21
Dim dataread() As Byte
Dim tempdata As Variant
Dim str As String
If MSComm1.CommEvent = comEvReceive Then
tempdata = MSComm1.Input
ReDim dataread(UBound(tempdata)) As Byte
For i = 0 To UBound(tempdata)
dataread(i) = tempdata(i)
End Sub
同理利用以上程序框图和通信协议可以完成下图的所有功能:


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



本文转载自互联网,如有侵权,联系删除

展开