OTS-SCADA

원전 및 SMR MCR 운전원 훈련 시뮬레이터(OTS) & 실시간 분산 감시제어(SCADA) 플랫폼
  • 홈
  • OTS-SCADA

1. OTS-SCADA 개요 및 통합 아키텍처

플랫폼 개요

OTS-SCADA(Operator Training Simulator & SCADA) 시스템은 원자력 발전소(APR-1400), 소형 모듈 원자로(SMR: Small Modular Reactor) 및 대규모 복합 산업 플랜트를 아우르는 실시간 분산 감시제어 소프트웨어 플랫폼입니다.

본 플랫폼은 과거의 구형 C++ / MFC 기반 모놀리식 구조를 완전히 탈피하여 최신 크로스 플랫폼 프레임워크인 Free Pascal (FPC 3.2.2+) / Lazarus (LCL)와 Eclipse Mosquitto MQTT v5.0/v3.1.1 기반의 초저지연 분산 마이크로서비스 아키텍처로 최신화되었습니다.

수행 역무

원자력 발전소 및 SMR MCR 주제어실 환경을 정밀 모의하는 고성능 벡터 그래픽 HMI 저작(Builder) 및 실시간 운전(Player) 소프트웨어 개발

초당 수만 건의 태그 데이터를 1ms 이내로 라우팅하는 고성능 MQTT 메시지 버스 및 MariaDB 기반 정적/동적 태그 분산 브로커 개발

50ms 스케줄링 주기, 100개 초기조건(IC) 스냅샷 저장/복원, 120개 고장모의(Malfunction)를 지원하는 시뮬레이션 제어 마스터(GMC) 엔진 개발

초당 수만 포인트의 시계열 데이터를 무손실 적재하는 고속 이력 저장(HDSR), RPC 기반 조회 Provider 및 일별 자동 백업/퍼지 시스템 개발

IEC 61131-3 표준 PLC 5대 언어 로직 에뮬레이션 가상제어기(VC ISaGRAF) 연동 및 Blowfish/SHA-256 기반 보안 인증 툴체인 구축

통합 시스템 아키텍처

[OTS-SCADA 총괄 시스템 아키텍처 (Total System Architecture)]

OTS-SCADA 총괄 시스템 아키텍처

※ 클라이언트 애플리케이션(8종) - Eclipse Mosquitto MQTT 메시지 버스 - 서버 백엔드 서비스(8종) - 가상제어기(VC) 간 분산 연동 구조

[OTS-SCADA 3계층 분산 마이크로서비스 아키텍처 (Architecture Overview)]

OTS-SCADA 마이크로서비스 아키텍처

※ 프리젠테이션 클라이언트 계층, 메시지 브로커 라우팅 계층, 서버 백엔드/데이터베이스 영속성 계층의 완전 분리

시스템 구성 일람

구분 프로그램 ID 실행 환경 주요 기능 및 역할
클라이언트
애플리케이션
(8종)
HMI_Builder Windows, Ubuntu • 100% 벡터 그래픽 P&ID 화면 설계, 4,342개 심볼 라이브러리, Python 3.10 스크립트
HMI_Player Windows, Ubuntu • 실시간 공정 감시 및 조작, Faceplate 팝업창, 운전원 경보 아넌시에이터
TREND Windows, Ubuntu • 실시간/이력 고속 시계열 트렌드 차트 (멀티 펜, 동적 줌인/아웃, 통계 분석)
ALARM Windows, Ubuntu • 실시간 원전 경보 감시, 1~4등급 우선순위 컬러 분류, 사운드 알람 통보
PointAlarmList Windows, Ubuntu • 태그별 경보 조건(HH, H, L, LL) 임계치 조회 및 경보 파라미터 관리
LAUNCHER Windows, Ubuntu • 18개 서브시스템 원클릭 일괄 기동/종료, 프로세스 헬스체크 및 Watchdog 자동 복구
LOGIN Windows, Ubuntu • 운전원 및 관리자 등급별(Level 1~4) 보안 로그인 인증 관리
SCR_CAPTURE Windows • 고해상도 화면 캡처 및 WinRT OCR 기반 텍스트 자동 인식 도구
서버 백엔드
서비스
(8종)
GMC_Service Ubuntu, Windows • 50ms 스케줄링 주기, 100개 초기조건(IC) 스냅샷 저장/복원, 120개 고장모의 트리거
HDSR Ubuntu, Windows • 고속 시계열 이력 데이터 수집기, MariaDB 일별 분할 테이블(Daily Partition) 적재
HDSR_Service Ubuntu, Windows • 대용량 이력 데이터 조회 백엔드 RPC Provider (수십만 포인트 고속 전송)
HDSR_Backup Ubuntu, Windows • 이력 DB 자동 압축 백업(ZIP) 및 30일 보존기간 기반 자동 퍼지(Auto-Purge)
DB_Service Ubuntu, Windows • MariaDB 정적 태그(`static_analog`, `static_digital`) 로드 및 MQTT 실시간 중계
ALARM_Service Ubuntu, Windows • 실시간 태그값 임계치 판별, 경보 발생(OCCUR)/해제(CLEAR) DB 적재 및 브로드캐스트
SC_Service Ubuntu, Windows • SCADA 하위 제어기 통신 및 시뮬레이션 입출력 백엔드 브리지
mosquitto Ubuntu, Windows • 고성능 오픈소스 MQTT 브로커 (초당 수만 건 메시지, 지연 < 1ms 라우팅)
가상제어기 &
보안 유틸리티
(3종)
VC_ISaGRAF Ubuntu (Windows, QNX) • IEC 61131-3 표준 5대 PLC 언어 로직 가상제어기 연동 및 실시간 공정 모의
OTS_DB_Password Windows, Ubuntu • Blowfish CBC 128-bit 기반 DB 접속 암호화 도구 (`ots_db.dat` 관리)
OTS_Mqtt_Password Windows, Ubuntu • SHA-256 해시 기반 MQTT 비밀번호 일괄 생성 및 INI 파일 자동 배포

