ドライバ概要
PlantPulse Edge がサポートする産業プロトコルの一覧です。製品基準 opc_type 44種類
(ドライバ 43種 + 別名 1)となります。
各ドライバは plantpulse-edge-driver.jar 内の plantpulse.driver.protocol.<proto> パッケージに
実装されており、ProtocolDriverFactory.createDriver(opc_type) が APP_OPC.OPC_TYPE 文字列を
参照してインスタンスを生成します。
実装方式
- 独自Java実装 (大多数) — 純粋な Java ソケット上でプロトコルフレーミングを直接記述します。 外部 native・JNI 依存はありません。2026-07 に Modbus 系統・PROFINET・AB-ETH・BACnet・KNXnet CANopen をネイティブで再実装し、Apache PLC4X 依存性を完全に排除しました。
- 外部ライブラリ — MELSEC・S7 は
iot-communication、OPC UA は Eclipse Milo を使用します。 - ネイティブブリッジ — FOCAS は C++ collector を子プロセスとして起動し、TCP/JSON で読み取ります。
- stub 4種類 — CC-Link IE · DALI · IO-Link · DeltaV. ゲートウェイが直接読み取るのではなく、上位
プロトコルへブリッジする構成を案内します。
AbstractStubDriverを継承しているかが判定基準となります。
書き込みサポートはドライバごとに異なります
下表の書き込み列が正本です。書き込みをサポートしていないドライバに書き込みを試行した場合、拒否されます。
サポートプロトコル一覧
汎用PLC / 一般プロトコル
opc_type | プロトコル / 設備 | 実装 | 書き込み | デフォルトポート | ページ |
|---|---|---|---|---|---|
LS | LS XGI/XBC/XBM (FEnet) | 独自Java | ✅ | — | LS |
MELSEC | Mitsubishi MELSEC (MC) | iot-communication | ✅ | — | MELSEC |
S7 | Siemens S7-300/400/1200/1500 | iot-communication | ✅ | — | S7 |
MODBUS | Modbus TCP | 独自Java | ✅ | 502 | Modbus |
MODBUSUDP | Modbus UDP | 独自Java (MBAP-over-UDP) | ✅ | 502 | Modbus |
MODBUS_RTU | Modbus RTU | 独自Java (RTU-over-TCP) | ✅ | 502 | Modbus RTU |
OPCUA | OPC UA | Eclipse Milo 1.1.8 | ✅ | — | OPC UA |
米国PLC系統
opc_type | プロトコル / 設備 | 実装 | 書き込み | デフォルトポート | ページ |
|---|---|---|---|---|---|
GE | GE SRTP / GE Fanuc | 独自Java (純粋ソケット) | ✅ | 18245 | GE |
EIP | EtherNet/IP · CIP (シンボリックタグ) | 独自Java (ENIP/CIP) | ✅ | 44818 | EtherNet/IP |
LOGIX | AB ControlLogix / CompactLogix | EIP 別名 — 同一ドライバ | ✅ | 44818 | EtherNet/IP |
AB-ETH | Allen-Bradley CSP/PCCC (SLC·PLC-5) | 独自Java | ❌ | 2222 | AB-ETH |
欧州 / ビルオートメーション
opc_type | プロトコル / 設備 | 実装 | 書き込み | デフォルトポート | ページ |
|---|---|---|---|---|---|
PROFINET | PROFINET (acyclic Read-Implicit) | 独自Java | ❌ | 34964 | PROFINET |
ADS | Beckhoff TwinCAT ADS | 独自Java | ✅ | 48898 | ADS |
BACNET | BACnet/IP (ReadProperty) | 独自Java | ❌ | 47808 | BACnet |
KNXNET | KNXnet/IP (tunneling) | 独自Java | ✅ | 3671 | KNXnet |
CANOPEN | CANopen (SDO) | 独自Java | ❌ | 20200 | CANopen |
MBUS | M-Bus (メーター) | 独自Java | ⚠ | 10001 | M-Bus |
IEC61850 | IEC 61850 MMS (電力) | 独自Java (full ISO stack) | ✅ | 102 | IEC 61850 |
DALI | DALI 照明 | stub | ❌ | — | DALI |
IO_LINK | IO-Link マスター | stub | ❌ | — | IO-Link |
DELTAV | Emerson DeltaV | stub | ❌ | — | DeltaV |
⚠ M-Bus の書き込みは計測値ではなくスレーブ選択コマンドのみを処理します。
日本・台湾PLC系統
opc_type | プロトコル / 設備 | 実装 | 書き込み | デフォルトポート | ページ |
|---|---|---|---|---|---|
FINS | Omron FINS | 独自Java | ✅ | 9600 | FINS |
MEWTOCOL | Panasonic MEWTOCOL | 独自Java | ✅ | 9094 | MEWTOCOL |
FATEK | Fatek | 独自Java | ✅ | 500 | Fatek |
KEYENCE_KV | Keyence KV-7500/8000 上位リンク | 独自Java (ASCII) | ✅ | 8501 | 接続形式 |
CCLINK_IE | CC-Link IE Field | stub | ❌ | — | CC-Link IE |
Keyence KV は実機検証前です
ワイヤーフォーマットが文書に基づいて実装されており、実機での確認がなされていません。現場に適用する前に、試験接続による値の照合を行ってください。
産業通信 / ドメイン特化
opc_type | プロトコル / 設備 | 実装 | 書き込み | デフォルトポート | ページ |
|---|---|---|---|---|---|
SECSGEM | SEMI SECS/GEM (HSMS) | 独自Java | ✅ | 5000 | SECS/GEM |
HART | HART-IP | 独自Java | ✅ | 5094 | HART |
DNP3 | DNP3 (unsolicited サポート) | 独自Java | ✅ | 20000 | DNP3 |
IEC104 | IEC 60870-5-104 電力テレコントロール | 独自Java | ❌ | 2404 | 接続形式 |
FOCAS | FANUC CNC (FOCAS) | ネイティブブリッジ + C++ collector | ❌ | 8193 | FOCAS |
MTCONNECT | MTConnect CNC / 工作機械 | 独自Java (HTTP/XML) | ❌ | 5000 | 接続形式 |
OP | Open Protocol (締付工具) | 純粋Java | ✅ | 4545 | Open Protocol |
NMEA | NMEA 0183 (船舶・GPS) | 独自Java | ❌ | 10110 | NMEA |
IEC61162_450 | 海洋船橋 NMEA over UDP マルチキャスト | 独自Java | ❌ | 60004 (UDP) | 接続形式 |
MOTOR_SENSE | モーターセンス 振動・電流センサ | HTTPS REST (別jar) | ❌ | — | 接続形式 |
メッセージング / 外部インターフェース
opc_type | プロトコル / 設備 | 実装 | 書き込み | デフォルトポート | ページ |
|---|---|---|---|---|---|
HTTP | HTTP 受信 (キャッシュ bind) | 独自Java | (bind経由) | — | HTTP |
WEBSOCKET | WebSocket | 独自Java | ✅ | 80 / 443 | WebSocket |
MQTT_CLIENT | MQTT クライアント | Eclipse Paho | ✅ | 1883 / 8883 | MQTT Client |
SPARKPLUG_B | Sparkplug B | 独自protobuf | ✅ | 1883 | Sparkplug B |
KAFKA | Apache Kafka | kafka-clients 4.1.2 | ✅ | 9092 | Kafka |
COAP | CoAP | Californium 3.13.0 | ✅ | 5683 / 5684 | CoAP |
ROS2 | ROS 2 (rosbridge WebSocket) | 独自Java | ❌ | 9090 / 9443 | ROS 2 |
SNMP | SNMP v2c (ネットワーク設備・UPS) | 独自Java (BER) | ❌ | 161 (UDP) | 接続形式 |
共通 OPC 登録フォーム
画面または POST /api/v1/opc で登録する際、すべてのプロトコルで共有されるフィールド:
| フィールド | 意味 | 例 |
|---|---|---|
opc_id | ゲートウェイ内一意 ID | OPC_UA_Kepware |
opc_name | 画面表示名 | Kepware OPC-UA |
opc_type | プロトコルタイプ (上表参照) | OPCUA |
opc_agent_ip | 対象ホスト IP | 192.168.0.40 |
opc_agent_port | 対象ポート | 49320 |
site_id | サイト ID | SITE_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_type | edge 自由文字列 (Float, Integer, Boolean, String 等) | Integer |
format | メモリ幅 / 表記形式 (選択) | DW (LS) / STR[10] |
description | 説明 | 펌프 회전수 |
fomula | 後処理計算式 (選択, 例: x * 0.1) | x / 10 |
詳細な plc_address および format ルールは各ドライバページで説明します。