搜档网
当前位置:搜档网 › 完整版WinCC如何建立OPC客户端连接

完整版WinCC如何建立OPC客户端连接

完整版WinCC如何建立OPC客户端连接
完整版WinCC如何建立OPC客户端连接

WinCC如何建立OPC客户端连接

S7-400H和WinCC之间基于Simatic Net OPC 的通讯

S7-400H和WinCC之间基于Simatic Net OPC 的通讯 1.示例系统的体系结构图0 本示例为H系统与双CP1613的OS 站通过双以太网网段进行通讯的例子。 H系统与双CP1613的OS站通过单以太网网段或H系统与单CP1613的OS站进行互连互通可参考此例。图0为示例系统的配置图。图 ... 1.示例系统的体系结构 图 0 本示例为H系统与双CP1613的OS 站通过双以太网网段进行通讯的例子。H系统与双CP1613的OS站通过单以太网网段或H系统与单CP1613的OS站进行互连互通可参考此例。 H-CPU Order Number CPU 417-4H6ES7 417-4HL00-0AB0 CP 443-16ES7 443-1EX11-0XE0 2. 软件版本描述 软件版本 · SIMATIC NET V6.0+ServicePack4.0 · WinCC V5.1 · STEP7 V5.1+ServicePack6 · S7 H Systems V5.2+ServicePack2 3. 组态 3.1 运行SIMATIC MANAGER 并创建一个新的项目, 示例中为417H-NET6-FIRST。插入一个新的H站。示例中将其命名为SIMATIC 417-4H,如图1所示。

图 1 3.2 通过双击硬件或使用右键弹出菜单, 打开SIMATIC 417-4H的硬件组态(HWConfig)。本例中的硬件组态仅供参考,用户以实际硬件组态情况为准。对于冗余系统,应使用UR2-H机架,如图2所示。

图 2 3.3 组态以太子网;分配MAC地址,通常为获得更高的稳定性,建议取消TCP/IP 协议。 图3

OPC客户端编程汇编

OPC编程汇编 OPC客户端的自动化实现 OPC是建立在COM,DCOM的基础商的,因此绝大多数语言都可以很好的进行开发。在Net中开发客户端有以下几种方式: (1)使用OPCNetAPI,需要用到OPCNetAPI.dll,https://www.sodocs.net/doc/f09177565.html,.dll (2)使用自动化接口,需要用到OPCDAAuto.dll (3)使用自定义接口,需要用到多个Wrapper:OpcRcw.Ae.dll,OpcRcw.Batch.dll,https://www.sodocs.net/doc/f09177565.html,n.dll,OpcRcw.Da.dll,OpcRcw.Dx.dll,OpcRcw.Hda.dll,OpcRcw.Sec.dll 以上开发方式所需的动态链接库可以从OPC基金会(https://www.sodocs.net/doc/f09177565.html,/)的网站上下载,一些下载项目可能需要注册,或成为基金会的成员。 不同的方式有各自的有缺点,请参见… 本文使用自动化接口,https://www.sodocs.net/doc/f09177565.html,语言进行开发,开发项目是无线射频(RFID)卡方面的应用,典型的如公交车,或公司考勤使用的刷卡机。需要注意的是自动化接口存在一个“不是问题”的问题,数组下标是以1开始的,而不是传统计算机开发上的以0开始。不知道设计者头脑是怎么想(有人知道吗?);这可能会给一些语言的开发造成问题(有人碰到吗,没有你就是幸运的) 需求:OPCDAAuto.dll或该Dll的Interop (一):客户端开发流程 OPC客户端的开发主要遵循下图所示的开发流程,下面就从以下几个开发步骤进行说明 (二):枚举OPC服务器列表 枚举服务器主要是通过OPCServer接口的GetOPCServers方法来实现的,该方法会返回OPC服务器数组(以1为下界,上面已有说明),以下是代码段 '枚举OPC服务器列表

WINCC OPC服务器配置

两台WinCC之间OPC通讯方法(WinXP) OPC客户端 1、登陆计算机名及密码要与服务器端(OPCServer)一致。 a) 如:用户名:administrator 密码:1234 2、OPC客户端要与服务器端处于同一个网络。 a) 如:OPCServer IP:192.168.0.100 b) 如:OPClient IP:192.168.0.101 3、关闭Windows防火墙或者在弹出Window安全警报Loader for WinCC datamage中选择解除阻止。 或 4、运行DCOMCNFG.EXE a) 在弹出的组件服务右击我的电脑->选择属性->选择COM安全 b)

c) 在访问权限中选择编辑限制

d) ANONMOUS LOGON组中选中远程访问。 5、剩下的就是在WinCC创建客户端项目。效果如图: 6、

