LS 산전 (LS ELECTRIC) — XGI / XBC / XBM
LS ELECTRIC (구 LS산전) 의 XGI / XBC / XBM PLC 시리즈와 FEnet (Fast Ethernet) 표준 프로토콜로 통신합니다.
XGT 시리즈에서 가장 흔히 쓰는 통신 방식이며, ICMP (ping) 도달성을 먼저 확인한 후 실제 통신을 시작합니다.
등록 폼 입력값
| 입력 칸 | 무엇을 적나요 | 예시 |
|---|---|---|
| IP 주소 | PLC 의 FEnet 모듈 IP | 192.168.0.80 |
| 포트 | FEnet 포트 | 2004 (XGT 기본) |
| 연결 타임아웃 (connect-timeout) | 연결 시도 최대 시간 (ms) | 3000 |
| 읽기 타임아웃 (read-timeout) | 읽기 응답 최대 시간 (ms) | 3000 |
| 체크섬 사용 (use-checksum) | BCC 체크섬 옵션 | 보통 false |
| 비트 인덱스 16진 사용 (use-hex-bit-index) | 비트 번호를 16진으로 해석할지 | 보통 false. P 영역에서 F 같은 16진 인덱스를 쓸 때만 true |
PLC 측 설정은 XG5000 에서 FEnet 모듈의 IP / 포트를 미리 등록해두면 됩니다.
ping 검사
LS PLC 는 통신 시도 전에 게이트웨이가 ping 으로 도달 가능 여부를 먼저 확인합니다. 사내망에서 ICMP (ping) 가 차단되어 있으면 정상 PLC 도 “Ping failed” 로 표시되니, 방화벽 정책을 확인해주세요.
태그의 PLC 주소 표기
LS PLC 는 짧은 형식 (D00309) 을 권장하며, 게이트웨이가 자동으로 표준 형식 (%DW00309) 으로 변환합니다.
메모리 영역
| 글자 | 영역 |
|---|---|
D | Data Register — 가장 흔함 |
M | Memory (메모리 비트) |
K | Keep Relay |
F | Flag |
T | Timer |
C | Counter |
R | (시리즈에 따라) |
P | I/O |
표기 예
| 표기 (짧은 형식) | 의미 |
|---|---|
D00309 | Data Register 309 (16-bit) |
D00600 | Data Register 600 (32-bit 으로 쓰려면 [형식 보조] 에 DW 명시) |
M02704 | Memory bit 2704 |
P0001F | I/O bit (16진 인덱스 사용시) |
LS 의 같은 주소를 16-bit / 32-bit / 64-bit / 실수로 다양하게 해석할 수 있어 [형식 보조] 가 핵심입니다.
데이터 형식 매칭
| PLC 의 값 | 데이터 형식 | 형식 보조 | PLC 주소 예 |
|---|---|---|---|
| 비트 (M, K, T, P) | Boolean | (비움) | M02704 |
| 워드 안의 특정 비트 | Boolean | BIN[3] (3번 비트) | D00309 |
| 16-bit 정수 | Integer | (비움) | D00309 |
| 16-bit 부호없는 | Integer | UI | D00300 |
| 32-bit 정수 | Integer | DW | D00600 (D00600~D00601 사용) |
| 32-bit 부호없는 | Integer | UDW | D00690 |
| 64-bit 정수 | Long | (비움) | D00700 |
| 32-bit 실수 (가장 흔한 실수형) | Float | REAL | D00450 |
| 64-bit 실수 | Double | LREAL | D00500 |
| 문자열 N 워드 (= 2N 글자) | String | STR[N] | D00500 |
32-bit 인데 형식 보조를 비우면?
16-bit 으로 잘못 읽혀서 값이 전혀 다른 숫자로 나옵니다. 32-bit 정수면 DW, 32-bit 실수면 REAL 을 반드시 명시하세요.
흔한 문제와 해결
| 증상 / 메시지 | 가능한 원인 | 해결 |
|---|---|---|
| “Ping failed” | ICMP 차단 환경 | 방화벽에서 ICMP 허용. 안 되면 시스템 관리자 |
| “Connect failed” | FEnet 모듈 미가동, 포트 다름 | XG5000 에서 FEnet 모듈 IP/포트 (2004) 확인 |
| 32-bit 값이 이상함 | 형식 보조 비움 | DW (정수) / REAL (실수) 명시 |
| 비트가 안 읽힘 | D00100 으로 등록함 (D 는 워드 영역) | M02704 같은 비트 영역 사용. 또는 format=BIN[3] 으로 워드의 비트 추출 |
| 문자열 글자 깨짐 | LS 가 low-byte-first 로 보내는 특성 | 게이트웨이가 알아서 처리합니다. 외부 도구로 직접 디코딩 시 주의 |
자주 쓰는 예시
일반 라인 PLC 등록
| 태그 이름 | PLC 주소 | 데이터 형식 | 형식 보조 |
|---|---|---|---|
| 가동 비트 | M02704 | Boolean | (비움) |
| 카운터 (16-bit) | D00309 | Integer | (비움) |
| 누적 생산량 (32-bit) | D00600 | Integer | DW |
| 압력 (실수) | D00100 | Float | REAL |
| 압력 (kPa, 변환) | D00100 | Float | REAL (계산식 ${VALUE}*0.1) |
| 배치명 (10 워드) | D00500 | String | STR[10] |
워드의 비트 추출
같은 워드 안에 여러 비트 신호가 묶여 있다면 BIN[비트번호] 로 한 줄씩 등록할 수 있습니다.
| 태그 이름 | PLC 주소 | 데이터 형식 | 형식 보조 |
|---|---|---|---|
| Bit 0 | D00309 | Boolean | BIN[0] |
| Bit 3 | D00309 | Boolean | BIN[3] |
| Bit 15 | D00309 | Boolean | BIN[F] (16진 F = 15) |
use-hex-bit-index=true 로 PLC 등록 옵션을 설정하면 16진 인덱스(F 등) 사용이 가능합니다.
더 자세한 예제 / 자동화 등록
고급 — REST API 의 LS 예제를 참고하세요.