opc

C#创建OPC Client来访问OPC server

匿名 (未验证) 提交于 2019-12-03 00:41:02
  最近一个项目,需要跟PLC通讯,所以测试使用了OPC server。现主要记录使用C#编写的Client例程,其它方面不作详细描述。   第一步,OPC Server使用的是KEPServer 5版本,网上很多资料。安装完成后,它的配置页面如下图。配置中,我已配置了和Omron PLC连接的project,创建了访问PLC的area地址的几十个变量。具体配置根据不同PLC的信息对应配置就行了。 1、创建线程   #region OPC通讯线程 try { OPCClient opcClient = new OPCClient(); Thread thrOpc = new Thread(opcClient.OPCClientOperate); thrOpc.IsBackground = true ; thrOpc.Start(); } catch { } #endregion 2、创建类 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using OPCAutomation; using Model; using System.Threading; namespace BLL { public class OPCClient

OPC远程连接

匿名 (未验证) 提交于 2019-12-03 00:38:01
目前的配置是在windows server 2003版本上的。具体的其他版本的windows配置应该是差不多的 我做的配置如下: 首先我的配置都是在没有域的情况下进行的。如果有域且在一个域内,或者不在一个域内就另当别论,可能需要额外的一些限制。 没有域的情况,最好是客户端和服务器都是同样的用户名和密码。而且以下的配置在客户端和服务器端都要配置。 1.关闭防火墙 2.开始―>运行―>输入:dcomcnfg 3. 进入DCOM的总体默认属性页面,将“在这台计算机上启用分布式COM”打上勾,将默认身份级别改为“无”。如下面画面 4.打开属性―>切换到“安全”属性页,分别编辑如下4个选项。 5.以上4个选项分别添加everyone,administratro,anonymous user三个用户用户,并勾选上所有权限选项。【请注意是三个用户,如果少了一个有可能出现找不到服务器的情况】 6.设置DTC,在msdtc标签下,点击“安全性配置”,按下图配置 7.在OPC服务器上,还要回到“组件服务”界面,打开DCOM配置,找到注册的OPC服务器的名称选项,打开它的属性。 我的是Matrikon OPC Server for Simulation and Testing,并且找到OpcEnum两个做一样的配置。 8.有的教程上面写了还要启动交互式用户,但是我那里的按钮是灰色的,就没有做这一步

OPC UA的源码使用