OPC服务器端 1、登陆计算机名及密码要与服务器端(OPCClient)一致。 a) 如:用户名:administrator 密码:1234 2、OPC客户端要与服务器端处于同一个网络。 b) 如:OPCServer IP:192.168.0.100 c) 如:OPClient IP:192.168.0.101 3、关闭Windows防火墙或者在弹出Window安全警报Loader for WinCC datamage中选择解除阻止。 或 4、运行DCOMCNFG.EXE d) 在弹出的组件服务右击我的电脑->选择属性->选择COM安全 e)

f) 在访问权限中选择编辑限制

g) ANONMOUS LOGON组中选中远程访问。 5、打开DCOM配置。如图: a) b)选择OPCEnum和OPCServer.WinCC项。c)

c#opc客户端开发

using System; using System.Collections.Generic; using https://www.sodocs.net/doc/f09177565.html,ponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OPCAutomation; using https://www.sodocs.net/doc/f09177565.html,; namespace Opc_Client { public partial class Form1 : Form { public Form1() { InitializeComponent(); } #region私?有?D变à?量¢? OPCServer SyServer; OPCGroups SyGroups; OPCGroup SyGroup; OPCItems SyItems; OPCItem SyItem; string strHostIP = string.Empty;

string strHostName = string.Empty; bool opc_connected = false; //连¢?接¨?状á??态?? int itmHandleClient = 0; //客¨a户?ì端?句?柄à¨2 int itmHandleServer = 0; //服¤t务?端?句?柄à¨2 #endregion #region方¤?法¤?§ private void GetLocalServer() { IPHostEntry IPHost = Dns.GetHostEntry(Dns.GetHostName()); if (IPHost.AddressList.Length > 0) { strHostIP = IPHost.AddressList[4].ToString(); this.tboxServerIP.Text = strHostIP.ToString(); } else { return; } IPHostEntry ipHostEntry = Dns.GetHostByAddress(strHostIP); strHostName = ipHostEntry.HostName.ToString(); try { SyServer = new OPCServer(); object serverList = SyServer.GetOPCServers(strHostName); foreach (string turn in (Array)serverList) { this.cmbServerName.Items.Add(turn); cmbServerName.SelectedIndex = 0; btnConnServer.Enabled = true; } } catch (Exception err) { MessageBox.Show("枚?举¨′本à?地ì?OPC服¤t务?器??出?错?¨a:êo"+err.Message,"提?¨¢示o?信?息?é",MessageBoxButtons.OK,MessageBoxIcon.Warning); } }

如何通过OPC UA实现两台WinCC SCADA电脑间的客户端服务器通讯

如何通过OPC UA实现两台WinCC SCADA 电脑间的客户端/服务器通讯? OPC UA(“开放平台通讯--统一架构”)是用于交换两台不同品牌设备或应用间数据的标准软件平台。本常见问题详细描述了如何在两台运行WinCC SCADA的PC间配置OPC UA通讯以实现客户端服务器的应用。 运行WinCC组态软件的PC可以通过OPC UA服务器和OPC UA客户端实现通讯。在通讯时,服务器和客户端需要交换安全认证证书,详细配置步骤如下: 步骤 1.在服务器的PC上启动WinCC Runtime。 2.在客户端的PC上打开WinCC工程的“变量管理”。 3.在工程向导中右键单击“变量管理”选项,在弹出菜单中选择“添加新的驱动”选择 “OPC”。 图. 01

OPC通道创建完成。 4.在工程向导中右键选择“OPC Groups...” 然后再弹出菜单中选择并打开“系统参 数”。 图. 02 打开“OPC条目管理器”界面。 5.点击“OPC UA服务器”按钮。

图. 03 打开“添加OPC UA服务器”界面。 6.在“服务器信息”对话框中输入服务器的URL地址,格式为:"opc.tcp://[服务 器]:[端口号]"。其中,“[服务器]”中输入作为服务器的PC的IP地址;“[端口号]”中输入OPC UA服务器使用的端口号,默认端口是“4862”。(如下图中所示) 图. 04 7.在“安全性”对话框中,“安全策略”选择“Basic128Rsa15”,“消息安全模式”选择 “签名和加密”。(如上图所示,需要注意的是,设置为“无安全”也可以达到通讯的效果,但从安全角度考虑不推荐使用) 点击“确定”关闭对话框。 8.在“OPC条目管理器”中选择新创建的OPC UA服务器选项。点击“浏览服务器”按 钮。

Delphi7.0开发OPC客户端程序(Siemens_Opc_client)

