블로그2026. 6. 16.

EASY LOGGER OPCUA 설정 사용방법

EASY LOGGER OPCUA 설정 사용방법

EASY LOGGER 사용법: EASY LOGGER OPCUA 설정 사용방법

안녕하세요. 오늘은 EASY LOGGER를 현장에서 사용할 때 꼭 알아두면 좋은 기능과 설정 흐름을 블로그 포스팅 형식으로 정리했습니다. 기존 사용자메뉴얼의 실제 화면 캡처는 그대로 유지하고, 처음 보는 분도 흐름을 이해할 수 있도록 핵심 사용 순서를 먼저 배치했습니다.

EASY LOGGER MQTT OPC-UA 연동 흐름

이런 분께 추천합니다

  • PLC, 센서, 설비 데이터를 수집해야 하는 현장 담당자
  • 생산수량, 온도, 습도, 설비 상태를 DB/CSV/API로 관리하려는 사용자
  • EASY LOGGER 화면을 보면서 빠르게 설정 절차를 확인하고 싶은 사용자

이 기능의 핵심 특징

  • OPC-UA Server로 표준 Client read/subscribe 지원
  • Username/Certificate 기반 보안 접속
  • Node Preview로 PLC 주소와 OPC-UA Node 매핑 확인
  • WRITE 허용 범위를 선택적으로 제한

사용 흐름 요약

  1. OPC-UA Server Endpoint를 설정합니다.
  2. 인증서와 사용자 권한을 등록합니다.
  3. Node Preview로 수집값 노드를 확인합니다.
  4. Client에서 read/subscribe 또는 허용된 WRITE를 수행합니다.

실제 화면으로 보는 사용 방법

아래 내용은 원본 사용자메뉴얼의 화면 캡처와 절차를 유지하면서, 블로그에서 읽기 쉽게 정리한 본문입니다.

실제 EASY LOGGER hta1.iptime.org:8000의 OPCUA 설정 화면 예시입니다.

OPCUA Server Configuration 화면

처음 화면에서는 OPCUA Server Enable, Host/Port/Path, Security Policy, Auth Mode, WRITE CALLBACK, Endpoint Preview를 함께 확인합니다.

이 문서는 EASY LOGGER의 OPCUA 설정을 현장 사용자가 바로 이해하고 사용할 수 있도록 정리한 설명서입니다.

OPCUA는 PLC 또는 Modbus에서 수집한 값을 외부 프로그램에서 표준 방식으로 읽을 수 있게 해주는 서버 기능입니다.

가장 중요한 결론부터 정리하면 다음과 같습니다.

EASY LOGGER의 OPCUA Server는 수집값을 계속 밀어 보내는 기능이 아닙니다.
EASY LOGGER가 최신값을 가지고 있고, 외부 OPCUA Client가 필요한 값을 읽거나 구독합니다.
외부에서 PLC 값을 쓰려면 WRITE CALLBACK, Automatic Node Preview의 WRITE 선택, 사용자 권한이 모두 맞아야 합니다.
운영 환경에서는 Auth Mode = username 사용을 권장합니다.

예를 들어 MAIN 설정에서 PLC_A의 D100을 WORD로 수집하고 있다면 OPCUA에는 다음과 같은 노드가 자동으로 만들어집니다.

ns=2;s=EASY_LOGGER/Devices/PLC_A/Tags/D100

외부 프로그램은 이 노드를 읽어서 현재 PLC 값을 확인할 수 있습니다.

WRITE가 허용된 노드라면 외부 프로그램에서 값을 쓰고, EASY LOGGER가 기존 PLC WRITE 처리 경로를 통해 PLC로 전달합니다.


1. OPCUA 설정을 사용하는 목적

일반 수집은 보통 다음 방식으로 사용합니다.

  • PLC 또는 Modbus 값을 일정 주기로 읽는다.
  • 읽은 값을 DB 또는 CSV에 저장한다.
  • MQTT 또는 API로 외부 시스템에 전송한다.

OPCUA 설정은 이 방식과 다릅니다.

OPCUA는 외부 장비나 프로그램이 EASY LOGGER에 접속해서 필요한 값을 직접 읽을 수 있게 하는 기능입니다.

주로 다음 상황에서 사용합니다.

  • Node-RED에서 PLC 값을 읽고 싶을 때
  • SCADA, HMI, MES 같은 외부 시스템에서 EASY LOGGER 값을 읽고 싶을 때
  • 여러 PLC/Modbus 값을 하나의 OPCUA Server에서 보고 싶을 때
  • 외부 시스템에서 허용된 PLC 주소만 원격으로 쓰고 싶을 때
  • DB, MQTT, API와 별도로 표준 OPCUA 연동이 필요할 때

OPCUA는 외부 프로그램이 접속하는 방식이므로, EASY LOGGER가 값을 계속 전송하는 MQTT/API와는 동작 방식이 다릅니다.


2. OPCUA 동작 구조

