0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用VB可视化和DDE实现智能仪表监控系统的设计

电子设计 作者:电子设计 2018-11-12 07:42 次阅读

引言

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

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

采用VB可视化和DDE实现智能仪表监控系统的设计

图1 系统基本原理图。

2 系统的工作原理

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

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

采用VB可视化和DDE实现智能仪表监控系统的设计

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 转换器
    +关注

    关注

    27

    文章

    8627

    浏览量

    146869
  • 监控系统
    +关注

    关注

    21

    文章

    3860

    浏览量

    173498
  • 总线
    +关注

    关注

    10

    文章

    2867

    浏览量

    87988
  • 编程语言
    +关注

    关注

    10

    文章

    1938

    浏览量

    34598
收藏 人收藏

    评论

    相关推荐

    智能可视化门禁系统项目_V2.0

    智能可视化门禁系统项目_V2.0
    发表于 08-16 16:27

    轨道交通路面3G手机移动可视化巡检系统方案

    像,把现场的情况实时的传到指挥控制中心,进行远程监控管理、调度,传输线路利用3G无线数据业务网和WIFI网络。二、系统架构深圳市视高电子技术股份有限公司3G移动可视化巡检设备具有部署简单、操作便捷
    发表于 01-28 10:05

    可视化MES系统软件

    和客户都会造成损失,为了更好的满足客户需求、实现企业信息,目前企业制造过程中主要还存在以下需求:(1)数据可视化方面。MES系统软件之所以能有效的
    发表于 11-30 19:55

    可视化电子看板系统的岗位需求

    决问题。从功能角度谈可视化电子看板系统从功能的角度来说,企业看板可以分为数据采集、数据分析、监控预警、作业指导、工序衔接、下达指令、进度管理、绩效驱动及现场广播等。从流程角度谈可视化
    发表于 10-19 20:07

    基于STM的可视化门禁系统

    基于STM的可视化门禁系统
    发表于 03-07 09:49

    三维可视化的应用和优势

    。  数据统计分析可视化:目前应用较为广泛,此功能普遍应用于商业智能、***决策、公众服务、市场营销等等领域。借助可视化的管理系统,可以更加清晰的进行信息传达与沟通。  三维
    发表于 12-02 11:52

    基于VB的实体浮力测量系统监控软件设计

    介绍了应用VB编程技术设计的实体浮力测量系统监控软件的总体软件结构和主要控制功能;应用VB丰富的控件、强大的数据库编程能力和可视化的编程设计
    发表于 07-16 11:19 11次下载

    HART协议智能仪表自动校验系统的设计和实现

    HART协议智能仪表自动校验系统的设计和实现 介绍HART协议智能仪表的自动校验系统的设计思想 和实现
    发表于 10-15 21:36 1095次阅读
    HART协议<b class='flag-5'>智能仪表</b>自动校验<b class='flag-5'>系统</b>的设计和<b class='flag-5'>实现</b>

    组态王与VB数据交换方法

      针对目前组态王与智能化仪表通信时存在的问题,基于VB和动态数据交换技术DDE,研究了组态王与VB数据交换的方法,并
    发表于 09-25 17:52 16次下载
    组态王与<b class='flag-5'>VB</b>数据交换方法

    基于组态王和VB智能仪表实时监控系统[图]

    摘要: 针对目前组态王与智能化仪表通信时存在的问题,基于VB和动态数据交换技术DDE,研究了组态王与VB数据交换的方法,并
    发表于 01-17 22:32 1198次阅读

    智能电网时代如何实现可视化

    随着我国智能电网建造的开展,电力行业将掀起一场产业智能化革新。调度中心是电网运行信息和供电服务信息的汇集部门,在电力调度过程中,将智能电网调度可视化技术应用进来,是推广
    的头像 发表于 01-11 16:00 6910次阅读

    智能建筑可视化管理是如何实现

    人、车、物、事件是智能建筑管理的四大要素。智能建筑可视化管理解决方案可以通过视频监控智能分析和安防综合管理三大业务模块
    发表于 04-18 11:20 1287次阅读

    互动仓库物流监控管理可视化服务

    智能仓库的优势在于3D智能可视化服务,使仓库物流监控和管理能够实时显示并自动识别,智能决策可以与各个环节的物流信息
    发表于 06-24 17:40 682次阅读

    可视化全程追溯,可视化资产管理系统

    管理系统智能化技术为核心,融合了实时监控、数据分析与可视化展示等功能,为企业提供了完整的资产管理解决方案。它能够有效地追踪和管理企业的固定资产、设备和库存物资,帮助企业
    的头像 发表于 01-11 13:54 461次阅读
    <b class='flag-5'>可视化</b>全程追溯,<b class='flag-5'>可视化</b>资产管理<b class='flag-5'>系统</b>

    物联网可视化监控大屏如何实现?有什么功能?

    在物联网飞速发展的时代,可视化监控大屏成为了众多企业和机构实现智能化管理和监控的重要工具。它将各种各样设备的运行状态和数据以图形、图表、动画
    的头像 发表于 04-11 09:25 791次阅读