OPC是OLE for Process Control的缩写,即把OLE应用于工业控制领域,OPC是建立在O LE规范之上,它为工业控制领域提供了一种标准的数据访问机制。OPC服务器由三类对象组成:服务器(Server)、组(Group)、数据项(Item)。服务器对象(Server)拥有服务器的所有信息,同时也是组对象(Group)的容器。组对象(Group)拥有本组的所有信息,同时包容并逻辑组织OPC数据项(Item)。在这里数据项(Item)就是指所有的PLC信号的输入与输出。OPC组对象(Group)提供了客户组织数据的一种方法。客户可对之进行读写,还可以设置客户端的数据更新速率。当服务器缓冲区内的数据发生改变时,OPC将向客户发出通知,客户得到通知后再进行必要的处理。而无须浪费大量的时间进行查询。OPC规范定义了两种组对象:公共组和局部组(私有组)。公共组由多个客户共有,局部组只隶属于一个OPC客户。一般来说,客户和服务器的一对连接只需要定义一个组对象。在每个组对象中,客户可以加入多个OPC数据项(Item)。OPC数据项(Item)是服务器端定义的对象,通常指向设备的一个寄存器单元。OPC客户对设备寄存器的操作都是通过其数据项来完成的,通过OPC数据项(Ite m),OPC规范尽可能地隐藏了设备的特殊信息,也使OPC服务器的通用性大大增强。OPC 数据项(Item)并不提供对外接口,客户不能直接对之进行操作,所有的操作都是通过组对象进行的。每个OPC数据项(Item)的数据结构包括三个成员变量:即数据值、数据质量和时间 戳。数据值是以Variant形式表示的。 Delphi7.0加载Siemens动态库: 1.打开Delphi7.0,点击Project->Import Type Library 2.在Import Type Library里面找到Siemens OPC DAAutomation 2.0 (Version 1.0),在Clas s Nams里面可以看三个类方法(TOPCGroups,TOPCGroup,TOPCServer),默认的Palette Pag e为ActiveX,单击Install… Delphi7.0中编写客户端程序: 1.连接OPC服务器 在Form上面添加三个OPC控件: OPCGroup1: TOPCGroup; OPCGroups1: TOPCGroups; OPCServer1: TOPCServer;

WINCC的OPC 通讯配置设置

OPC 通讯配置设置,非常好,申请加精 需要注意的是如果你的系统是XP(server端和客户端上一样的) 需要将我的电脑的桌面属性设置成默认属性,负责找不到下文中的“DCOM的总体默认属性页面",DCOM配置时我的电脑上会有个红色小箭头 1 客户端安装OPC Data Access 2.0 Components 2 客户端的用户名和密码一致 3客户端的DCOM配置 a."开始"--"运行",输入"dcomcnfg",然后回车,启动dcom配置 b.常规页面中,双击你的应用服务器,打开你的应用服务器DCOM属性设置。 c.将常规页面中的身份验证级别改为"无"。 d.身份标识页面中,选择"交互式用户"。 e.位置页面中,选择"在这台计算机上运行应用程序",进入DCOM的总体默认属性页面,将" 在这台计算机上启用分布式COM"打上勾,将默认身份级别改为"无"); 4 服务器安装OPC Data Access 2.0 Components 5 服务器的DCOM配置 a.在运行OPC服务器上的计算机中运行dcomcnfg程序,进行DCOM配置。 b.进入DCOM的总体默认属性页面,将"在这台计算机上启用分布式COM"打上勾,将默认身 份级别改为"无"。 c.进入DCOM的总体默认安全机制页面,确认默认访问权限和默认启动权限中的默认值无 EveryOne,如果不去掉EveryOne,应用服务器不能正常启动。 d.在常规页面中,双击你的OPC应用服务器,打开你的OPC应用服务器DCOM属性设置。 e.将常规页面中的身份验证级别改为"无"。 f.位置页面中选上"在这台计算机上运行应用程序"。 g.将安全性页面设置中,均选择"使用自定义访问权限",编辑每一个权限,将EveryOne加 入用户列表中。 h.身份标识页面中,选择"交互式用户"。) I.nt的GUEST用户不能禁用

6VB6.0开发WinCC的OPC客户机实例

VB6.0开发WinCC的OPC客户机实例 [ 来源:机电论文| 类别:技术| 时间:2009-4-8 9:42:34 ] [字体:大中小] 关键词:OPC VB6.0 WinCC上位机 WinCC是西门子公司在自动化领域采用最先进的技术与微软公司在共同开发的居于世界领先地位的工控软件。WinCC即WINDOWS CONTROL CENTER (视窗控制中心)。WinCC是一个功能强大的全面开放的监控系统,既可以用来完成小规模的简单的过程监控应用,也可以用来完成复杂的应用。在任何情况下WinCC都可以生成漂亮而便捷的人机对话接口,使操作员能够清晰地管理和优化生产过程。它集成的OPC(OLE for process control)服务器使得过程数据可由其它应用程序(OPC客户机)访问。 WinCC在安装时提供了OPC的客户端控件: Siemens OPC DAAutomation 2.0( SOPCDAAuto.dll), 在WINCC的帮助中,有Siemens OPC DAAutomation 2.0使用的简略帮助,但说得不很详细,我在使用VB6.0开发WinCC的OPC客户机中碰到不少问题,现一并写出来,与大家共享。希望起到抛砖引玉,举一反三的作用。 一、开发实例背景:我厂包装机BE电气改造后,由原来了单片机、直流调试板、温度控制板等控制改为带有通讯端口PLC、变频器、温控仪等控制,上位机监控软件为WinCC。在控制系统中,变频器、温控仪的控制信号通过串口、OPC客户机接入上位机WinCC,报警信号接入PLC。其硬件组态结构如图一

