vb未找到方法或数据成员_组态王与其它应用程序的动态数据交换(DDE)

f40d1694f569afe9da89ef90e73ff60f.gif

1.概述

“组态王”支持动态数据交换(DDE:Dynamic Data Exchange),能够和其他支持动态数据交换的应用程序方便地交换数据。通过DDE,工程人员可以利用PC机丰富的软件资源来扩充“组态王”的功能,比如用电子表格程序从“组态王”的数据库中读取数据,对生产作业执行优化计算,然后“组态王”再从电子表格程序中读出结果来控制各个生产参数;可以利用VISUAL BASIC开发服务程序,完成数据采集、报表打印、多媒体声光报警等功能,从而很容易组成一个完备的上位机管理系统;还可以和数据库程序、人工智能程序、专家系统等进行通信。

现就组态王与VB应用程序、Excel程序通过DDE方式进行数据交换的使用方法进行简要的说明:

2.组态王与Excel间的数据交换

2.1Excel程序从组态王中获得数据

1)在组态王中建立变量。

3449428bb68d13f3740e02864f7711fa.png图-1

建立变量“B”,并设置允许DDE访问。(本例连接的物理设备为亚控仿真PLC)。

2)创建Excel数据表格,输入访问组态王变量的连接语句。

bb5f7c89709cfca46e35782ad1fd6d9f.png

图-2

选择“R1C2”单元格按如下格式输入DDE连接语句“=VIEW|TAGNAME!设备地址”,其中设备地址为在组态王中定义的IO变量的寄存器地址,其格式为“连接设备名.寄存器名”。在本例中访问组态王中变量“B”的DDE连接语句为“=VIEW|TAGNAME!PLC.INCREA100”。

运行组态王的运行系统(加载演示本演示工程),Excel数据表格可以实时的得到组态王变量的数据。

2.2组态王从Excel程序中获得数据

1)创建Excel数据表格,并给工作表起名为“AAA”(参见图-2)。

2)在工作表“AAA”的R1C1单元格添加“=R1C2”的语句(在R1C1单元格引用)R1C2的值。

3)在组态王中建立Excel的DDE连接。

cb9a651d827bb326154e8984ad71315f.png

图-3

在组态王工程浏览器à设备àDDEà新建DDE设备。弹出设备向导(参见图-3),要求输入DDE的连接设备名,本例为“Excel”(可按用户的实际需求命名);单击下一部(参见图-4),设置DDE的服务程序名“Excel”(Excel程序的服务名,不可更改),设置话题名“AAA”(为Excel的表格名称,可以按用户的实际需求设定),设置数据交换方式为“标准的Windows项目交换”(兼容微软应用程序DDE数据交换)。单击下一步(参见图-5),显示所配置DDE设备信息,确认无误后单击完成,即完成Excel DDE设备的配置。

38737a200d688c2b5f85e8a5f9572fc6.png

图-4

83bc959d5fac4f5cd462ee3f1f89af2d.png

图-5

在组态王中添加由Excel 作为数据源的IO变量(参见图-6)。设置连接设备为“Excel”(DDE设备名),项目名为“R1C1”(Excel表格的名称)。单击确认。在组态王的画面中建立此IO点的动态连接。

06eb46d99696efa1e7d900dc353cc28f.png

图-6

运行组态王的运行系统(加载本演示工程),参见图-7。Excel 通过DDE连接获得组态王变量“B”的数值,并通过表格的赋值操作将值传递给“R1C1”单元格,组态王IO变量“Excel2”获得此值并显示在画面上。

2567bce7d74f02dd29ad3f9752988cfc.png

图-7

3.组态王与VB间的数据交换

3.1VB应用程序从组态王中获得数据

1)创建VB应用程序。(参见图-8)创建标准EXE程序(工程名为VBDDE),窗体名为“VBDome”(DDE服务的话题名)。

198469dd15a9962619e85624de231deb.png

图-8

2)VB应用程序中建立与组态王变量的DDE连接(参见图-9),在VB窗体里加一个“Label”控件(将其命名为VB2),在其属性里设置与DDE相关的项目:

设置LinkTopic的值为“view|tagname”(组态王默认的服务名和应用名,不可更改);

设置LinkItem的值为“PLC.INCREA100”(组态王变量得寄存器地址,格式为“连接设备名.寄存器名”);

设置LinkMode的值为“1”(如组态王运行系统未运行,显示错误,参见第3步);

设置LinkTimeout的值为“50”(为默认值即可)。

470ad72fc3103545031734eed01ed82f.png图-9

3)VB应用程序启动时设置连接模式为自动(VB2.LinkMode=1)。参见图-10。单击窗体(Form),弹出代码编辑框,选择Form的Load属性。键入“VB2.LinkMode=1”。编译本工程。

3b76da0a332349b89c3eaa6b448d836f.png

图-10

4)运行组态王的运行系统(加载本演示工程),运行生成的VB运行程序。Vb应用程序即可通过DDE方式得到组态王变量“B”的实时数据,并显示其值在当前的窗口。

3.2组态王从VB应用程序中获得数据

1)利用上述创建的VB应用程序,在菜单条选择“VBDDE属性”,弹出如下窗口(参见图-11)。选择生成属性框,在应用程序的标题中键入“VBDDE”(DDE服务程序名)。

980dc85b4c9457a6192bda312c9418a0.png

图-11

2)在窗体里添加TextBox控件(命名为VB1,将作为DDE服务的项目名),参见图-12。选择代码编辑窗口,选择Form的MouseMove事件,键入如下语句“VB1.Text = Int(VB2.Caption)+1”。

8660f0a06c6bfa78b46980262089a34e.png

图-12

3)设置VBDDE程序为DDE发布端。设置窗体属性的DDE属性,参见图-13。

设置LinkMode的值为“1”(表示应用程序为DDE的发布端);

设置LinkTopic的值为“VBDome”(DDE话题名)。

设置完成并确认无误后即可编译生成应用程序文件。

b10c189f2ff492a647969092bf7011bb.png图-13

4)在组态王建立IO变量,并以前面所创建的VB用程序作为数据源。添加DDE设备的方法同前(定义的DDE设备名为VBDDE),DDE的应用程序名和话题名为前面设置的名称,即应用程序名为“VBDDE”,话题名为“VBDome”。

5)在组态王建立变量“VB2”(参见图-14),连接设备为“VBDDE”,项目名为“VB1”(即为VB程序TexTBox控件的名称)。

e955315718e00c48a42c3b613e9dd055.png图-14

6)在画面里建立与变量“VB2”的动画连接。

7)运行组态王的运行系统(加载演示本演示工程),运行前面建立的VB应用程序(组态王画面的点“VB2”的值不变化,选择菜单中的特殊à“重新建立DDE连接”即可)。参见图-15。本例VB应用程序获得组态王变量“B”的数值并将此数值返回到组态王变量“VB2”中并在画面显示此值。

76b253808d59e35594b37755b390e7b0.png

图-15

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值