日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

OPC UA学习笔记

發(fā)布時(shí)間:2023/12/14 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OPC UA学习笔记 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

一、簡(jiǎn)介

OPCUA指的是?Open Platform Communications?Unified Architecture

以前OPC指的是 OLE for Process Control

但是以前的OPC只支持Windows系統(tǒng),需要DCOM支持,用起來(lái)特別難用。

所以就有了現(xiàn)在的OPCUA,統(tǒng)一架構(gòu)。

OPC 規(guī)范由國(guó)際非營(yíng)利組織 OPC 基金會(huì)制定,該組織于 1994 年由領(lǐng)先的工業(yè)自動(dòng)化產(chǎn)品制造商制定。

OPCUA與modbus的突出區(qū)別是OPCUA帶有語(yǔ)義屬性?semantic description,了解modbus的人都知道,modbus協(xié)議是以地址為位置存儲(chǔ)數(shù)據(jù)的,每個(gè)位置存儲(chǔ)一個(gè)word,16個(gè)bit。?比如modbus協(xié)議取地址100這個(gè)位置寄存器的值 0x 00 01 02 03,?數(shù)拿到了,至于這數(shù)代表的意思是溫度還是速度等等,都是由設(shè)備定義,外界也要知道。?因此負(fù)責(zé)PLC開發(fā)的工程師要向SCADA的工程師提供一份數(shù)據(jù)點(diǎn)表,就是說(shuō)明某個(gè)位置的值代表什么意思。

OPCUA就不需要這,OPCUA是對(duì)外界的抽象,以節(jié)點(diǎn)進(jìn)行封裝,還只需要一個(gè)節(jié)點(diǎn)名即可拿到這個(gè)值。

可以參考這個(gè)網(wǎng)頁(yè)進(jìn)行了解:

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

二、open62541

open62541(http://open62541.org)是一個(gè)開源的免費(fèi)實(shí)現(xiàn)OPC UA,用C99和C ++ 98語(yǔ)言的通用子集編寫。該庫(kù)可與所有主要編譯器一起使用,并提供實(shí)現(xiàn)專用OPC UA客戶端和服務(wù)器的必要工具,或?qū)⒒贠PC UA的通信集成到現(xiàn)有應(yīng)用程序中。open62541庫(kù)與平臺(tái)無(wú)關(guān)。所有特定于平臺(tái)的功能都是通過(guò)可交換的插件實(shí)現(xiàn)的。為主要操作系統(tǒng)提供了插件實(shí)現(xiàn)。
open62541根據(jù)Mozilla Public License v2.0獲得許可。因此open62541庫(kù)可用于非開源項(xiàng)目。

代碼主頁(yè)位于: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的時(shí)候有幾個(gè)參數(shù)需要注意一下:

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?用來(lái)生成獨(dú)立的open62541.c?和 open62541.h頭文件,不推薦開啟這個(gè)選項(xiàng),但編譯61499的forte時(shí)要用

UA_ENABLE_PUBSUB?用于開啟pub/sub功能 ,目前是試驗(yàn)性功能

編譯選項(xiàng)說(shuō)明見于:

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

與FORTE集成的時(shí)候可以參考:

OPC UA with IEC 61499 Tutorial

三、examples

編譯生成的examples位于build/bin/examples目錄下。

不同的cmake選項(xiàng)會(huì)生成不同的文件,比如是否啟用SUBSCRIPTIONS會(huì)對(duì)是否編譯與?訂閱相關(guān)的demo產(chǎn)生影響。

在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

總結(jié)

以上是生活随笔為你收集整理的OPC UA学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。