跳到主要内容

驱动概述

PlantPulse Edge 支持的工业协议一览。

各驱动实现于 plantpulse-edge-driver.jar 中的 plantpulse.driver.protocol.<proto> 包内, 由 ProtocolDriverFactory.createDriver(opc_type) 根据 APP_OPC.OPC_TYPE 字符串创建实例。

实现方式大致分为两类。

  • 自研 Java 实现(占大多数): 除 LS、EIP、ADS、OP、FINS、MEWTOCOL、FATEK、NMEA、MBUS、HART、DNP3、IEC61850、SECSGEM 之外,Modbus 系列(TCP/UDP/RTU)、PROFINET、AB-ETH、BACnet、KNXnet、CANopen 也已于 2026-07 完成原生重写(原有 Apache PLC4j 委托全部移除 —— PLC4X 依赖本身已删除)。不依赖任何外部 native/JNI,直接在纯 Java socket 之上编写协议帧处理。
  • 依赖硬件 master 的 stub(仅提供指南): DALI、IO-Link、DeltaV。文档中说明推荐架构:不在网关内部直接读取,而是通过上层协议(OPC UA / Modbus / PROFINET / DeltaV OPC UA)桥接。(ROS 2 已通过 rosbridge WebSocket 实现毕业 —— 参见 连接类型。)

此外,直接沿用 iot-communication (xingshuangs) 库的 GE/MELSEC/S7、基于 Eclipse Milo 的 OPC UA,以及自研 HTTP 客户端构成辅助路线。


支持协议一览

通用 PLC / 常规协议

opc_type协议状态页面
LSLS XGI/XBC/XBM (FEnet)自研 Java稳定LS
GEGE SRTP / GE Fanuciot-communication (xingshuangs)稳定(筹备中)
MELSECMitsubishi MELSEC (MC)iot-communication (xingshuangs)稳定MELSEC
S7Siemens S7-300/400/1200/1500iot-communication (xingshuangs)稳定S7
MODBUSModbus TCP自研 Java稳定(读+写)Modbus
MODBUSUDPModbus UDP自研 Java(MBAP-over-UDP)稳定(读+写)Modbus
MODBUS_RTUModbus RTU自研 Java(RTU-over-TCP)稳定(读+写)Modbus RTU
OPCUAOPC Unified ArchitectureEclipse Milo稳定OPC-UA

美系 PLC

opc_type协议状态页面
EIPEtherNet/IP CIP (Allen-Bradley Logix)自研 Java(参考 etherip 设计,纯 Java)稳定(读+写)EIP
AB-ETHAllen-Bradley PLC-5/SLC-500自研 Java(CSP/PCCC)稳定(只读,TCP/2222)AB-ETH

欧系 / 楼宇自动化

opc_type协议状态页面
ADSBeckhoff TwinCAT/ADS自研 Java(AMS/ADS)稳定(读+写)ADS
PROFINETPROFINET(非周期 record)自研 Java(DCE/RPC Read-Implicit)稳定(只读,UDP/34964 —— 不支持周期性 RT)PROFINET
BACNETBACnet/IP(HVAC/楼宇)自研 Java(ReadProperty)稳定(只读,UDP/47808)BACnet
KNXNETKNXnet/IP(照明/遮阳)自研 Java(UDP tunneling)稳定(读+写,UDP/3671)KNXnet

日系 PLC

opc_type协议状态页面
FINSOMRON FINS over TCP自研 Java稳定(一期 read)(筹备中)
MEWTOCOLPanasonic MEWTOCOL自研 Java稳定(一期 read)(筹备中)
FATEKFATEK FBs自研 Java稳定(一期 read)(筹备中)

工业通信 / 领域专用

opc_type协议状态页面
OPAtlas Copco Open Protocol(拧紧结果)自研 Java(OpenProtocolJavaDriver)稳定 —— 已完成对 Node.js runner 的替代(筹备中)
NMEANMEA 0183(海洋/船舶)自研 Java稳定(只读,sentence 缓存)(筹备中)
MBUSM-Bus(EN 13757,仪表)自研 Java稳定(一期 read)(筹备中)
HARTHART-IP(HCF,4-20mA + 数字量)自研 Java稳定(一期 read,cmd 0/1/3/13)(筹备中)
DNP3DNP3(IEEE 1815,电力公用事业)自研 Java稳定(一期 read,G1/G30)(筹备中)
IEC61850IEC 61850 MMS(变电站)自研 Java(完整 ISO 栈)稳定(读+写 + BRCB/URCB 报告)IEC 61850
SECSGEMSECS/GEM HSMS(半导体)自研 Java一期(HSMS 握手 —— SECS-II 报文体后续阶段)(筹备中)
CANOPENCANopen(机械设备)自研 Java(SDO expedited,CAN-over-TCP)稳定(只读,TCP/20200)CANopen
DALIDALI(照明、楼宇)(依赖硬件 master —— stub)仅指南(推荐 OPC UA / Modbus 桥接)DALI
IO_LINKIO-Link(传感器 master)(依赖硬件 master —— stub)仅指南(PROFINET/EtherNet-IP 桥接)IO-Link

其他 / 外部接口

opc_type协议状态页面
HTTPHTTP(外部 push 或轮询)自研稳定,支持写入HTTP
MOTOR_SENSEKOPENS Motor Sense自研(独立 jar,反射加载)稳定HTTP / Motor Sense
ROS2ROS 2(机器人/AGV)rosbridge_suite(JSON over WebSocket)主题订阅 read(已实现)ROS 2
DELTAVEmerson DeltaV (DCS)(专有 —— stub)仅指南(必须经由 DeltaV OPC UA)DeltaV

分类汇总 —— 通用 PLC 8 / 美系 2 / 欧洲·楼宇 4 / 日系 3 / 工业通信·领域 10 / 其他 4 = 29 opc_type。 标注"(筹备中)"的页面将来会拆分为独立驱动文档,目前以开发者笔记及源码中 protocol/<proto>/ 包的 javadoc 替代 plc_address / format 规则说明。


通用 OPC 注册表单

通过界面或 POST /api/v1/opc 注册时,所有协议共用的字段:

字段含义示例
opc_id网关内唯一 IDOPC_UA_Kepware
opc_name界面显示名称Kepware OPC-UA
opc_type协议类型(参见上表)OPCUA
opc_agent_ip目标主机 IP192.168.0.40
opc_agent_port目标端口49320
site_id站点 IDSITE_00001(自动填充)
auto_collect启动时自动运行true/false
timecycle采集周期 (ms)1000
options各协议附加选项 (Map){"username":"kopens","password":"***"}

options 的键名因协议而异。各驱动页面提供详细的键表。


通用标签注册表单

tag_list[]POST /api/v1/opc/{opcId}/tag 的单条注册字段:

字段含义示例
tag_id标签唯一 ID(通常为 <OPC_ID>_TAG_<n>OPC_LS_XBM_0001_TAG_00001
tag_name显示名称Pump1.RPM
plc_address实际 PLC 地址(格式因协议而异)D00309 (LS) / ns=2;s=Sine1 (OPCUA)
data_typeedge 自由字符串(Float、Integer、Boolean、String 等)Integer
format内存宽度 / 表示格式(可选)DW (LS) / STR[10]
description说明펌프 회전수
fomula后处理计算公式(可选,例如 x * 0.1x / 10

详细的 plc_addressformat 规则请参见各驱动页面。


注册流程 (REST)