2. 클라이언트 애플리케이션 제품군

Client 01OTS HMI (Builder 저작기 & Player 운전기)

OTS HMI는 원자력 및 대규모 플랜트 공정 배관 계장도(P&ID)를 자유롭게 설계하고 운전원이 실시간으로 감시·제어할 수 있는 올인원 HMI 제품군입니다.
외부 상용 엔진 없이 순수 Free Pascal / Lazarus 그래픽 엔진으로 구현되어 4,342개의 표준 심볼 라이브러리를 지원하며, Python 3.10 스크립트 런타임을 내장하여 복잡한 공정 계산과 동적 그래픽 애니메이션을 자유롭게 확장할 수 있습니다.

[HMI Builder (화면 저작기)]

HMI Builder 화면 저작기

100% 벡터 그래픽 P&ID 화면 설계, 속성창, 태그 탐색기

[HMI Player (실시간 감시 운전기)]

HMI Player 실시간 감시운전

실시간 태그 바인딩, Faceplate 조작창, 아넌시에이터 경보

구분 상세 사양 및 특징
그래픽 엔진 100% 벡터 기반 고해상도 렌더링 지원 (4K/FHD 다중 해상도 무손실 스케일링)
심볼 라이브러리 원전 및 발전 플랜트 표준 P&ID 심볼 4,342개 내장 (밸브, 펌프, 탱크, 열교환기, 센서, 계측기 등)
확장 스크립트 Python 3.10 임베디드 런타임 내장 (이벤트 기반 스크립팅, 실시간 수치 연산 및 커스텀 로직 처리)
운전원 제어 인터페이스 다채널 동적 Faceplate 팝업창 (Manual/Auto 모드 절체, SetPoint 조정, 밸브 개도율 수동 제어)

Client 02OTS Trend Display (초고속 실시간 및 이력 시계열 트렌드 차트)

OTS Trend Display는 플랜트의 실시간 스트리밍 공정 변수와 과거 저장된 대용량 이력 데이터를 동시에 시각화하는 고성능 시계열 분석 도구입니다.
100ms~1s 주기 실시간 멀티 펜 갱신, 수십만 포인트 데이터의 고속 렌더링, 줌/인/아웃 마우스 제스처, 듀얼 커서 간격 계측, 통계 지표(최대/최소/평균/적분) 기능을 제공합니다.

[OTS Trend Display 메인 화면]

OTS Trend Display 메인 화면

※ 실시간 다채널 멀티 펜 스트리밍 차트, 실시간 지표 풋터 바, 과거 이력 데이터 구간 비교

Client 03OTS ALARM & PointAlarmList (실시간 경보 감시 시스템)

OTS ALARM은 원자력 발전소 규격에 맞춘 4단계 우선순위(Priority 1~4) 기반의 실시간 경보 감시 클라이언트입니다.
경보 발생(OCCUR), 인지(ACK), 해제(CLEAR) 생애주기를 추적하며, PointAlarmList 도구를 통해 전 태그의 경보 조건(High-High, High, Low, Low-Low) 임계치를 직관적으로 조회하고 관리합니다.

[OTS ALARM 실시간 경보 감시 화면]

OTS ALARM 실시간 경보 감시 화면

