OPC UA  https://en.wikipedia.org/wiki/OPC_Unified_Architecture

一、简介

OPCUA指的是 Open Platform Communications Unified Architecture

以前OPC指的是 OLE for Process Control

但是以前的OPC只支持Windows系统,需要DCOM支持,用起来特别难用。

所以就有了现在的OPCUA,统一架构。

OPC 规范由国际非营利组织 OPC 基金会制定,该组织于 1994 年由领先的工业自动化产品制造商制定。

OPCUA与modbus的突出区别是OPCUA带有语义属性 semantic description,了解modbus的人都知道,modbus协议是以地址为位置存储数据的,每个位置存储一个word,16个bit。 比如modbus协议取地址100这个位置寄存器的值 0x 00 01 02 03, 数拿到了,至于这数代表的意思是温度还是速度等等,都是由设备定义,外界也要知道。 因此负责PLC开发的工程师要向SCADA的工程师提供一份数据点表,就是说明某个位置的值代表什么意思。

OPCUA就不需要这,OPCUA是对外界的抽象,以节点进行封装,还只需要一个节点名即可拿到这个值。

可以参考这个网页进行了解:

https://zhuanlan.zhihu.com/p/346842505

二、open62541

open62541(http://open62541.org)是一个开源的免费实现OPC UA,用C99和C ++ 98语言的通用子集编写。该库可与所有主要编译器一起使用,并提供实现专用OPC UA客户端和服务器的必要工具,或将基于OPC UA的通信集成到现有应用程序中。open62541库与平台无关。所有特定于平台的功能都是通过可交换的插件实现的。为主要操作系统提供了插件实现。
open62541根据Mozilla Public License v2.0获得许可。因此open62541库可用于非开源项目

代码主页位于:GitHub - open62541/open62541: Open source implementation of OPC UA (OPC Unified Architecture) aka IEC 62541 licensed under Mozilla Public License v2.0

open62541的文档位于这里:

https://open62541.org/doc/current/index.html

编译open62541参考:

Building open62541 — open62541 1.2.0-rc2-44-ge5eba7bd documentation

安装参考:

Installing open62541 — open62541 1.2.0-rc2-44-ge5eba7bd documentation

一般流程是这样的:

cd open62541
mkdir build
cd build
cmake ..
make

但是需要注意在cmake的时候有几个参数需要注意一下:

cmake -DBUILD_SHARED_LIBS=OFF \-DCMAKE_BUILD_TYPE=Debug \-DUA_ENABLE_AMALGAMATION=OFF \-DUA_BUILD_EXAMPLES=ON \-DUA_ENABLE_SUBSCRIPTIONS=ON \-DUA_ENABLE_PUBSUB=ON \-DUA_ENABLE_PUBSUB_ETH_UADP=ON \-DUA_ENABLE_PUBSUB_INFORMATIONMODEL=ON \..make -j

UA_BUILD_EXAMPLES 是否生成examples

UA_BUILD_SELFSIGNED_CERTIFICATE 是否生成自签名证书

UA_ENABLE_SUBSCRIPTIONS 启用 sub订阅

UA_ENABLE_AMALGAMATION 用来生成独立的open62541.c 和 open62541.h头文件,不推荐开启这个选项,但编译61499的forte时要用

UA_ENABLE_PUBSUB 用于开启pub/sub功能 ,目前是试验性功能

编译选项说明见于:

Building open62541 — open62541 1.2.0-rc2-44-ge5eba7bd documentation

与FORTE集成的时候可以参考:

OPC UA with IEC 61499 Tutorial

三、examples

编译生成的examples位于build/bin/examples目录下。

不同的cmake选项会生成不同的文件,比如是否启用SUBSCRIPTIONS会对是否编译与 订阅相关的demo产生影响。

在CMakeLists.txt中是这么写的:

if(UA_ENABLE_SUBSCRIPTIONS)add_example(tutorial_server_monitoreditems tutorial_server_monitoreditems.c)
endif()

生成的examples

~/work/plc/open62541/build/bin/examples$ ll
总用量 45276
drwxrwxr-x 2 pcl pcl    4096 2月  17 15:00 ./
drwxrwxr-x 3 pcl pcl    4096 2月  17 15:00 ../
-rwxrwxr-x 1 pcl pcl 1866824 2月  17 15:00 access_control_client*
-rwxrwxr-x 1 pcl pcl 1819168 2月  17 15:00 access_control_server*
-rwxrwxr-x 1 pcl pcl 1926112 2月  17 15:00 client*
-rwxrwxr-x 1 pcl pcl 1894248 2月  17 15:00 client_async*
-rwxrwxr-x 1 pcl pcl 1871248 2月  17 15:00 client_connect*
-rwxrwxr-x 1 pcl pcl 1835808 2月  17 15:00 client_connectivitycheck_loop*
-rwxrwxr-x 1 pcl pcl 1871384 2月  17 15:00 client_connect_loop*
-rwxrwxr-x 1 pcl pcl 1844440 2月  17 15:00 client_subscription_loop*
-rwxrwxr-x 1 pcl pcl 1870576 2月  17 15:00 custom_datatype_client*
-rwxrwxr-x 1 pcl pcl 1825032 2月  17 15:00 custom_datatype_server*
-rwxrwxr-x 1 pcl pcl 1863112 2月  17 15:00 server_ctt*
-rwxrwxr-x 1 pcl pcl 1837120 2月  17 15:00 server_inheritance*
-rwxrwxr-x 1 pcl pcl 1823888 2月  17 15:00 server_instantiation*
-rwxrwxr-x 1 pcl pcl 1818144 2月  17 15:00 server_mainloop*
-rwxrwxr-x 1 pcl pcl 1841568 2月  17 15:00 server_nodeset*
-rwxrwxr-x 1 pcl pcl 1818008 2月  17 15:00 server_repeated_job*
-rwxrwxr-x 1 pcl pcl 1842832 2月  17 15:00 tutorial_client_events*
-rwxrwxr-x 1 pcl pcl 1867296 2月  17 15:00 tutorial_client_firststeps*
-rwxrwxr-x 1 pcl pcl  176728 2月  17 15:00 tutorial_datatypes*
-rwxrwxr-x 1 pcl pcl 1831056 2月  17 15:00 tutorial_server_datasource*
-rwxrwxr-x 1 pcl pcl 1817856 2月  17 15:00 tutorial_server_firststeps*
-rwxrwxr-x 1 pcl pcl 1830024 2月  17 15:00 tutorial_server_method*
-rwxrwxr-x 1 pcl pcl 1824104 2月  17 15:00 tutorial_server_monitoreditems*
-rwxrwxr-x 1 pcl pcl 1839960 2月  17 15:00 tutorial_server_object*
-rwxrwxr-x 1 pcl pcl 1825456 2月  17 15:00 tutorial_server_variable*
-rwxrwxr-x 1 pcl pcl 1825112 2月  17 15:00 tutorial_server_variabletype*

四、specification

英文原版specification链接如下

最新版本是v1.0.4

Unified Architecture - OPC Foundation

OPC UA学习笔记相关推荐

  1. OPC协议学习笔记?

    OPC全称是Object Linking and Embedding(OLE) for Process Control,它的出现为基于Windows的应用程序和现场过程控制应用建立了桥梁. 换句话说, ...

  2. OPC UA学习心得 — 1 OPC基础

    1. OPC概述 OPC是独立于平台的,用来确保不同厂商设备之间信息无缝传输的一系列规范,是用于数据安全交换时的互操作性标准. 最初的OPC标准仅限于Windows操作系统,因此OPC是OLE for ...

  3. [1] OPC UA基础知识简介

    OPC UA简介 OPC 什么是OPC? 为什么需要OPC? OPCUA简介 什么是OPC UA? OPC UA的优势: OPC UA规范标准 OPC UA基础 OPC UA 软件层 OPC UA 学 ...

  4. OPC UA - Open62541学习

    前言 这几天看了看Open62541,这是用C语言遵循C99标准实现的一个开源跨平台OPC UA库.学习过程中发现好多不明白的运行结果,可能是自己没搞太明白,也可能是源码有些潜在bug,希望大神看到指 ...

  5. 《通信统一架构OPC UA实践》 - 阅读笔记 1 工业4.0基础与OPC UA的实践

    系列目录 - 阅读笔记 2 OPC UA信息模型及建模 目录 系列目录 第一章 OPC UA--工业4.0基础 1.1.通信协议 1.2.导入OPA UA的步骤 1.3. 趋势和展望 第二章 OPC ...

  6. Opcua学习笔记1 opc介绍

    什么是opc Open Platform Communications=OPC,是工业信息通信的一系列标准和规范,规定了不同制造商的控制设备直接的实时数据通信标准.目的是统一不同硬件以及软件数据协议. ...

  7. OPC UA JAVA开发笔记(四):数据写入

    这一节我们来将如何实现Client端的数据持续写入OPC UA.一下程序均在Spring Boot环境中,请先添加相应的依赖 首先,我们准备一个RestController用于提供JSON数据. @R ...

  8. OPC UA 统一架构学习2

    opc ua 规范开始看起来还可以,后面越来越晦涩,翻译的水平还是有限,很多话说的不够浅显易懂,按照老外的原版生搬硬套. 转载于:https://blog.51cto.com/7296556/1901 ...

  9. HALCON 21.11:学习笔记---OPC_UA(I/O)

    HALCON 21.11:学习笔记---OPC_UA(I/O) 本章主要提供有关OPC_UA的信息. 系统要求 Intel compatible PC with Windows 7 (32-bit o ...

最新文章

  1. 3dmax Vray建筑可视化入门学习教程
  2. util.Date与sql.Date的相互转换以及区别
  3. POJ 1741 树分治
  4. python常用模块之shelve模块
  5. 中国新能源商用车行业投资现状及前景规划分析报告2022-2027年版
  6. c语言错误 xef代表什么,单片机C语言代码手册 含100多个经典C程序
  7. html5点击事件_lt;detailsgt; | HTML5 详细内容标签
  8. [过年菜谱之]红烧鸡
  9. Javascript第二章中switch结构及与if的区别第二课
  10. orCAD导入AD库 连不上线 更改元件库 出现Unable To Save Part
  11. Python 正则表达式 re模块 groups/group
  12. 自动驾驶时代,巨头Tier 1的困境与突围
  13. 快商通AI智能客服机器人,荣获中国科学院《互联网周刊》重磅荣誉!
  14. springboot群发邮件问题实例
  15. eureka 缺点
  16. 一款开源的轻量级企业流程开发平台,源码分享
  17. 自学python接单_Python接私活,兼职轻松月薪过万,会技术就可走遍天下
  18. 脱机使用计算机是什么意思,电脑脱机状态是什么意思
  19. 防抖和节流的理解与实现
  20. ChatGPT软件技术栈解密

热门文章

  1. sql触发器Tigger
  2. 计算机认识新朋友教案,幼儿园认识新朋友教案
  3. 我的世界服务器圈地系统,我的世界领地指令大全 圈地方法分享
  4. 几款mac小应用,让你的苹果设备真正实现无缝衔接
  5. 51单片机入门学习 第八天
  6. 黑苹果 服务器系统安装教程,黑苹果安装教程,详细教您黑苹果怎么安装
  7. 35 实战 微额借款用户人品预测
  8. Spring Boot与Elasticsearch的对应版本
  9. 【云和恩墨】zData Light 敏捷助力威海市立医院核心系统性能提升
  10. Java 数组(三)二维数组