使用OPC
DA进行Client的读写 *** 作时,我们使用Custom接口,出此之外还有Automation接口。以下是Custome接口开发时涉及到的三个关键对象:OpcServer、OpcGroup、OpcItem,下图是他们之间的逻辑关系:
在客户端开发时,要使用OpcServer对象来实现客户端与Opc服务器之间的连接。一个OpcServer对象下有多个OpcGroup,一个OpcGroup下有多个OpcItem,在自定义接口下的Client开发,是以Group为单位的 *** 作,数据读写都是通过OpcGroup进行的。
•搭建程序运行环境
程序运行需要的软硬件环境:
1Net Framework 40
2Simatic Net 2008(Or Other) HF1
3西门子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服务器的搭建使用西门子公司提供的SIMATIC NET 20062OPC服务器的搭建
3PC站的硬件机架的配置。双击桌面Station Configuration Editor快捷图标,打开 Station Con
4控制台的配置。从开始菜单中选择Simatic>Simatic net>Configura
5通过NET平台编程实现OPC客户端 利用Visual Studio 2005开OPC服务器的功能就是与下位机进行数据的交换,其中包含了大量的通讯程序和数据存贮程序。然后提供标准的OPC接口,供其它软件使用。程序标准化以后,其他的软件商只需开发面对服务器的程序即可,不用对不同的硬件设备开发不同的硬件驱动程序。减小了工作量,也方便了使用。开发OPC 客户端程序时,首先应该生成OPC 服务器支持的OPC 对象,然后就 可以使用OPC 对象支持的属性和方法,对其进行各种 *** 作。这样使得客户程序可 以像使用自己支持的数据和功能一样,去使用服务器对象支持的数据和功能。在 VisualBasic60 里,是以对象为单位对OPC 服务器进行访问的。通过OPC 自动化 服务器的对象模型,可以得知OPC 自动化接口由以下四种对象所定义。1 OPCServer 服务器对象OPCServer 的一个实例,OPC 服务器自动含有一个OPC 组集合 对象,并可在其基础上生成一个OPC 浏览器对象。 OPCServer 服务器对象在使用其它OPC 对象前必须生成,也就是说在引用 其他对象之前必须先创建OPCServer。OPCServer 对象提供了对数据源访问和通 信的方法,其提供了“Connect”方法来连接OPC 自动化服务器。 主要属性: StartTime(只读属性,服务器启动运行的时间) CurrentTime(只读属性,返回服务器显示的当前时间) LastUpdateTime(对于本OPC 应用程序的最后数据更新时间) MajorVersion(只读属性,OPC 服务器的主版本号) MinorVersion(只读属性,OPC 服务器的次版本号) Bandwith(只读属性,返回OPC 服务器的不敏感区的百分比) ServerState(只读属性,返回服务器的运行状态,这个属性是比较重要的,方 便客户端程序查询服务器的状态,从而达到排除故障的目的) ServerName(只读属性,返回客户程序所要连接的服务器名,也就是OPC 服 务器的ProgID) ServerNode(服务器所在计算机名或者计算机的IP,用于连接远程的计算机) 等。 主要方法: GetOPCservers(获得己经注册的OPC 服务器的程序标识符,即ProgID) Connect(用来建立与OPC 数据存取服务器的连接) Disconnect(断开与服务器的连接) CreatBrowser(创建OPC 浏览器的对象)等。 事件: 只有一个ServerShutDown(关闭服务器,这个事件在服务器即将关闭之前发 生,OPC 服务器以此通知OPC 客户程序预告即将关闭,OPC 客户程序应该在接 到此事件通知后,立即清除所有的OPC 组并断开与OPC 服务器的连接)。wincc的opc通讯地址质量代码为是什么原因 :
OPC的地址信息,质量代码主要有8种,包括:0-good,1-bad,2-uncertain,3-non-specific,4-minor,5-major,6-inactive,7-offline。 质量代码oz表示地址信息不可用,一般原因包括:网络故障,客户端发送数据错误,OPC服务器处理失败,等等。
通过OPC自定义接口来实现客户端数据的读取步骤如下。
1:使用OPC DA进行Client的读写 *** 作时,我们使用Custom接口,出此之外还有Automation接口。以下是Custome接口开发时涉及到的三个关键对象:OpcServer、OpcGroup、OpcItem。
2:在客户端开发时,要使用OpcServer对象来实现客户端与Opc服务器之间的连接。一个OpcServer对象下有多个OpcGroup,一个OpcGroup下有多个OpcItem,在自定义接口下的Client开发,是以Group为单位的 *** 作,数据读写都是通过OpcGroup进行的。
3:我们可以不写OPC Client程序来测试,如何通过OPCServer与PLC之间的交互。首先当我们安装完毕SimaticNet之后,需要对Station Configuration Editor进行配置。
4:当我们组态完毕时,如何判断组态是否正确,在SimaticNet的目录上有个叫Opc Scout(Opc Scout V10)的软件,列出来了本机所有的Server,我们能使用名为OPCSimaticNET的Server。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)