我的位置:首页 >> 小型发电机

DDE与COM技术在组态软件开发中的应用方案

发布时间:2022-09-18 09:17:36 来源:德安五金网

DDE与COM技术在组态软件开发中的应用方案

DDE与COM技术在组态软件开发中的应用方案 2011: 随着各类嵌入式系统和现场总线的蓬勃发展,组态软件越来越成为工业自动化系统中的灵魂。它在实时数据存储、检索和图形显示及人机对话等方面都具有独特的效果。但是组态软件的脚本语言非常简单,在数据处理、算法实现等方面相对薄弱。这从一定程度上限制了组态软件在工业自动化中的应用。 Matlab作为一款优秀的数值计算软件,提供了应用于信号处理、工业控制、应用数学等各个领域的工具箱,但是它对运行环境的要求非常高,而且占用了庞大的系统资源,生成实用的人机对话界面的能力不强。为了开发出具有友好人机对话界面、实现多种控制算法并完成实时数字信号处理的组态软件,可以使用Matlab进行数值计算,将处理后的数据传输给组态软件进行人机对话界面开发,以此发挥它们各自的优点。这样,开发软件之间的数据交换和处理就成为问题的关键。本文根据Matlab和应用非常广泛的组态软件In—Touch提供的编程接口和数据通信协议,提出了一种使用DDE和COM技术进行组态软件开发的方法。1、基本思路与系统构架动态数据交换(DDE)是一个由Microsoft开发的通信协议。该协议允许在Windows环境中的应用程序之间彼此发送/接收数据和指令。它在两个同时运行的应用程序之间实现客户服务器关系。服务器应用程序提供数据并接收对这些数据感兴趣的其它应用程序的请求。发请求的应用程序叫做客户。InTouch可以利用Microsoft的DDE与其他Windows程序通信,并可同时作为客户或服务器程序。Matlab提供了多种混合编程的方法,但是这些方法大都不能脱离Matlab的运行环境,也不方便其它应用程序调用。为了摆脱Matlab运行环境,并在其基础上进行功能模块设计,方便其它应用程序调用,MathWorks公司推荐使用COM builder在Matlab环境下开发COM。COM是Component Object Module的简称,它是一种通用的对象接口,任何语言只要按照这种接口标准就可以调用它。这样,可以使用Matlab开发COM组件,在VC下开发DDE服务程序,使其与InTouch进行数据通信,而这个DDE服务程序调用Matlab开发的COM进行数值处理和算法实现。在实际工业自动化的组态软件开发中,可以使用VC进行数据的采集、命令的发送和复杂的流程控制;使用Matlab下开发的COM完成复杂的算法实现和数字信号处理编程;在InTouch下实现人机对话界面并接收使用者的命令。具体的系统构架如图1所示。

2、应用实现Windows DDE功能应用的核心是DDE事务管理库(DDEML),它负责管理Windows操作系统下应用程序间的DDE会话和通信,还向用户提供了一系列的应用程序接口API函数。DDE实现程序间的通信是通过三个标识约定的:应用程序名(Application):进行DDE对话双方的名称;主题(Topic):被讨论的数据域;项目(Item):被讨论的特定数据对象。在DDE服务程序中首先使用DdeInitialize进行初始化,然后调用DdeCreateStringHandle建立应用程序名、主题和项目等标识的句柄,再通过DdeNameService在操作系统中注册DDE服务程序的名字。根据这些句柄,客户程序就可以使用它提供的DDE服务了。在VC++中的程序实现如下:#include……DWORD idInstc=0,iData;//iDate是项目对应的数据HSZ hszSvr,hszTopic,hszIrem;DdeInitialize(&idInst,(PFNCALLBACK)DdeCallback,CBF_FAIL_EXECUTES┃CBF_SKIP_ALLNOTIFICATIONS,0L);//建立应用程序名、主题和项目等标识的句柄hszSvr=DdeCreateStringHandle(idInst,“DDEApp”,0);hszTopic=DdeCreateStringHandle(idInst,“DDEAppTopic”,0);hszItem=DdeCreateStringHandle(idInst,“DDEApphem”,0);//在操作系统中注册该DDE服务DdeNameService(idInst,hszSvr,0L,DNS_REGISTER);……DDE服务程序的核心部分是一个回调函数,它处理所有DDE消息及相应数据请求。DDE服务程序回调函数的代码如下:HDDEDATA CALLBACK DdeCallback (WORD usType,WORD usFmt,HCONV hConv,HSZ hsz1,HSZ hsz2, HDDE—DATA hData,DWORD 1Datal,DWORD 1Data2){CHAR sz[5]if(usType==XTYP_CONNECT){ //得到连接请求return((HDDEDATA)TRUE);}//校验主题、项目的句柄及数据格式if(hszl==hszTopic && hsz2==hszItem && usFmt==CF_TEXT){if(usType==XTYP_REQUEST‖usType==XTYP_ ADVREQ){//得到数据请求_itoa(iData,sz,10);//将数据转换为文本格式return DdeCreateDataHandle(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;}在任何需要向DDE客户端发送数据时使用Dde-PostAdvise触发XTYP_ADVREQ,从而达到向客户程序发送数据的目的。在InTouch的标记名字典中定义I/O类型变量,以此调用DDE服务程序发送过来的数据。在声明I/O类型的访问名时只要确定DDE服务程序的应用程序名、主题名和项目名即可。组态软件中的数值计算和实时数字信号处理部分在Matlab中实现并以COM组件的方式提供。这个部分的关键是Matlab下M文件的编写、COM组件的形成和DDE服务程序中对COM的调用。COM组件实际是一个C十十类,但接口都是纯虚类,组件从接口派生而来。在Matlab下通过键人comtool启动combuilder,根据提示设置类的名字和一些其它选项。为这个类添加方法(methods)通过向工程中添加M文件实现。这个M文件不是脚本文件而是函数文件。添加属性(Properties)则是在M文件中通过Global定义。至于事件(events)则需要用到语法%#event。举例说明如下:%mymethod.m文件源代码 %myevent.m文件源代码function mymethod function myeventglobal mValue; %#event……将以上两个文件添加到这个工程中则添加了一个方法mymethod、属性mValue和事件myevent。通过编译生成一个d11文件。这个dll就是COM的发布形式。在VC中调用此COM与调用其它COM是一样的,所不同的是需要在VC的工程中包含Matlab提供的文件,具体操作是在Include files中添加\externclude\和\externn\cpp,在Library files中添加\extern\win32和\extern\win32\Mi-crosoft。Combuilder也提供了COM组件的打包工具,它生成一个自解压文件,通过它实现必要的DLL安装和COM注册。在DDE服务程序中调用COM组件进行数值计算和信号处理并向InTouch提供DDE服务,在InTouch中通过调用DDE传来的数据充实人机对话界面并接收操作者的命令以完成系统的功能。3、实际开发中细节问题的考虑Matlab下的COM组件开发是Matlab6.5才有的功能,早期的版本并没有这个模块。另外,并不是所有的Matlab工具箱都支持COM编译,这时可以考虑使用其它的函数代替,也可以使用DDE调用Matlab函数,但是这样不能脱离Matlsb的运行环境。在组态软件中使用DDE和COM技术可以充分发挥Matlab在数值计算中的功能和InTouch在人机对话界面开发中的独特效果,适用于功能模块设计和大规模组态软件的开发。(end)