EASY LOGGER의 OPCUA는 다음 순서로 동작합니다.

PLC / Modbus 값 수집
  -> EASY LOGGER가 최신값 보관
  -> OPCUA 노드에 자동 반영
  -> 외부 OPCUA Client가 읽기 또는 구독

WRITE를 사용하는 경우에는 다음 순서로 동작합니다.

외부 OPCUA Client에서 노드에 값 쓰기
  -> EASY LOGGER OPCUA Server가 WRITE 수신
  -> WRITE CALLBACK 허용 여부 확인
  -> 선택된 WRITE 노드인지 확인
  -> 기존 PLC WRITE 처리 경로로 전달
  -> PLC 또는 Modbus에 실제 값 쓰기

따라서 OPCUA를 사용해도 기존 DB 저장, MQTT 전송, API 전송 기능은 그대로 유지됩니다.

OPCUA는 기존 수집 로직을 막지 않도록 별도 서버로 동작하며, 수집값은 주소별 최신값만 보관합니다.


3. 사용 전 준비

OPCUA를 사용하기 전에 다음 항목을 먼저 확인합니다.

  • MAIN 설정 또는 Sequence 설정에 PLC/Modbus 수집 설정이 등록되어 있다.
  • 해당 수집 설정이 활성화되어 있다.
  • EASY LOGGER에서 실제 수집값이 갱신되고 있다.
  • 외부 Client PC에서 EASY LOGGER 장비 IP에 접속할 수 있다.
  • 기본 OPCUA 포트인 4840이 네트워크에서 차단되어 있지 않다.
  • 보안 접속을 사용할 경우 OPCUA 인증서를 먼저 생성한다.

수집 설정이 없거나 비활성화되어 있으면 OPCUA 노드가 만들어지지 않습니다.

OPCUA 화면의 Automatic Node Preview에 노드가 표시되는지 먼저 확인하는 것이 가장 중요합니다.


4. OPCUA 설정 화면 위치

웹브라우저에서 EASY LOGGER에 접속한 뒤 왼쪽 메뉴에서 다음 화면을 엽니다.

OPCUA 설정

화면은 크게 다음 영역으로 구성됩니다.

  • OPCUA Server Configuration
  • OPCUA User / Password
  • OPCUA Certificate / PKI
  • OPCUA Runtime Status
  • Automatic Node Preview

실제 화면에서는 서버 설정 아래로 사용자 계정, 인증서, Runtime Status, Node Preview가 이어지므로 설정 후 아래쪽 상태 영역까지 확인해야 합니다.

처음 설정할 때는 아래 순서로 진행하는 것이 좋습니다.

  1. OPCUA Certificate / PKI에서 인증서를 생성한다.
  2. OPCUA User / Password에서 사용자 계정을 만든다.
  3. OPCUA Server Configuration에서 Auth Mode와 포트를 설정한다.
  4. WRITE가 필요하면 WRITE CALLBACK을 켠다.
  5. Automatic Node Preview에서 WRITE 허용 노드를 선택한다.
  6. 설정 저장을 누른다.
  7. Enable을 켠다.
  8. Runtime Status가 RUNNING인지 확인한다.

인증 없이 내부 테스트만 할 경우에는 인증서와 사용자 계정 없이 Auth Mode = anonymous로 먼저 확인할 수 있습니다.


5. OPCUA Server Configuration 입력 항목

5.1 Enable / Disable

OPCUA Server를 켜거나 끄는 스위치입니다.

상태의미
EnableOPCUA Server 실행
DisableOPCUA Server 중지

설정을 모두 저장한 뒤 Enable을 켜면 외부 OPCUA Client가 접속할 수 있습니다.

설정 변경 후에는 설정 저장을 누르는 것이 안전합니다.

5.2 Host

OPCUA Server가 접속을 받을 IP 설정입니다.

기본값:

0.0.0.0

일반적으로 기본값 그대로 사용합니다.

0.0.0.0은 EASY LOGGER 장비가 가진 모든 네트워크 IP에서 접속을 받을 수 있다는 뜻입니다.

5.3 Port

OPCUA 접속 포트입니다.

기본값:

4840

외부 Client에서는 이 포트로 접속합니다.

예를 들어 EASY LOGGER IP가 192.168.0.50이고 포트가 4840이면 접속 주소는 다음과 같습니다.

opc.tcp://192.168.0.50:4840/easylogger/server/

5.4 Path

OPCUA 접속 경로입니다.

기본값:

/easylogger/server/

특별한 이유가 없으면 기본값을 사용합니다.

Path를 바꾸면 외부 Client의 Endpoint 주소도 함께 바뀝니다.

5.5 Namespace URI

OPCUA 노드를 구분하기 위한 이름 공간입니다.

기본값:

urn:easylogger:v1.08

일반 사용자는 기본값을 그대로 사용하면 됩니다.

5.6 Server Name

외부 OPCUA Client에서 보이는 서버 이름입니다.

