1. 程式人生 > >OPC UA--open62541伺服器建立

OPC UA--open62541伺服器建立

之前寫過幾篇簡單的關於open62541的內容,發現很多人在建立工程時就遇到問題。這篇文章我會具體的說一下建立工程的過程

工具:Visual Stdio 2017

程式碼:https://open62541.org/,我下載的是兩個獨立的檔案,open62541.h和open62541.c

開啟Visual Stdio 2017,檔案新建專案,建立控制檯應用程式,選擇空專案,點選完成。

將剛剛下載好的open62541.h檔案新增到標頭檔案,open62541.c新增到原檔案,注意將這兩個檔案放在工程目錄裡,工程如下圖。


這兩個相當於庫函式,接下來就需要建立自己的伺服器server,在原始檔中建立Server.c,新增如下程式碼:

#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檔案,這個檔案好找,我會上傳到資源裡,給大家下載。

在資原始檔裡新增進ws2_32.lib檔案,工程目錄如圖。



此時,點選除錯,開始執行,便成功編譯,此時OPC UA伺服器已經建立好。