DDE是什么
DDE(Dynamic Data Exchange:动态数据交换)是WINDOWS平台上的一个完整的通信协议,它使支持动态数据交换的两个或多个应用程序能彼此交换数据和发送指令。DDE始终发生在客户应用程序和服务器应用程序之间。DDE过程可以比喻为两个人的对话,一方向另一方提出问题,然后等待回答。提问的一方称为“顾客”(Client),回答的一方称为“服务器”(Server)。一个应用程序可以同时是“顾客”和“服务器”:当它向其他程序中请求数据时,它充当的是“顾客”;若有其他程序需要它提供数据,它又成了“服务器”。
DDE对话的内容是通过三个标识名来约定的:
应用程序名(application):进行DDE对话的双方的名称。商业应用程序的名称在产品文档中给出。“组态王”运行系统的程序名是“VIEW”;Microsoft Excel的应用程序名是“Excel”;Visual Basic程序使用的是可执行文件的名称。
主题(topic):被讨论的数据域(domain)。对“组态王”来说,主题规定为“tagname”;Excel的主题名是电子表格的名称,比如sheet1、sheet2 ……;Visual Basic程序的主题由窗体(Form)的LinkTopic属性值指定。
项目(item):这是被讨论的特定数据对象。在“组态王”的数据词典里,工程人员定义I/O变量的同时,也定义项目名称(参见第五章变量定义和管理)。Excel里的项目是单元,比如 r1c2(r1c2表示第一行、第二列的单元)。对Visual Basic程序而言,项目是一个特定的文本框、标签或图片框的名称。
建立DDE之前,客户程序必须填写服务器程序的三个标识名。组态王作为DDE服务器的表示名分别为:view | tagname | 设备名.访问地址
MATLAB使用DDE与与组态王进行通讯(实现组态王PID控件仿真)
1.使用组态王新建一个项目,命名为“matlab_kingview_dde”:
2.添加亚控仿真PLC,命名为“仿真plc”,其他默认直接下一步;
3.打开变量表新建变量kp,ki,kd;
以及变量sp,pv,pidout
4.建立一个新画面,添加kingview pid control控件
5.双击PID控件,绑定变量。
6.保存文件,切换至运行状态。
7.以管理员身份运行Matlab,必须以管理员权限运行!
8.打开simulink,使用一个一节惯性环节和两个s-function文件,如下:
DDE_Input.m
DDE_Output.m
另建一个m文件,命名为:Iint_DDE.m
9.首先运行Iint_DDE.m。matlab空间输出如下:
10.将SIMULINK步数设置为Inf,
然后启动simulink,可以尝试调一下pid参数了。
winxp,7下pid空间可能需要注册服务。
请发表评论