기본값:

EASY LOGGER OPCUA Server

현장 장비 이름을 구분하고 싶으면 다음처럼 변경할 수 있습니다.

EASY LOGGER LINE1 OPCUA Server
EASY LOGGER PRESS OPCUA Server

5.7 Update Interval (ms)

OPCUA Server가 최신값을 반영하는 기준 주기입니다.

기본값:

100

이 값은 PLC를 새로 읽는 주기가 아니라, 이미 수집된 최신값을 OPCUA 노드에 반영하는 기준입니다.

수집 주기는 MAIN 설정 또는 Sequence 설정의 수집 주기를 따릅니다.

보통은 기본값 100ms를 사용합니다.

5.8 Security Policy / Security Mode

이 두 항목은 Auth Mode에 따라 자동으로 정해집니다.

화면에서 직접 바꾸지 않고, Auth Mode만 선택하면 됩니다.

Auth ModeSecurity PolicySecurity Mode
anonymousNoneNone
certificateBasic256Sha256SignAndEncrypt
usernameBasic256Sha256SignAndEncrypt

5.9 Auth Mode

외부 OPCUA Client가 어떤 방식으로 접속할지 정하는 항목입니다.

Auth Mode의미사용 상황
anonymous인증 없이 접속내부 테스트, 폐쇄망 확인
certificate서버 인증서로 보안 채널 사용암호화는 필요하지만 사용자 계정은 쓰지 않을 때
username서버 인증서 + 사용자/비밀번호운영 환경 권장

certificate는 EASY LOGGER 서버 인증서를 사용하는 보안 채널입니다.

현재 화면의 certificate는 외부 Client마다 별도 인증서를 승인하는 방식이 아닙니다.

외부 사용자별로 접속 권한을 나누려면 username을 사용합니다.

5.10 WRITE CALLBACK

외부 OPCUA Client가 PLC 값을 원격으로 쓸 수 있게 허용하는 전체 스위치입니다.

상태의미
OFF외부 OPCUA WRITE를 PLC로 전달하지 않음
ON허용된 노드의 OPCUA WRITE를 PLC WRITE로 전달

WRITE CALLBACK이 OFF이면 사용자 권한이 write 또는 read&write여도 PLC 원격 쓰기는 동작하지 않습니다.

운영에서는 필요한 경우에만 켜는 것을 권장합니다.

5.11 Endpoint Preview

외부 OPCUA Client에서 입력할 접속 주소를 보여줍니다.

예:

opc.tcp://192.168.0.50:4840/easylogger/server/

Client 설정 시 이 주소를 그대로 사용합니다.


6. OPCUA Certificate / PKI

OPCUA Certificate / PKI는 OPCUA 보안 접속에 사용할 서버 인증서를 만드는 영역입니다.

Auth Modecertificate 또는 username으로 사용할 경우 인증서가 필요합니다.

6.1 Common Name

인증서 이름입니다.

기본값:

EASY LOGGER OPCUA Server

현장 구분이 필요하면 장비 이름을 넣을 수 있습니다.

예:

EASY LOGGER LINE1
EASY LOGGER PRESS

6.2 Valid Days

인증서 유효 기간입니다.

기본값:

3650

3650일은 약 10년입니다.

운영 정책에 맞게 조정할 수 있습니다.

6.3 RSA Key Size

인증서 키 크기입니다.

선택값:

2048
3072

일반적으로 2048을 사용해도 충분합니다.

보안 정책이 더 강한 현장은 3072를 선택할 수 있습니다.

6.4 인증서 생성

인증서를 만들려면 다음 순서로 진행합니다.

  1. Common Name을 확인합니다.
  2. Valid Days를 확인합니다.
  3. RSA Key Size를 선택합니다.
  4. 인증서 생성 버튼을 누릅니다.
  5. STATUS가 READY로 표시되는지 확인합니다.
  6. 설정 저장을 누릅니다.

인증서 생성은 EASY LOGGER 내부에서 처리됩니다.

사용자가 Raspberry Pi에 SSH로 접속해서 직접 파일을 만들 필요가 없습니다.

6.5 다운로드 버튼

인증서가 생성되면 다음 파일을 브라우저에서 다운로드할 수 있습니다.

항목파일용도
CERTIFICATE DEReasylogger_opcua_server.derOPCUA Client 신뢰 인증서 등록용
CERTIFICATE PEMeasylogger_opcua_server.pemPEM 형식을 요구하는 Client 등록용
PRIVATE KEYeasylogger_opcua_server_key.pem서버 개인키 백업용

외부 Client에는 보통 DER 또는 PEM 인증서를 등록합니다.

PRIVATE KEY는 서버의 개인키입니다. 일반 사용자나 외부 업체에 전달하지 말고, 관리자 백업 용도로만 보관합니다.

6.6 Thumbprint

인증서의 고유 지문 값입니다.

외부 Client에서 인증서를 신뢰할 때 같은 인증서인지 확인하는 용도로 사용할 수 있습니다.


