OPC UA学习笔记
OPC UA??https://en.wikipedia.org/wiki/OPC_Unified_Architecture
一、簡介
OPCUA指的是?Open Platform Communications?Unified Architecture
以前OPC指的是 OLE for Process Control
但是以前的OPC只支持Windows系統(tǒng),需要DCOM支持,用起來特別難用。
所以就有了現(xiàn)在的OPCUA,統(tǒng)一架構(gòu)。
OPC 規(guī)范由國際非營利組織 OPC 基金會制定,該組織于 1994 年由領(lǐng)先的工業(yè)自動化產(chǎn)品制造商制定。
OPCUA與modbus的突出區(qū)別是OPCUA帶有語義屬性?semantic description,了解modbus的人都知道,modbus協(xié)議是以地址為位置存儲數(shù)據(jù)的,每個位置存儲一個word,16個bit。?比如modbus協(xié)議取地址100這個位置寄存器的值 0x 00 01 02 03,?數(shù)拿到了,至于這數(shù)代表的意思是溫度還是速度等等,都是由設(shè)備定義,外界也要知道。?因此負責PLC開發(fā)的工程師要向SCADA的工程師提供一份數(shù)據(jù)點表,就是說明某個位置的值代表什么意思。
OPCUA就不需要這,OPCUA是對外界的抽象,以節(jié)點進行封裝,還只需要一個節(jié)點名即可拿到這個值。
可以參考這個網(wǎng)頁進行了解:
https://zhuanlan.zhihu.com/p/346842505
二、open62541
open62541(http://open62541.org)是一個開源的免費實現(xiàn)OPC UA,用C99和C ++ 98語言的通用子集編寫。該庫可與所有主要編譯器一起使用,并提供實現(xiàn)專用OPC UA客戶端和服務器的必要工具,或?qū)⒒贠PC UA的通信集成到現(xiàn)有應用程序中。open62541庫與平臺無關(guān)。所有特定于平臺的功能都是通過可交換的插件實現(xiàn)的。為主要操作系統(tǒng)提供了插件實現(xiàn)。
open62541根據(jù)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的時候有幾個參數(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?用來生成獨立的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會對是否編譯與?訂閱相關(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学习笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 画图 平面图,房屋平面图
- 下一篇: 预测大盘最准确的指标_炒股天才江恩一辈子