OTS-SCADA
원전 및 SMR MCR 운전원 훈련 시뮬레이터(OTS) & 실시간 분산 감시제어(SCADA) 플랫폼
OTS-SCADA
원전 및 SMR MCR 운전원 훈련 시뮬레이터(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)]
※ 클라이언트 애플리케이션(8종) - Eclipse Mosquitto MQTT 메시지 버스 - 서버 백엔드 서비스(8종) - 가상제어기(VC) 간 분산 연동 구조
[OTS-SCADA 3계층 분산 마이크로서비스 아키텍처 (Architecture Overview)]
※ 프리젠테이션 클라이언트 계층, 메시지 브로커 라우팅 계층, 서버 백엔드/데이터베이스 영속성 계층의 완전 분리
| 구분 | 프로그램 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 파일 자동 배포 |
OTS HMI는 원자력 및 대규모 플랜트 공정 배관 계장도(P&ID)를 자유롭게 설계하고 운전원이 실시간으로 감시·제어할 수 있는 올인원 HMI 제품군입니다.
외부 상용 엔진 없이 순수 Free Pascal / Lazarus 그래픽 엔진으로 구현되어 4,342개의 표준 심볼 라이브러리를 지원하며,
Python 3.10 스크립트 런타임을 내장하여 복잡한 공정 계산과 동적 그래픽 애니메이션을 자유롭게 확장할 수 있습니다.
[HMI Builder (화면 저작기)]
100% 벡터 그래픽 P&ID 화면 설계, 속성창, 태그 탐색기
[HMI Player (실시간 감시 운전기)]
실시간 태그 바인딩, Faceplate 조작창, 아넌시에이터 경보
| 구분 | 상세 사양 및 특징 |
|---|---|
| 그래픽 엔진 | 100% 벡터 기반 고해상도 렌더링 지원 (4K/FHD 다중 해상도 무손실 스케일링) |
| 심볼 라이브러리 | 원전 및 발전 플랜트 표준 P&ID 심볼 4,342개 내장 (밸브, 펌프, 탱크, 열교환기, 센서, 계측기 등) |
| 확장 스크립트 | Python 3.10 임베디드 런타임 내장 (이벤트 기반 스크립팅, 실시간 수치 연산 및 커스텀 로직 처리) |
| 운전원 제어 인터페이스 | 다채널 동적 Faceplate 팝업창 (Manual/Auto 모드 절체, SetPoint 조정, 밸브 개도율 수동 제어) |
OTS Trend Display는 플랜트의 실시간 스트리밍 공정 변수와 과거 저장된 대용량 이력 데이터를 동시에 시각화하는 고성능 시계열 분석 도구입니다.
100ms~1s 주기 실시간 멀티 펜 갱신, 수십만 포인트 데이터의 고속 렌더링, 줌/인/아웃 마우스 제스처, 듀얼 커서 간격 계측, 통계 지표(최대/최소/평균/적분) 기능을 제공합니다.
[OTS Trend Display 메인 화면]
※ 실시간 다채널 멀티 펜 스트리밍 차트, 실시간 지표 풋터 바, 과거 이력 데이터 구간 비교
OTS ALARM은 원자력 발전소 규격에 맞춘 4단계 우선순위(Priority 1~4) 기반의 실시간 경보 감시 클라이언트입니다.
경보 발생(OCCUR), 인지(ACK), 해제(CLEAR) 생애주기를 추적하며, PointAlarmList 도구를 통해 전 태그의 경보 조건(High-High,
High, Low, Low-Low) 임계치를 직관적으로 조회하고 관리합니다.
[OTS ALARM 실시간 경보 감시 화면]
※ 우선순위별 컬러 코드 분류, 운전원 확인(ACK) 처리, 그룹별 사운드 경보 및 이력 로깅
OTS LAUNCHER는 18개에 달하는 OTS-SCADA 서브시스템의 프로세스 상태를 한눈에 모니터링하고, 원클릭으로 전체 일괄 기동(Run All) 및 일괄
종료(Stop All)를 수행하는 중앙 제어 콘솔입니다.
각 프로세스의 CPU 사용률, 메모리 점유율, 포트 충돌 여부를 실시간 감시하며, 이상 종료 발생 시 무중단으로 자동 재기동하는 Watchdog 기능을 지원합니다.
[OTS LAUNCHER 프로세스 통합 관제 화면]
※ 18개 서브시스템 실시간 프로세스 헬스체크, 프로세스 기동/정지, 자동 복구 감시
GMC_Service(Generic Master Controller)는 운전원 훈련 시뮬레이터의 심장 역할을 하는 시뮬레이션 총괄 마스터 엔진입니다.
50ms 고속 주기로 시뮬레이션 클록을 제어하며, 100개의 초기조건(IC: Initial Condition) 스냅샷 저장 및 즉시 복원(Backtrack),
120개 고장모의(Malfunction)의 실시간 주입 및 시나리오 스케줄링 기능을 완벽하게 지원합니다.
[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 주기로 전체 클라이언트에 시뮬레이션 시각 및 상태 동기화 브로드캐스트 |
HDSR(Historical Data Storage and Retrieval)은 플랜트의 방대한 공정 데이터를 수집 주기(100ms~1s)에 맞추어 무손실 저장하는
고속 이력 로거입니다.
스토리지 입출력 병목을 방지하기 위해 MariaDB 일별 분할 테이블(Daily Partition: historical_YYYYMMDD) 아키텍처를 채택하였으며,
HDSR_Service는 Trend 및 HMI 클라이언트의 대용량 시계열 조회 요청(RPC)을 수신하여 수십만 포인트의 데이터를 수 초 이내로 고속 응답합니다.
HDSR_Backup은 24시간 365일 무중단 운영되는 원전/플랜트 환경에서 디스크 풀(Full) 장애를 원천 방지하는 지능형 스케줄러입니다.
과거 일자 이력 데이터를 매일 자동으로 압축 ZIP 파일로 변환하여 안전한 아카이브 경로로 이전하며, 사용자 설정 보존 기간(예: 30일)이 지난 구형 데이터를 안전하게 자동
정리(Auto-Purge)합니다.
DB_Service는 MariaDB에 보관된 태그 마스터 테이블(아날로그/디지털 속성, 공학 단위, 상하한치)을 캐싱하여 HMI, Trend, ALARM에 실시간
배포하며,
Eclipse Mosquitto MQTT v5.0 브로커를 통해 초당 수만 건에 달하는 태그 발행-구독 메시지를 1ms 미만의 지연 시간으로 안정적으로 라우팅합니다.
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 로직 아키텍처]
※ 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), 급수/터빈 제어, 화학/제철 플랜트 자동제어 로직 사전 검증 |
원자력 및 국가 핵심 기반 시설의 엄격한 사이버 보안 지침을 준수하기 위해, 평문(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등급 권한 체계 및 작업 감사 로깅 |
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) | 체크박스 트리를 통해 운용 목적에 필요한 특정 서브시스템만 선택적 독립 설치 지원 |