태그 등록 (어떤 값을 읽을지 지정)
[태그] 는 PLC 의 메모리 한 칸 에 이름을 붙인 것입니다. PLC 마다 메모리 주소 표기법이 다르기 때문에 자기 PLC 종류 페이지를 함께 참고하시면 됩니다.
- 미쓰비시:
D100,M50같은 형식 - 지멘스:
%DB1.DBW0같은 형식 - LS:
D00309같은 형식 - OPC-UA:
ns=2;s=Channel1.Device1.Tag1같은 형식
자세한 표기법은 각 PLC 페이지의 [PLC 주소] 절에 있습니다 → PLC 종류별 가이드
입력 항목
태그 한 줄에 다음 정보를 입력합니다.
| 칸 | 무엇을 적나요 |
|---|---|
| 태그 이름 | 화면에 보일 이름. 한글 가능 (예: 펌프1 회전수) |
| PLC 주소 | PLC 매뉴얼에 나오는 주소 표기 (예: D100) |
| 데이터 형식 | Float, Integer, Boolean, String, Long, Double 중 하나 |
형식 보조 (format) | 32-bit 인 경우 DW, 실수면 REAL 등 (선택) |
| 계산식 | 단위 변환 등의 후처리 수식 (선택). 자세히는 계산식 적용 |
| 설명 | 메모. 화면에서 같이 보입니다 |
데이터 형식 가이드
| 데이터 형식 | 폭·부호 | 언제 쓰나요 | 예시 |
|---|---|---|---|
Boolean | 1 비트 | 켜짐/꺼짐, ON/OFF | 펌프 가동 / 알람 ON |
Integer | 16-bit 부호있음 | 정수 (음수 포함) — 가장 흔함 | 카운터, 회전수 |
Long | 64-bit 부호있음 | 큰 정수 (32-bit 초과) | 누적 생산량 |
Float | 32-bit 실수 | 소수점 있는 값 | 온도, 압력, 속도 |
Double | 64-bit 실수 | 정밀 소수점 | 정밀 측정 데이터 |
String | 가변 | 문자열 | 배치명, 레시피 이름 |
부호·폭을 이름으로 명시하는 정밀 타입 (Kepware 와 동일한 의미):
| 데이터 형식 | 폭·부호 | 언제 쓰나요 |
|---|---|---|
Short | 16-bit 부호있음 | Integer 와 동일 (명시적 이름) |
Word | 16-bit 부호없음 | 0~65535 카운터 (음수 없음) |
DInt | 32-bit 부호있음 | 32-bit 정수 (구 Integer+DW 조합 대체) |
DWord | 32-bit 부호없음 | 21억(2^31) 초과 누적 카운터 — Integer 로 걷으면 실패하던 값 |
QWord | 64-bit 부호없음 | 부호없는 대형 카운터 |
Byte | 8-bit 부호없음 | 상태 바이트 |
- S7
Integer: 부호없음(u16)으로 잘못 읽히던 것을 부호있음(s16) 정본으로 수정 — 음수가 65531 처럼 나오던 문제 해결. 부호없음이 필요하면Word로. - S7 / MELSEC
Long: 32-bit 로 읽던 것을 정본 64-bit 로 통일. 기존에Long으로 32-bit 를 읽던 태그는DInt(부호있음) 또는DWord(부호없음) 로 변경하세요.
배열 태그 (Base[N])
DInt[10] 처럼 원소타입[개수] 로 등록하면 연속 영역을 한 태그로 걷어 JSON 배열 문자열("[1,2,3]")로 저장합니다.
지원 드라이버 (2026.07 확대): EIP + MELSEC / S7 / Modbus / LS. 원소는 수치 타입만 실제 수집됩니다
(String 배열은 등록 불가, Boolean/Byte 배열은 드라이버가 미지원 — 값이 비어 있게 됩니다).
드라이버별 한도: Modbus 총 125 워드 · LS 총 64 워드 · MELSEC 시리즈별 (Q/L·iQ-R 960 / QnA 480 / A 32 워드) ·
S7 협상 PDU − 19 바이트 — 초과하면 값이 비므로 N 을 줄이거나 태그를 나누세요. 배열 태그는 read 전용 입니다 (write 미지원).
형식 보조 (format) 가이드
PLC 의 같은 주소라도 어떻게 해석할지에 따라 다른 값이 나옵니다. 16-bit 짜리 메모리를 두 칸 묶어서 32-bit 으로 읽거나, 4 칸을 묶어 64-bit 실수로 읽는 등의 차이입니다.
| 가지고 계신 값 | 데이터 형식 | 형식 보조 |
|---|---|---|
| 16-bit 정수 (가장 흔함) | Integer | (비움) |
| 16-bit 부호없는 정수 | Integer | UI |
| 32-bit 정수 (메모리 두 칸) | Integer | DW |
| 32-bit 실수 (가장 흔한 실수형) | Float | REAL |
| 64-bit 실수 (정밀) | Double | LREAL |
| 비트 1 개 (켜짐/꺼짐) | Boolean | (비움) |
| 워드 안의 특정 비트 | Boolean | BIN[3] (비트 3 번) |
| 문자열 N 글자 | String | STR[N] (예: STR[10]) |
32-bit / 64-bit 짜리인데 형식 보조를 비워두면 16-bit 으로 잘못 읽혀 값이 이상하게 작거나 커집니다. 그런 경우 format 칸을 DW, REAL, LREAL 같은 값으로 채워주세요.
고급 태그 설정 (Kepware 참조)
태그에는 아래 선택 설정을 함께 저장할 수 있습니다 (전부 미지정 시 기존 동작 그대로).
현재는 백업/복원 JSON(/connect/restore)이나 REST 로 지정하며, 값은 태그 행과 함께 저장됩니다.
| 설정 | 값 | 의미 |
|---|---|---|
byte_order | AB_CD BA_DC CD_AB DC_BA | 32/64-bit 바이트·워드 오더 (미지정=프로토콜 기본) |
scaling_type | linear sqrt | 원시값 → 공학단위 변환 |
raw_low/raw_high | 숫자 | 스케일링 입력(원시) 범위 |
scaled_low/scaled_high | 숫자 | 스케일링 출력(공학) 범위 |
clamp | true/false | 출력을 scaled 범위로 절단 |
negate | true/false | 부호 반전 |
units | 문자열 | 단위 라벨 (예: degC) |
client_access | R / RW | R 이면 쓰기 API 가 거부됩니다 (읽기 전용) |
deadband | 숫자 | 이전값 대비 변화량이 이 값 미만이면 발행 생략 |
scan_divisor | 정수 | n 사이클마다 1 회만 읽기 (수집 주기 배수) |
예 — 4~20mA 원시 0..4095 를 0..100% 로 선형 변환하고 소폭 변동 억제:
{"tags":[{ "opc_id":"OPC_X", "tag_id":"TAG_PCT", "tag_name":"압력%",
"data_type":"Float", "plc_address":"D100",
"scaling_type":"linear", "raw_low":0, "raw_high":4095,
"scaled_low":0, "scaled_high":100, "clamp":true, "deadband":0.5 }]}
계산식(fomula)과 병행 가능합니다 — 스케일링 결과 위에 계산식이 적용됩니다.
CSV 일괄등록(/ui/connect/csv)에서도 같은 설정을 지정할 수 있습니다 — 기본 9열 뒤 선택 열:
RAW_TYPE, BYTE_ORDER, SCALING_TYPE, RAW_LOW, RAW_HIGH, SCALED_LOW, SCALED_HIGH, CLAMP, NEGATE, UNITS, CLIENT_ACCESS, DEADBAND, SCAN_DIVISOR, TAG_GROUP.
9열짜리 기존 CSV 는 그대로 동작합니다. JSON 백업/복원은 이 설정을 항상 포함합니다(무설정 항목은 파일에서 생략).
등록하는 방법
방법 1 — PLC 등록 폼에서 함께 추가
[연결 추가] 또는 [수정] 화면 안에 태그 입력 표가 있습니다. [+ 태그 추가] 버튼을 눌러 줄을 늘리고 한 줄씩 입력 후 [저장].
방법 2 — 이미 등록된 PLC 에 태그만 추가
- [연결] 메뉴 → 좌측에서 PLC 를 클릭
- 우측 [태그 목록] 위의 [태그 추가] 버튼 클릭
- 한 개씩 추가. 추가 즉시 다음 수집 주기에 값이 들어오기 시작합니다.
방법 3 — CSV 일괄 업로드
태그가 수십 개 이상이면 [연결] 우측 상단의 [CSV 일괄 업로드] 가 빠릅니다. CSV 양식은 업로드 화면에서 다운로드 가능합니다.
잘 등록되었는지 확인
PLC 를 클릭하면 우측 [태그 목록] 에 등록한 태그들이 보입니다.
| 컬럼 | 의미 |
|---|---|
| 태그 이름 / 주소 / 형식 | 등록한 그대로 |
| 현재 값 | 가장 최근 수집된 값 (5 초마다 자동 갱신) |
| 수집 시각 | 그 값이 들어온 시간 |
| 상태 | 정상 / 오류 |
오류가 뜨면 PLC 주소 표기 오타 또는 데이터 형식 불일치 가능성이 큽니다. 문제 해결 — 값이 이상해요 참고.
태그 수정 / 삭제
- 태그 목록의 행을 클릭하면 수정 폼이 열립니다.
- 행 끝의 [삭제] 버튼으로 한 줄씩 삭제합니다.
수정 즉시 다음 수집 주기에 새 설정으로 적용됩니다.
자주 묻는 질문
Q. PLC 주소를 어떻게 알아내나요?
- PLC 프로그래머 / 설비 제조사 매뉴얼에 “데이터 매핑표” 가 있는 경우가 많습니다.
- PLC 작성 도구 (GX Works, TIA Portal, XG5000 등) 의 “Watch table / 모니터 화면” 에서 사용 중인 주소를 확인할 수 있습니다.
- OPC-UA 라면 UA Expert 같은 무료 클라이언트로 주소를 클릭/복사해 가져오는 게 가장 정확합니다.
Q. 태그 ID 는 어떻게 짓나요?
게이트웨이가 자동으로 <연결 ID>_TAG_<번호> 형식으로 부여합니다. 직접 지정도 가능하지만 영문/숫자/언더스코어만 사용해주세요.
Q. 같은 주소를 두 태그로 등록해도 되나요?
가능합니다. 같은 raw 값에 다른 계산식을 적용해 단위만 바꿔서 두 가지로 보내고 싶을 때 자주 사용합니다 (예: temperature raw + temperature_F 화씨 변환).
Q. 한 PLC 에 태그를 몇 개까지 등록할 수 있나요?
수백 개까지는 무리가 없습니다. 다만 수집 주기 안에 모두 다 읽을 수 있어야 하므로 PLC 가 응답할 수 있는 시간을 고려하세요. 한 PLC 의 태그가 1000 개를 넘는다면 PLC 의 부하 / 네트워크 지연을 함께 모니터링하시는 게 좋습니다.