7. OPCUA User / Password

OPCUA User / PasswordAuth Mode = username에서 사용할 사용자 계정을 관리하는 영역입니다.

사용자 계정은 OPCUA 접속 전용 계정입니다.

웹 로그인 계정과 별도로 관리됩니다.

7.1 Username

OPCUA Client에서 접속할 사용자 이름입니다.

예:

node-red
scada
mes_line1

사용 가능한 문자는 영문, 숫자, _, ., @, -입니다.

7.2 Password

OPCUA Client에서 접속할 비밀번호입니다.

신규 사용자를 추가할 때는 반드시 입력해야 합니다.

기존 사용자를 수정할 때 비밀번호를 바꾸려면 새 비밀번호를 입력합니다.

비밀번호는 화면이나 API 응답에 다시 표시되지 않습니다.

7.3 Role

사용자 역할입니다.

Role의미
user일반 사용자
admin관리자 역할

일반적인 외부 연동은 user로 충분합니다.

7.4 Access

읽기와 쓰기 권한을 정합니다.

Access의미
readOPCUA 값을 읽을 수 있음
writeOPCUA 값 쓰기만 허용
read&write읽기와 쓰기 모두 허용

현장에서 값을 조회만 하는 Client는 read로 만듭니다.

PLC 원격제어가 필요한 Client만 write 또는 read&write를 사용합니다.

단, Access = write 또는 read&write여도 WRITE CALLBACK이 OFF이면 실제 PLC WRITE는 실행되지 않습니다.

7.5 Enabled

사용자 계정 사용 여부입니다.

상태의미
ON해당 계정으로 접속 가능
OFF해당 계정 접속 차단

임시로 접속을 막고 싶을 때는 삭제하지 않고 Enabled만 OFF로 바꿀 수 있습니다.

7.6 계정 저장

사용자를 추가하려면 다음 순서로 진행합니다.

  1. Username을 입력합니다.
  2. Password를 입력합니다.
  3. Role을 선택합니다.
  4. Access를 선택합니다.
  5. Enabled를 켭니다.
  6. 계정 저장을 누릅니다.

목록에 사용자가 표시되면 저장된 것입니다.

OPCUA Server가 Enable 상태이면 계정 저장, 수정, 삭제 직후 서버 런타임 설정을 다시 반영합니다.

이미 접속 중인 OPCUA Client는 보안 세션 상태에 따라 재접속이 필요할 수 있습니다.

7.7 사용자 수정과 삭제

목록 오른쪽의 수정 버튼을 누르면 해당 사용자를 수정할 수 있습니다.

삭제 버튼을 누르면 해당 사용자가 삭제됩니다.

운영 중인 외부 Client가 해당 계정으로 접속 중이면, 삭제 후 재접속 시 접속할 수 없습니다.

사용자 계정과 인증서 상태는 같은 설정 화면의 중간 영역에서 확인합니다.

OPCUA 사용자 및 인증서 화면


8. Automatic Node Preview

Automatic Node Preview는 EASY LOGGER가 자동으로 만든 OPCUA 노드 목록을 수집 설정 단위로 요약해서 보여주는 영역입니다.

아래 화면처럼 CONFIG별 Node Path, Type/Address, 디바이스 수, WRITE 허용 여부를 한 번에 확인할 수 있습니다.

OPCUA Automatic Node Preview 화면

MAIN 설정 또는 Sequence 설정에 등록된 수집 항목이 OPCUA 노드로 변환되어 표시됩니다.

화면에는 로딩 속도를 위해 설정 1개당 1행만 표시됩니다.

예를 들어 수집 설정이 D0부터 200개이면 화면에는 D0 한 줄과 디바이스 수 = 200으로 표시됩니다.

실제 OPCUA Server 내부에는 다음처럼 개별 노드가 만들어집니다.

EASY_LOGGER/Devices/PLC/Tags/D0
EASY_LOGGER/Devices/PLC/Tags/D1
EASY_LOGGER/Devices/PLC/Tags/D2
...
EASY_LOGGER/Devices/PLC/Tags/D199

따라서 외부 Client에서 D100을 읽고 싶으면 기존과 같이 해당 주소를 포함한 Node ID를 사용합니다.

8.1 CONFIG

수집 설정 이름입니다.

예:

PLC / PLC_OPCUA
MODBUS / MODBUS_LINE1

어떤 PLC 또는 Modbus 설정에서 만들어진 노드인지 확인할 수 있습니다.

8.2 NODE PATH

OPCUA 내부 노드 경로입니다.

예:

EASY_LOGGER/Devices/XBMPLC/Tags/D0100

외부 Client에서 실제로 읽을 때는 앞에 ns=2;s=가 붙은 Node ID를 사용합니다.

예:

ns=2;s=EASY_LOGGER/Devices/XBMPLC/Tags/D0100