匿名 (未验证) 提交于 2019-12-03 00:26:01
github 的源码。直接用vs2017运行,新版的代码在vs2015上是运行不了的。 1、修改上的坑 2、部署的问题 private static void CheckCertificateDomain(ConfiguredEndpoint endpoint) { bool domainFound = false; X509Certificate2 serverCertificate = new X509Certificate2(endpoint.Description.ServerCertificate); // check the certificate domains. IList<string> domains = Utils.GetDomainsFromCertficate(serverCertificate); if (domains != null) { string hostname; string dnsHostName = hostname = endpoint.EndpointUrl.DnsSafeHost; bool isLocalHost = false; if (endpoint.EndpointUrl.HostNameType == UriHostNameType.Dns) { if (dnsHostName.ToLowerInvariant() =

OPC KEPServerEx V4.0 在虚拟机中的 安装和使用

匿名 (未验证) 提交于 2019-12-03 00:22:01
软件下载地址 服务器链接:https://pan.baidu.com/s/1PtZS4TKEfuduSu7Z9iXBOg 密码:fnkq 客户端链接:https://pan.baidu.com/s/1aUzEs9ysiHBXbw45er4NIQ 密码:ey5i 补丁链接:https://pan.baidu.com/s/1GxkZOW47eSnbEpdqP0n9DQ 密码:mzau 环境配置 两台虚拟机的网段必须相同例如: 192.168.0.1 192.168.0.2 以上配置服务器客户端机器都需要配置 OPC服务器安装使用 OPC客户端的使用 文章来源: OPC KEPServerEx V4.0 在虚拟机中的 安装和使用

OPC API 简介

匿名 (未验证) 提交于 2019-12-03 00:17:01
―――――――――――――――― 版权声明:本文为CSDN博主「lgbisha」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/lgbisha/article/details/82898228 1. 列举某Server下的所有OPC连接   ServerList serverList = new ServerList("10.1.5.123", "freud",     "password", "");   Collection<ClassDetails> classDetails = serverList     .listServersWithDetails(new Category[] {     Categories.OPCDAServer10, Categories.OPCDAServer20,     Categories.OPCDAServer30 }, new Category[] {});   for (ClassDetails cds : classDetails) {     System.out.println(cds.getProgId() + "=" + cds.getDescription());   } 2.列举连接下的所有Group和Item  

OPC UA 的本质

淺唱寂寞╮ 提交于 2019-12-02 21:52:03
OPC UA 的本质 转: https://blog.csdn.net/yaojiawan/article/details/88990351 接触OPC UA 已经有一段时间了,开始只知道它将是工业4.0 中一个重要的通信协议(IEC 62541)。出于好奇,就了解一下。我看的主要内容包括:Open62541 库和uaExpert,uamodeler等工具软件。同时也阅读了OPC UA 的标准文本和网络上的许多文章。但是总觉得云里雾里,神龙见首不见尾。 俗话说”不识庐山真面目,只缘身在此山中”。在学习电脑新技术时,我们往往会被劈头盖脑的各种术语,数据结构,函数,协议,模型带到沟里去了。而忘却了思考它是什么?它解决上什么问题?为什么这样做?这些根本的问题。有时真的搞不懂,这么复杂的东西是这么想出来的?是大公司用来故弄玄虚的么? 有一个早上,我突然顿悟,OPC UA 就是在分布式系统中实现对象的描述,什么Node呀,variable呀,reference呀,无非是想描述一个对象!OPC UA 在工业4.0 中的重要性就是通过面向对象的技术,将物理设备,传感器,电机描述成一个个对象,形成数字化模型。让不同的软件可以像调用对象那样来控制设备。 于是,我放慢心情,顺着面向对象的思路,来探究OPC UA 的本质。 面向对象程序设计 软件设计的重要一环就是将物理世界的物体抽象成数字化模型

utgard OPC 主要功能简介

久未见 提交于 2019-12-02 08:47:50
度娘还行,尽管不好用,但所有的开发人员不懈努力地写博客,能得到很多东西! 这里向所有未谋面的博主们致敬! 搜了一堆OPC资料,在这里整理一下,用一个封装类来说明utgard的主要接口。使用了java自带的观察者模式,回调通知检测点数据; 1. opc客户端主类 public class OpcClient extends Observable {   private Server mServer = null; /** * 连接opc server */ public synchronized boolean connectServer (String host, String progId, String user, String password, String domain) {   boolean mState = false;   ServerList serverList = null;   try {   // 获取server上的opc server应用列表   serverList = new ServerList(host, user, password, domain);   // 连接server   final ConnectionInformation connectionInfo = new ConnectionInformation();  

Unable To Cast object type 'System.String[*]' to type 'System.String[]'

痴心易碎 提交于 2019-12-02 01:13:21
Hi everyone i had a issue with a code in C# .NET, I'm using a DLL for connect to OPC Servers the DLL that was used in a VB.NET project and works with no problem at all. I'm trying to show a list of available Servers in a ListBox, the code used in VB.NET (and works) is this one: Dim AllOPCServers As Object AllOPCServers = AnOPCServer.GetOPCServers ' Load the list returned into the List box for user selection Dim i As Short For i = LBound(AllOPCServers) To UBound(AllOPCServers) AvailableOPCServerList.Items.Add(AllOPCServers(i)) Next i and i wrote this to use in the C# application try { var

opc

最后都变了- 提交于 2019-12-01 10:09:55
OPC OPC(OLE for Process Control, 用于过程控制的OLE)是一个工业标准,管理这个标准国际组织是OPC基金会。 OPC全称是OLE for Process Control,它的出现为基于 Windows 的应用程序和现场过程控制应用建立桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。 系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生。OPC标准以微软的OLE(现在的Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)为技术而开发出的一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。OPC采用典型的C/S模式,提供统一的OPC接口标准的Server程序,软件厂商只需按照OPC标准接口编写Client程序就可以访问Server程序进行读写。 OPC协定包括: 1.DA(Data Access)规范:访问数据主要采用该规范 2.A&E(Alarm and Event)规范:基于事件,提供Client端订阅,事件触发后Server端主动提交回数据的数据访问方式。 3.HDA(History data access)规范

OPC server access remotely using OPCDA.NET tools

陌路散爱 提交于 2019-12-01 06:38:12
I am developing OPC Client in windows C#. I have developed the code and reading OPC Items on Sampling as well as event based (OnDataChange). When I am working with local machine then my code works fine with both Sampling as well as OnDataChange, but when I am trying to read data from Remote OPC Server then Sampling works fine but I am not able fetch data on event based process. I am able to connect to the OPC Server but when i am adding subscription to it then i am getting error. HRESULT : 0x80040202. group1.DataChanged += new DataChangeEventHandler(this.DataChangeHandler); group1