- Jelina 개요
- CommBridge
- 데이터 수집
IEC104 수집
1. 시뮬레이터 설정
섹션 제목: “1. 시뮬레이터 설정”프로토콜 시뮬레이터로 데이터를 생성합니다. 설정 절차는 다음과 같습니다.
(1.) 폴더의 프로토콜 시뮬레이터 protocolsimulator.exe를 두 번 클릭하여 엽니다.
(2.) 프로토콜 시뮬레이터에서 다음 정보를 설정합니다.
a. 연결 매개변수: TCP-S
b. IP: 노트북의 IPv4 주소
c. Port: 1000 이상의 정수(연결 설정에 입력한 포트와 동일)
d. 프로토콜 유형: iec104-server
e. 포인트 목록 파일: 측정 포인트 데이터를 시뮬레이션하는 simulator_point.csv를 다운로드하여 시뮬레이터에 업로드합니다.

(3.) 지정된 측정 포인트를 선택합니다.
(4.) 왼쪽 위의 테스트 → 자동 전송을 클릭하고 주기를 1000ms로 입력한 후 확인을 클릭합니다.

(5.) 연결 열기를 클릭하여 데이터 시뮬레이션을 시작합니다.
2. 노드 생성
섹션 제목: “2. 노드 생성”(1.) CommBridge 페이지의 【스마트 트윈】으로 이동한 후 왼쪽에서 【장치 연결】로 전환합니다.

(2.) IEC104 수집, 데이터 처리 및 MQTT 업로드 플러그인을 차례로 플러그인 작업 영역에 끌어 놓아 세 개의 노드를 생성합니다.

(3.) 세 노드를 차례로 연결합니다. 연결 순서는 IEC104 수집 → 데이터 처리 → MQTT 업로드입니다.

3. 구성 생성
섹션 제목: “3. 구성 생성”(1.) IEC104 수집을 두 번 클릭하고 【구성 추가】 버튼을 클릭합니다.

(2.) 연결 설정을 입력하고 【다음】을 클릭합니다.

(3.) 【그룹 추가】를 클릭하고 그룹 정보를 입력한 후 【확인】을 클릭합니다.

(4.) 【데이터 추가】를 클릭하고 데이터 포인트 정보를 입력한 후 【확인】을 클릭합니다.

(5.) 【완료】를 클릭하여 수집 구성을 추가합니다.

(6.) 구성의 스위치를 켜고 【저장】을 클릭합니다.

4. 결과 확인
섹션 제목: “4. 결과 확인”(1.) 【장치 연결】의 【배포】 버튼을 클릭하여 배포합니다.

(2.) 【스마트 트윈】으로 전환한 후 IEC104 수집 노드 위로 마우스를 이동하면 노드 정보 목록이 표시됩니다.

(3.) 구성을 클릭하여 해당 구성의 각 그룹에 속한 데이터 포인트의 실시간 데이터와 이력 데이터를 확인합니다.

