2024年4月1日发(作者:)

用VB编写DDE通讯程序实现自由串口通讯协议

首先为什么我们要做DDE通讯程序呢?是由于通讯协议千差万别,组态软件不一定有对应

的驱动程序,要实现组态软件能够支持采集和控制设备那么用DDE是一种选择,但是DDE适用

于点数较少的场合。以下我将讲解基于串口的DDE程序的编写。如果是基于TCP或UDP的可

以参考相应的通讯程序。看到这篇文章的时候我正在编写基于UDP的通讯程序。

由于DDE程序作为驱动程序应该隐藏不显示窗口是最好的方式避免由于操作人员误操作关

闭窗口而导致通讯失败。而且DDE通讯程序应该只有一个程序在运行。我做的程序是在任务栏

通知区域进行显示。以下是我的程序代码。

在运行窗口中一定要在属性中设置DDE参数 窗体DDE LINKMODE=1

LINKTOPIC=LINKTOPIC(注:这个你要访问的话题名一定要和组态软件相对应。设置好并编写

好程序后在组态软件中

服务程序名:是编译后的软件名

回话名:是窗体设置的回话名

连接变量:是窗体上的控件名,VB 支持DDE的有label控件和text控件等,在控件属性

中都有一个DDE属性项目。

运行组态软件后就可以读取相应text或者label控件中的值。

以下是代码示例:

Option Explicit

Private Type NOTIFYICONDATA

cbSize As Long

hwnd As Long

uId As Long

uFlags As Long

ucallbackMessage As Long

hIcon As Long

szTip As String * 64

End Type

Private Type POINTAPI

b_x As Long

b_y As Long