ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • open62541 TEST SERVER INSTALL
    Programing/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 ssh
    sudo apt-get install openssh-server
    sudo /etc/init.d/ssh restart
    sudo 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=YES
    sudo service vsftpd restart
    sudo 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
Designed by Tistory.