5. 설정 설명
섹션 제목: “5. 설정 설명”연결 설정
섹션 제목: “연결 설정”| 매개변수 | 설명 | 형식 | 예 |
|---|---|---|---|
| 구성 이름 | 사용자가 지정하는 구성 이름 | 필수 | IEC104 수집 |
| 프로토콜 | 전력 프로토콜 IEC104 | 필수 | IEC 104(TCP) |
| 전송 원인 주소 크기 | 전송 원인(COT)의 바이트 수이며 기본값은 1바이트 | 1, 2 | 2 |
| 공통 주소 길이 | ASDU 공통 주소(CA)의 바이트 수이며 기본값은 2바이트(16비트) | 1, 2 | 2 |
| 정보 객체 주소 길이 | 정보 객체 주소(IOA)의 크기이며 기본값은 3바이트(24비트) | 1, 2, 3 | 3 |
| 기점 주소 | 사용자 정의 | 숫자, 범위: [0,255] | 0 |
| 응용 서비스 데이터 단위 공통 주소 | 총괄 조회 또는 명령 전송 시 설정하는 응용 서비스 데이터 단위(ASDU)의 공통 주소(CA) | 숫자, 범위: [0,2147483647] | 1 |
| 총괄 조회 주기 | 총괄 조회 주기를 설정합니다. 0이면 주기적으로 총괄 조회하지 않습니다. 단위는 밀리초입니다. | 숫자, 범위: [0,2147483647] | 0 |
| Host | 수집 대상인 104 종속국(시뮬레이터가 실행되는 장치, 피제어국)의 IP 주소 | 10진수 형식 주소 | 192.168.220.146 |
| 포트 | 수집 대상인 104 종속국의 IP 포트 번호로 실제 사용 값에 따라 입력합니다(시뮬레이터의 포트 번호와 일치). | 숫자, 범위: [1, 65535] | 2404 |
| K | 송신 윈도 크기: 전송했지만 아직 확인 응답을 받지 못한 I 형식 APDU의 최대 허용 개수 | 숫자, 범위: [1,32767] | 12 |
| W | 수신 측이 받을 수 있는 미확인 APDU의 최대 수 | 숫자, 범위: [1,32767] | 8 |
| t0 | 연결 설정 제한 시간입니다. 연결이 설정되지 않으면 재연결을 시도합니다. | 숫자, 범위: [1,255] | 30 |
| t1 | APDU 전송 또는 테스트 제한 시간으로, 확인 응답을 기다리는 시간입니다. 확인 응답이 없으면 데이터를 재전송해야 합니다. | 숫자, 범위: [1,255] | 15 |
| t2 | 메시지 확인 제한 시간으로, 종속국이 자발적으로 데이터를 보고한 시점부터 S 프레임 확인 응답을 받을 때까지의 시간입니다. t2 동안 데이터를 전송하지 않았다면 다음 확인 프레임을 전송해야 합니다. |
숫자, 범위: [1,255] | 10 |
| t3 | 하트비트 제한 시간입니다. t3 동안 데이터 교환이 없으면 U 프레임 테스트 프레임을 전송하여 링크 계층이 계속 활성 상태인지 확인해야 합니다. | 숫자, 범위: [1,255] | 20 |
참고:
- K의 기본값은 12이며, 전송했지만 아직 확인 응답을 받지 못한 I 형식 APDU를 최대 12개까지 허용합니다. 이 윈도 상한에 도달하면 송신 측은 확인 응답을 받은 후 I 형식 APDU 전송을 계속해야 합니다.
- W의 기본값은 8입니다. 주국은 APDU 8개를 받으면 반드시 S 프레임 확인 응답을 보내야 합니다. 주국에 사용합니다(이론상
W < 2/3K).- t0의 기본값은 30s, t1은 15s, t2는 10s, t3는 20s입니다(이론상
t2 < t1 < t3).- t0 ~ t3의 단위는 초입니다.
그룹 추가
섹션 제목: “그룹 추가”| 매개변수 | 설명 | 형식 | 예 |
|---|---|---|---|
| 그룹 이름 | 사용자가 지정하는 그룹 이름 | 필수 | 그룹 1 |
| 기점 주소(s) | 사용자가 정의하는 ASDU 공통 주소(ADR)로, 이 링크상의 서로 다른 하위국을 구별 | 숫자, 범위: [0,255] | 1 |
| 총괄 조회 주기 | 총괄 조회 주기를 설정하며, 0이면 주기적으로 총괄 조회하지 않음 | 단위: 초, 숫자, 범위: [0,2147483647] | 1 |
| 원격 상태 감시(DI) 포인트 번호 오프셋 | 모든 원격 상태 감시(디지털 입력 DI) 데이터의 오프셋으로, 10진수 및 16진수 지원 | 10진수 범위: [1,2147483647] 16진수 범위: [0x0,0xffff] |
0x0 |
| 원격 제어(DO) 포인트 번호 오프셋 | 모든 원격 제어(디지털 출력 DO) 데이터의 오프셋으로, 10진수 및 16진수 지원 | 10진수 범위: [1,2147483647] 16진수 범위: [0x0,0xffff] |
0x6001 |
| 원격 계측(AI) 포인트 번호 오프셋 | 모든 원격 계측(아날로그 입력 AI) 데이터의 오프셋으로, 10진수 및 16진수 지원 | 10진수 범위: [1,2147483647] 16진수 범위: [0x0,0xffff] |
0x3e9 |
| 원격 설정(AO) 포인트 번호 오프셋 | 모든 원격 설정(아날로그 출력 AO) 데이터의 오프셋으로, 10진수 및 16진수 지원 | 10진수 범위: [1,2147483647] 16진수 범위: [0x0,0xffff] |
0x6201 |
데이터 추가
섹션 제목: “데이터 추가”| 매개변수 | 조건 | 설명 | 형식 | 예 |
|---|---|---|---|---|
| 데이터 별칭 | 사용자가 정의하는 데이터 이름으로, 수집할 key와 일치해야 함 | 필수 | 데이터 1 | |
| 정보 객체 주소 | 정보 객체의 주소(InfoAdr)로 서로 다른 용도를 구별합니다. 원격 상태 감시, 원격 계측 등의 각 정보는 서로 다른 정보 객체 주소를 사용합니다. | 숫자, 아래 설명 참조 | 0 | |
| 데이터 분류 | 원격 상태 감시는 디지털 입력 DI, 원격 제어는 디지털 출력 DO, 원격 계측은 아날로그 입력 AI, 원격 설정은 아날로그 출력 AO | AI, DI | AI | |
| 데이터 유형 | 수집 대상 데이터 포인트의 데이터 유형 | 드롭다운 선택, 아래 설명 참조 | ||
| 타임스탬프 포함 | 정보 전송 시간(타임스탬프)의 포함 여부 | Yes, No, 아래 설명 참조 | No | |
| 타임스탬프 유형 | 타임스탬프 포함이 Yes | 타임스탬프 유형입니다. IEC104는 CP24Time2a를 지원하지 않습니다. | CP56Time2a, CP24Time2a | CP56Time2a |
| 읽기/쓰기 | 데이터 분류에 따라 결정 | ro(읽기 전용), wo(쓰기 전용) 지원 | ro, wo, 아래 설명 참조 | No |
| 계산 | 사용자가 데이터 별칭을 기반으로 정의하는 수식 | 제한 없음 | ||
| 실행 방식 | 데이터 분류가 AO/DO | Execute: 직접 제어, Select Execute: 선택 후 실행 | Execute, Select Execute, 아래 설명 참조 | |
| 제어 제한 시간 | 데이터 분류가 AO/DO | 아래 설명 참조 | ||
| 품질 한정자 | 데이터 분류가 AO/DO | 데이터 분류가 AO이면 설정값 품질 한정자 QL, DO이면 명령 품질 한정자 QU | 아래 설명 참조 | |
| 제어 유형 | 데이터 분류가 DO | 제어 명령의 출력 신호 지속 시간 | Persistent Output, Short Pulse, Long Pulse, 아래 설명 참조 |
참고:
데이터 포인트의 실제 주소 = 원격 상태 감시/원격 제어/원격 계측/원격 설정 포인트 번호 오프셋 + 정보 객체 주소
- 정보 객체 주소 길이는 주소 크기에 따라 결정됩니다. 크기가 1이면 범위는 [0-255], 2이면 [0-65535], 3이면 [0-16777215]입니다.
데이터 유형:
- 데이터 분류가 DI이면 Single Point Information, Double Point Information을 선택할 수 있습니다.
- 데이터 분류가 DO이면 Single Command, Double Command, Regulating Step Command를 선택할 수 있습니다.
- 데이터 분류가 AI이면 Step Position Information, Bitstring32, Measured Value Normalized, Measured Value Scaled, Measured Value Short Floating, Integrated Total 및 Measured Hormalized Without Quality를 선택할 수 있습니다.
- 데이터 분류가 AO이면 BitString32 Command, Setpoint Command Normalized, Setpoint Command Scaled 및 Setpoint Command Short Floating을 선택할 수 있습니다.
읽기/쓰기:
- ro: 데이터 분류가 DI, AI이면 기본값은 ro(읽기 전용)입니다.
- wo: 데이터 분류가 DO, AO이면 기본값은 wo(쓰기 전용)입니다.
품질 한정자:
- 설정 품질 한정자 QL은 측정값(원격 계측)과 상태 정보(원격 상태 감시)에 사용하며 데이터 객체 자체의 품질을 설명합니다. 숫자, 범위: [0,127]
- 명령 품질 한정자 QU는 명령(원격 제어, 설정값)에 사용하며 명령 실행 방식과 속성을 설명합니다. No Additional Definition, Persistent Output, Short Pulse, Long Pulse를 선택할 수 있습니다.
- Persistent Output: 연속 출력
- Short Pulse: 짧은 펄스
- Long Pulse: 긴 펄스
protocolsimulator 시뮬레이터의 데이터 포인트에는 기본적으로 타임스탬프가 포함되지 않습니다.
6. IEC104 프로토콜 관련 매개변수 설명
섹션 제목: “6. IEC104 프로토콜 관련 매개변수 설명”데이터 유형
섹션 제목: “데이터 유형”| 데이터 분류 | 데이터 유형 | 유형 식별자(ASDU 유형) | 설명 |
| 원격 상태 감시 DI | Single Point | M_SP_NA_1=1 | 타임스탬프가 없는 단일 포인트 상태 정보 |
| M_SP_TB_1=30 | 긴 타임스탬프가 있는 단일 포인트 상태 정보 | ||
| Double Point | M_DP_NA_1=3 | 타임스탬프가 없는 이중 포인트 상태 정보 | |
| M_DP_TB_1=31 | 긴 타임스탬프가 있는 이중 포인트 상태 정보 | ||
| 원격 계측 AI | Step Position | M_ST_NA_1=5 | 타임스탬프가 없는 스텝 위치 정보 |
| M_ST_TB_1=32 | 긴 타임스탬프가 있는 스텝 위치 정보 | ||
| Bitstring | M_BO_NA_1=7 | 타임스탬프가 없는 32비트 문자열 | |
| M_BO_TB_1=33 | 긴 타임스탬프가 있는 32비트 문자열 | ||
| Measured Normalized | M_ME_NA_1=9 | 타임스탬프가 없는 일반 계측값(정규화 값) | |
| M_ME_TD_1=34 | 긴 타임스탬프가 있는 일반 계측값(정규화 값) | ||
| Measured Scaled | M_ME_NB_1=11 | 타임스탬프가 없는 일반 계측값(스케일 값) | |
| M_ME_TE_1=35 | 긴 타임스탬프가 있는 일반 계측값(스케일 값) | ||
| Measured Short Float | M_ME_NC_1=13 | 타임스탬프가 없는 부동소수점 계측값 | |
| M_ME_TF_1=36 | 긴 타임스탬프가 있는 부동소수점 계측값 | ||
| Integrated Totals | M_IT_NA_1=15 | 타임스탬프가 없는 누적값 | |
| M_IT_TB_1=37 | 긴 타임스탬프가 있는 누적값 | ||
| Measured Normalized Without Quality | M_ME_ND_1=21 | 품질 설명이 없는 일반 계측값(정규화 값) | |
| 원격 제어 DO | Single Command | C_SC_NA_1=45 | 단일 포인트 제어 |
| C_SC_TA_1=58 | 긴 타임스탬프가 있는 단일 포인트 제어 | ||
| Double Command | C_DC_NA_1=46 | 이중 포인트 제어 | |
| C_DC_TA_1=59 | 긴 타임스탬프가 있는 이중 포인트 제어 | ||
| Regulation Command | C_RC_NA_1=47 | 상승/하강 스텝 제어 | |
| C_RC_TA_1=60 | 긴 타임스탬프가 있는 상승/하강 스텝 제어 | ||
| 원격 설정 AO | Setpoint Normalized | C_SE_NA_1=48 | 정규화 설정값 |
| C_SE_TA_1=61 | 긴 타임스탬프가 있는 정규화 설정값 | ||
| Setpoint Scaled | C_SE_NB_1=49 | 스케일 설정값 | |
| C_SE_TB_1=62 | 긴 타임스탬프가 있는 스케일 설정값 | ||
| Setpoint Floating | C_SE_NC_1=50 | 단정밀도 부동소수점 설정값 | |
| C_SE_TC_1=63 | 긴 타임스탬프가 있는 단정밀도 부동소수점 설정값 | ||
| Bitstring Command | C_BO_NA_1=51 | 32비트 문자열 | |
| C_BO_TA_1=64 | 긴 타임스탬프가 있는 32비트 문자열 |