-
open62541 TEST SERVER INSTALLPrograming/Ent.. 2022. 7. 18. 10:28
OPC-UA 통신 테스트를 진행해보려 한다.
리눅스 환경에 C 프로그래밍을 해야하는 상황이기 때문에 오픈소스중 open62541 을 사용해보려 한다.
리눅스는 Ubuntu 18.04.6 LTS를 설치하였고, 설치이후 ssh, ftp 설정을 하였다.
sudo apt-get update
sudo apt-get install sshsudo apt-get install openssh-serversudo /etc/init.d/ssh restartsudo apt-get install vsftpd (FTP설치)sudo vim /etc/ftpusers (#root로 주석 처리)sudo vi /etc/vsftpd.conf-write_enable=YES-anon_upload_enable=YES-anon_mkdir_write_enable=YESsudo service vsftpd restartsudo passwd root (root비밀번호)Building open62541
sudo apt-get install git build-essential gcc pkg-config cmake python # enable additional features sudo apt-get install cmake-curses-gui # for the ccmake graphical interface sudo apt-get install libmbedtls-dev # for encryption support sudo apt-get install check libsubunit-dev # for unit tests sudo apt-get install python-sphinx graphviz # for documentation generation sudo apt-get install python-sphinx-rtd-theme # documentation style sudo git clone https://github.com/open62541/open62541.git cd open62541 mkdir build cd build cmake .. make # select additional features ccmake .. #(UA_ENABLE_AMALGAMATION ON으로 설정, C -> G key) make
이상 설치 완료!!
정상적이라면 생성된 build 폴더 안에 open62541.c, open62541.h 파일이 생성되었을것이다.
myServer.c 를 작성한다. (build 폴더 안)
//#include <open62541/plugin/log_stdout.h> //#include <open62541/server.h> //#include <open62541/server_config_default.h> #include "open62541.h" #include <signal.h> #include <stdlib.h> static volatile UA_Boolean running = true; static void stopHandler(int sig) { UA_LOG_INFO(UA_Log_Stdout, UA_LOGCATEGORY_USERLAND, "received ctrl-c"); running = false; } int main(void) { signal(SIGINT, stopHandler); signal(SIGTERM, stopHandler); UA_Server *server = UA_Server_new(); UA_ServerConfig_setDefault(UA_Server_getConfig(server)); UA_StatusCode retval = UA_Server_run(server, &running); UA_Server_delete(server); return retval == UA_STATUSCODE_GOOD ? EXIT_SUCCESS : EXIT_FAILURE; }
GCC 컴파일러를 사용하여 다음 명령은 실행 파일을 생성합니다.
gcc -std=c99 open62541.c myServer.c -pthread -o myServer
./myServer 를 실행하면 정상 실행됨을 확인할 수 있다.
적당한 OPC-UA 클라이언트 프로그램으로 아래 URL 입력 후 확인해볼 수 있다.
opc.tcp://127.0.0.1:4840
'Programing > Ent..' 카테고리의 다른 글
Ubuntu 정규버전 vs LTS버전 (0) 2022.09.01 Ubuntu에서 Python 버전을 변경 (0) 2022.07.25 MS-SQL 테이블 복사 (0) 2009.11.13 OSI 7계층 (0) 2009.03.17 컴포넌트 기반 개발(CBD) (0) 2008.08.13 Debug 와 Release (0) 2008.03.04 윈도우 키보드 이벤트 값 (0) 2008.02.22 struct MSG, WNDCLASSEX (0) 2008.01.30