跳到主要内容

CC-Link IE Field 驱动

PlantPulse Edge 的 CC-Link IE Field 驱动目前处于 stub(占位) 阶段。 在正式 read/write 功能实现之前,用户请使用 MELSEC(MC Protocol / SLMP) 卡片进行替代。

源代码:plantpulse.driver.protocol.cclink.*

类职责
CCLinkIEFieldDriver基于 AbstractStubDriver 的占位实现 — connect 时输出 warn 日志,read/write 均返回空/false

为什么是 stub​

PlantPulse Edge 将 Apache PLC4X 0.13.1 的驱动作为库文件打包(包括 BACnet/KNXnet/CANopen/ADS/AB-ETH 等 12 个)。在 PLC4X 0.13.1 的驱动矩阵中,尚未包含 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 驱动沿用现有封装模式(继承自 PLC4jProtocolDriver)— 代码改动最小依赖于 PLC4X 的发布计划
xingshuangs/iot-communication(Java,MIT 许可)部分支持 CC-Link — 可直接使用的库需要自行编写封装(直接继承 BaseProtocolDriver)
GX Works3 SLMP 网关三菱官方网关 — 稳定性有保障需要额外硬件(如 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从站站号(1~120)(必填)
network-no网络号(1~239)1
request-timeoutread/write 超时(ms)2000

地址表示(规划中)​

设备含义表示
RX####远程输入位RX0010
RY####远程输出位RY0020
RWr####远程字输入(16 位)RWr0100
RWw####远程字输出(16 位)RWw0100
SB####链路特殊位SB0001
SW####链路特殊字SW0001
LB####链路位LB0010
LW####链路字LW0010

当前行为(stub)​

方法行为
connect()输出 [CC-Link IE Field] 드라이버는 아직 정식 구현 전입니다 ... warn 日志 — isConnected() 保持为 false
read()返回空字符串("")
write()返回 false
isWriteSupported()false

不影响网关运行 — 即使已注册也会显示为 disconnected 状态,且不会收到数据。


推荐替代方案:MELSEC SLMP 卡片​

iQ-R / iQ-F 的 RJ71EN71(以太网模块)或内置以太网端口支持 SLMP / MC Protocol — 这可通过 MELSEC 卡片实现正式功能。

将 CC-Link IE Field 从站的数据映射到 PLC 侧的设备(D#### 区域)后,网关只需读取 PLC 的 D 即可。


参考​