CC-Link IE Field Driver — 기술 레퍼런스 (구현 로드맵)
PlantPulse Edge 의 CC-Link IE Field 드라이버는 현재 stub (placeholder) 단계입니다. 정식 read/write 동작 전까지 사용자는 MELSEC (MC Protocol / SLMP) 카드를 이용해 우회하세요.
소스: plantpulse.driver.protocol.cclink.*
| 클래스 | 책임 |
|---|---|
CCLinkIEFieldDriver | AbstractStubDriver 기반 placeholder — connect 시 warn 로그, read/write 모두 빈/false |
왜 stub 인가
PlantPulse Edge 는 Apache PLC4X 0.13.1 의 driver 들을 lib 으로 번들합니다 (BACnet/KNXnet/CANopen/ADS/AB-ETH 등 12개). PLC4X 0.13.1 의 driver 매트릭스에는 CC-Link IE Field 가 아직 포함되어 있지 않습니다.
확인 방법:
ls plantpulse-edge-driver/lib/ | grep plc4j-driver
# plc4j-driver-ab-eth, ads, bacnet, c-bus, can, canopen, eip, firmata,
# iec-60870, knxnetip, modbus, opcua, open-protocol, plc4x, profinet-ng,
# s7, simulated ← cc-link-ie 없음
정식 구현 경로
| 경로 | 장점 | 단점 |
|---|---|---|
PLC4X 0.14+ 의 cc-link-ie driver | 기존 wrapper 패턴 (PLC4jProtocolDriver 상속) 그대로 — 코드 변경 최소 | PLC4X 의 릴리스 일정에 의존 |
| xingshuangs/iot-communication (Java, MIT) | CC-Link 일부 지원 — 즉시 사용 가능한 라이브러리 | 자체 wrapper 작성 필요 (BaseProtocolDriver 직접 상속) |
| GX Works3 SLMP 게이트웨이 | Mitsubishi 공식 게이트웨이 — 안정성 보장 | 추가 H/W (RJ71EN71 등) 필요, MELSEC 카드 로 SLMP 사용하면 됨 |
PlantPulse Edge 측 작업:
// 정식 구현 시 (PLC4X 0.14+ 가정)
public class CCLinkIEFieldDriver extends PLC4jProtocolDriver implements ProtocolDriver {
@Override public String getProtocol() { return "cc-link-ie"; }
}
빌드:
./gradlew clean build
등록 폼 옵션 (예정)
| key | 설명 | 기본값 |
|---|---|---|
device-id | 슬레이브 station number (1~120) | (필수) |
network-no | 네트워크 번호 (1~239) | 1 |
request-timeout | read/write 타임아웃 (ms) | 2000 |
주소 표기 (예정)
| 디바이스 | 의미 | 표기 |
|---|---|---|
RX#### | Remote Input bit | RX0010 |
RY#### | Remote Output bit | RY0020 |
RWr#### | Remote Word in (16-bit) | RWr0100 |
RWw#### | Remote Word out (16-bit) | RWw0100 |
SB#### | Link Special Bit | SB0001 |
SW#### | Link Special Word | SW0001 |
LB#### | Link Bit | LB0010 |
LW#### | Link Word | LW0010 |
현재 동작 (stub)
| 메서드 | 동작 |
|---|---|
connect() | [CC-Link IE Field] 드라이버는 아직 정식 구현 전입니다 ... warn 로그 — isConnected() 는 false 유지 |
read() | 빈 문자열 ("") 반환 |
write() | false 반환 |
isWriteSupported() | false |
게이트웨이 운영에는 영향 없음 — 등록되어도 disconnected 상태로 표시되고 데이터는 들어오지 않습니다.
우회 권장: MELSEC SLMP 카드
iQ-R / iQ-F 의 RJ71EN71 (Ethernet 모듈) 또는 내장 Ethernet 포트는 SLMP / MC Protocol 을 지원합니다 — 이건 MELSEC 카드로 정식 동작합니다.
CC-Link IE Field 슬레이브의 데이터를 PLC 측 디바이스 (D#### 영역) 로 매핑한 뒤, 게이트웨이는 PLC 의 D 만 읽으면 됩니다.