OPC开发要求:①通过WinCC建立内部变量Tag(1),Tag(2),Tag(3),Tag(4)……;在视图窗口建立相应了I/O输入输出域。通过更改WinCC中I/O域的值,来设定或更改变频器、温控仪等的参数。②通过VB开发了串口驱动程序,读取变频器、温控仪等的参数,通过OPC控件把值传递给WinCC中的I/O域。 二、VB6开发WinCC的OPC客户机具体步骤: 1、打开VB6,建立如图二窗体: 其中,文本框组Text4.text为写入WinCC内部变量名称;文本框组Text5.text 为显示相应了WinCC内部变量值;文本框组Text8.text为写入期望了WinCC内部变量值。单选框为OPC连接成功标志。3个命令按钮分别为“连接”,“断开”,“退出”。 2、OPC的连接 先在工具栏中“工程\引用”将近Siemens OPC DAAutomation 2.0加入,然后开始定义全局变量。在本程序中,我使用了一个OPC组进行OPC访问,所以定义了全局变量。我们要首先定义OPC服务类型与计算机结点名。定义OPC组与OPC标签组。并定义OPC的标签数组与值数,注意,值数组一定要设为Variant。 Option Explicit Option Base 1 ‘这数组必须由1开始,不能由0开始 Const ServerName = "OPCServer.WinCC" OPC的类型 Dim NodeName As String 结点名,即计算机名 Dim WithEvents MyOPCServer As OPCServer OPC服务 Dim WithEvents MyOPCGroup As OPCGroup OPC组 Dim MyOPCGroupColl As OPCGroups Dim MyOPCItemColl As OPCItems OPC标签组 Dim MyOPCItems As OPCItems Dim MyOPCItem As OPCItem

