《VB6.0的工控机与智能流量积算仪串口通信》由会员分享,可在线阅读,更多相关《VB6.0的工控机与智能流量积算仪串口通信(8页珍藏版)》请在金锄头文库上搜索。
1、VB6.0的工控机与智能流量积算仪串口通信评职称.发论文,交给机电之家.3个月I内完成!收藏此信息 打印该信息 添加:用户发布 来源:未知1、引言本文主要从应用的角度利用VB6.0的MSComm 控件和MODBUS 协议,成功实现了某流量控制系统中工控机与带RS 232输出接口的智能数字流量积算仪之间的串口通信功能。D08 8CZM数字显示表应用于底吹氩流量控制系统中流量的显示,工控机通过读取其显示值作为反馈信号,从而实现流量的闭环控制。2、D08 8CZM型智能数字流量显示积算仪与串口通信2.1硬件构成D07 12A型质量流量传感器采用毛细管传热温差量热法原理测量气体的质量流量(无需温度压力
2、补偿)。将传感器加热电桥测得的流量信号送入放大器放大,放大后的流量检测 电压与设定电压进行比较,再将差值信号放大后去控制调节阀门,闭环控制流过通道的流量使之与设定的流量相等。当本流量积算仪与MFC (质量流量计)配套使用时,只需用电缆通过D型插头将流量积算仪与MFC连接起来即可。然后采用一台上位机与一台D08 8CZM流量积算仪进行通信的方式,使用RS232通讯方式:将2引脚(TXD )与上位机串口的RXD (工控机串口的2引脚)相连;3引脚(RXD )与上位机串口的 TXD (工控机串口的 3引脚)相连;5引脚(SG)与上位机串口的 SG (工控机串口的5引脚)相连。2.2通讯原理工控机作为
3、上位机与从机(数字流量积算仪)采用主从应答方式进行通信,一个网络中只有一个主机(上位机,节点地址为0),主机通过站号(数字流量积算仪的唯一地址)区分不同的从机。上位机始终处于主动状态,根据程序运行的需要向(通信端口)数字流量积算仪发出读写等命令;从机处于被动状态,接收并响应上位机的命令。需要读采样数据时,上位机通过通信口向指定地址的数字流量积算仪发出读数据命令,数字流量积算仪响应并将数据准备好,按统一的数据通信帧格式编成响应字符串,主机再次读通信口接收缓冲区即可读到所需的数据。向数字流量积算仪写数据时,上位机向指定数字流量积算仪发出写命令及 参数数据,积算仪即可接受并返回响应情况。上位机通过R
4、S - 232通信进行运行状态监控、参数设置、诊断等远程测控功能,实现这些功能采用了不同的通信格式。其中MODBUS协议通讯原理图如下:图1 MODBUS协议的询问应答环路2.3通讯协议本通信协议应用于 D08 - 8CZM型流量积算仪与上位机的通信,数据以16进制格式传输,波特率:9600 ;数据位8位;停止位:1位;效验位:无。本协议与MODBUS协议兼容,可以通过上位机显示流量积算仪的瞬时流量、累积流量、满量程、单位和阀状态(包括 阀控、关闭和清洗),而且可以通过上位机设定流量积算仪的瞬时流量、使流量积算仪的累积流量清零。因此在本协议用到了MODBUS协议的命令$03 ( Reading
5、 19words )、命令$05(Force single coil) 和命令 $06(Writing 1 word)。使用命令$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 :
6、MODBUS 地址;03: MODBUS 命令号;10 :上传的字节数;(1 )(4):瞬时流量值;0009 ”表示数字09”,1019”表示09. ”;(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.1 MSComm 控件VB的通信控件MSComm能够提供串行通信的全部功能,程序编写、调试简单方便,开发速度快,该控
7、件封装了通信过程中的底层操作程序,用户只需设置和监控控件的属性和事件,就可以方便地实现异步串行通信。采用MSComm控件接收数据,按照接收方式分两种形式:事件驱动方式,定时查询方式。本例为适应流量的实时控制采用定时驱动方式,若定时器计时到,通过串行通信口向指定地址流量积算仪发出读写等操作命令,等待时间到则检查In BufferCou nt属性值来判断输入缓冲区中是否接受到了相应数目的字符,从而进行读取、判断数据合法性和数据存储、处理等操作。3.2通信功能的编程实现程序框图如下:图2串口通信程序框图串口初始化:MSComml.CommPort = 1MSComml.SThreshold = 1M
8、SComml.Setti ngs = 9600,N,8,1MSComml.I nBufferSize = 1024MSComml.OutBufferSize = 1024MSComml.l nputMode = coml nputModeB in ary 打开串口并定时发送数据命令:Private Sub Timer1_Timer()Dim bytearray(0 To 7) As Bytebytearray(0) = &H1bytearray(1) = &H3bytearray(2) = &H0bytearray(3) = &H2bytearray(4) = &H0bytearray(5)
9、= &H8bytearray(6) = & HE5bytearray(7) = & HCCMSComm1.I nputLe n = 21MSComm1.I nBufferCou nt = 0MSComm1.OutBufferCou nt = 0MSComm1.RThreshold = 1MSComm1.PortOpe n = TrueIf MSComm1.PortOpe n = True The nMSComm1.Output = bytearrayEnd IfEnd Sub接受数据:Private Sub MSComm1_O nComm()DoDoEve ntsLoop Until MSCo
10、mml.I nBuferCou nt = 21Dim dataread() As ByteDim tempdata As Varia ntDim str As Stri ngIf MSComm1.CommEve nt = comEvReceive The ntempdata = MSComm1.I nputReDim dataread(UBou nd(tempdata) As ByteFor i = 0 To UBoun d(tempdata)dataread(i) = tempdata(i)Next iEnd ifEnd Sub同理利用以上程序框图和通信协议可以完成下图的所有功能:图3基于VB的D08-8CZM 型流量积算仪4、结束语利用VB6.0的MSComm 控件和 MODBUS 协议,实现了工控机与带 RS 232输出接 口的智能数字流量积算仪之间的串口通信功能,使其能够实时的采集瞬时流量, 并成功的应用于底吹氩流量闭环控制系统。 这种通信方式灵活方便, 结构简单,可靠性高,完全达到了 预期的要求,具有较好的实际价值和使用性。