노드 경로는 직접 입력하기보다 화면에 표시된 값을 그대로 복사해서 사용하는 것이 가장 안전합니다.

8.3 TYPE / ADDRESS

해당 설정의 OPCUA 데이터 타입과 시작 PLC 주소입니다.

예:

UInt16 / D0100
Boolean / M0000
Float / D0200

여러 디바이스를 수집하는 설정에서는 이 주소가 시작 주소입니다.

예:

TYPE / ADDRESS: UInt16 / D0
디바이스 수: 200
실제 개별 노드: D0 ~ D199

데이터 타입은 OPCUA WRITE에서 매우 중요합니다.

외부 Client에서 쓰는 값의 타입이 화면의 타입과 다르면 BadTypeMismatch 오류가 발생할 수 있습니다.

8.4 디바이스 수

해당 수집 설정이 몇 개의 디바이스를 OPCUA 노드로 제공하는지 표시합니다.

예:

시작 주소: D0
디바이스 수: 200

이 경우 화면에는 1행만 표시되지만 실제 OPCUA 노드는 D0부터 D199까지 만들어집니다.

8.5 WRITABLE

외부 Client에서 값을 쓸 수 있는지 표시합니다.

상태의미
READ읽기 전용
WRITE외부 WRITE 허용

WRITE를 사용하려면 다음 조건이 모두 맞아야 합니다.

  • WRITE CALLBACK이 ON이다.
  • 해당 노드가 선택되어 있다.
  • 선택 WRITE 적용을 눌러 저장했다.
  • username 인증을 쓰는 경우 사용자 Access가 write 또는 read&write이다.

8.6 선택 WRITE 적용

WRITE를 허용할 설정을 체크한 뒤 선택 WRITE 적용을 누릅니다.

전체 노드를 쓰기 가능하게 열기보다, 실제 원격제어가 필요한 노드만 선택하는 것이 안전합니다.


9. 데이터 타입 매핑

EASY LOGGER의 수집 데이터 타입은 OPCUA 타입으로 자동 변환됩니다.

EASY LOGGER 타입OPCUA 타입값 예시
BITBooleantrue / false
WORDUInt160 ~ 65535
DWORDUInt320 ~ 4294967295
FLOATFloat12.34
STRINGStringEASYLOGGER

WORD 주소에 값을 쓸 때는 UInt16으로 써야 합니다.

FLOAT 주소에 값을 쓸 때는 Float로 써야 합니다.

타입이 맞지 않으면 OPCUA Client에서 다음과 같은 오류가 표시될 수 있습니다.

BadTypeMismatch

10. 권장 설정 예시

10.1 내부 테스트용

보안이 필요 없는 내부 테스트에서는 다음처럼 설정할 수 있습니다.

Auth Mode: anonymous
Security Policy: None
Security Mode: None
WRITE CALLBACK: OFF

읽기 테스트를 먼저 진행할 때 적합합니다.

운영 환경에서는 권장하지 않습니다.

10.2 암호화만 사용하는 경우

사용자 계정은 쓰지 않고, 서버 인증서 기반 보안 채널만 사용하려면 다음처럼 설정합니다.

Auth Mode: certificate
Security Policy: Basic256Sha256
Security Mode: SignAndEncrypt
WRITE CALLBACK: 필요 시 ON

이 방식은 접속 사용자를 계정별로 나누지 않습니다.

접속 사용자별 권한 관리가 필요하면 username을 사용합니다.

10.3 운영 권장 설정

운영 환경에서는 다음 조합을 권장합니다.

Auth Mode: username
Security Policy: Basic256Sha256
Security Mode: SignAndEncrypt
OPCUA 사용자: 필요한 Client별로 생성
WRITE CALLBACK: 필요한 경우에만 ON

읽기만 하는 Client는 Access = read로 생성합니다.

PLC 원격제어가 필요한 Client만 Access = write 또는 read&write로 생성합니다.


11. Node-RED에서 읽기 설정

Node-RED에서 OPCUA Client 노드를 사용할 때는 먼저 Endpoint를 설정합니다.

11.1 Endpoint 설정

EASY LOGGER IP가 192.168.0.50이고 기본 포트를 사용한다면 Endpoint는 다음과 같습니다.

opc.tcp://192.168.0.50:4840/easylogger/server/

Auth Mode에 따라 Node-RED Endpoint 설정은 다음처럼 맞춥니다.

EASY LOGGER Auth ModeNode-RED Security PolicyNode-RED Security ModeNode-RED 로그인
anonymousNoneNoneAnonymous
certificateBasic256Sha256SignAndEncryptAnonymous
usernameBasic256Sha256SignAndEncryptuse credentials

username을 사용할 때는 Node-RED의 use credentials를 체크하고, EASY LOGGER의 OPCUA User / Password에서 만든 Username과 Password를 입력합니다.

11.2 READ 설정

Node-RED의 OPCUA Client 노드에서 Action을 다음으로 선택합니다.

READ

