您现在的位置: 通信界 >> 工业自动化 >> 技术正文  
 
基于组态王和VB的智能仪表实时监控系统[图]
[ 通信界 / 佚名 / www.cntxj.net / 2012/7/5 21:34:17 ]
 

摘要:针对目前组态王与智能化仪表通信时存在的问题,基于VB和动态数据交换技术DDE,研究了组态王与VB数据交换的方法,并采用VB可视化的编程方法,编写了上位机与智能化仪表间的串口通信程序及组态软件与VB间的OLE数据交换程序。实现了组态王与智能化仪表的实时通信,间接扩展了组态王的驱动程序库。另外,设计完成了基于组态王和VB的智能化仪表监控系统。运行结果表明,该系统具有良好的稳定性、实时性,可以较好地实现工业现场的实时监控。

0 引言

随着科学技术的不断发展,计算机测控技术在工业现场的各种测量及控制系统中应用越来越广泛。通常情况下,工业现场的各种测控系统需要上位计算机与工业现场各种智能化仪表进行通信,以便及时了解现场仪表的运行情况,从而实现对现场各种状态的实时监控。

组态王软件作为一种优秀的上位机监控软件,在许多领域的远程监控中都得到了广泛的应用。然而,组态王为数据采集和控制提供的大量底层设备驱动程序,主要是针对较大规模厂商的板卡和模块,对于较小规模厂商开发的各种智能化仪表及用户自己设计的板卡,却没有现成的驱动程序提供。因此,利用组态王与智能化仪表及用户自己设计的板卡进行通信时,往往需要用户自己开发底层的驱动程序,给用户的使用带来了诸多的不便。为了解决上述问题,组态王专门提供了一种DDE技术,能够使用户方便地实现组态王与其它支持动态数据交换的应用程序进行数据交换。

Visual Basic 6.0 (简称VB)是一款简单、易用的可视化编程语言,开发者可以方便地利用其提供的组件快速建立一个应用程序。因而,在各种程序开发中,VB得到了广泛的应用,同时在VB中提供的串行通信控件MSComm,为开发者实现上位计算机与现场各种仪表进行通信提供了一种有效途径。另外,VB还支持DDE技术,利用该技术可以方便地开发出Windows环境下的DDE程序。

本文针对目前组态王与智能化仪表通信时存在的问题,给出了一种基于VB和DDE技术的上位计算机与现场智能仪表进行通信的方法。开发了一套组态王与VB相结合的智能化仪表监控系统,较好地实现了工业现场各种智能化设备运行状态的实时监控。

1 系统的基本结构

基于组态王和VB的智能化仪表监控系统的结构如图1所示。由图1可知,该系统由上位计算机、RS2232 /485通信电缆和现场各种智能化仪表构成,该系统采用的是一对多的通信链接形式,即现场多种智能化仪表挂接在RS2485 总线上,然后再由RS2232 /485转换器转换后,连接到上位计算机。

图1 系统基本原理图。

2 系统的工作原理

组态王与现场智能仪表的通信原理如图2 所示。

由图2可以看出,该系统的通信包括两部分:组态王与VB程序的DDE通信; VB 程序通过RS2232 /485 与现场智能仪表的通信。

图2 组态王与现场智能仪表通信原理

2. 1 组态王与VB的动态数据交换

动态数据交换(DDE) 是Windows平台上的一个完整通信协议,该协议使应用程序能彼此交换数据和发送指令。组态王和VB进行DDE通信的过程中,请求发送数据的一方称为"客户",被请求的一方称为"服务器".由于DDE通信时,交换双方需实现数据或控制命令的双向传输。因此,它们既是"客户",又是"服务器".

2. 1. 1 DDE通信时组态王的设定

组态王与VB之间数据交换内容是通过三个标志名来约定的:

① 应用程序名。进行DDE对话的双方的名称。

组态王运行系统的程序名是View.

② 主题。被讨论的数据域。组态王主题规定为tagname.

③ 项目。被讨论的特定数据对象。在组态王的数据词典里,定义I/O 变量的同时,也定义了项目名称。

为了建立DDE链接,需要在组态王的数据词典里建立一个I/O变量,并登记服务器程序的三个标志名。

本系统中应用程序名为VBDDE,话题名为form1,项目名为INCREA100, 程序交换的方式为标准WindowsDDE交换。

2. 1. 2 DDE通信时VB的设定

在VB编程软件中, DDE连接主要是通过控件的属性和方法实现的。通常情况下,DDE通信主要是通过文本框、标签或图片框等控件进行。

如果VB作为顾客,数据交换时,则需要对上述控件的LinkTop ic、Link Item、LinkMode 属性进行如下设置:

Control. L inkTop ic =服务器程序名|主题名

