PLC OPC 信息模型(DI,PLCopen NodeSets)简介

        PLC 是最普及的自动化控制设备,PLC 厂商都已经在产品中置入了OPC UA的功能。本文更深入一点来讨论PLC 的OPC UA 信息模型。

PLC 的软件模型

        IEC61131-3 是世界范围内工业自动化第一个极力推行的标准化设计语言,它独立于任何单一厂商。

        IEC61131-3 是IEC61131 的第三部分。IEC61131 包括了下面几部分

  • 通用信息
  • 设备需求和测试
  • 程序设计语言
  • 用户指南
  • 通信
  • 安全
  • 模糊控制
  • 编程语言的实现和应用指南

IEC61131-3基本上描述了公共单元和程序设计语言。IEC61131-3 的软件模型如下图所示。

PLC OPC架构 opcua plc_数据块

 

了解PLCopen 的软件模型有助于我们学习PLCopen 的OPC UA信息模型。

PLC 的OPC UA模型

   OPC UA 为PLC 推荐了两个配套规范(Companion Specifications),它们分别是:

OPC UA DI NodeSets

OPC UA  PLCopen NodeSets

OPC UA DI

        DI 是英文(Device Integration)的缩写。又称为OPC UA For Device。它是一种通用的方式来表达设备及其组件的结构。DI是更专业设备模型的基础。例如分析设备(ADI),现场设备(FDI)或者符合PLCopen 标准的PLC。

在DI的模型中,顶层是设备对象(Device Object),它包含了两个组件:

parameterSet

包含了描述该设备的所有参数:它们包括:

  • 设备的型号(Model)
  • 制造厂商
  • 制造厂商的Uri
  • 硬件版本
  • 设备版本
  • 软件版本
  • 网络地址
  • 设备序列号
  • 产品代码

 

MethodSet

                为客户端提供的所有方法,典型的方法包括Start Stop。

PLC OPC架构 opcua plc_PLC OPC架构_02

        这两个对象都是从TopologyElementType 继承过来的。FunctionGroup 将参数和方法组成逻辑群组。在下面的例子中有ProcesData和Configuration

        UA Part DU 的另外一个概念是ConfugurableObjectType它提供了一种方法来组织设备的子组件。用来指明那些子组件能够被实例化。它们能够被SupportType引用。这些信息可以被配置客户端使用,使用户能够选择类型来实例化设备的子组件。

        SuportedType 文件夹包含了一组ModuleControlType 类型的实例。它包含了配置中能够实例化的模块。要由用户选择性地实例化。唯有CPU是已经配置好的ModuleType类型。。

PLC OPC架构 opcua plc_实例化_03

 

OPC UA PLCOpen

        OPC UA PLCOpen 是建立在DI模型基础上关于IEC61131-3 信息模型。下图给出了PLCopen 信息模型的基本框架:

PLC OPC架构 opcua plc_实例化_04

 

 

从上面的模型可见,OPCUA PLopen 的信息模型包括下面三个主要部分:

CtrlConfigurationType

        此ObjectType定义 OPC UA地址空间中可编程控制器系统的Ctrl 配置的表示。它引入了对象来对 Ctrl资源和不同类型的Ctrl 变量进行分组。CtrlConfigurationType 派生自 OPC 10000-100定义的TopologyElementType。图 15显示了CtrlConfigurationType

PLC OPC架构 opcua plc_信息模型_05

 

CtrlResourceType

        ObjectType定义 OPC UA地址空间中可编程控制器系统的Crtl 资源的表示。它引入了对象来分组配置和诊断功能、GlobalVars和在Tasks控制下执行的Ctrl 程序。CtrlResourceType派生 自OPC 10000-100中定义的DeviceType。图 16显示了CtrlResourceType

PLC OPC架构 opcua plc_信息模型_06

CtrlProgramOrganizationUnitType

        ObjectType定义OPC UA地址空间中可编程控制器系统的Ctrl 程序组织单元。它定义了如何表示Ctrl程序组织单元的组件,如变量和Ctrl 功能块。CtrlProgramOrganizationUnitType 派生自 OPC 10000-100中定义的BlockType。

PLC OPC架构 opcua plc_数据块_07

 

观察和操作的入口

        从上面的描述可以看出来,OPC UA的模型并不是简单的分层结构, 它们是交叉引用的。我们可以使用不同方式来构建信息模型,也就是所谓的切入点。下面是分层结构的切入方法。

 

PLC OPC架构 opcua plc_信息模型_08

 

 以Ctrl Resources的对象作为入口

PLC OPC架构 opcua plc_PLC OPC架构_09

 

 

实际产品的OPC UA 信息模型

        上面讲述了OPC UA DI和OPCUA PLCopen 的信息模型。它们还是比较复杂的,全面的。对于实际的产品而言,并没有如此复杂。通常都是将能够向外部暴露的数据放置到OPC UA Server 上。

 

以西门子S7-1200 为例。它的软件模型如下:

PLC OPC架构 opcua plc_PLC OPC架构_10

 

OB(Organization  block)

OB 是PLC 放置程序的块。S7-1200 提供了7种OB。

  1. Program Cycle
  2. Startup
  3. Time delay interrupt
  4. Cyclic interrupt
  5. Hardware interrupt
  6. Time error interrupt
  7. Diagnostic error interrupt

 

FB(Function block)功能块

DB (Data block)数据块

数据块可以分为全局数据块。功能块实例的数据块。

S7-1200 配置OPC UA 的方式是在Global 数据块中选择某些数据放置到OPC UA Server 中。

 

结束语

        OPC UA 为PLC 建立了完整的信息模型。下一步我们研究如何参考这个模型构建IEC61499 控制器的信息模型。如何为没有实现OPC UA server 的PLC,控制器设备增加OPC UA Server 的方法,目前流行的做法是使用kepServer 软件。