읽을 노드는 Automatic Node Preview의 NODE PATH를 기준으로 입력합니다.

예:

ns=2;s=EASY_LOGGER/Devices/XBMPLC/Tags/D0100

Function 노드를 사용하는 경우 예시는 다음과 같습니다.

msg.topic = "ns=2;s=EASY_LOGGER/Devices/XBMPLC/Tags/D0100";
return msg;

정상 동작하면 debug 창에 현재 값이 표시됩니다.


12. Node-RED에서 쓰기 설정

Node-RED에서 WRITE를 사용하려면 EASY LOGGER 쪽 설정이 먼저 맞아야 합니다.

확인할 항목:

  • WRITE CALLBACK이 ON이다.
  • Automatic Node Preview에서 해당 노드를 체크했다.
  • 선택 WRITE 적용을 눌렀다.
  • 해당 노드의 WRITABLE이 WRITE로 표시된다.
  • username 인증을 쓰면 사용자 Access가 write 또는 read&write이다.

12.1 WORD 쓰기 예시

TYPE / ADDRESSUInt16 / D0100인 경우 예시는 다음과 같습니다.

msg.topic = "ns=2;s=EASY_LOGGER/Devices/XBMPLC/Tags/D0100";
msg.payload = { value: 123, datatype: "UInt16" };
return msg;

Node-RED 노드 버전에 따라 값 입력 방식이 다를 수 있습니다.

화면에서 DataType을 선택하는 방식이라면 DataType은 UInt16, Value는 123으로 맞춥니다.

12.2 BIT 쓰기 예시

TYPE / ADDRESSBoolean / M0000인 경우 예시는 다음과 같습니다.

msg.topic = "ns=2;s=EASY_LOGGER/Devices/XBMPLC/Tags/M0000";
msg.payload = { value: true, datatype: "Boolean" };
return msg;

OFF를 쓰려면 true 대신 false를 사용합니다.

12.3 DWORD 쓰기 예시

TYPE / ADDRESSUInt32 / D0200인 경우 예시는 다음과 같습니다.

msg.topic = "ns=2;s=EASY_LOGGER/Devices/XBMPLC/Tags/D0200";
msg.payload = { value: 123456, datatype: "UInt32" };
return msg;

12.4 FLOAT 쓰기 예시

TYPE / ADDRESSFloat / D0300인 경우 예시는 다음과 같습니다.

msg.topic = "ns=2;s=EASY_LOGGER/Devices/XBMPLC/Tags/D0300";
msg.payload = { value: 12.34, datatype: "Float" };
return msg;

12.5 WRITE 후 확인

WRITE가 정상 처리되면 OPCUA Client에서 Good 상태가 표시됩니다.

이후 같은 노드를 다시 READ해서 쓴 값이 반영되었는지 확인합니다.

EASY LOGGER 화면에서는 OPCUA Runtime StatusLAST WRITE가 갱신되는지 확인할 수 있습니다.


13. Runtime Status 확인

OPCUA Runtime Status는 OPCUA Server의 현재 상태를 보여줍니다.

운전 중에는 아래 화면처럼 STATE가 RUNNING인지, NODE COUNT와 LATEST VALUES가 생성되어 있는지 먼저 확인합니다.

OPCUA Runtime Status 화면

항목의미
STATE서버 상태
NODE COUNT생성된 OPCUA 노드 수
LATEST VALUES최신값을 가진 노드 수
LAST WRITE마지막으로 WRITE가 들어온 노드
ENDPOINT현재 접속 주소
LAST PUBLISH마지막으로 OPCUA에 반영된 수집값
LAST ERROR마지막 오류

STATE는 보통 다음처럼 표시됩니다.

STATE의미
RUNNINGOPCUA Server 실행 중
STOPPED설정은 있으나 서버 미실행
DISABLEDEnable이 꺼져 있음
FAULT오류로 서버 실행 실패

FAULT가 표시되면 LAST ERROR를 먼저 확인합니다.


14. 자주 발생하는 상황과 확인 방법

14.1 Automatic Node Preview가 비어 있다

확인할 항목:

  • MAIN 설정 또는 Sequence 설정에 수집 설정이 있는지 확인한다.
  • 해당 수집 설정이 활성화되어 있는지 확인한다.
  • 수집 시작 주소와 디바이스 수가 올바른지 확인한다.
  • PLC/Modbus 연결이 정상인지 확인한다.
  • OPCUA 화면에서 새로고침을 눌러 확인한다.

수집 설정이 없으면 OPCUA 노드도 만들어지지 않습니다.

14.2 외부 Client가 접속하지 못한다

확인할 항목:

  • EASY LOGGER IP가 맞는지 확인한다.
  • Port가 맞는지 확인한다.
  • Path가 맞는지 확인한다.
  • Endpoint Preview의 주소를 그대로 사용했는지 확인한다.
  • 방화벽에서 OPCUA 포트 4840이 열려 있는지 확인한다.
  • Enable이 켜져 있는지 확인한다.
  • Runtime Status가 RUNNING인지 확인한다.