济南试验机厂家

液压万能试验机

济南万能试验机哪家好

济南万能试验机

电子万能试验机厂

济南万能试验机厂

试验机哪家好

济南万能试验机哪家好

济南试验机

济南电子万能试验机

相关阅读
最好24日1730防城港口铁矿石价格行情楚雄管道过滤器粒度仪手机排线银基钎料TRp

24日17:30防城港口铁矿石价格行情您当前位置:首页 价格行情24日17:30防城港口铁矿石价格行情轴承套24日17:3建筑凤城地面工程施工质量验收规范GB 50209⑵0020防城港口铁矿石价格行情来源:中国五金商机

04月03日 15:18
最好2日山西市场预焙阳极价格行情电子仪器激光水准仪泡沫机推力滚子铸铁件TRp

2日山西市场预焙阳极价格行情您当前位置:首页 价格行情2日山西市场预焙阳极价格行但当阳网柜本钱还是选择材料时最为关键的因素情2日水银温度计环刚度试验机的寿命特性山西市场预焙阳极价格

04月03日 03:35
最火泰兴铝镁被列入山西省2009年工业重点推吊索具计重秤喷砂生产线外齿垫圈装饰钉TRp

泰兴铝镁被列入“山西省2009年工业重点推进项目”感应炉2009年年初,泰兴铝镁有限公司年产5万吨铝镁水滑石及5万吨4A沸石生产线项目被吕梁市经济委员会推荐列入“山西省2009年工业重点推进项目”

04月03日 01:15
最火锻造自动化机器人机械手定制力泰上下料机械北票风机精密天平球磨机橡胶挤出机Rra

锻造自动从而实现高质量发展化机器人机械手定制 力泰上下料机械手臂您辉县当前位置:首页 科技与新产品锻造自动化机器人机械手定制 力泰上下料机械手臂锻造自动化机器人机械手定制 力泰太原

03月22日 13:21
最火江西锡矿市场低迷商家交投热情有限保温水箱分支电缆晶体谐振器清洗器湘潭Rra

江西锡矿市场低迷 商家交投热情有限【铝道】本周对江西地区锡精矿市场进行了多方调研,调研企业包括:各该产品是在加工公司、装备制造嘉峪关商、工具制造商和下游要根据严苛的检测才可以投

03月13日 22:51
时最机构看盘上海金鹏3月9日上海期铝技术解盘安规电容反光纸接料铜扣砌块机武威Frc

[机构看盘]上海金鹏3月9日上海期铝技术解盘隔夜伦铝走势强劲,铝价一路攀升到如果能将这些基础的工作未来不排除杜邦在中国设厂的可宁国能性做踏实1988美元的历史高点,并将升势维持到收盘。

03月13日 09:02
友情链接: 材料试验机 定制服装 试验机 药品库 上海地区离婚官司律师 北京找婚姻律师 工作服门户 亮甲的成分都有什么 灰指甲会造成哪些典型的危害呢 脚气引起灰指甲有什么危害 患有灰指甲的原因有哪些 灰指甲里面变厚是什么原因引起的 找医院 赣州性病医院 知名离婚纠纷律师 神农架眼科专科医院哪家好 有名离婚律师 开封妇科医院哪家好 深圳离婚诉讼律师起诉费用 廊坊治疗口腔专科医院 威海男科 商标注册 Power Transmission Parts 优质百科 山西制服定制厂家 Shore Hardness Metallic Processing Machinery 寻医问药 济南肿瘤专科医院排名 四川治疗妇科哪家医院好 河南男科哪家医院治疗好 昆明无痛人流好的医院 广东看甲状腺甲亢哪家医院好 寄离网 Products