《2022年2022年关于组态王同VB间的DDE连接》由会员分享,可在线阅读,更多相关《2022年2022年关于组态王同VB间的DDE连接(4页珍藏版)》请在金锄头文库上搜索。
1、关于组态王同VB 间的 DDE 连接以下通过一个用VB 编写的简单的记时器程序来说明组态王同VB 间的 DDE 连接。一 V B作为服务器向组态王提供数据VB 程序1 运行 Visual Basic,新建工程文件vbddesvr.vbp 。将窗体 Form1 的 LinkMode 属性设置为 1, LinkTopic 属性设置为FormTopic (任意名称均可) 。2 在窗体 Form1 中,放入两个文本框,其文本框Name属性分别命名为TxtRegister(用于向组态王提供计数器)和TxtInterval(用于设置计数器频率)。3 在窗体 Form1 中,放入一个Timer 控件 Tim
2、er1 。4 输入如下代码: Private Sub Form_Load() TxtRegister.Text = 0 Timer1.Interval = 200 TxtInterval.Text = 200 初期设定End Sub Private Sub Timer1_Timer() TxtRegister.Text = CStr(CInt(TxtRegister.Text) + 1) If CInt(TxtRegister.Text) = 1000 Then TxtRegister.Text = 0 End If 计数器记到1000 时,重新从0 开始End Sub Private Sub
3、 TxtInterval_Change() Timer1.Enabled = False TxtRegister.Text = 0 Timer1.Interval = CInt(TxtInterval.Text) 设定计数频率 Timer1.Enabled = True End Sub 5 生成 vbddesvr.exe文件组态王设定 1在“组态王”中定义DDE设备在工程浏览器中,从左边的工程目录显示区中选择“设备DDE” ,然后在右边的内容显示区中双击“新建”图标,则弹出“设备配置向导”,按向导逐步配置DDE设备的各项。配置结果如下:定义I/O 变量时要使用定义的连接对象名“VBDDESVR
4、” (也就是连接设备名), 在数据交换方式一项,选择“标准 WINDOWS DDE 交换” 。 (关于高速块交换方式的VB编程较为复杂,需要组态王的服务程序开发包)。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 2在工程浏览器中定义新变量, 设为 vb_register,连接设备为VBDDESVR,项目名为服务器程序中提供数据的控件名,此处是文本框Txtregister, “变量属性”对话框如下:同样定义新变量vb-inter
5、val, 项目名设为Txtinterval。3在开发画面上放入一个文本对象“#” ,以“模拟值输出”和“模拟值输入”的方式同变量vb_register进行动画连接。同样方法放入另一个文本对象“#” ,动名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 画连接 vb-interval。先运行 vbddesvr.exe,再运行组太王后, 适当调节两个画面的大小和位置,显示如下:组太王的计数器的数值随着右面VB 程序的计数器的数值不断变
6、化而变化。同样, 在左面的计数器和记数频率中写入适当数值,可以对右面VB 程序的计数器初值和频率进行设定。二 组态王作为服务器向VB 提供数据(1)提供从DDE 设备采集来的数据当在组态王中安装一个DDE 设备时,这个DDE 设备是作为服务器向组态王提供数据的,而当其他客户程序需要同样数据时,即可向这个DDE 设备源程序索取,亦可向组态王索取。 当向组态王索取时, 组态王成为服务器。 仍然以上面的例子来说明这一过程。新建工程文件vbddeclnt.vbp , 在窗体 Form1 中,放入两个文本框,其Name属性分别命名为 TxtRgFrmV (用于向组态王索取计数器数据)和 TxtIntlF
7、rmV (索取计数器频率) 。输入如下代码:Private Sub Form_Load() TxtRgFrmV.LinkTopic = view|tagname 设定连接程序名和题目名TxtRgFrmV.LinkItem = TxtRegister 设定连接项目名TxtRgFrmV.LinkMode = 1 设定连接方式(1:自动)TxtIntlFrmV.LinkTopic = view|tagname TxtIntlFrmV.LinkItem = TxtInterval TxtIntlFrmV.LinkMode = 1 End Sub 生成vbddeclnt.exe 后,先运行vbddesv
8、r.exe,再运行组态王运行画面,最后运行vbddeclnt.exe,适当调节三个画面的大小和位置,显示如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 组态王的数据转送给了vbddeclnt。 虽然在 vbddesvr.vbp 的代码中,文本框的LinkMode属性设为自动,但如果想从客户程序vbddeclnt 来更改服务器组态王的数据源,仍需另外执行linkpoke 方法(关于linkpoke 方法请参照VB 手册)。( 2) “允许 DDE 连接”选项当组态王连接的是DDE 设备以外的其他设备(如:板卡,串口等)时,在变量定义时选择“允许DDE 连接”选项,可以使组态王作为服务器通过DDE 连接向其他客户程序提供数据。向VB 提供数据时,除linkItem 设定由 DDE 设备情况下的“项目名”改为“连接设备名.寄存器名”以外,VB 的编程同DDE 设备的情况下一样。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -