1. 什么是OPC
1.1 名词解释
OPC——OLE for Process Contrl,微软公司对象链接和嵌入技术在过程控制方面的应用,是一系列接口、方法和属性的标准集。
它基于OLE、COM、DCOM技术、XML,采用客户端/服务器(Client/Server)结构,将通讯协议与设备/应用隔离的技术。
微软的OLE、COM定义了各种不同的软件如何交互使用和分享数据,从而使得OPC能够提供通用的接口规范,用于各种过程控制设备之间的通讯,不论过程中采用何种应用软件和硬件设备。
OLE——Object Linking & Embeding,对象链接与嵌入,也就是现在的微软的ActiveX。
1.2 基于OPC技术的过程控制系统结构
像所有的COM实现一样,OPC的结构是客户机服务器模式。
各个OPC客户程序通过OPC标准接口对各OPC服务器管理的设备进行操作,而不需关心服务器的实现细节及设备内部的具体细节。
OPC把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。
1.3 工作原理
1.4 OPC服务器所兼容的设备分类
即OPC服务器可以从上面任何一种形式的数据产生实体中读取数据。
这个实体可以是霍尼韦尔PHD的Application,也可以是Modbus的通讯协议,
还可以是一种PLC,也就是一种Device(硬件设备),或者是一种Platform。
2.常用的OPC服务器
2.1 Matrikon公司的OPCServer Simulator
更好的一点是,如果想做大规模的测试,10万点,那么只需要在它的Random下添加任意名称即可,OPCServer会自动给你建出对应的测点,还是随机数变化。
2.2 Kepware公司的OPCServer
3. 常用的OPC客户端
3.1 Matrikon公司的OPCClient
标准,稳定,单文件,通讯过程的信息还比较丰富,我是比较喜欢用它在创建OPC组时定义同步方式或异步方式来验证远程计算机的OPC配置是否正确。缺点就是大了点,2M多。
3.2 Kepware公司的OPCClient
功能很强大,标准,稳定,日志信息很丰富,最推荐的功能是支持对OPCServer中点名的条件过滤,支持点表的导入导出,支持自动导入OPCServer的所有点,根据点表识别好点坏点,按照列排序,用它可以弥补很多国产组态软件不能在线遍历OPCServer点表的功能、不能过滤OPCServer点的功能、不能识别OPCServer中好点坏点的功能等。缺点就是非单文件。
4. OPC Client和OPC Server配置的安全策略
下表是对 OPC Client 和 OPC Server 所在操作系统之间的安全策略的配置对应说明:
5. Java实现OPC客户端
5.1 Openscada链接配置方法
OPC数据存取服务器由三个对象组成:服务器对象(Server)、组对象(Group)和项对象(Item)。
按说明配置好OPC Server 与 OPC Client 所在电脑的组件服务配置和防火墙设置(windows7直接关闭就行了)
注意一定要把本机希望链接OPC服务的用户或用户组添加到DCOM配置列表中,否则链接会失败。
如果其他都配置好了,运行程序还是连接不上的话,首先常看防火墙是否配置(或关闭)。
OPC对象——服务器(OPC Server)、组(OPC Group)、项(OPC Item)。
Openscada开源项目:ConnectionInformation中:
Clsid 和 Grogid 作用相同,只要设置一个就可以了,如果两个都设置了,程序会优先选择Clsid。
我们建议使用Clsid,因为使用Grogid时,Openscada的内部处理还是会通过JISystem.getClsidFromProgId( progId )方法将其转换为Clsid,并且还需要进行服务器上用户的权限的高级配置才可以使用。
查找Clsid和Grogid的方法:打开注册表(regedit)—》在HKEY_CLASSES_ROOT下找到相应的OPC服务器名称,该名称就是Grogid,在其目录下的CLSID的值(右边区域)就是Clsid
5.2 Openscada远程链接时常见的问题及解决方法
1. 什么是OPC
1.1 名词解释
OPC——OLE for Process Contrl,微软公司对象链接和嵌入技术在过程控制方面的应用,是一系列接口、方法和属性的标准集。
它基于OLE、COM、DCOM技术、XML,采用客户端/服务器(Client/Server)结构,将通讯协议与设备/应用隔离的技术。
微软的OLE、COM定义了各种不同的软件如何交互使用和分享数据,从而使得OPC能够提供通用的接口规范,用于各种过程控制设备之间的通讯,不论过程中采用何种应用软件和硬件设备。
OLE——Object Linking & Embeding,对象链接与嵌入,也就是现在的微软的ActiveX。
1.2 基于OPC技术的过程控制系统结构
像所有的COM实现一样,OPC的结构是客户机服务器模式。
各个OPC客户程序通过OPC标准接口对各OPC服务器管理的设备进行操作,而不需关心服务器的实现细节及设备内部的具体细节。
OPC把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和可互操作性。
1.3 工作原理
1.4 OPC服务器所兼容的设备分类
即OPC服务器可以从上面任何一种形式的数据产生实体中读取数据。
这个实体可以是霍尼韦尔PHD的Application,也可以是Modbus的通讯协议,
还可以是一种PLC,也就是一种Device(硬件设备),或者是一种Platform。
2.常用的OPC服务器
2.1 Matrikon公司的OPCServer Simulator
更好的一点是,如果想做大规模的测试,10万点,那么只需要在它的Random下添加任意名称即可,OPCServer会自动给你建出对应的测点,还是随机数变化。
2.2 Kepware公司的OPCServer
3. 常用的OPC客户端
3.1 Matrikon公司的OPCClient
标准,稳定,单文件,通讯过程的信息还比较丰富,我是比较喜欢用它在创建OPC组时定义同步方式或异步方式来验证远程计算机的OPC配置是否正确。缺点就是大了点,2M多。
3.2 Kepware公司的OPCClient
功能很强大,标准,稳定,日志信息很丰富,最推荐的功能是支持对OPCServer中点名的条件过滤,支持点表的导入导出,支持自动导入OPCServer的所有点,根据点表识别好点坏点,按照列排序,用它可以弥补很多国产组态软件不能在线遍历OPCServer点表的功能、不能过滤OPCServer点的功能、不能识别OPCServer中好点坏点的功能等。缺点就是非单文件。
4. OPC Client和OPC Server配置的安全策略
下表是对 OPC Client 和 OPC Server 所在操作系统之间的安全策略的配置对应说明:
5. Java实现OPC客户端
5.1 Openscada链接配置方法
OPC数据存取服务器由三个对象组成:服务器对象(Server)、组对象(Group)和项对象(Item)。
按说明配置好OPC Server 与 OPC Client 所在电脑的组件服务配置和防火墙设置(windows7直接关闭就行了)
注意一定要把本机希望链接OPC服务的用户或用户组添加到DCOM配置列表中,否则链接会失败。
如果其他都配置好了,运行程序还是连接不上的话,首先常看防火墙是否配置(或关闭)。
OPC对象——服务器(OPC Server)、组(OPC Group)、项(OPC Item)。
Openscada开源项目:ConnectionInformation中:
Clsid 和 Grogid 作用相同,只要设置一个就可以了,如果两个都设置了,程序会优先选择Clsid。
我们建议使用Clsid,因为使用Grogid时,Openscada的内部处理还是会通过JISystem.getClsidFromProgId( progId )方法将其转换为Clsid,并且还需要进行服务器上用户的权限的高级配置才可以使用。
查找Clsid和Grogid的方法:打开注册表(regedit)—》在HKEY_CLASSES_ROOT下找到相应的OPC服务器名称,该名称就是Grogid,在其目录下的CLSID的值(右边区域)就是Clsid