(C#)OPC客户端源码

【转】(C#)OPC客户端源码 转载申明 申明:本文为转载,如需转载本文,请获取原文作者大尾巴狼啊的同意,谢谢合作! 转自:大尾巴狼啊 原文出处:https://www.sodocs.net/doc/f09177565.html,/xiaosacao/archive/2009/01/13/1374895.html 前几天我就发布过这篇文章,可惜的是,发布后代码有的却看不到,后来我就删了,至今不明白什么原因- -! 关于C++、VB来开发OPC客户端的资料网上有很多,但C#的至今没发现有多少。 由于近期项目的需要,就开发了OPC客户端的一个模块。在我想来,程序员挺累的,原因我很累。所以我想大家也很累~~~嘿嘿。特别是刚接手OPC客户端开发的前几天,天天盯住显示器,百度、GOOGLE不停的搜索。每天早上醒来,眼睛都瑟瑟的。 从事3年以上软件开发的朋友们,估计都会腰酸背痛吧!反正我是这样的。 不说那么多废话了,贴上源码,让需要的同行看看吧,代码的质量并不高,就当做抛砖引玉吧! 1、枚举本地服务器 2、获取服务器信息 3、列出了服务器上Tag 4、可以设置组的属性 5、读\写功能 6、可进行远程连接(DCOM需配置) 先看图:

引用类库: OPC服务器: 开发工具: 当前环境:

源码: ///程式使用C#.NET 2005 编写 ///引用类库OPCDAAuto.dll ///OPCServer采用KEPWare ///在windows xp sp2、sp3、windows 2003上测试通过///完成于:2008年12月31日 ///测试于:2009年01月05日 ///

///作者:潇洒草 ///Email:zhkai868@https://www.sodocs.net/doc/f09177565.html, ///QQ:44649029 /// ///如分发,请保留此摘要。 ///鄙视那些拿代码当宝贝的人,鄙视那些你不拿源码换就不稀罕你的人,鄙视那些自私的人。///别人看到你的代码,你能死啊?对你有多大威胁啊?强烈鄙视~~~ ///如果你是这样的人,赶紧关了。。偶不欢迎。。 using System; using System.Collections.Generic; using https://www.sodocs.net/doc/f09177565.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using https://www.sodocs.net/doc/f09177565.html,; using System.Collections; using OPCAutomation; namespace OPC测试通过 { public partial class MainFrom : Form { public MainFrom() {

OPC软件与WINCC通讯

OPC软件与WINCC通讯 一、OPC软件设置 打开KEPServerEx软件,到Tool->Options进入OPC DX选项卡下面。将Enable OPC Date Exchange打勾,详细功能请参照下面帮助,点击确定。 二、OPC软件下添加通讯变量。 这里新建一个三菱的驱动,通过485串口通讯(非编程口),选择驱动名称为Mitsubishi FX Net,点击下一步。 设置通讯接口,将Flow设置成始终。点击下一步。

三菱的协议数据位为7位,这个要注意。 下面为默认。再点击完成。 然后点击新建驱动。 选择PLC型号为FX3U,点击下一步。

设置PLC地址。关于三菱里面的PLC地址与通讯参数设置请参照三菱PLC 帮助,与KEPServerEx帮助。 以下是KEPServerEx软件帮助。KEPServerEx软件支持的PLC型号与通讯协议。 需要在三菱PLC中选择格式一,和校验。 下面全部选择默认参数。点击完成。 在PLC1上点右键新建变量或者变量组。如果变量很多推荐使用变量组功能,这里就不再演示,这里直接新建变量了。

填写变量名,变量地址,注释,变量类型,还有读写权限。点击确定。

此时新建变量已完成。 三、OPC软件与PLC通讯测试 点击工具栏中的OPC进行测试。 到FX3U.PLC1下监控变量的值。后面有质量是Bad,还是Good,说明是已建立通讯还是通讯失败。 另外软件下面也有相关信息 这个报警说明我的COM1已被使用。 如果WINCC需要监控OPC软件与PLC是否连接成功,可以监控FX3U.PLC1._System中的Error变量的值,如果是TRUE说明通讯失败。 四、WINCC建立连接

VC环境下的OPC客户端程序开发

VC环境下的OPC客户端程序开发 来源:中国论文下载中心 [ 08-07-30 15:41:00 ] 作者:赵健师奕兵编辑: studa0714 Ads by Google 曙光刀片服务器TC2600支持Intel? Xeon? 5000系列处理器高密度高能效易管理低成本https://www.sodocs.net/doc/f09177565.html, OPC Grape Seed Extract Save 70% on our Premium Blend: Worldwide Shipping Quoted Upfront https://www.sodocs.net/doc/f09177565.html, SapphireTrend Premier OPC Trending solution for realtime process control & analysis https://www.sodocs.net/doc/f09177565.html, 摘要本文通过分析OPC 数据访问规范,介绍了有关OPC技术的基本概念、数据访问方式以及编写OPC客户端接口程序的一般方法。同时给出了一个具体实例,用Visual C++编写了一个OPC客户端接口程序,并利用OPC服务器KEPServer对其进行测试,实现了OPC客户端与OPC服务器之间的数据交换。 关键词OPC服务器;OPC客户端;COM技术 1 引言 随着通信技术、计算机技术和自动化技术的快速发展,大范围信息共享的需求在自动化系统中显得越来越来越重要,现代工业控制系统已逐渐发展成为以现场设备层、过程控制层和中央管理层三个层次组成的系统,因而对其开放性也提出了更高的要求。在传统的控制系统中,现场设备之间以及现场设备与控制软件之间的信息共享主要是通过驱动程序来实现的,不同厂家的设备使用不同的驱动程序,使得软件开发商不得不开发大量驱动程序来连接这些设备,即使设备厂家在硬件上做小小的改动,应用程序就可能重写,这也势必造成工业控制软硬件的升级与维护不便,给用户和软件开发商带来巨大的工作负担。同时,由于不同设备的驱动程序也有所不同,使得不同的应用程序也不能同时访问同一设备的数据,因此,需要制定一种统一开放的接口标准,使应用程序能够方便的存取一台或多台现场设备的数据,为不同厂商的软硬件提供一种系统集成和数据交换的途径。正是在自动化系统开放性要求的驱使下,促使了OPC技术的产生。 2 OPC技术简介 OPC(OLE for Process Control)是基于微软公司的DNA(Distributed InterNet Application)构架和COM (Component Object Model)/DCOM(Distributed COM)技术,根据易扩展性而设计的,OPC规范定义了一个工业标准接口,这个标准使得COM技术适用于过程控制和制造自动化等应用领域。OLE最初意思为对象链接与嵌入,是微软的复合文档技术。随着后续版本OLE2中导入了COM技术之后,现在的OLE在原版的基础上增加了更多新的功能,包括结构化存储、统一数据传输和自动化等,它已经成为独立于计算机语言、操作系统甚至硬件平台的

WinCC中OPC配置步骤

OPC服务器配置 (1). copy all these files to your windows system directory. For example: copy opcproxy.dll c:\winnt\system32 copy opccomn_ps.dll c:\winnt\system32 copy opc_aeps.dll c:\winnt\system32 copy opchda_ps.dll c:\winnt\system32 copy aprxdist.exe c:\winnt\system32 copy opcenum.exe c:\winnt\system32 (2). install the proxy dlls REGSVR32 opcproxy.dll REGSVR32 opccomn_ps.dll REGSVR32 opc_aeps.dll REGSVR32 opchda_ps.dll Windows XP下OPC服务器DCOM的配置: (1).在局域网中创建工作组 (2).服务器的配置 运行对话框中输入dcomcnfg 控制台根目录->组建服务->计算机->我的电脑->右键属性配置。常规->选中在此计算机上启用分布式COM,默认身份验证级别为 连接。 默认协议->DCOM协议->面向连接的TCP/IP

COM安全->访问权限->编辑限制->访问权限->编辑限制->增加Everyone用户,并选中所有的“允许”。 COM安全->访问权限->编辑限制->访问权限->编辑默认值->增加Everyone用户,并选中所有的“允许”。 COM安全->启动和激活权限->编辑限制->启动权限->安全限制->增加Everyone用户,并选中所有的“允许”。 COM安全->访问权限->编辑限制->启动权限-默认安全性 ->增加Everyone用户,并选中所有的“允许”。 (3).OPC服务器配置 控制台根目录->组建服务->计算机->我的电脑->DCOM配置->可以看到opcEnum和OPCServer1,分别进行配置。这两个DCOM组件配置完全一样,都选择“在此计算机运行应用程序”。以下仅介绍其中一个的配置过程。选中OPCServer1,右键点击”属性”。 常规->选择身份验证级别为默认。 位置->在此计算机上运行应用程序。 安全->启动和激活权限->使用默认值 安全->访问权限->使用默认值 安全->配置权限->自定义->编辑->在配置权限里的自定义中,把所有的用户权限都设置成允许。 终结点->DCOM协议和终结点->面向接连的TCP/IP 标识->交互式用户 (4).系统配置

OPC客户端的实现

1引言 OPC(OLE for Process Control)是一个工业标准,他是许多世界领先的自动化和软、硬件公司与微软公司合作的结晶。管理该标准的组织是OPC基金会。该基金会的会员单位在世界范围内超过150个,包括了世界上几乎全部的控制系统、仪器仪表和过程控制系统的主要供应商。OPC 技术建立了一组符合工业控制要求的接口规范,将现场信号按照统一的标准与SCADA、HMI等软件无缝连接起来,同时将硬件和应用软件有效地分离开。只要硬件开发商提供带有OPC接口的服务器,任何支持OPC接口的客户程序均可采用统一的方式对不同硬件厂商的设备进行存取,无须重复开发驱动程序。如果希望将数据引入数据库进行统计分析,就要进行客户端开发。 2客户程序的设计方法与比较 客户程序的设计主要是指客户程序中OPC接口部分的设计。客户程序本身可以完成很多复杂的数据处理与显示功能,但需要通过OPC接口部分访问OPC服务器,对现场数据进行存取。 开发OPC、Data、Access、Client之前,要弄清服务器的大体情况,比如需要访问的服务器是否提供自动化接口、服务器的OPC的版本等,到目前为止,OPC有1.0和2.0两个版本,两个版本的接口定义不同,2.0版是对1.0的改进,但不兼容。 OPC客户端的主要任务: ①创建服务器对象。 ②建立与服务器的连接。 ③浏览OPC服务器的功能。客户程序需要创建OPC基金会提供的OPC服务器浏览器对象(OPCServerList)再通过该对象的IOPCServerList接口获得OPC服务器名称的列表;可以通过枚举注册表中包含“OPC”子键的程序名来浏览符合OPC数据存取规范的服务器,但效率较低。 ④通过OPC接口读写数据。 ⑤断开连接。

利用OPC实现WINCC与监控系统的动态数据交换_高德欣

利用OPC 实现WINCC 与监控系统的动态数据交换 高德欣 1,2 ,张文武1,杨 清 1 (中国海洋大学信息科学与工程学院,山东青岛266071;2.青岛科技大学自动化与电子工程学院,山东青岛266042) 摘 要: 利用OP C (OL E for pro cess contro l )接口实现了SI EM ENS WinCC 与上位机开发软件组态王、力控、V B 之间动态数据的交换,解决了不同监控系统之间实时数据交换难题,实现不同监控系统开发软件间的即插即用以及控制系统的集成和数据共享,为企业生产管理信息化打下基础,最后给出了具体的实现步骤及成功应用案例。关键词: OPC 接口;西门子WinCC ;组态王;力控;动态数据交换 中图法分类号: T P273 文献标识码: A 文章编号: 1672-5174(2006)04-677-05 随着组态软件在生产过程监控系统中的广泛应用,以及企业信息管理系统建设的不断发展,再也不能希望完全由同一套组态软件或ERP 软件构成整个企 业的信息管理系统,组态软件的开放和协同以及与各种ERP 、M IS 系统的连接正在逐步成为企业生产管理信息化进程中不得不考虑的1个重要内容。由于过程级的现场控制系统比较复杂,多种组态软件(如WinCC ,IFIX ,组态王,力控等),多种总线(如CC -LINK ,PROFIBUS ,422/485总线等)并存,要与这些系统交换数据编写接口程序比较复杂,而且一般来说各组态软件的数据库均经过加密封装,用户无法从外部直接访问其中数据,即使像WinCC 软件虽然其数据库未加密,但是数据库中表名,表的结构、表的字段定义等等都是保密的,所以这给系统集成、数据共享带来很大困难。 目前比较好的解决方案是:(1)利用DDE (Dynam -ic Data Exchange )技术实现开放式数据交互;(2)利用OPC 技术实现开放式数据交互。二者都可使出自不同公司的系统能组成1个有机的整体。但是DDE 技术只适用于小数据量的交互,目前在工控行业基本被淘汰。而OPC 技术由于通讯稳定,传输速度快,适于大批量数据交换,现在已经成为新的工业通讯标准。OPC 技术允许客户程序从不同的OPC 服务器甚至运行在不同节点上的OPC 服务器存取数据。现在有实力的远端SCADA ,DCS ,PLC ,远端I /O 模块供应商等等都提供OPC 服务器,如:Intellution 公司的iFIX ,德国西门子公司的WinCC ,北京亚控公司的组态王(Kingview )和大庆三维集团的力控(ForceControl )等。利用OPC 技术,可将ERP 系统、HM I 系统、PLC 和现场设备系统集成一体化。 1 OPC 规范 OPC 规范包括OPC 服务器和OPC 客户端2个部分,其实质是在硬件供应商和软件开发商之间建立了1 套完整的“规则”,只要遵循这套规则,数据交互对两者来说都是透明的。OPC 服务器由3类对象组成:服务 器(Server )、组(Group )和数据项(Item )[1],相当于3种 层次上的接口。(1)服务器(Server )拥有服务器对象的所有信息,同时也是组对象(Group )的容器,1个服务器对应于1个OPC -Server ,在1个OPCServer 中,可以有若干个组对象。(2)组(Group )拥有本组对象的所有信息,同时包容并逻辑组织OPC 数据项(Item )。(3)数据项(Item )是读写数据的最小逻辑单位,1个项与1个具体的位号相连,通常指向设备的1个寄存器单元。 OPC 体系结构如图1所示。 OPC 技术扩展了设备的概念,只要符合OPC 服务器的规范,OPC 客户便可与之方便地实现数据交互。OPC 客户和OPC 服务器有2种不同方式进行数据交互[2-5],即同步方式和异步方式。同步方式实现较为简单,当客户数目较少而且同服务器交互的数据量不大的时候可以采用这种方式;异步方式实现较为复杂,需要在客户程序中实现服务器回调函数,然而当有大量客户和大量数据交互时,异步方式能提供高效的性能,尽量避免阻塞客户数据请求,并最大可能地节省CPU 和网络资源。 基金项目:山东省自然科学基金项目(Y2000G02)资助 收稿日期:2005-03-21;修订日期:2005-04-27 作者简介:高德欣(1978-),男,博士,讲师。E -mail :gaodexin @ouc .edu .cn   第36卷 第4期 2006年7月  中国海洋大学学报 PE RIODICAL OF OCEAN UNIVERSIT Y OF CHINA 36(4):677~680Jul y ,2006

OPC客户端的自动化

OPC客户端的自动化实现 OPC是建立在COM,DCOM的基础商的,因此绝大多数语言都可以很好的进行开发。在Net中开发客户端有以下几种方式: (1)使用OPCNetAPI,需要用到OPCNetAPI.dll,https://www.sodocs.net/doc/f09177565.html,.dll (2)使用自动化接口,需要用到OPCDAAuto.dll (3)使用自定义接口,需要用到多个Wrapper:OpcRcw.Ae.dll,OpcRcw.Batc h.dll,https://www.sodocs.net/doc/f09177565.html,n.dll,OpcRcw.Da.dll,OpcRcw.Dx.dll,OpcRcw.Hda. dll,OpcRcw.Sec.dll 以上开发方式所需的动态链接库可以从OPC基金会(http://www.opcfoundati https://www.sodocs.net/doc/f09177565.html,/)的网站上下载,一些下载项目可能需要注册,或成为基金会的成员。 不同的方式有各自的有缺点,请参见… 本文使用自动化接口,https://www.sodocs.net/doc/f09177565.html,语言进行开发,开发项目是无线射频(RFID)卡方面的应用,典型的如公交车,或公司考勤使用的刷卡机。需要注意的是自动化接口存在一个“不是问题”的问题,数组下标是以1开始的,而不是传统计算机开发上的以0开始。不知道设计者头脑是怎么想(有人知道吗?);这可能会给一些语言的开发造成问题(有人碰到吗,没有你就是幸运的) 需求:OPCDAAuto.dll或该Dll的Interop (一):客户端开发流程 OPC客户端的开发主要遵循下图所示的开发流程,下面就从以下几个开发步骤进行说明 (二):枚举OPC服务器列表 枚举服务器主要是通过OPCServer接口的GetOPCServers方法来实现的,该方法会返回OPC服务器数组(以1为下界,上面已有说明),以下是代码段'枚举OPC服务器列表 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try GlobalOPCServer = New OPCAutomation.OPCServerClass() Dim ServerList As Object = GlobalOPCServer.GetOPCServers For index As Short = LBound(ServerList) To UBound(ServerList) '加入控件列 表中,注意这里使用LBound和UBound cbbServerList.Items.Add(ServerList(index)) Next If cbbServerList.Items.Count > 0 Then

通过Simatic net组态WINCC与S7-1200的OPC通讯

硬件的连接 SIMATICS7站、PC站分别通过以太网接口及网络交换机等设备连接到工业以太网,如图1所示。 图1、S7站同PC站的以太网连接 软硬件的需求 PC软件: 1.STEP7ProfessionalV13SP1Update6 2.SIMATICNetV12 硬件: 1.S7-1215C(6ES7 215-1AG40-0XB0) 2.以太网连接电缆 3.一台装有以太网卡 本例是将STEP7ProfessionalV13和SIMATICNet V8.2安装在同一台Windows7的计算机上。当然 STEP7ProfessionalV13和SIMATICNet V8.2也可以分别安装在不同的计算机上。 S7-1200站组态: 双击桌面TIAPortal图标,工作平台在缺省的情况下进入到Portal视图,这里直接点击左下角的”项目视图”连接,切换到项目视图的界面中。在项目视图的界面下点击菜单“Project”“New”,打开了创建新项目的窗口。在创建新项目的窗口中输入项目名为“OPCCommunication”;项目路径、作者及项目描述都采用缺省值,如图2所示。

图2、创建新项目 S7-1200站硬件配置: 在上面的窗口中点击“Create”按钮,这样就完成了项目的创建。在OPC的项目下双击“Addnewdevice”,在弹出的添加新设备的窗口中选择设备名为“S7-1200”;选择设备类型为“PLC”;在PLC的硬件目录中选择“SIMATICS7-1200”“CPU”“CPU 1215C DC/DC/DC”“6ES7215-1AG40-0XB0”,如图3所示,选择后点击“OK”按钮,到此完成了S7-1200站的硬件配置。 图3、S7-1200站的硬件配置 DB块创建 在OPC的项目点击“PLC_1”>程序块 > 添加新块,选择数据块DB,名称为“Data_1”,(名称尽量采用英文或者阿拉伯数字,否则在OPC Scout上显示不出名称)可以选择手动,手动输入DB编号。

OPC客户端搭建

1.OPC对象的分层结构 OPC数据访问提供从数据源读取和写入特定数据的手段。OPC数据访问对象是由下图所示的分层结构构成。即一个OPC服务器对象(OPCServer)具有一个作为子对象的OPC组集合对象(OPCGroups)。在这个OPC组集合对象里可以添加多个的OPC组对象(OPCGroup)。各个OPC组对象具有一个作为子对象的OPC标签集合对象(OPCItems)。在这个OPC标签集合对象里可以添加多个的OPC标签对象(OPCItem)。此外,作为选用功能,OPC服务器对象还可以包含一个OPC浏览器对象(OPCBrowser)。 OPC对象中的最上层的对象是OPC服务器。一个OPC服务器里可以设置一个以上的OPC 组。OPC服务器经常对应于某种特定的控制设备。例如,某种DCS控制系统,或者某种PLC 控制装置。OPC组是可以进行某种目的数据访问的多个的OPC标签的集合,例如某监视画面里所有需要更新的位号变量。正因为有了OPC组,OPC应用程序就可以以同时需要的数据为一批的进行数据访问,也可以以OPC组为单位启动或停止数据访问。此外OPC组还提供组内任何OPC标签的数值变化时向OPC应用程序通知的数据变化事件(表1-4)。

2.OPC客户端搭建过程(部分代码) 1)连接服务器 a)查询服务器端主机的名字。 string hostname = Dns.GetHostName(); b)初始化服务器对象,搜索主机上的服务器ID,并枚举出来。 public void searchlocalsvr(string hostName)//寻找本地服务器 { try { OPCSvr = new OPCServer(); object serverList = OPCSvr.GetOPCServers(hostName); foreach (string server in (Array)serverList) { Console.WriteLine("本地OPC服务器:{0}", server); } } catch (Exception err) { Console.WriteLine("枚举本地OPC服务器出错:{0}", err.Message); } } c)连接服务器。 public void ctOPCSever(string HostName)//连接OPC服务器 { string OPCSvrName; searchlocalsvr(HostName); Console.WriteLine("请输入要连接的服务器名字:"); OPCSvrName = Console.ReadLine(); try { OPCSvr.Connect(OPCSvrName, ""); Console.WriteLine("连接服务器成功!"); } catch (Exception err) { Console.WriteLine("连接本地OPC服务器出错:{0}", err.Message); } } 2)创建组(OPCGroups)对象和添加数据项对象(OPCItems) public void CreateGrp()//创建组对象 { try

相关主题