Control. L ink Item =项目名

Control. L inkMode有四种选择: 0表示关闭DDE;

1表示热链接; 2表示冷链接; 3表示通告链接。

其中, Control表示文本框、标签或图片框的名字。

本系统中Control表示文本框Text1,LinkTop ic设置为View|Tagname, LinkItem 设置为PLC1. INCREA100,LinkMode设置为1.

如果组态王作为顾客,只要把VB 应用程序中提供数据窗体的LinkMode属性设置为1,其它无需再在VB中增加任何程序。

在对组态王和VB的初始设置完成后,结合VB编写的与智能仪表的通信程序,分别按照服务器和顾客运行应用程序,即可实现组态王与VB 的自动数据交换。

2. 2 VB与智能仪表的通信

本系统采用VB专业版的MSComm控件与VB模块化编程相结合,实现了VB与智能仪表间的通信,主要程序模块及部分程序如下:

① 程序初始化模块。主要完成串口的选择、波特率、帧结构设置、打开串口等串口的设置工作。

② 发送数据模块。由手动发送控制命令字和自动发送控制命令字两种方式,实现手动采集数据和自动采集数据。其中,自动发送数据方式包括一个定时器发送程序和一个定时器时间响应程序;定时器发送程序用来控制控制命令字的发送周期,定时器响应程序用来完成现场各智能化仪表地址的循环赋值及控制命令字的发送。

上述模块中定时器响应程序的部分程序如下:

Private Sub Timer1 Timer

Timer1. Enabled = False

Text_SEND. Text = "" ∥清空发送文本框

MSComm. OutBufferCount = 0 ∥清除发送缓冲区数据

Dim OutByte (1 To 3) AsByte

IfNotMSComm. PortOpen Then ∥保证串口打开

MSComm. PortOpen = True

End If

'24台积算仪循环数据采集

If k = 1 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 1

End If

If k = 2 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 2

End If

??

k = k + 1

If k > 24 Then

k = 1

End If

MSComm. InBufferCount = 0 ∥清除接收缓冲区数据

MSComm. OutBufferCount = 0 ∥清除发送缓冲区数据

MSComm. Output = OutByte

For j = 1 To 3

OutByte again ( j) = OutByte ( j)

Next

For i = 1 To 50000000

'延时Next

End Sub

③ 接收数据模块。通过事件响应的方式来完成现场数据的接收。如果串口收到现场数据,并且使得数据缓冲区中的内容超过一个字节时,就会引发com2EvReceive事件。OnComm 函数用来负责捕捉com2EvReceive事件,并且将发送缓冲区中的现场内容写入VB的文本框进行显示,同时与组态王进行DDE数据交换。

该模块中的OnComm 函数响应程序如下:

Private Sub Timer1 Timer

Timer1. Enabled = False

Text_SEND. Text = "" ∥清空发送文本框

MSComm. OutBufferCount = 0 ∥清除发送缓冲区数据

Dim OutByte (1 To 3) AsByte

IfNotMSComm. PortOpen Then ∥保证串口打开

MSComm. PortOpen = True

End If

'24台积算仪循环数据采集

If k = 1 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 1

End If

If k = 2 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 2

End If

k = k + 1

If k > 24 Then

k = 1

End If

MSComm. InBufferCount = 0 ∥清除接收缓冲区数据

MSComm. OutBufferCount = 0 ∥清除发送缓冲区数据

MSComm. Output = OutByte

For j = 1 To 3

OutByte again ( j) = OutByte ( j)

Next

For i = 1 To 50000000

'延时Next

End Sub

Private Sub Timer1 Timer

Timer1. Enabled = False

Text_SEND. Text = "" ∥清空发送文本框

MSComm. OutBufferCount = 0 ∥清除发送缓冲区数据

Dim OutByte (1 To 3) AsByte

IfNotMSComm. PortOpen Then ∥保证串口打开

MSComm. PortOpen = True

End If

'24台积算仪循环数据采集

If k = 1 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 1

End If

If k = 2 Then

OutByte (1) = &HCA

OutByte (2) = 0

OutByte (3) = 2

End If

??

k = k + 1

If k > 24 Then

k = 1

End If

MSComm. InBufferCount = 0 ∥清除接收缓冲区数据

MSComm. OutBufferCount = 0 ∥清除发送缓冲区数据

MSComm. Output = OutByte

For j = 1 To 3

OutByte again ( j) = OutByte ( j)

Next

For i = 1 To 50000000

'延时Next

End Sub

④ 容错模块。通过增加数据采集容错模块,保证数据采集的实时性、准确性,提高系统工作可靠性。

⑤ 数据库模块。主要利用Access数据库,实现对计算机采集数据存储、管理、分析及历史数据的查询等。