※ 우선순위별 컬러 코드 분류, 운전원 확인(ACK) 처리, 그룹별 사운드 경보 및 이력 로깅

Client 04OTS LAUNCHER (통합 프로세스 관리자 & Watchdog 자동 복구)

OTS LAUNCHER는 18개에 달하는 OTS-SCADA 서브시스템의 프로세스 상태를 한눈에 모니터링하고, 원클릭으로 전체 일괄 기동(Run All) 및 일괄 종료(Stop All)를 수행하는 중앙 제어 콘솔입니다.
각 프로세스의 CPU 사용률, 메모리 점유율, 포트 충돌 여부를 실시간 감시하며, 이상 종료 발생 시 무중단으로 자동 재기동하는 Watchdog 기능을 지원합니다.

[OTS LAUNCHER 프로세스 통합 관제 화면]

OTS LAUNCHER 프로세스 통합 관제 화면

※ 18개 서브시스템 실시간 프로세스 헬스체크, 프로세스 기동/정지, 자동 복구 감시

3. 서버 백엔드 서비스 제품군

Server 01GMC_Service (가상제어기 시뮬레이션 제어 마스터)

GMC_Service(Generic Master Controller)는 운전원 훈련 시뮬레이터의 심장 역할을 하는 시뮬레이션 총괄 마스터 엔진입니다.
50ms 고속 주기로 시뮬레이션 클록을 제어하며, 100개의 초기조건(IC: Initial Condition) 스냅샷 저장 및 즉시 복원(Backtrack), 120개 고장모의(Malfunction)의 실시간 주입 및 시나리오 스케줄링 기능을 완벽하게 지원합니다.

[GMC_Service 시뮬레이션 제어 마스터 GUI]

GMC_Service 시뮬레이션 제어 마스터 GUI

※ RUN / FREEZE / STEP / RESET 제어, IC 스냅샷 저장/복원 트리거, Malfunction 고장모의 관리

기능 항목 상세 사양 및 제원
시뮬레이션 클록 제어 RUN (실시간 운전), FREEZE (일시정지), STEP (50ms 단위 단일 스텝 전진), RESET (초기화) 지원
초기조건 (IC) 스냅샷 최대 100개 초기운전조건(IC: Initial Condition) 저장/복원 지원 (태그 메모리 전체 상태 스냅샷 바이너리 직렬화)
고장모의 (Malfunction) 최대 120개 원전 비정상/사고 시나리오 고장모의 트리거 지원 (램프율, 목표값, 지연시간 파라미터 제어)
하트비트 동기화 MQTT 토픽 OTS/GMC/EVENT를 통해 1Hz 주기로 전체 클라이언트에 시뮬레이션 시각 및 상태 동기화 브로드캐스트

Server 02HDSR & HDSR_Service (대용량 고속 시계열 이력 데이터)

HDSR(Historical Data Storage and Retrieval)은 플랜트의 방대한 공정 데이터를 수집 주기(100ms~1s)에 맞추어 무손실 저장하는 고속 이력 로거입니다.
스토리지 입출력 병목을 방지하기 위해 MariaDB 일별 분할 테이블(Daily Partition: historical_YYYYMMDD) 아키텍처를 채택하였으며, HDSR_Service는 Trend 및 HMI 클라이언트의 대용량 시계열 조회 요청(RPC)을 수신하여 수십만 포인트의 데이터를 수 초 이내로 고속 응답합니다.

Server 03HDSR_Backup (이력 데이터 자동 압축 백업 및 퍼지)

HDSR_Backup은 24시간 365일 무중단 운영되는 원전/플랜트 환경에서 디스크 풀(Full) 장애를 원천 방지하는 지능형 스케줄러입니다.
과거 일자 이력 데이터를 매일 자동으로 압축 ZIP 파일로 변환하여 안전한 아카이브 경로로 이전하며, 사용자 설정 보존 기간(예: 30일)이 지난 구형 데이터를 안전하게 자동 정리(Auto-Purge)합니다.

Server 04DB_Service & mosquitto (초저지연 MQTT 통신 브로커)

DB_Service는 MariaDB에 보관된 태그 마스터 테이블(아날로그/디지털 속성, 공학 단위, 상하한치)을 캐싱하여 HMI, Trend, ALARM에 실시간 배포하며,
Eclipse Mosquitto MQTT v5.0 브로커를 통해 초당 수만 건에 달하는 태그 발행-구독 메시지를 1ms 미만의 지연 시간으로 안정적으로 라우팅합니다.

4. 가상제어기(Virtual Controller) 및 PLC 로직 연동

VC_ISaGRAF (IEC 61131-3 표준 가상제어기 로직 에뮬레이션)

