物联网数据接入篇-应用层 OPC(8)
物联网数据接入篇-应用层 OPC(8)
OPC(OLE for Process Control)框架是工业控制和生产自动化领域中使用的硬件和软件的接口标准。它解决了PLC和PC上SCADA系统或HMI软件进行数据交换时驱动程序不一致、通信协议和接口不一致的问题。OPC UA作为OPC的升级版本,解决了依赖Windows和不能连接互联网的问题,具有跨平台、安全性高、复杂信息模型等特点。
OPC 解决的问题
PLC和PC上的SCADA系统或者HMI软件(称为OPC Client)进行数据交换时,驱动程序不一致,通信协议和接口不一致。且向更上一层传递数据也不容易。
没有 OPC 之前
电脑上要安装3个驱动程序,安装3套组态软件。数据标准也不一样,不能整合到一起自己用,也不能很好的把数据在交给上一层的应用。
有了 OPC 标准之后
电脑上安装1个驱动程序,安装1个SCADA系统,就能访问所有数据。统一监控、调度,统一数据分析、上传,都得到了很好的解决。硬件厂家生产的硬件和驱动程序,必须符合OPC规范,把数据发送到OPC服务端,通过OPC客户端,有一套标准的读取数据、解析数据的方法。
不需要这么多驱动程序了,大家都说中文,就不要翻译了,就是这个意思。严谨一点,这里驱动程序1、2、3还是需要的,但是我们电脑可以不用过度关心他们了。
OPC 服务端和客户端怎么沟通
正好微软系统中就有这么一个沟通工具框架OLE,啥是OLE?Object Link Embeded,在程序之间链接和嵌入对象数据。解决的是程序与程序之间的通信问题(可以是不同电脑之间的程序)。
他的历史是这样的:
微软在OLE2.0中建立了一个称为COM(Component Object Model,即组件对象模式)的新规范。为了满足Internet战略,微软把OLE换成了ActiveX。通俗来说,OLE/COM/ActiveX技术,就是让我们在word文档中调用Excel的能力插入表格,插入之后双击还能调用Excel能力进行编辑,是一种跨应用程序相互调用的一种能力规范。
OPC 有哪些能力
在PLC和HMI中间增加一个标准化接口就是OPC Server,而不用知道每个驱动程序的细节。他有以下能力:
- OPC DA:它允许收集实时读取、写入和监控过程安量。
- OPC HA:OPC历史数据访问,提供对已存储数据的访问的。
- OPC A&E:OPC报警和事件接口。允许接受事件和报警通知。
OPC 有什么问题
- 过度依赖Windows系统。因为COM/DCOM技术必须依赖Windows,限制了OPC发展。为了解决这个问题,出现了OPC UA(OPC统一架构)。
- 不能进行互联网通信。不能做到随时随地的监控数据。
OPC DA 和 OPC
既然OPC(DA)有问题,那他就要升级到OPC UA。接下来介绍一下这两种规范的差异:
OPC UA是为了顺应标准化以及跨平台的发展趋势,也是为了能更好地推广OPC,OPC基金会于近些年来在先前OPC DA成功应用的基础上推出了一项全新的OPC标准,即OPC UA。
OPC UA接口协议涵盖了之前的A&E、DA、OPC XML DA或者HDA,仅通过一个地址空间就能访问先前所有的对象,并且不会受到WINDOWS平台的限制,这是因为它是从传输层Scoket及以上进行定义的。
OPC UA 五大特点
OPC统一框架,解决了依赖Windows和不能连接互联网问题。(Open Platform Communications Unified Architecture)。他有五大特点:
跨平台和跨语言:
消除了对COM/DCOM技术的依赖,要求OPC UA应用可以在不同平台部署(PLC、嵌入式控制器、网关、Web应用程序、智能手机、Windows、Linux、)。可联网安全性高:
可以联网,使用HTTPS协议,防火墙友好,联网安全交换信息。复杂信息模型,实物资产数字化:
①数据高度结构化:能够详细地定义和组织各种复杂的工业对象和数据。
②丰富的语义表达:可以准确地传达对象的属性、关系和行为等信息。简单说就是不只传了一个值、值得质量、时间戳,还包括他的单位、设定值、传感器的类型、配置参数、它在整个系统架构中的位置、他与其他设备组件的关系。面向服务架构SOA:
主站从站不是传输比特或字节(对,这里cue的就是Modbus,传输的是bit或者byte,用户不友好型)。OPC UA Server提供了读、写、配置等等服务供Client端调用。可读性强、可复用性强、可维护性强。这里采用了面向服务的设计,可以调用很多标准的方法来用。可能之前写的是 一堆二进制代码,现在可以用人能看得懂的英文来编程了。强大的IT集成性:
说的是传感器直接能把数据传到网上而不经过中间层。
之前数据是这样传递的:传感器–PLC逻辑控制器–SCADA/HMI系统–MES智能制造系统–ERP系统。
通过OPC UA,这样传递数据:传感器–PLC逻辑控制器–OPC服务器–ERP系统。他的野心和大,能实现PLC逻辑控制器–SCADA/HMI系统–MES智能制造系统–ERP系统这几两个项目之间的俩俩通信,为工业4.0打好基础。
OPC UA 基础架构
OPC UA 强大的信息建模功能
强大的信息建模(IM)是OPC UA的核心。OPC UA定义了基本模块和通用规则,并使用它们构建面向对象的模型(看上面的图,也就知道OPC为啥不单纯是应用层协议了):
- 服务发现:也叫查找,允许客户端查找OPC UA服务器、以及服务器支持的协议、安全策略和其他功能。
- 定义协议映射:允许在OPC UA应用程序之间建立连接和交换标准化的信息。
- 信息访问:包括在地址空间公开基于对象的信息模型的方法和访问这些信息的服务。看,是面向服务的。
- 安全性和稳健性:将两者集成到信息传输和信息访问当中。稳健也叫鲁棒性。
- 信息模型在此基础架构之上逐级分层。OPC UA指定了一些基本信息模型(数据访问—DA、报警和事件—AE等等),这些模型定义了如下常用的对象,包括实时信息和历史数据变量以及警报。
OPC UA 通信协议
二进制通讯协定是 opc.tcp://Server;二进制传输效率高,资源需求少,可以穿透防火墙。
Web服务的通讯协定是 http://Server。支持不同的开发工具和开发环境。
客户端-服务器通信:
OPC UA客户端-服务器通信采用面向服务的体系结构(SOA),服务定义了信息模型的访问方式。不同于传统的Web服务,传统Web服务使用基于XML的WSDL来描述服务,这种方法存在提供商间互操作性差异的问题。
相比之下,OPC UA预先定义了通用的标准化服务,确保所有实现都兼容。由于服务的标准化,OPC UA不需要像WSDL那样的特定定义,这确保了所有实现的兼容性和互操作性,使调用者无需了解特定的服务结构或行为细节。
发布、订阅模式:
PubSub模式为数据和事件通知提供了一种替代机制,与传统的客户端-服务器通信不同,它优化了多对多的交互。在PubSub模型中,多个客户端可以同时接收广播通知,这些通知以“一触即发”的方式发送。
使用PubSub,OPC UA应用程序不直接交换请求和响应。相反,发布者将消息发送到面向消息的中间件,而无需知道订阅者的具体身份。同样,订阅者可以通过订阅感兴趣的数据或事件,而发布者不需要知道具体哪些订阅者存在。
PubSub和客户端-服务器模式都基于OPC UA的信息模型。通常情况下,OPC UA服务器充当发布者,而OPC UA客户端充当订阅者。本地的OPC UA客户端-服务器通信可以用于配置和管理PubSub组件。
OPC DA 和 OPC UA 的区别
应用
OPC Server提供数据采集、协议转换、数据管理服务。支持数据采集与下控,下控还是推荐用IO server。
- 工业自动化:在工厂中连接各种控制系统、设备和监控软件,实现数据共享和协同工作。
- 智能制造:助力智能工厂中设备之间的数据交互和智能化管理。
- 能源管理:用于能源监控系统,实时获取和分析能源数据。
- 楼宇自动化:在智能楼宇系统中,使不同的子系统能够高效通信。
- 过程控制:确保过程控制系统中数据的准确和及时传递。
通俗来说,OPC是个中介,OPC包括一整套接口、属性和方法的标准集,用于过程控制和制造业自动化系统。必须依赖Windows系统,就是说OPC Server必须部署在Windows服务器上,以为他依赖了Windows的COM技术(不太严谨哈,OPC UA就致力于跨系统服务)。
最快的学习方法是看官方文档:OPC-UA-Interoperability-For-Industrie4-and-IoT-CN-v11s。https://opcfoundation.org/wp-content/uploads/2020/09/OPC-UA-Interoperability-For-Industrie4-and-IoT-CN-v11s.pdf