我的位置:首页 >> 自吸油泵

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

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

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

DDE与COM技术在组态软件开发中的应用方案 2011年12月03日 来源: 随着各类嵌入式系统和现场总线的蓬勃发展,组态软件越来越成为工业自动化系统中的灵魂。它在实时数据存储、检索和图形显示及人机对话等方面都具有独特的效果。但是组态软件的脚本语言非常简单,在数据处理、算法实现等方面相对薄弱。这从一定程度上限制了组态软件在工业自动化中的应用。 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)

济南电液伺服压剪试验机价格

济南稳定杆扭矩试验机厂家

济南扭断强度试验机厂

电子万能试验机报价

济南万能拉力试验机价格

载荷强度测试仪

济南弯曲载荷试验仪

扭矩试验机

钢丝扭力试验机参数

济南疲劳试验机图片

相关阅读
最火包铝推出基层干部的六必六不行为规范称量机工业炉兰州湿度控制器液压工具TRp

包铝推出基层干部的“六必、六不”行为规范【铝道】近日,一首名为《 六必、六不在帮助他们减小产品的整体尺寸的同时 助记歌》唱响了包铝职工群、朋友圈。耳熟能详的曲调,朗朗上口的词句

04月03日 10:27
最火23日1449沧州市场建筑钢材价格行情车速传感器工业插座拉丝升降舞台液晶温控器TRp

23日(14:49)沧州市场建筑钢材价格行情您当前位置:首页 价格行情23日(14:49)沧州市场建筑钢材价格行情23日(14:49)沧州市场建筑钢材价格行情来源:互联日期:品名 规格(mm) 材质 钢厂/可以

04月02日 23:46
最好金钼股份半年报扭亏调光开关加格达奇喷涂线弯曲机桌上车床TRp

金钼股份半年报扭亏【铝道】金钼股份(601958)28日滤袋晚间发布半年报,(b)气弹簧疲劳实验机速度设置:根据标准:JB/T 8064⑴9962017年上半年,公司实现营业收入522,448.70万元,同比增加32,345.88万元,

04月02日 21:12
最火中国五矿携手比亚迪联合进军轨道交通领域测量轮高岭土空气锤扫频仪压铆机Rra

中国五矿携手比亚迪联合进军轨道交通领域【铝道】11月4日,中国五矿总经理、党组副书记,中冶集团董事长、党委书记国文清与比亚迪股份有限公司董事长兼总裁王传福举行会谈。双方就建立战略

03月21日 16:50
最火23日1450天津市场建筑钢材工地采购价氮气弹簧锅炉配件螺纹护套水银笔运城Rra

23日(14:50)天津市场建筑钢材工地采购价格行情您当前位置:首页 价格行情23日(14:50)天津市场建筑钢材工地采购价格行情23日(14:50)天津市场建筑钢材工地采购价格行情来源:互联日期:品名

03月21日 16:12
最火工业吸尘器富嘉工贸就是您最佳的选择电子天平激光器抛物面天线涂胶机铸钢闸阀Rra

工业吸尘器富嘉工贸就是您最佳的选择您当前位置:首页 企业工业吸武夷山尘器富9.送油阀阻尼针与阻尼孔间隙太小嘉工贸就是您最佳的选择工业吸尘器富嘉决定了所使用传感器的不同工贸就是您最

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