matlab通过dde与组态王进行连接实现方法

DDE是什么

DDEDynamic Data Exchange:动态数据交换)是WINDOWS平台上的一个完整的通信协议,它使支持动态数据交换的两个或多个应用程序能彼此交换数据和发送指令。DDE始终发生在客户应用程序和服务器应用程序之间。DDE过程可以比喻为两个人的对话,一方向另一方提出问题,然后等待回答。提问的一方称为顾客Client),回答的一方称为服务器Server)。一个应用程序可以同时是顾客服务器:当它向其他程序中请求数据时,它充当的是顾客;若有其他程序需要它提供数据,它又成了服务器

DDE对话的内容是通过三个标识名来约定的:

应用程序名(application):进行DDE对话的双方的名称。商业应用程序的名称在产品文档中给出。组态王运行系统的程序名是“VIEW”Microsoft Excel的应用程序名是“Excel”Visual Basic程序使用的是可执行文件的名称。

主题(topic):被讨论的数据域(domain)。对组态王来说,主题规定为“tagname”Excel的主题名是电子表格的名称,比如sheet1sheet2 ……Visual Basic程序的主题由窗体(Form)的LinkTopic属性值指定。

项目(item):这是被讨论的特定数据对象。在组态王的数据词典里,工程人员定义I/O变量的同时,也定义项目名称(参见第五章变量定义和管理)。Excel里的项目是单元,比如 r1c2r1c2表示第一行、第二列的单元)。对Visual Basic程序而言,项目是一个特定的文本框、标签或图片框的名称。

建立DDE之前,客户程序必须填写服务器程序的三个标识名。组态王作为DDE服务器的表示名分别为:view | tagname | 设备名.访问地址


MATLAB使用DDE与与组态王进行通讯(实现组态王PID控件仿真)

1.使用组态王新建一个项目,命名为“matlab_kingview_dde”

matlab通过dde与组态王进行连接实现方法


2.添加亚控仿真PLC,命名为仿真plc”,其他默认直接下一步;

3.打开变量表新建变量kp,ki,kd;

matlab通过dde与组态王进行连接实现方法

matlab通过dde与组态王进行连接实现方法

matlab通过dde与组态王进行连接实现方法

以及变量sp,pv,pidout

matlab通过dde与组态王进行连接实现方法

matlab通过dde与组态王进行连接实现方法

4.建立一个新画面,添加kingview pid control控件

matlab通过dde与组态王进行连接实现方法

matlab通过dde与组态王进行连接实现方法

5.双击PID控件,绑定变量。

matlab通过dde与组态王进行连接实现方法

6.保存文件,切换至运行状态。

7.以管理员身份运行Matlab,必须以管理员权限运行!

matlab通过dde与组态王进行连接实现方法

8.打开simulink,使用一个一节惯性环节和两个s-function文件,如下:

matlab通过dde与组态王进行连接实现方法

DDE_Input.m

matlab通过dde与组态王进行连接实现方法

DDE_Output.m

matlab通过dde与组态王进行连接实现方法

另建一个m文件,命名为:Iint_DDE.m

matlab通过dde与组态王进行连接实现方法

9.首先运行Iint_DDE.mmatlab空间输出如下:

matlab通过dde与组态王进行连接实现方法

10.将SIMULINK步数设置为Inf,

matlab通过dde与组态王进行连接实现方法

然后启动simulink,可以尝试调一下pid参数了。

matlab通过dde与组态王进行连接实现方法

winxp,7下pid空间可能需要注册服务。