OPC UA--open62541伺服器建立
阿新 • • 發佈:2019-01-05
之前寫過幾篇簡單的關於open62541的內容,發現很多人在建立工程時就遇到問題。這篇文章我會具體的說一下建立工程的過程。
工具:Visual Stdio 2017
程式碼:https://open62541.org/,我下載的是兩個獨立的檔案,open62541.h和open62541.c
開啟Visual Stdio 2017,檔案新建專案,建立控制檯應用程式,選擇空專案,點選完成。
將剛剛下載好的open62541.h檔案新增到標頭檔案,open62541.c新增到原檔案,注意將這兩個檔案放在工程目錄裡,工程如下圖。
這兩個相當於庫函式,接下來就需要建立自己的伺服器server,在原始檔中建立Server.c,新增如下程式碼:
點選編譯,發現提示錯誤,仔細看是我們缺少一個WS2_32.lib檔案,這個檔案好找,我會上傳到資源裡,給大家下載。#include <signal.h> #include "open62541.h" UA_Boolean running = true; static void stopHandler(int sign) { UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_SERVER, "received ctrl-c"); running = false; } int main(void) { signal(SIGINT, stopHandler); signal(SIGTERM, stopHandler); UA_ServerConfig config = UA_ServerConfig_standard; UA_ServerNetworkLayer nl = UA_ServerNetworkLayerTCP(UA_ConnectionConfig_standard, 16664); config.networkLayers = &nl; config.networkLayersSize = 1; UA_Server *server = UA_Server_new(config); UA_Server_run(server, &running); UA_Server_delete(server); nl.deleteMembers(&nl); return 0; }
在資原始檔裡新增進ws2_32.lib檔案,工程目錄如圖。
此時,點選除錯,開始執行,便成功編譯,此時OPC UA伺服器已經建立好。