레거시 OPC DA 서버를 DCOM 삽질 없이 SCADA에 붙이는 법
OPC Classic(DA/HDA) 연결이 DCOM에서 깨지는 이유 — 포트 135의 RPC endpoint mapper, 동적 포트 범위, 서버 identity, 방화벽 — 과 레거시 서버를 SCADA에 가장 빨리 연결하는 방법.
글
HMI/SCADA, 산업 통신, 알람, 태그, 히스토리언을 현장 업무 흐름에 맞춰 정리한 노트입니다.
OPC Classic(DA/HDA) 연결이 DCOM에서 깨지는 이유 — 포트 135의 RPC endpoint mapper, 동적 포트 범위, 서버 identity, 방화벽 — 과 레거시 서버를 SCADA에 가장 빨리 연결하는 방법.
PLC가 UDT를 OPC UA로 노출했는데 SCADA 클라이언트에는 ByteString으로 보인다. ExtensionObject 안에 실제로 무엇이 들어 있고 구조화 DataType을 어떻게 디코딩하는지 정리한다.
OPC UA sequence number와 Republish 서비스는 놓친 notification을 데이터 손실 없이 되살릴 수 있다. 단, 클라이언트가 번호를 감시하고 재전송 큐 크기가 맞을 때만 그렇다. Gap을 감지하고 복구하는 법.
Browse는 성공했는데 태그 일부만 들어온다. OPC UA Part 4 v1.05의 continuation point 규칙과 MaxBrowseContinuationPoints로 원인을 잡는 방법.
OPC UA PubSub(Part 14, UADP over UDP)을 시운전할 때 오래된 값을 Live처럼 내보내지 않으려면 — Dataset 계약, Multicast·VLAN 확인, Subscriber 진단, Timing, 그리고 Reboot 때만 드러나는 장애 모드.
OPC UA의 AccessLevel, UserAccessLevel, WriteMask 차이 — 브라우저에서 쓰기 가능해 보이는 setpoint가 런타임에서 BadUserAccessDenied로 거부되는 이유와 실제 운영 계정으로 write를 시험하는 방법.
NodeId는 재생성되고, browse path는 설비 이동에 깨지고, DisplayName은 그냥 라벨이다. 펌웨어 업데이트 한 번에 화면 절반이 비지 않게 HMI·히스토리언·알람이 저장할 참조를 고르는 기준.
OPC UA DataChangeFilter를 정하는 법 — 절대 vs 퍼센트 데드밴드, DataChangeTrigger, 큐 크기를 어떻게 잡아야 노이즈만 걸러내고 실제 공정 변화는 남기는지.
OPC UA HistoryRead로 SCADA·히스토리언 누락 구간을 복구하는 법. 구간을 정확히 잡고, returnBounds로 경계 샘플을 처리하고, Bad 품질을 보존하며, continuation point로 서버 부하 없이 페이징한다.
OPC UA에서는 secure channel, session, subscription이 각자의 시계로 만료된다. 어느 쪽이 죽었는지 알면 firewall, server 부하, keepalive count 중 무엇을 봐야 하는지 정해진다.
값만 보는 HMI가 숨기는 frozen data, gateway cache 값, clock drift를 OPC UA StatusCode severity 비트와 SourceTimestamp, ServerTimestamp로 잡아내는 방법.
ping도 되고 4840 port도 열려 있는데 OPC UA client가 접속에 실패한다면, 대개 tag가 아니라 endpoint URL, hostname SAN, ApplicationUri 불일치다. status code를 읽고 고치는 방법.
HMI, PLC, OPC UA, Modbus TCP 통신이 끊겼다가 아무도 못 보는 사이 복구될 때, 어디서 잡고 무엇을 필터하고 첫 30초를 어떻게 읽을 것인가.
SCADA에서 OPC UA Alarm & Condition subscription을 시운전할 때 event filter, Retain flag, ConditionRefresh method, acknowledge 경로, timestamp, 그리고 reconnect 뒤에야 드러나는 문제를 짚는다.
OPC UA가 인증서 신뢰, 사용자 identity, Part 18 role mapping을 어떻게 나누는지, 그리고 엉뚱한 session이 setpoint를 못 바꾸도록 write 권한을 시운전하는 방법.
OPC UA reverse connect가 cell 방화벽을 통과하도록 TCP 방향을 뒤집는 원리와, 그 뒤에 여전히 발목을 잡는 certificate·endpoint·진단 함정.
OPC UA monitored item queue, discard policy, Overflow 상태 비트가 SCADA 클라이언트가 모든 빠른 변화를 받을지 최신 값만 받을지를 어떻게 정하는지.
OPC UA method call은 Good을 반환하고도 장비가 안 움직일 수 있다. HMI에서 접수, 실행, 실패 사유를 작업자가 제대로 보도록 method call을 설계하는 법.
SCADA, PLC, HMI, 히스토리언, OPC UA, Modbus TCP, MQTT 방화벽 룰을 데이터 흐름에서 시작해 시운전하는 법 — 커트오버 때 터지는 보조 서비스 경로를 잡고, 각 룰을 실제 애플리케이션 시험으로 증명하는 방법.
OPC UA 이중화 서버 failover 시운전 절차: ServiceLevel, subscription 복구, 인증서, 그리고 운전자보다 먼저 stale 데이터를 잡아내는 방법.
보안을 끄면 browse가 되는데 secure channel을 켜면 끊기는 OPC UA 연결을, SCADA 현장에서 trust store와 인증서 이름, endpoint로 잡아나가는 방법.
OPC UA 샘플링 주기, 퍼블리싱 주기, 큐 크기, deadband, KeepAlive/Lifetime 관계가 SCADA 클라이언트와 히스토리언이 공정을 제대로 보는지를 어떻게 결정하는지.
PLC 다운로드나 서버 교체 후 세션은 정상인데 monitored item마다 Bad_NodeIdUnknown이 돌아옵니다. namespace index와 identifier, 클라이언트 캐시가 실제로 어떻게 바뀌는지, 정지 시간이 끝나기 전에 무엇을 확인해야 하는지 정리했습니다.
OPC UA 인증서 만료로 통신이 끊기지 않도록 갱신 절차와 확인 항목을 정리합니다.
SCADA 네트워크 장애를 장비, 케이블, IP, 포트, 프로토콜 순서로 좁혀 가는 점검 절차입니다.
OPC UA 클라이언트 시운전에서 엔드포인트, 보안 정책, 인증서, 구독 품질을 확인하는 절차입니다.
OPC UA와 MQTT를 어느 쪽이 더 좋은가가 아니라, 현장 통합 목적에 따라 어떻게 나눠 쓸지 설명합니다.