下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DDE CO般术在组态软件开发中的应用摘要:介绍了 VC和Matlab通过COMf DDEfe术在组态软件开发中的 应用方法,发挥了 Matlab在数值计算中的强大功能和InTouch在人机对话界面 开发中的独特效果。关键词:Matlab InTouch COM DDE组态软件随着各类嵌入式系统和现场总线的蓬勃发展,组态软件越来越成为工业自 动化系统中的灵魂。它在实时数据存储、检索和图形显示及人机对话等方面都 具有独特的效果。但是组态软件的脚本语言非常简单,在数据处理、算法实现 等方面相对薄弱。这从一定程度上限制了组态软件在工业自动化中的应用。Matlab作为一款优秀的数值计算软件,提供了应用
2、于信号处理、工业控 制、应用数学等各个领域的工具箱,但是它对运行环境的要求非常高,而且占 用了庞大的系统资源,生成实用的人机对话界面的能力不强。为了开发出具有友好人机对话界面、实现多种控制算法并完成实时数字信 号处理的组态软件,可以使用 Matlab进行数值计算,将处理后的数据传输给组 态软件进行人机对话界面开发,以此发挥它们各自的优点。这样,开发软件之 间的数据交换和处理就成为问题的关键。本文根据Matlab和应用非常广泛的组态软件InTouch提供的编程接口和 数据通信协议,提出了一种使用 DDES COMi术进行组态软件开发的方法。1基本思路与系统构架动态数据交换(DDE)是一个由Mic
3、rosoft开发的通信协议。该协议允许在 Windows环境中的应用程序之间彼此发送/接收数据和指令。它在两个同时运 行的应用程序之间实现客户服务器关系。服务器应用程序提供数据并接收对这 些数据感兴趣的其它应用程序的请求。发请求的应用程序叫做客户。InTouch可以利用Microsoft的DD*其他Windows程序通信,并可同时作为客户或服 务器程序。Matlab提供了多种混合编程的方法,彳!是这些方法大都不能脱离Matlab的运行环境,也不方便其它应用程序调用。为了摆脱Matlab运行环境,并在其基础上进行功能模块设计,方便其它应用程序调用,MathWorks公司推荐使用COM build
4、er 在 Matlab 环境下开发 COM COM! Component Object Module 的 简称,它是一种通用的对象接口,任何语言只要按照这种接口标准就可以调用 它。这样,可以使用Matlab开发COhfflfr,在VC下开发DDE务程序,使其 与InTouch进行数据通信,而这个 DDE务程序调用Matlab开发的COM4行数值处理和算法实现。在实际工业自动化的组态软件开发中,可以使用VC进行数据的采集、命令的发送和复杂的流程控制;使用 Matlab下开发的COMI成复杂 的算法实现和数字信号处理编程;在InTouch下实现人机对话界面并接收使用 者的命令。具体的系统构架如图1
5、所示。2应用实现Windows DD或能应用白核心是 DDE#务管理库(DDEML)它负责管理 Windows操作系统下应用程序间的DDEIH舌和通信,还向用户提供了一系列的 应用程序接口 API函数。DDE现程序间的通信是通过三个标识约定的:应用程序名(Application):进行DDE寸话双方的名称;主题(Topic):被讨论的数据域;项目(Item):被讨论的特定数据对象。在DDE务程序中首先使用DdeInitialize进行初始化,然后调用DdeCreateStringHandle建立应用程序名、主题和项目等标识的句柄,再通过 DdeNameService在操作系统中注册DDE务程序
6、的名字。根据这些句柄,客户 程序就可以使用它提供的DDE务了。在VC+升的程序实现如下:#includeDWORD idInstc= 0, iData ; /iDate 是项目对应的数据HSZ hszSvr, hszTopic , hszIrem ;DdeInitialize(&idInst , (PFNCALLBACK)DdeCallback CBF_FAIL_EXECUTESCBF_SKIP_ALLNOTIFICATIONS)L);/建立应用程序名、主题和项目等标识的句柄hszSvr = DdeCreateStringHandle(idInst , “DDEApb , 0);hszTopi
7、c=DdeCreateStringHandle(idInst , “DDEAppTopiC , 0);hszItem=DdeCreateStringHandle(idInst , “DDEApphgm, 0);/在操作系统中注册该DDE务DdeNameService(idInst , hszSvr, 0L, DNS_REGISTER)DDE务程序的核心部分是一个回调函数,它处理所有DDE消息及相应数据请求。DDE务程序回调函数的代码如下:HDDEDATA CALLBACK DdeCallback (WORD usTypWORD usFmtHCONV hConv, HSZ hsz1, HSZ h
8、sz2, HDDE-DATA hData, DWORD 1Datal DWORD 1Data2)CHAR sz5if(usType = = XTYP_CONNECT 火 / 得到连接请求 return(HDDEDATA)TRUE)/校验主题、项目的句柄及数据格式if(hszl= = hszTopic & hsz2 = =hszItem & usFmt = = CF_TEXT)if(usType = = XTYP_REQUE STsType=XTYP_ ADVREQX/得至 U 数据请求_itoa(iData , sz , 10); /将数据转换为文本格式return DdeCreateData
9、Handle(idInst , (LPBYTE)sz,strlen(s2) 十 1, 0L, hszItem , CP_TEXT 0);)if(usType = = XTYP_POKE)/得到客户端发送来的数据DdeGetData(hData, (LPBYTE)sz, strlen(sz)十 1, 0L);iData =atoi(sz) ; /保存数据DdePostAdvise(idInst , hszTopic , hszItem);return(HDDEDATA)DDE_FACK)return 0 ;)在任何需要向DDEg户端发送数据时使用Dde-PostAdvise触发 XTYP_ADV
10、REQA而达到向客户程序发送数据的目的。在InTouch的标记名字典中定义I/O类型变量,以此调用DDE务程序发 送过来的数据。在声明I/O类型的访问名时只要确定DDE务程序的应用程序 名、主题名和项目名即可。组态软件中的数值计算和实时数字信号处理部分在Matlab中实现并以COM组件的方式提供。这个部分的关键是 Matlab下M文件的编写、COMA件的形成 和DDE务程序中对COM勺调用。COMA件实际是一个C十十类,但接口都是纯虚类,组件从接口派生而 来。在Matlab下通过键人comtool启动combuilder ,根据提示设置类的名字 和一些其它选项。为这个类添加方法(methods
11、)通过向工程中添加M文件实现。 这个M文件不是脚本文件而是函数文件。添加属性 (Properties)则是在M文件 中通过Global定义。至于事件(events)则需要用到语法% #event。举例说明如 下:%mymethod m文件源代码 %myevent. m文件源代码function mymethod function myeventglobal mValue ; %#event将以上两个文件添加到这个工程中则添加了 一个方法mymethod属性mValue和事件myevent。通过编译生成一个d11文件。这个dll就是COM勺发 布形式。在VC中调用此COMf调用其它COM!一样的
12、,所不同的是需要在 VC的工 程中包含 Matlab提供的文件,具体操作是在 Include files 中添加 externclude ftexternn cpp,在 Library files中添力口 extern win32 ftextern Win32Mi-crosoft 。Combuilder也提供了 COM&件的打包工具,它生成一个自解压文件,通过 它实现必要的DLL安装和COMfc册。在DDE务程序中调用COM&件进行数值计算和信号处理并向InTouch提 供DDE务,在InTouch中通过调用DDE专来的数据充实人机对话界面并接收 操作者的命令以完成系统的功能。3实际开发中细节问题的考虑Matlab下的COM&件开发是Matlab6 .
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商品房实测实量工作计划建筑实测实量工作总结
- 2024销售经理年度工作计划范文
- 经理秘书个人年终总结计划标准模板
- 2024年医院总务后勤工作计划表
- 下学期音乐教研组计划
- 2024学校精准扶贫工作计划
- 2024年医药销售主管工作计划
- 小区物业管理工作计划怎么写
- 对地区发展计划委员会行风评议发言
- 英语工作教学计划
- 公务员考试经验分享培训课件
- 病房护理组长年终述职
- 红河学院《运动营养学》2022-2023学年第一学期期末试卷
- 2024年世界职业院校技能大赛高职组“护理技能组”赛项参考试题库(含答案)
- DB22T 397-2014 保健用品功能学评价程序与检验方法
- 新概念英语第二册单词表(含音标)
- 住建局条文解读新规JGJT46-2024《施工现场临时用电安全技术标准》
- 科教融汇背景下铁道车辆技术专业群课程改与革实践
- 浙教版2023小学信息技术三年级上册《进入在线平台》说课稿及反思
- 论文写作讲座模板
- 2024安全员知识考试题(全优)
评论
0/150
提交评论