如何通过OPC自定义接口来实现客户端数据的读取

如何通过OPC自定义接口来实现客户端数据的读取,第1张

今天我把我在项目中封装的OPC自定义接口的程序分享一下。下面将会简单简单介绍下OPC DA客户端数据访问,以及搭配整个系统的运行环境。
OPC(OLE for Process Control)其实就是一套标准,我对这套标准理解不多,使用过程中就把它理解一套协议或者规范,主要用于工控领域。OPC中有很多规范,我主要使用OPC DA规范来进行数据的读写 *** 作。还有其他规范,比如OPC UA、OPC HDA等。如果你做的是OPC Server开发查下这方面的资料了解下,这篇博文主要介绍OPC Client开发的知识。
使用OPC DA进行Client的读写 *** 作时,我们使用Custom接口,出此之外还有Automation接口。以下是Custome接口开发时涉及到的三个关键对象:OpcServer、OpcGroup、OpcItem,下图是他们之间的逻辑关系:
在客户端开发时,要使用OpcServer对象来实现客户端与Opc服务器之间的连接。一个OpcServer对象下有多个OpcGroup,一个OpcGroup下有多个OpcItem,在自定义接口下的Client开发,是以Group为单位的 *** 作,数据读写都是通过OpcGroup进行的。
搭建程序运行环境
程序运行需要的软硬件环境:
Net Framework 40
Simatic Net 2008(Or Other) HF1
西门子300(Or Other) PLC
我们可以通过本机的配置来实现OPC的远程连接,我没有采用这种方式,一是这种配置比较麻烦,而是这种方式不稳定。所以我采用本机安装一个OPCServer来实现与PLC的交互。
对于OPCServer软件,我选择的是SimaticNet 2008 HF1(安装WinCC的时候会有选择安装SimaticNet的选项),没有特别的原因,就是比较熟悉了而已,而且PLC选用的是西门子的。
我们可以不写OPC Client程序来测试,如何通过OPCServer与PLC之间的交互。首先当我们安装完毕SimaticNet之后,需要对Station Configuration Editor进行配置,如下图:
首先我们要指定Station的名称,上图叫PCStation,点击下方的StationName可以进行更改。下一步在1号栈上选择一个OPCServer,3号栈上选择一个通信网卡。
接下来我们需要在Step 7中建立Station Configuration Editor与PLC之间的连接,我们暂且叫组态。组态的过程中要建立与Station Configuration Editor中对应的Opc Server和IE General(所在栈号相同),Station Configuration Edition起到桥接的作用 用,主要让PLC与Opc Server之间建立一条S7连接。暂时没有拿到组态图,以后补上。
当我们组态完毕时,如何判断组态是否正确呢?在SimaticNet的目录上有个叫Opc Scout(Opc Scout V10)的软件,打开如下图:
上图列出来了本机所有的Server,我们能使用名为OPCSimaticNET的Server。双击这个Server添加一个组,多次双击这个Server可以添加多个组,验证了上图的Server与Group的关系了。
我们双击新建的Group,进入如下图的界面:
上图列出了所有的连接。上文说到的组态中建立的S7连接可以在S7节点中看到,展开这个节点可以看到我们建立的S7连接,如下图:
上图列出了名为S7 connection_1的S7连接,展开Object对象,列出PLC的结构。我们选择一种来新建我们的Item,由于我这里没有PLC模块,所以无法截图给大家看。
至此我们的OPC Client的运行环境搭建完毕。
编写OPC Client端程序。
我们需要使用OPC Foundation提供的自定义接口来进行开发,在Visual Studio引用名为:OpcRcwComndll和OpcRcwDadll这两个DLL。
我们定义一个名为OpcDaCustomAsync的类,让这个类继承自:IOPCDataCallback,IDisposable
转载,仅供参考,祝你愉快,。

1创建opc服务端,并启动opc服务端。i
2打开组态王开发,创建与opc服务器的连接。如何创建连接请参考手册。创建与opc服务端的连接的时候组态王会自动列出可用的opc。
3创建组态王变量以读取opc的数据。这一步很关键。变量名自己取,变量类型选择io字符串或io整数,这个看你opc发过来的是什么数据类型,按实际选择。连接设备选择你的创建的opc服务器连接。寄存器会自动列出,按照实际选择。数据类型按实际选择。
4组态王创建了与opc连接的变量后,组态王就可以对变量进行 *** 作了,你就可以把变量通过组态王命令语言写进数据库了。
5数据库 *** 作得先创建记录体。
6说太多如果没有基础也很难搞懂,组态王有很详细的帮助,多看手册会大有帮助。

1、下载matlab70以上版本,最好别用70,matlab70虽然有opc工具箱,但没有opc仿真模块,我用的是matlab2010。
2、下载组态王653,我是在亚控科技官网下载的组态王653。
3、为保证OPC Toolbox 中对象和OPC 服务器对象连接起来,下载并安装客户端开发工具包OPC CoreComponents 200 Redistributable 220msi控件。打开matlab安装路径D:\ProgramFiles\MATLAB\R2010b\toolbox\opc\opc\private,
找到该文件双击安装。(有些版本这个控件已经损坏了,考一下别人的也可以安装)
4、打开matlab,在command window 输入命令opcregister('install'),注册OPC 服务器和客户端用到的来安装能在网络上浏览其他计算机并能与之通讯的核心组件,分别是:
OPC 通讯接口组件OPCcomn_psdll
OPC 自动化接口组件OPCdaAutodll
OPC 代理占位组件OPCProxydll
还有opc_aepsdll。
5、在OPC 服务器和OPC 客户端进行分布式COM的环境设置,这个步骤有些麻烦,有个名为“dcom配置”的文件步骤很详细,上面有好几个系统的dcom配置,看准了我们需要的XP系统的。
这一步目的同样是为使OPC Too lbox 中的对象和OPC 服务器对象之间建立连接

opc技术是指为了给工业控制系统应用程序之间的通信建立一个接口标准,在工业控制设备与控制软件之间建立统一的数据存取规范。

web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13512504.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-22
下一篇 2023-08-22

发表评论

登录后才能评论

评论列表(0条)

保存