Zum Hauptinhalt springen

Panasonic MEWTOCOL Treiber

Überblick

MEWTOCOL-COM, das ASCII-Kommunikationsprotokoll der Panasonic FP-Serie (FP0R / FP-X / FPΣ / FP7). Direkt implementiert ausschließlich auf Basis von Frames / Befehlen / Gerätecodes / BCC-Algorithmus aus den öffentlichen Panasonic-Benutzerhandbüchern (ARCT1F320, ARCT1F313 usw.). Kein übernommener Code aus externen GitHub-Quellen.

PunktWert
opc_typeMEWTOCOL
Implementierungsklasseplantpulse.driver.protocol.mewtocol.MEWTOCOLDriver
Bibliothek(keine — Eigenimplementierung. ARCT1F320)
readgut (RD / RC)
writegut (WD / WC)
Standardport9094 (FP-X / FP7 TCP)
Sicherheitkeine

Klassen / Struktur

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

Zusammenfassung des Wire-Formats

요청 : '%' <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 는 무시)

Unterstützte Befehle

cmdFunktionFormat (Datenteil)
RDWort-read (DT/LD/FL/WX/WY/WR)<dev-1char><start-5digits><end-5digits>
RCBit-read (einzeln, X/Y/R/L/T/C)RCS<dev-1char><wordAddr4><bit-1hex>
WDWort-write<dev><start5><end5><word1 hex 4>...
WCBit-write (einzeln)WCS<dev><wordAddr4><bit1><val1>

Wort-Hex wird gemäß Handbuch mit dem LSB-Byte zuerst übertragen (Beispiel: Wort 0x1234 → Antwort-Hex 3412).


OPC-Registrierungsoptionen (options)

SchlüsselBedeutungStandard
stationStationsnummer (2-stellig)01
connect-timeoutms3000
read-timeoutms3000

normalizeStation() korrigiert eine einstellige Eingabe ("1") automatisch zu "01".


Tag-Adressformate

NotationBedeutung
DT0Data Register 0 (16-bit)
LD100Link Data 100
FL10File Register 10
WX0 / WY0 / WR0I/O / Internal word
R0.5Bit 5 von Internal Relay word 0
R00054 Zeichen = Wort 3 + Bit 1 (= R0.5)
X0.0 / Y0.5Input/Output bit
T0 / C0Timer / Counter (als Einzelbit behandelt)

Datenkodierung / -dekodierung

wordCountFor(dt, fmt) bestimmt 16/32/64-bit (1/2/4 Wörter). decodeWords(words, dt, fmt) wandelt Multi-Wort → Wert um:

format / data_typeAnzahl WörterUmwandlung
DW / Int322(words[1]<<16) | words[0] (low word first), signed
UDW / UInt322unsigned 32
REAL / Float2Float.intBitsToFloat(...)
LREAL / Double4Double.longBitsToDouble(...)
LW / Int644signed 64
(Standard)1signed 16

Zuordnung der Fehlercodes

decodeError(code) übersetzt die wichtigsten Fehler des Handbuchs (Auszug):

codeBeschreibung
20Fehlerhafte Relay-/Registernummer
21Speicherbereich überschritten
22Latch-Fehler
40BCC-Fehler (Empfängerseite)
41Formatfehler
42Nicht unterstützter Befehl
60Parameterfehler
66Adressfehler

Unterstützt / nicht unterstützt

  • ✅ RD / WD (N aufeinanderfolgende Wörter)
  • ✅ RC / WC (Einzelbit)
  • ✅ 32 / 64-bit Multi-Wort, Float, Double
  • ❌ RC mehrfach (RCP — Preset multi)
  • ❌ RT / WT (getrenntes read von Timer / Counter EV/SV)
  • ❌ MEWTOCOL-7 / MEWTOCOL-DAT Erweiterungen

Testabdeckung

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

KlasseAnzahl Tests
MEWTOCOLDriverTest39

Insgesamt 39 Tests — BCC, Frame-Builder, Adressparser, RD-Antwortdekodierung, WC bit, Fehlerzuordnung.


Referenzen

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