⑥ 其他程序模块。主要完成发送、接收文本框的清空工作等。

通过上述几个模块的协调工作,就可以较好地实现VB与智能仪表间的串行通信、数据分析及历史数据查询等。

3 结束语

通过VB与智能仪表间的串行通信及组态王与VB间的DDE通信,并利用组态王丰富的图形和组态工艺,较好地完成了数据的实时刷新、各种曲线、报警的显示。运行结果表明,该系统具有友好的人机界面,良好的稳定性、可靠性,较好地解决了组态王与一般智能仪表间的实时通信问题,实现了组态王对智能化仪表的实时监控。

 

作者:佚名 合作媒体:不详 编辑:顾北

 

 

 
 热点技术
普通技术 “5G”,真的来了!牛在哪里?
普通技术 5G,是伪命题吗?
普通技术 云视频会议关键技术浅析
普通技术 运营商语音能力开放集中管理方案分析
普通技术 5G网络商用需要“无忧”心
普通技术 面向5G应运而生的边缘计算
普通技术 简析5G时代四大关键趋势
普通技术 国家网信办就《数据安全管理办法》公开征求意见
普通技术 《车联网(智能网联汽车)直连通信使用5905-5925MHz频段管理规定(
普通技术 中兴通讯混合云解决方案,满足5G多元业务需求
普通技术 大规模MIMO将带来更多无线信道,但也使无线信道易受攻击
普通技术 蜂窝车联网的标准及关键技术及网络架构的研究
普通技术 4G与5G融合组网及互操作技术研究
普通技术 5G中CU-DU架构、设备实现及应用探讨
普通技术 无源光网络承载5G前传信号可行性的研究概述
普通技术 面向5G中传和回传网络承载解决方案
普通技术 数据中心布线系统可靠性探讨
普通技术 家庭互联网终端价值研究
普通技术 鎏信科技CEO刘舟:从连接层构建IoT云生态,聚焦CMP是关键
普通技术 SCEF引入需求分析及部署应用
  版权与免责声明: ① 凡本网注明“合作媒体:通信界”的所有作品,版权均属于通信界,未经本网授权不得转载、摘编或利用其它方式使用。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:通信界”。违反上述声明者,本网将追究其相关法律责任。 ② 凡本网注明“合作媒体:XXX(非通信界)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。 ③ 如因作品内容、版权和其它问题需要同本网联系的,请在一月内进行。
通信视界
华为余承东:Mate30总体销量将会超过两千万部
赵随意:媒体融合需积极求变
普通对话 苗圩:建设新一代信息基础设施 加快制造业数字
普通对话 华为余承东:Mate30总体销量将会超过两千万部
普通对话 赵随意:媒体融合需积极求变
普通对话 韦乐平:5G给光纤、光模块、WDM光器件带来新机
普通对话 安筱鹏:工业互联网——通向知识分工2.0之路
普通对话 库克:苹果不是垄断者
普通对话 华为何刚:挑战越大,成就越大
普通对话 华为董事长梁华:尽管遇到外部压力,5G在商业
普通对话 网易董事局主席丁磊:中国正在引领全球消费趋
普通对话 李彦宏:无人乘用车时代即将到来 智能交通前景
普通对话 中国联通研究院院长张云勇:双轮驱动下,工业
普通对话 “段子手”杨元庆:人工智能金句频出,他能否
普通对话 高通任命克里斯蒂安诺·阿蒙为公司总裁
普通对话 保利威视谢晓昉:深耕视频技术 助力在线教育
普通对话 九州云副总裁李开:帮助客户构建自己的云平台
通信前瞻
杨元庆:中国制造高质量发展的未来是智能制造
对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 杨元庆:中国制造高质量发展的未来是智能制造
普通对话 对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 对话倪光南:“中国芯”突围要发挥综合优势
普通对话 黄宇红:5G给运营商带来新价值
普通对话 雷军:小米所有OLED屏幕手机均已支持息屏显示
普通对话 马云:我挑战失败心服口服,他们才是双11背后
普通对话 2018年大数据产业发展试点示范项目名单出炉 2
普通对话 陈志刚:提速又降费,中国移动的两面精彩
普通对话 专访华为终端何刚:第三代nova已成为争夺全球
普通对话 中国普天陶雄强:物联网等新经济是最大机遇
普通对话 人人车李健:今年发力金融 拓展汽车后市场
普通对话 华为万飚:三代出贵族,PC产品已走在正确道路
普通对话 共享退潮单车入冬 智享单车却走向盈利
普通对话 Achronix发布新品单元块 推动eFPGA升级
普通对话 金柚网COO邱燕:天吴系统2.0真正形成了社保管