阅读| 订阅
阅读| 订阅
控制系统

C++ Builder实现组态王实时监控艾默生变频器(二)

星之球激光来源:工控网2012-09-10我要评论(0)

4 bcb与组态王软件数据交换的实现 组态王之间通讯的实现主要是通过组态王提供的动态数据交换 (dde)来完成的。dde是windows平台上的一个完整的通信协议,它使应用程序...

4 bcb与组态王软件数据交换的实现

  “组态王”之间通讯的实现主要是通过“组态王”提供的动态数据交换 (dde)来完成的。dde是windows平台上的一个完整的通信协议,它使应用程序能彼此交换数据和发送指令。dde过程可以比喻为两个人的对话。提问的一方称为“顾客”(client),回答的一方称为“服务器”server)。一个应用程序可以同时是“顾客”、“服务器”:当它向其他程序中请求数据和时,它充当的是“顾客”若有其他程序需要它提供数据,它又成了“服务器”这里关键要实现的是。“组态王”作为顾客程序从bcb得到数据。使bcb成为“服务器”很简单,只需在“组态王”中设置服务器程序的三个标识名(应用程序名、主题名、项目名),并把vb应用程序中提供数据的窗体的linkmode属性设置为1,不必在vb中增加任何程序。值得注意的是,将vb窗口的属性设定成和在组态王中定义dde设备时的“话题名”一样;在组态王定义要显示的变量时,选择“项目名”为要显示bcb的textbox控件名。这样组态王界面上可以显示出指定的bcb可执行文件中指定的textbox控件的值。

5 一种通过用bcb做控件实现组态王监控变频器的方法

  利用bcb中能生成activex控件的项目编写器new-》other-》activex-》activeform,编写相关程序实现控制变频器的功能,并通过bcb自带的view工具栏中的typelibrary工具来编译生成控件,此控件经打包可生成在组态王中认始的ocx控件,此控件同样可设置是否具有可读可写的属性,此属性是在typeliabrary工具中设置编译后得到的,需要几个参数,其各是什么属性,完全可以自由添加,非常简单方便。并可通过bcb相关程序,设置相关属性对内对外的具体连接功能。实际上,此过程实现的就是变频器与bcb控件的通信,控件与组态王的通信,此方式弥补了组态王中不提供的相关变频器等的驱动程序,而无法利用组态王的缺陷,可通过bcb方便实现相关功能的驱动,而又间接实现了组态王控制变频器等的驱动。实际bcb与变频器等的通信也非常简便,只要确定了通信协议,就可利用mscomm控件,方便的编写通信程序,实现变频器等的控制。用bcb制作通用控件嵌入组态王从而实现组态王与变频器的通讯,其运行画面如图3所示。

6 结束语

  当用bcb作为后台时,当系统开始运行前,要求首先运行c++builder的可执行文件作为后台运行程序,然后才能运行组态王系统。当变频器发送数据的时候,由bcb接受到此数据,再通过组态王提供的dde功能,将该数据显示到组态王界面上。这样就把从变频器采集到的外部信号通过bcb间接动态的显示在组态王界面上。该方法实现了组态王对变频器的实时监控。经过测试可知,系统的实时响应速度能达到ms级,并且这种实现系统实时监控的方法可移植性强,对于监控其他类型可编程控制器plc或单片机也适用。

  当用bcb制作控件时,只要用bcb制作完相应功能的控件就可实现脱离bcb环境,作为普通的ocx控件应用于组态王,非常简便。此方法弥补了组态王没有相关驱动程序,而无法实现应用组态王的缺陷,值得推广应用。在兖矿鲍店砖窑监控系统中,我们利用了bcb作为后台间接实现组态王对变频器的控制。其窑炉一鼓风机变频控制监控画面如图4所示。经现场调试运行后,所得反馈效果良好。#p#分页标题#e#

转载请注明出处。

免责声明

① 凡本网未注明其他出处的作品,版权均属于hth官方 ,未经本网授权不得转载、摘编或利用其它方式使用。获本网授权使用作品的,应在授权范围内使 用,并注明"来源:hth官方 ”。违反上述声明者,本网将追究其相关责任。
② 凡本网注明其他来源的作品及图片,均转载自其它媒体,转载目的在于传递更多信息,并不代表本媒赞同其观点和对其真实性负责,版权归原作者所有,如有侵权请联系我们删除。
③ 任何单位或个人认为本网内容可能涉嫌侵犯其合法权益,请及时向本网提出书面权利通知,并提供身份证明、权属证明、具体链接(URL)及详细侵权情况证明。本网在收到上述法律文件后,将会依法尽快移除相关涉嫌侵权的内容。

网友点评
0 相关评论
精彩导读
Baidu
map