표준 m³, 실제 m³, 그리고 아무도 합의하지 못하는 가스 적산값
SCADA에서 가스 유량의 압력·온도 보정을 다룹니다. 어떤 유량계에 필요한지, 절대압 함정, 계산을 어디에 둘지, 압력 트랜스미터가 죽으면 어떻게 할지.
글
HMI/SCADA, 산업 통신, 알람, 태그, 히스토리언을 현장 업무 흐름에 맞춰 정리한 노트입니다.
SCADA에서 가스 유량의 압력·온도 보정을 다룹니다. 어떤 유량계에 필요한지, 절대압 함정, 계산을 어디에 둘지, 압력 트랜스미터가 죽으면 어떻게 할지.
strapping table을 SCADA에 넣는 실무 — 원형 세그먼트 기하, 보간 간격, 계산을 어느 계층에 둘지, 그리고 정수압 레벨이 재고를 속이는 밀도 함정까지.
두 번 재튜닝하고도 계속 사이클링하는 레벨 루프는 대개 튜닝이 아니라 밸브 문제다. PV/OP 트렌드에서 스틱션을 읽어내고, 스텝 테스트로 증명하고, SCADA에서 감시하는 방법.
오리피스 DP는 유량의 제곱에 비례하므로 누군가는 제곱근을 취해야 한다 — 트랜스미터, PLC, 아니면 SCADA. 두 번 취하거나 저유량 컷오프를 빼먹으면 값이 거짓말을 한다.
랩어라운드하는 카운터에서 가짜 유량을 만들지 않고 사용량을 계산하는 법. 레지스터 폭 정하기, 델타 보정을 한 곳에 두기, 롤오버와 리셋 구분하기, 그리고 적산이 절대 음수가 되지 않게 하기.
SCADA에서 report-by-exception과 change-of-state를 쓰는 법 — DNP3 이벤트, deadband, heartbeat, integrity poll로 짧은 이벤트와 stale 값을 놓치지 않기.
마지막 값 유지, 버려진 quality code, 도착 시간에 찍힌 지연 샘플. 장애 후 트렌드가 거짓말하는 세 가지 원인과 어느 쪽인지 가려내는 방법.
MQTT 도착 순서는 공정 순서가 아니다. DUP flag가 중복을 못 잡는 이유, Sparkplug seq의 8-bit wrap, MQTT 5.0 retained 만료 처리까지 실무 기준으로 정리한다.
Shared Subscription은 MQTT Edge 스트림을 여러 Worker로 나눠 처리하게 해 준다. 하지만 같은 구조가 잘못된 Consumer를 향하면 Historian 피드가 조용히 반토막 나고 Trend 순서가 뒤섞인다. 어디에 쓰고 어디에 쓰면 안 되는지 정리했다.
site/# 구독의 부하를 승인 전에 계산하는 방법. MQTT 5.0 Retain Handling, Shared Subscription, Receive Maximum, SUBACK reason code로 실제로 막는 법까지.
SCADA 히스토리언이 통신 공백을 보간선과 마지막 값으로 감추는 방식, 그리고 bad 데이터가 교대조 리포트까지 흘러가지 않게 막는 품질 규칙.
NodeId는 재생성되고, browse path는 설비 이동에 깨지고, DisplayName은 그냥 라벨이다. 펌웨어 업데이트 한 번에 화면 절반이 비지 않게 HMI·히스토리언·알람이 저장할 참조를 고르는 기준.
OPC UA DataChangeFilter를 정하는 법 — 절대 vs 퍼센트 데드밴드, DataChangeTrigger, 큐 크기를 어떻게 잡아야 노이즈만 걸러내고 실제 공정 변화는 남기는지.
OPC UA HistoryRead로 SCADA·히스토리언 누락 구간을 복구하는 법. 구간을 정확히 잡고, returnBounds로 경계 샘플을 처리하고, Bad 품질을 보존하며, continuation point로 서버 부하 없이 페이징한다.
히스토리언에서 calibration, manual 전환, bypass를 sampled stream과 분리된 event record로 남기고 asset ID와 시간 구간으로 다시 붙이는 방법. 21 CFR 11, Annex 11, OPC UA Part 11 기준.
Exception과 periodic 수집은 서로 다른 사실을 저장한다. Tag별로 어떻게 고르면 300 ms interlock을 잃지 않는지, 그리고 시운전 때 어떻게 증명하는지 정리했다.
SCADA edge MQTT 페이로드를 변경할 때 HMI, 히스토리언, MES connector, 분석 시스템이 조용히 깨지지 않도록 schema version을 관리하는 실무 노트.
히스토리언이 archive 데이터를 point ID로 잡는지 이름 문자열로 잡는지, rename 한 번에 이력이 왜 둘로 쪼개지는지, cutover에서 무엇을 확인해야 operator보다 먼저 구멍을 찾는지.
계기 고장으로 태그가 11시간 동안 full scale에 붙어 있었다. 품질 검토를 견디는 audit trail을 남기면서 이 구간을 보정하는 방법과, raw sample을 반드시 남겨야 하는 이유.
HMI cursor, historian archive, PLC event log, alarm list는 같은 사건을 서로 몇 초씩 다르게 찍을 수 있다. Trend를 장애 분석의 증거로 믿기 전에 SourceTimestamp와 ServerTimestamp, NTP와 PTP, UTC와 local 중 어디서 시각이 찍히는지 확인하는 법.
야간 교대 report에서 good count가 4개 어긋난다. PLC counter, historian delta, S6F11 event time, spool drain 중 어디를 먼저 봐야 하는지 정리한다.
오래된 공정 데이터를 평균 내면 trip이 사라지고 peak가 낮아지고 적산값이 틀어진다. 태그를 분류하고, 종류별 다운샘플 방법을 고르고, 값과 함께 품질을 남기고, purge를 운영에 걸기 전에 시험하는 법.
WAN 장애 중 MQTT edge gateway가 데이터를 잃는 이유와, source timestamp·Sparkplug 방식 sequence number·replay 정책으로 historian의 공백을 막는 방법.
event frame과 batch segment는 경계가 버텨줘야 값어치를 한다. 시작과 종료 트리거를 어디서 잡을지, 무엇을 속성으로 캡처할지, 닫히지 않은 frame을 어떻게 처리할지 정리했다.
설비 event로 MES lot traceability를 만들 때 실제로 깨지는 지점 — event에 빠진 lot context, GEM clock과 event time, spool replay 순서, split/merge genealogy, 그리고 정직한 correction 설계.
Calculated tag는 어느 순간 공식 숫자가 된다. 리포트나 MES가 가져다 쓰기 전에 수식, quality 규칙, 기간 경계, counter reset을 실제 sample로 확인하는 방법.
범위, 엔지니어링 단위, Modbus word order, NAMUR 고장 임계값, quality까지 확인해서 PLC·SCADA·HMI·히스토리언이 같은 값을 보게 만드는 아날로그 스케일링 시운전 실무.
SCADA 히스토리언 타임스탬프가 틀어지는 원인 — 클록 드리프트, NTP와 PTP, OPC UA 소스 시간, 지연 데이터, 서머타임 — 을 보고서 분쟁 전에 잡는 법.
OPC UA 샘플링 주기, 퍼블리싱 주기, 큐 크기, deadband, KeepAlive/Lifetime 관계가 SCADA 클라이언트와 히스토리언이 공정을 제대로 보는지를 어떻게 결정하는지.
Store-and-forward 버퍼는 회선이 살아나는 순간 몇 시간 지난 값을 한꺼번에 밀어 넣습니다. 어떤 타임스탬프를 기준으로 할지, 늦게 온 값이 무엇을 덮어써도 되는지, 어떻게 표시할지, 이미 배포한 숫자를 바꿔도 되는지를 정하는 이야기.
OPC UA 인증서 만료로 통신이 끊기지 않도록 갱신 절차와 확인 항목을 정리합니다.
히스토리언 데드밴드와 압축을 HMI 소수점이 아니라 계기 정확도와 공정 기준으로 정해, 노이즈는 저장하지 않으면서 실제 움직임은 트렌드에 남기는 방법.
group_id·edge_node_id·device_id를 어떻게 잡아야 이름 변경 하나로 모든 구독과 히스토리언 포인트가 깨지지 않는지, 그리고 birth 인증서·alias·STATE를 실무 기준으로 정리합니다.
히스토리언을 단순 저장소가 아니라 문제 추적과 운전 개선을 위한 시간 데이터 기반으로 설명합니다.
OPC UA 클라이언트 시운전에서 엔드포인트, 보안 정책, 인증서, 구독 품질을 확인하는 절차입니다.
이상 상황에서 운전자가 실제로 던지는 질문에 답하는 SCADA·HMI 트렌드 화면을 만드는 법 — 루프 단위 묶기, 스케일 선택, 그리고 통신 끊김 구간을 매끄러운 선으로 덮지 않고 불량 데이터를 드러내기.
SCADA 태그가 단순 변수명이 아니라 통신 주소, 단위, 품질, 알람, 이력 설정을 연결하는 기준점임을 설명합니다.
HMI, SCADA, MES, 히스토리언을 역할 기준으로 구분하고 현장 아키텍처에서 어디까지 책임져야 하는지 정리합니다.
SCADA를 PLC 위의 단순 화면이 아니라, 설비 상태를 모으고 작업자가 판단할 수 있게 만드는 운영 계층으로 설명합니다.