OPC UA学习笔记
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 -jUA_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)題。
- 上一篇: android 画图 平面图,房屋平面图
- 下一篇: 预测大盘最准确的指标_炒股天才江恩一辈子