随着工业自动化的不断深入,企业构建综合自动化系统成为工业发展的关键。在此过程中,流程工业的自动化系统多数采用三层体系结构,即ERP/MES/PCS(企业资源计划/制造执行系统/过程控制系统)的架构模式。在PCS层,常常面临的一个难题是客户应用程序(如监控组态软件)与现场设备以及其他应用程序间的通信问题。这些问题主要由于通信不规范,导致软硬件之间难以有效连接。 为了解决接口规范问题,OPC(OLE for Process Control)标准应运而生,提供了一种统一的通信方案。OPC基于微软的COM(组件对象模型)技术,其发布极大地简化了不同系统组件间的通信复杂度。基于OPC标准,可以开发出客户程序(OPC Client),该程序能够与服务器(OPC Server)进行通信,并从服务器中获取实时数据。 然而,组态软件InTouch仅提供DDE(动态数据交换)和SuiteLink两种协议,为了实现InTouch与OPC Client之间的通信,需要一个协议转换的过程。Wonderware公司提供的FactorySuite Gateway(FSGateway)是一个重要的工具,它作为一种通信协议转换软件,能够实现OPC、SuiteLink、DDE、FastDDE以及ArchestrA Message Exchange等协议之间的数据通信。在InTouch环境中,FSGateway作为SMC(系统管理控制台)中的一个控件存在,而对OPC Client而言,它展现为一个OPC Server。这样一来,FSGateway就作为两者之间的桥梁,实现了InTouch与OPC Client之间的通信连接。 文章中还详细描述了OPC Client的设计与实现,该设计遵循OPC DA(Data Access)规范,使用Visual C++和COM技术开发。实现OPC Client的关键在于采用自动化定制接口,包括建立与服务器的连接、初始化变量组、读取项数据等。在Visual C++的开发环境下,OPC应用程序的基本结构以及关键代码被详细解释。 具体实现上,首先需要初始化COM库。由于OPC建立在COM技术之上,因此在使用COM库中的任何函数之前,都必须先进行初始化。代码示例中展示了如何通过CoInitializeEx函数实现COM库的初始化。初始化后,接下来的步骤是连接到OPC Server,并创建Server对象以获取IDispatch接口,这是通过调用CLSIDFromProgID函数以及将程序ID转换为相应的CLSID(类标识符)来完成的。代码中还涉及到了多字节字符与宽字符之间的转换,这是为了满足COM接口对字符串编码的需求。 文章中未提供的代码细节可能涉及到变量定义、错误处理等部分,但关键代码段的省略并不影响对整体设计和实现逻辑的理解。通过这些步骤,可以实现远程InTouch数据采集的核心功能。 总结来说,本文提出的基于OPC的远程InTouch数据采集方法,通过遵循OPC DA规范,使用COM技术开发出的OPC Client程序,配合Wonderware提供的FSGateway,成功实现了不同协议间的数据通信和远程数据采集,为流程工业的自动化系统提供了一种高效、规范的解决方案。





























- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源


