メインコンテンツまでスキップ

Panasonic MEWTOCOL ドライバ

概要

Panasonic FP シリーズ (FP0R / FP-X / FPΣ / FP7) の ASCII 通信プロトコル MEWTOCOL-COM。 Panasonic 公開 ユーザーマニュアル (ARCT1F320、ARCT1F313 など) のフレーム / コマンド / デバイスコード / BCC アルゴリズムのみに基づいて 独自に実装。外部 GitHub コードの流用なし。

項目
opc_typeMEWTOCOL
実装クラスplantpulse.driver.protocol.mewtocol.MEWTOCOLDriver
ライブラリ(なし — 独自実装。ARCT1F320)
read良好 (RD / RC)
write良好 (WD / WC)
デフォルトポート9094 (FP-X / FP7 TCP)
セキュリティなし

クラス / 構造

MEWTOCOLDriver (BaseProtocolDriver)
├── Socket / InputStream / OutputStream
├── station — "01" 디폴트, 옵션 station 으로 변경
├── ioLock — synchronized exchange()
├── ParsedAddress.parse() — 디바이스/wordIndex/bitIndex 분해
├── computeBcc(byte[]) — '%' ~ ETX 위치 직전 XOR → 2자리 hex
└── decodeRdResponseHex / encodeWords — 16/32/64-bit

wire フォーマット概要

요청 : '%' <station 2> '#' <cmd 2> <data> <BCC 2hex> CR
응답 : '%' <station 2> '$' <cmd 2> <data> <BCC 2hex> CR (정상)
'%' <station 2> '!' <error-2hex> <BCC 2hex> CR (에러)
BCC : '%' 부터 BCC 직전 (= ETX 위치) 까지 XOR
CR : 0x0D (LF 는 무시)

サポートコマンド

cmd動作形式 (data 部)
RDワード read (DT/LD/FL/WX/WY/WR)<dev-1char><start-5digits><end-5digits>
RCビット read (単一、X/Y/R/L/T/C)RCS<dev-1char><wordAddr4><bit-1hex>
WDワード write<dev><start5><end5><word1 hex 4>...
WCビット write (単一)WCS<dev><wordAddr4><bit1><val1>

ワードの hex はマニュアルの規定どおり LSB バイトが先 (例: 0x1234 ワード → 応答 hex 3412)。


OPC 登録オプション (options)

キー意味デフォルト
stationステーション番号 (2桁)01
connect-timeoutms3000
read-timeoutms3000

normalizeStation() は1桁入力 ("1") を "01" へ自動補正します。


タグアドレス形式

表記意味
DT0Data Register 0 (16-bit)
LD100Link Data 100
FL10File Register 10
WX0 / WY0 / WR0I/O / Internal word
R0.5Internal Relay word 0 の bit 5
R00054文字 = ワード3桁+ビット1桁 (= R0.5)
X0.0 / Y0.5Input/Output bit
T0 / C0Timer / Counter (単一ビットとして扱う)

データのエンコード / デコード

wordCountFor(dt, fmt) が 16/32/64-bit を決定 (1/2/4 ワード)。 decodeWords(words, dt, fmt) がマルチワード → 値へ変換:

format / data_typeワード数変換
DW / Int322(words[1]<<16) | words[0] (low word first)、signed
UDW / UInt322unsigned 32
REAL / Float2Float.intBitsToFloat(...)
LREAL / Double4Double.longBitsToDouble(...)
LW / Int644signed 64
(デフォルト)1signed 16

エラーコードのマッピング

decodeError(code) がマニュアルの代表的なエラーを日本語に変換 (一部):

code説明
20Relay/register 番号エラー
21Memory 領域超過
22Latch エラー
40BCC エラー (受信側)
41Format エラー
42未サポートコマンド
60Parameter エラー
66Address エラー

サポート / 未サポート

  • ✅ RD / WD (ワード N 個連続)
  • ✅ RC / WC (ビット単一)
  • ✅ 32 / 64-bit マルチワード、Float、Double
  • ❌ RC 複数 (RCP — Preset multi)
  • ❌ RT / WT (Timer / Counter の EV/SV 個別 read)
  • ❌ MEWTOCOL-7 / MEWTOCOL-DAT 拡張

テストカバレッジ

test/java/plantpulse/driver/protocol/mewtocol/

クラステスト数
MEWTOCOLDriverTest39

合計 39 テスト — BCC、フレームビルダー、アドレスパーサー、RD 応答デコード、WC bit、エラーマッピング。


参考

  • Panasonic ARCT1F320 FP-X User Manual MEWTOCOL-COM
  • Panasonic ARCT1F313 FP Series Programming Manual
  • コード: src/plantpulse/driver/protocol/mewtocol/MEWTOCOLDriver.java