opc 订阅
OPC(OLE for Process Control), 用于过程控制的OLE,是一个工业标准,管理这个标准的国际组织是OPC基金会,OPC基金会现有会员已超过220家。遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。基于微软的OLE(现在的Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)技术。OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。 展开全文
OPC(OLE for Process Control), 用于过程控制的OLE,是一个工业标准,管理这个标准的国际组织是OPC基金会,OPC基金会现有会员已超过220家。遍布全球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。基于微软的OLE(现在的Active X)、COM (部件对象模型)和DCOM (分布式部件对象模型)技术。OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。
信息
类    别
软件
特    点
高效性、可靠性、开放性
应用平台
Windows
外文名
OLE for Process Control
opc定义解释
OPC全称是Object Linking and Embedding(OLE) for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生。OPC标准以微软公司的OLE技术为基础,它的制定是通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是OLE 2技术,OLE标准允许多台微机之间交换文档、图形等对象。COM是Component Object Model的缩写,是所有OLE机制的基础。COM是一种为了实现与编程语言无关的对象而制定的标准,该标准将Windows下的对象定义为独立单元,可不受程序限制地访问这些单元。这种标准可以使两个应用程序通过对象化接口通讯,而不需要知道对方是如何创建的。例如,用户可以使用C++语言创建一个Windows对象,它支持一个接口,通过该接口,用户可以访问该对象提供的各种功能,用户可以使用Visual Basic,C,Pascal,Smalltalk或其它语言编写对象访问程序。在Windows NT4.0操作系统下,COM规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象可分布在网络上,COM的这个扩展被称为DCOM(Distributed COM)。通过DCOM技术和OPC标准,完全可以创建一个开放的、可互操作的控制系统软件。OPC采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。OPC服务器通常支持两种类型的访问接口,它们分别为不同的编程语言环境提供访问机制。这两种接口是:自动化接口(Automation interface);自定义接口(Custom interface)。自动化接口通常是为基于脚本编程语言而定义的标准接口,可以使用VisualBasic、Delphi、PowerBuilder等编程语言开发OPC服务器的客户应用。而自定义接口是专门为C++等高级编程语言而制定的标准接口。OPC现已成为工业界系统互联的缺省方案,为工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。任何一家自动化软件解决方案的提供者,如果它不能全方位地支持OPC,则必将被历史所淘汰。1、在控制领域中,系统往往由分散的各子系统构成;并且各子系统往往采用不同厂家的设备和方案。用户需要,将这些子系统集成,并架构统一的实时监控系统。2、这样的实时监控系统需要解决分散子系统间的数据共享,各子系统需要统一协调相应控制指令。3、再考虑到实时监控系统往往需要升级和调整。4、就需要各子系统具备统一的开放接口。5、OPC(OLE for Process Control) 规范正是这一思维的产物。6、OPC 基于Microsoft公司的 Distributed interNet Application (DNA) 构架和 Component Object Model (COM) 技术的,根据易于扩展性而设计的。OPC规范定义了一个工业标准接口。7、OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。8、OPC定义了一个开放的接口,在这个接口上,基于PC的软件组件能交换数据。它是基于Windows的OLE——对象链接和嵌入、COM——部件对象模型(Component Object Model)和DCOM——分布式COM(Distributed COM)技术。因而,OPC为自动化层的典型现场设备连接工业应用程序和办公室程序提供了一个理想的方法。
收起全文
精华内容
下载资源
问答
  • opc

    千次阅读 2015-05-26 17:04:41
    终于还有一个就写完了,这次是opc,同样需要模拟器,这里使用的是MatrikonOPCSimulation,其实具体怎么做参考网上的内容完全足够...使用opc协议不仅需要导入jar包,还要关闭防火墙,否则会出现

    终于还有一个就写完了,这次是opc,同样需要模拟器,这里使用的是MatrikonOPCSimulation,其实具体怎么做参考网上的内容完全足够https://openscada.atlassian.net/wiki/display/OP/HowToStartWithUtgard,只不过想记录一下自己学过的东西,所以还是自己写一下。

    使用opc协议不仅需要导入jar包,还要关闭防火墙,否则会出现错误,不知道有没有更好的办法,有待以后去解决。

    import java.net.UnknownHostException;
    import java.util.concurrent.Executors;
    
    import org.jinterop.dcom.common.JIException;
    import org.jinterop.dcom.core.JIVariant;
    import org.openscada.opc.lib.common.AlreadyConnectedException;
    import org.openscada.opc.lib.common.ConnectionInformation;
    import org.openscada.opc.lib.common.NotConnectedException;
    import org.openscada.opc.lib.da.AccessBase;
    import org.openscada.opc.lib.da.AddFailedException;
    import org.openscada.opc.lib.da.DataCallback;
    import org.openscada.opc.lib.da.DuplicateGroupException;
    import org.openscada.opc.lib.da.Item;
    import org.openscada.opc.lib.da.ItemState;
    import org.openscada.opc.lib.da.Server;
    import org.openscada.opc.lib.da.SyncAccess;
    
    public class opcUtil {
    
    	public void read() {
    		ConnectionInformation conn = new ConnectionInformation();
    		conn.setHost("127.0.0.1");
    		conn.setDomain("WORKGROUP");
    		conn.setUser("计算机的用户名");
    		conn.setPassword("计算机的密码");
    		conn.setClsid("F8582CF2-88FB-11D0-B850-00C0F0104305");
    		conn.setProgId("Matrikon.OPC.Simulation.1");
    
    		String itemId = "Bucket Brigade.Int4";
    
    		Server server = new Server(conn,
    				Executors.newSingleThreadScheduledExecutor());
    
    		try {
    			server.connect();
    			AccessBase access;
    			access = new SyncAccess(server, 500);
    			access.addItem(itemId, new DataCallback() {
    				@Override
    				public void changed(Item item, ItemState state) {
    					try {
    						System.out.println(state.getValue().getObjectAsInt());
    					} catch (Exception e) {
    						e.printStackTrace();
    					}
    				}
    			});
    			access.bind();
    			Thread.sleep(500);
    			access.unbind();
    		} catch (JIException e) {
    			System.out.println(String.format("%08X: %s", e.getErrorCode(),
    					server.getErrorMessage(e.getErrorCode())));
    		} catch (IllegalArgumentException e1) {
    			e1.printStackTrace();
    		} catch (UnknownHostException e1) {
    			e1.printStackTrace();
    		} catch (AlreadyConnectedException e1) {
    			e1.printStackTrace();
    		} catch (NotConnectedException e) {
    			e.printStackTrace();
    		} catch (DuplicateGroupException e) {
    			e.printStackTrace();
    		} catch (AddFailedException e) {
    			e.printStackTrace();
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    
    	}
    
    	private class DataCallbackDump implements DataCallback {
    
    		Object value;
    
    		public DataCallbackDump(Object value) {
    			this.value = value;
    		}
    
    		@Override
    		public void changed(Item item, ItemState state) {
    
    			JIVariant write = new JIVariant((Integer) value);
    			try {
    				item.write(write);
    			} catch (JIException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    
    	public void write() {
    		ConnectionInformation conn = new ConnectionInformation();
    		conn.setHost("127.0.0.1");
    		conn.setDomain("WORKGROUP");
    		conn.setUser("计算机的用户名");
    		conn.setPassword("计算机的密码");
    		conn.setClsid("F8582CF2-88FB-11D0-B850-00C0F0104305");
    		conn.setProgId("Matrikon.OPC.Simulation.1");
    
    		String itemId = "Bucket Brigade.Int4";
    
    		Server server = new Server(conn,
    				Executors.newSingleThreadScheduledExecutor());
    		final Object object = 5;
    		// final JIVariant value = new JIVariant("6");
    		try {
    			server.connect();
    			AccessBase access;
    			access = new SyncAccess(server, 500);
    			DataCallbackDump dcd = new DataCallbackDump(object);
    			access.addItem(itemId, dcd);
    			access.bind();
    			Thread.sleep(500);
    			access.unbind();
    		} catch (JIException e) {
    			System.out.println(String.format("%08X: %s", e.getErrorCode(),
    					server.getErrorMessage(e.getErrorCode())));
    		} catch (IllegalArgumentException e1) {
    			e1.printStackTrace();
    		} catch (UnknownHostException e1) {
    			e1.printStackTrace();
    		} catch (AlreadyConnectedException e1) {
    			e1.printStackTrace();
    		} catch (NotConnectedException e) {
    			e.printStackTrace();
    		} catch (DuplicateGroupException e) {
    			e.printStackTrace();
    		} catch (AddFailedException e) {
    			e.printStackTrace();
    		} catch (InterruptedException e) {
    			e.printStackTrace();
    		}
    	}
    
    	public static void main(String[] args) {
    		 opcUtil util = new opcUtil();
    		 util.write();
    		 util.read();
    	}
    
    }
    


    展开全文
  • opc
  • C#利用自动化接口编写OPC客户端,OPC Client
  • 用于windown 开发时,本地无法来接opc server ,用于注册的opc 组件
  • opc客户端OPC Client

    2018-04-07 00:25:52
    opc客户端OPC Client,从三菱opc软件中提取,亲测好用。
  • opc_opc_源码

    2021-10-03 16:15:40
    opc da2.0 通讯库
  • OPC CLient OPC客户端

    2018-11-07 12:34:42
    用户opc开发客户端测试
  • 开放的OPC协议,针对OPC DA UA的学习资料,开放的源代码
  • OPC协议文件概述,什么通讯协议,OPC协议的原理。
  • OPC UA OPC DA

    2017-02-15 14:20:52
    主要介绍OPC通讯的各种技术,如profibus dp ,opc ua ,s7通讯等等,opc ua 编程,OPC xml 编程及各种实例及参考文献,希望对大家有所帮助
  • OPC组件

    2021-02-22 22:36:08
    OPC组件
  • OPC.rar OPC模拟器

    2021-04-16 16:58:45
    OPC模拟器,可准确模拟OPC信号
  • This is a OPCClient.
  • 对于缺少opc客户端、DCOM设置, 组态王与matlab的OPC连接,均有说明。 1、将OPCDAAuto.dll及opc组件放入 C:\Windows\System32 或 C:\Windows\SysWOW64下, (32位系统用32位dll选择System32,64位系统用32位dll选择...
  • OPC组件_opc_源码

    2021-09-29 08:09:50
    node opcda的js代码,用node.js的去连接opcserver。
  • OPC统一架构_opc_源码

    2021-10-01 03:28:42
    OPC统一架构 PC统一架构(OPC Unified Architecture)是OPC基金会(OPC Foundation)创建的新技术
  • 通过C++编程,连接opc服务器,实现opc通讯
  • 8自己整理的opc ua客户端的源码,以供大家参考
  • opc C#实例 源代码
  • Opc_Client_C#与PLC用OPC通信实现读写数据_opc_C#OPC.zip
  • specification of OPC development
  • OPC-VB_opc_源码

    2021-09-30 08:22:56
    用VB编写的OPC客户端,通过OPCserver可以实现与PLC的通信.
  • 加上传统OPC技术不够灵活、平台局限等问题的逐渐凸显, OPC基金会 (OPC Foundation) 发布了最新的数据通讯统一方法 — OPC统一架构 (OPC UA), 涵盖了OPC 实时数据访问规范 (OPC DA)、OPC历史数据访问规范 (OPC HDA)...
  • opc_C#OPCUA_.netcore_opcua客户端_覆盖1.03版_OPCUA.zip
  • 一款网上找到的OPC Server 代码
  • C#与PLC通信,用OPC实现互相读写数据
  • kepware外网OPC/公网OPC/广域网OPC/OPC UA跨网集控无需固定公网IP教程资料。教程资料主要介绍如何使用kepware OPC UA功能实现在外网/公网/广域网/互联网之间通讯做集中控制,无需固定公网IP,电脑能上网就能跨网通讯...
  • OPC DA 到 OPC UA.pdf

    2020-08-26 15:48:45
    OPC 实时数据访问规范(OPC DA)定义了包括数据值,更新时间与数据品质信息的相关 标准。 OPC 历史数据访问规范(OPC HDA)定义了查询、分析历史数据和含有时标的数据的方 法。 OPC 报警事件访问规范(OPC AE)定义...
  • OPC_OPC Clien

    2012-11-20 13:57:35
    OPC_OPC Clien,一个好用OPC测试软件
  • Opc_Client_C#与PLC用OPC通信实现读写数据_opc_C#OPC_源码.zip

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,302
精华内容 7,320
关键字:

opc