VC_ISaGRAF는 실제 하드웨어 PLC/DCS 제어기 없이도 국제 전기 표준 IEC 61131-3의 5대 프로그래밍 언어(ST, LD, FBD, SFC, IL)로 작성된 원전 및 플랜트 제어 로직을 PC 상에서 100% 동일하게 에뮬레이션하는 고성능 가상제어기 솔루션입니다.

OTS-SCADA의 MQTT 통신 버스와 연동되어 GMC 시뮬레이션 클록에 완벽히 동기화되며, HMI Player의 Faceplate 조작(밸브 개폐, 펌프 기동, 제어 루프 Auto/Manual 모드 절체) 명령을 수신하여 실제 플랜트 하드웨어와 동일한 정밀도로 제어 알고리즘을 실시간 연산합니다.

[VC_ISaGRAF 가상제어기 및 MQTT 로직 아키텍처]

VC_ISaGRAF 가상제어기 및 MQTT 로직 아키텍처

※ ISaGRAF Workbench 로직 설계 $\leftrightarrow$ Shared Memory / MQTT $\leftrightarrow$ GMC 및 HMI 실시간 양방향 제어 연동

연동 규격 세부 사양 및 지원 기능
국제 표준 언어 IEC 61131-3 표준 5대 언어 완벽 지원 (Structured Text, Ladder Diagram, Function Block Diagram, Sequential Function Chart, Instruction List)
시뮬레이션 동기화 GMC_Service의 시뮬레이션 클록(RUN / FREEZE / STEP)과 100% 동기화된 가상 PLC 실행 주기 보장
태그 공유 메모리 초고속 메모리 매핑 I/O 인터페이스를 통해 초당 50회 이상 대규모 가상 I/O 데이터 무지연 교환
적용 분야 원전 원자로 보호계통(RPS), 공정제어계통(PCS), 급수/터빈 제어, 화학/제철 플랜트 자동제어 로직 사전 검증

5. 보안 유틸리티 및 통합 독립 배포 솔루션

보안 및 자격증명 관리 유틸리티

원자력 및 국가 핵심 기반 시설의 엄격한 사이버 보안 지침을 준수하기 위해, 평문(Plaintext) 계정 정보 노출을 방지하는 군사 등급 암호화 유틸리티를 기본 탑재하고 있습니다.

도구명 암호화 알고리즘 주요 기능 및 보안 정책
OTS_DB_Password Blowfish CBC 128-bit • MariaDB 접속 호스트, 포트, 계정, 암호를 강력히 암호화하여 ots_db.dat 바이너리로 생성/관리
OTS_Mqtt_Password SHA-256 One-way Hash • MQTT 메시지 버스 접근 계정 비밀번호를 안전한 해시값으로 변환하고 18개 서브시스템 INI 파일에 일괄 배포
OTS_LOGIN Role-Based Access Control • 운전원(Level 1), 선임운전원(Level 2), 엔지니어(Level 3), 관리자(Level 4) 4등급 권한 체계 및 작업 감사 로깅

단일 파일 독립 배포형 통합 설치 관리자 (setup.exe)

OTS-SCADA는 외부 하위 폴더나 복잡한 사전 종속성 설치 없이, 단일 실행 파일(setup.exe, 약 107.5MB) 하나만으로 전체 시스템을 배포할 수 있는 Solid LZMA 고압축 독립형(All-in-One Standalone) 설치 시스템을 제공합니다.

[단일 배포형 통합 설치 관리자 아키텍처 (Setup Architecture)]

단일 배포형 통합 설치 관리자 아키텍처

※ 18개 프로젝트 원본 경로 직접 참조 빌드 $\rightarrow$ Solid LZMA 107.5MB 단일 setup.exe 패키징 $\rightarrow$ 4대 설치 프리셋 원클릭 배포

설치 프리셋 설치 대상 및 패키지 구성
전체 설치 (Full) 클라이언트 8종, 서버 백엔드 7종, 보안 유틸리티 3종 등 18개 전체 패키지 일괄 설치 (통합 서버 및 엔지니어링 PC 권장)
클라이언트 전용 (Client Only) 운전원 콘솔(OWS) 및 트레이너 스테이션 전용 (LAUNCHER, LOGIN, HMI, TREND, ALARM, PointAlarmList, SC, SCR_CAPTURE)
서버 전용 (Server Only) 전산실 서버 전용 (mosquitto, DB_Service, ALARM_Service, GMC_Service, HDSR, HDSR_Service, HDSR_Backup)
사용자 지정 (Custom) 체크박스 트리를 통해 운용 목적에 필요한 특정 서브시스템만 선택적 독립 설치 지원