Tongs

Die Zange

Die Zange greift ins Feuer und holt das gluehende Werkstueck heraus. Tongs sind die Feldbus-Bridges der ForgeIEC-Plattform — sie greifen in die industrielle Peripherie und bringen Prozessdaten sicher zum SPS-Kern.


Unterstuetzte Protokolle

ProtokollBridgeMediumStatus
Modbus TCPtongs-modbustcpEthernetVerfuegbar
Modbus RTUtongs-modbusrtuRS-485 (seriell)Verfuegbar
EtherCATtongs-ethercatEthernet (Echtzeit)In Entwicklung
Profibus DPtongs-profibusSeriell (Feldbus)In Entwicklung

Architektur: Ein Prozess pro Segment

Jede Bridge laeuft als eigenstaendiger Prozess. anvild startet, ueberwacht und restartet Bridges automatisch. Ein Absturz einer Bridge beeintraechtigt weder den SPS-Kern noch andere Bridges.

anvild
  |-- tongs-modbustcp --config config.toml --segment mb1
  |-- tongs-modbustcp --config config.toml --segment mb2
  |-- tongs-ethercat  --config config.toml --segment ec1
  +-- tongs-profibus  --config config.toml --segment pb1

Die Kommunikation zwischen anvild und den Bridges erfolgt ueber Anvil Technology (Zero-Copy Shared Memory). Jedes Segment erhaelt seinen eigenen IPC-Kanal.


Segment-Hierarchie

Tongs organisiert die industrielle Kommunikation in einer aus etablierten SPS-Werkzeugen gewohnten Hierarchie:

Bussysteme
+-- Modbus TCP: Halle 1 (eth0) [aktiv]
|   +-- 192.168.1.100 -- Temperaturmodul (Slave 1)
|   |   +-- Temperatur : INT (%IW0)   [Subscribe]
|   |   +-- Sollwert : INT (%QW10)    [Publish]
|   +-- 192.168.1.101 -- Pumpe (Slave 2)
+-- Modbus RTU: Labor (/dev/ttyUSB0)
+-- Unzugeordnet (Scanner-Pool)
    +-- 192.168.2.55 -- Unbekannt

Geraeteerkennung

Der integrierte Netzwerk-Scanner erkennt Feldgeraete automatisch:

  • ICMP Ping-Scan — Erreichbare Hosts im Subnetz ermitteln
  • Port-Scan — Modbus-Port (502) und weitere Dienste pruefen
  • Register-Scan — Modbus-Register auslesen und Geraetetyp identifizieren
  • FDD-Geraetekatalog — Bekannte Geraete anhand ihrer Register-Signaturen zuordnen

Gefundene Geraete landen im Scanner-Pool und koennen per Drag-and-Drop einem Segment zugeordnet werden.


Automatische Adressvergabe

IEC-Adressen (%IX, %QW, %MD etc.) werden global und kollisionsfrei vergeben. Bestehende Adressen in globalen Variablenlisten werden beruecksichtigt. Die zugehoerigen VAR_ANVIL-Transportbloecke werden automatisch generiert.


Richtungsmodell

Jede Variable hat eine eindeutige Richtung:

  • in (Subscribe/Read) — Bridge liest vom Feldgeraet, SPS empfaengt
  • out (Publish/Write) — SPS sendet, Bridge schreibt zum Feldgeraet

Es gibt kein “inout”. Die Bridge filtert: nur “in”-Variablen werden gelesen (Modbus FC3), nur “out”-Variablen werden geschrieben (Modbus FC5/FC6/FC16).


Konfiguration

Segmente und Geraete werden in config.toml konfiguriert:

[[bus_segments]]
id = "mb1"
protocol = "modbus_tcp"
enabled = true

[bus_segments.settings]
interface = "eth0"
port = 502

[[bus_segments.devices]]
name = "Temperaturmodul"
host = "192.168.1.100"
slave_id = 1

Technische Details

EigenschaftWert
SpracheRust
Modbus-Cratetokio-modbus 0.17
IPCAnvil Technology (Zero-Copy Shared Memory)
ProzessmodellEin Daemon pro aktivem Segment
Plattformenx86_64, ARM64, ARMv7 (Linux)
LizenzAGPL-3.0

Tongs — Der sichere Griff in die industrielle Peripherie.

blacksmith@forgeiec.io