14.3 STATE가 FAULT로 표시된다

Auth Modecertificate 또는 username인데 인증서가 없으면 서버가 실행되지 않을 수 있습니다.

확인할 항목:

  • OPCUA Certificate / PKI에서 인증서를 생성했는지 확인한다.
  • STATUS가 READY인지 확인한다.
  • 설정 저장을 눌렀는지 확인한다.
  • 다시 Enable을 켜거나 새로고침 후 상태를 확인한다.

14.4 BadNodeIdUnknown 오류가 나온다

오류 예:

BadNodeIdUnknown

이 오류는 Client가 요청한 Node ID가 EASY LOGGER OPCUA Server에 없다는 뜻입니다.

확인할 항목:

  • Automatic Node Preview에 해당 노드가 있는지 확인한다.
  • Node ID를 직접 입력하면서 오타가 없는지 확인한다.
  • 장비명, CONFIG명, 주소가 바뀌지 않았는지 확인한다.
  • ns=2;s=가 포함되어 있는지 확인한다.
  • 대소문자와 / 경로가 화면 표시와 같은지 확인한다.

예:

ns=2;s=EASY_LOGGER/Devices/XBMPLC/Tags/D0100

가장 안전한 방법은 화면의 NODE PATH를 복사한 뒤 앞에 ns=2;s=를 붙여 사용하는 것입니다.

14.5 BadTypeMismatch 오류가 나온다

오류 예:

BadTypeMismatch

이 오류는 WRITE할 때 값의 타입이 노드 타입과 다르다는 뜻입니다.

확인할 항목:

  • TYPE / ADDRESS를 확인한다.
  • UInt16 노드에는 UInt16으로 쓴다.
  • Boolean 노드에는 true 또는 false로 쓴다.
  • Float 노드에는 Float로 쓴다.
  • Node-RED OPCUA 노드의 DataType 설정이 맞는지 확인한다.

예를 들어 TYPE / ADDRESSUInt16 / D0100이면 다음처럼 씁니다.

msg.topic = "ns=2;s=EASY_LOGGER/Devices/XBMPLC/Tags/D0100";
msg.payload = { value: 123, datatype: "UInt16" };
return msg;

14.6 WRITE가 Good인데 PLC 값이 바뀌지 않는다

OPCUA WRITE 자체는 성공했지만 PLC WRITE 전달이 막혀 있을 수 있습니다.

확인할 항목:

  • WRITE CALLBACK이 ON인지 확인한다.
  • 해당 노드가 WRITE로 선택되어 있는지 확인한다.
  • 선택 WRITE 적용을 눌렀는지 확인한다.
  • username 사용자 Access가 write 또는 read&write인지 확인한다.
  • 대상 PLC 또는 Modbus 연결이 정상인지 확인한다.
  • 대상 주소가 해당 PLC 모델에서 실제 쓰기 가능한 주소인지 확인한다.

WRITE CALLBACK이 OFF이면 OPCUA 값 쓰기는 PLC로 전달되지 않습니다.

14.7 username 접속이 실패한다

확인할 항목:

  • Auth Mode = username인지 확인한다.
  • Node-RED 또는 Client에서 use credentials를 켰는지 확인한다.
  • Username과 Password가 EASY LOGGER에 저장된 값과 같은지 확인한다.
  • 사용자 Enabled가 ON인지 확인한다.
  • Security Policy가 Basic256Sha256인지 확인한다.
  • Security Mode가 SignAndEncrypt인지 확인한다.
  • 인증서가 READY 상태인지 확인한다.

username 방식은 암호화된 보안 채널에서 사용하도록 구성되어 있습니다.

14.8 certificate 모드에서 접속이 실패한다

확인할 항목:

  • EASY LOGGER 인증서를 생성했는지 확인한다.
  • Client에서 Security Policy를 Basic256Sha256으로 선택했는지 확인한다.
  • Client에서 Security Mode를 SignAndEncrypt로 선택했는지 확인한다.
  • Client 로그인 방식은 Anonymous로 두었는지 확인한다.
  • Client 프로그램에서 서버 인증서를 신뢰하도록 등록했는지 확인한다.

certificate 모드는 사용자/비밀번호를 쓰지 않습니다.

14.9 값이 항상 0으로 보인다

확인할 항목:

  • EASY LOGGER가 실제 PLC/Modbus 값을 읽고 있는지 확인한다.
  • MAIN 설정의 수집 설정이 실행 중인지 확인한다.
  • Runtime Status의 LATEST VALUES가 증가하는지 확인한다.
  • 읽는 Node ID가 실제 수집 주소와 같은지 확인한다.
  • PLC 값 자체가 0인지 확인한다.

OPCUA Server가 시작되었지만 아직 수집값이 들어오지 않은 노드는 기본값으로 보일 수 있습니다.

