1

OPC统一架构(UA)于2008年发布,是一种与平台无关的面向服务的体系结构,将各个OPC Classic规范的所有功能集成到一个可扩展的框架中。

传统的OPC技术在控制级别很好地解决了硬件设备间的互通性问题,在企业层面的通信标准化是同样需要的。OPCUA之前的访问规范都是基于微软的COM/DCOM技术,这会给新增层面的通信带来不可根除的弱点。

OPCUA,是在传统OPC技术取得很大成功之后的又一个突破,让数据采集、信息模型化以及工厂底层与企业层面之间的通讯更加安全、可靠。

OPCUA的几大优势:

  • 与平台无关,可在任何操作系统上运行
  • 为未来的先进系统做好准备,与保留系统继续兼容
  • 配置和维护更加方便
  • 基于服务的技术
  • 可见性增加
  • 通信范围更广
  • 通信性能提高

在CODESYS软甲中,集成了OPCUA服务器,可以支持用户通过OPCUA客户端访问CODESYS runtime中的数据。

在CODESYS中创建包含OPCUA服务器的工程

  1. 在CODESYS中创建一个标准工程
    image.png
  2. 在PLC_PRG中编写程序,例如:

    声明部分:

    PROGRAM PLC_PRG
    VAR
        var1:INT;
        var2:INT;
        var3:INT;
    END_VAR

    实现部分:

    var3 := var1 + var2;
  3. 在Application对象下添加符号配置对象
    image.png
  4. 在符号配置对话框中勾选“支持OPC UA特征”,单击“打开”
    image.png
  5. 编译程序,在符号配置对象中勾选需要添加到OPCUA服务器中的变量
    image.png
  6. 将程序下载到runtime

为CODESYS OPC UA服务器创建证书

  1. 在CODESYS Store下载CODESYS Security Agent,链接:
    https://store.codesys.com/cod...
  2. 双击打开CODESYS Security Agent x.x.x.x.package, 安装CODESYS Security Agent
  3. 重启CODESYS软件,打开右下角盾牌图标
    image.png
  4. 单击Devices选项卡
    image.png
  5. 单击刷新按钮,Information列出现Device对象
    image.png
  6. 单击Device对象,选择右边的OPCUA Server(not available)
    image.png
  7. 单击创建按钮,创建OPCUA Server证书
    image.png
  8. 创建完成,如下图所示
    image.png
  9. 重启runtime

使用UaExpert客户端通过加密连接访问OPCUA服务器

  1. 启动UaExpert客户端
  2. 在Server对象下添加服务器
    image.png
  3. 在Add Server对话框找到需要签名并加密的OPCUA服务器,单击OK
    image.png
  4. 连接服务器
    image.png
  5. 弹出不信任的证书对话框,单击信任服务器证书,再单击继续
    image.png
  6. 回到CODESYS软件,在Quarantined Certificates中出现UaExpert签发的证书,
    image.png
  7. 将其拖入Trusted Certificates
    image.png
  8. 现在可以使用UaExpert连接OPCUA服务器,访问服务器中的变量
    image.png
  9. 将变量拖入 Data Access View,可以读写变量值
    image.png
  10. 在CODESYS中可以监视变量变化
    image.png

关联在CODESYS项目中创建的事件

CODESYS OPC UA服务器提供了发送标准OPC UA事件的功能。

  1. 在Application下方添加一个报警配置对象。
    image.png
  2. 在报警配置下面添加一个报警类对象,命名为Event
    image.png
  3. 在Event报警类的窗口中选择确认方式为REP。
    image.png
  4. 在报警配置下面添加一个报警组对象,命名为ApplicationEvent。
    image.png
  5. 在ApplicationEvent报警组更改以下参数:
    image.png
  6. 在库管理器中添加CmpOPCUAProviderAlarmConfiguration
    image.png
  7. 在PLC_PRG中添加调用

    AlarmManager.AlarmGlobals.g_AlarmHandler.RaiseEvent(Alm_AlarmConfiguration_Alarmgroup_IDs.ID_ApplicationEvent, Alm_ApplicationEvent_Alarm_IDs.ID_0);
  8. 编译程序并下载到runtime
  9. 打开UaExpert的Document--Add
    image.png
  10. 添加Event View
    image.png
  11. 将Application拖动到Event View的Configuration窗口,可以看到CODESYS的报警信息
    image.png

sySeDoC
7 声望10 粉丝