BIT는 false, WORD/DWORD는 0, FLOAT는 0.0, STRING은 빈 문자열로 시작할 수 있습니다.

14.10 100ms 수집 데이터가 많아도 OPCUA에 무리가 있는지

OPCUA는 MQTT처럼 매번 데이터를 전송 큐에 쌓는 구조가 아닙니다.

EASY LOGGER는 주소별 최신값을 보관하고, 외부 Client가 읽거나 구독할 때 그 값을 제공합니다.

따라서 같은 주소에 값이 자주 들어와도 최신값으로 갱신됩니다.

단, 외부 Client가 너무 짧은 주기로 너무 많은 노드를 읽으면 Client와 네트워크 부하가 커질 수 있습니다.

일반 운영에서는 Client의 읽기 주기와 구독 주기를 현장에 맞게 조정합니다.


15. 운영 권장 설정

실제 현장에서는 다음 구성을 권장합니다.

Auth Mode: username
Security Policy: Basic256Sha256
Security Mode: SignAndEncrypt
Port: 4840
WRITE CALLBACK: 필요한 경우에만 ON

사용자 권한은 다음처럼 나누는 것이 좋습니다.

사용자 목적Access 권장값
값 조회만 하는 SCADA/HMIread
Node-RED 모니터링read
PLC 원격제어 전용write
읽기와 쓰기를 모두 하는 관리자 Clientread&write

WRITE는 실제 설비 값을 변경할 수 있으므로, 필요한 노드만 선택해서 허용합니다.


16. 운전 전 체크리스트

실제 설비에 적용하기 전에 다음 항목을 확인합니다.

  • MAIN 설정 또는 Sequence 설정에 수집 설정이 등록되어 있다.
  • 수집 설정이 활성화되어 있다.
  • OPCUA 화면의 Automatic Node Preview에 노드가 표시된다.
  • Endpoint Preview의 주소를 외부 Client에 입력했다.
  • Auth Mode와 Client의 Security Policy/Security Mode가 일치한다.
  • username을 사용하는 경우 사용자 계정을 만들었다.
  • username을 사용하는 경우 사용자 Enabled가 ON이다.
  • 인증서가 필요한 모드에서는 Certificate STATUS가 READY이다.
  • WRITE를 사용하지 않는 노드는 READ 상태로 남겨두었다.
  • WRITE를 사용할 노드만 선택하고 선택 WRITE 적용을 눌렀다.
  • WRITE CALLBACK이 필요한 경우에만 ON이다.
  • Runtime Status가 RUNNING이다.
  • 외부 Client에서 READ 테스트를 먼저 성공했다.
  • WRITE 사용 전에는 테스트 주소로 먼저 쓰기/읽기 확인을 했다.

17. 요약

OPCUA 설정은 EASY LOGGER가 수집한 PLC/Modbus 값을 외부 OPCUA Client에 표준 노드 형태로 제공하는 기능입니다.

핵심은 다음 네 가지입니다.

  1. OPCUA는 값을 계속 보내는 방식이 아니라 최신값을 보관하고 Client가 읽는 방식입니다.
  2. 노드는 MAIN/Sequence 수집 설정을 기준으로 자동 생성됩니다.
  3. WRITE를 사용하려면 WRITE CALLBACK, 노드 WRITE 선택, 사용자 권한이 모두 맞아야 합니다.
  4. 운영 환경에서는 Auth Mode = usernameBasic256Sha256 + SignAndEncrypt 조합을 권장합니다.

문제가 생기면 먼저 Automatic Node Preview, Runtime Status, LAST ERROR를 확인하면 원인을 빠르게 좁힐 수 있습니다.

현장 적용 팁

  • 설정 변경 전에는 현재 운전 상태와 저장 설정을 먼저 확인하세요.
  • 외부 연동 기능은 처음에는 읽기 전용 또는 테스트 환경에서 검증한 뒤 현장에 적용하는 것이 안전합니다.
  • DB/CSV/API/MQTT/OPC-UA처럼 외부 시스템과 연결되는 기능은 Runtime Status와 Log를 함께 확인하세요.

마무리

EASY LOGGER는 PLC와 센서에서 나오는 현장 데이터를 수집하고, 저장·조회·외부 연동·대시보드 표시까지 이어주는 현장 데이터 허브 역할을 합니다. 이 글의 화면 순서대로 확인하면 처음 설정하는 사용자도 필요한 메뉴를 빠르게 찾고, 현장 데이터 흐름을 안정적으로 구성할 수 있습니다.

#EASYLOGGER #스마트팩토리 #PLC #데이터로거 #설비모니터링 #산업용통신 #원격모니터링

#EASYLOGGER#EASY LOGGER#OPCUA#OPC UA#OPCUA 서버#PLC OPCUA#PLC 데이터 수집#스마트팩토리#산업용 IoT#IIoT#설비 모니터링#SCADA 연동#HMI 연동#Modbus OPCUA#OPCUA WRITE
목록으로 돌아가기