Die Zange

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


Unterstützte Protokolle

ProtokollBridgeMediumStatus
Modbus TCPtongs-modbustcpEthernetverfügbar
Modbus RTUtongs-modbusrtuRS-485 (seriell)verfügbar
LoRaWANtongs-lorawanFunk (Sensorik für Landwirtschaft und weitläufige Anlagen)in Arbeit (Schwerpunkt)
EtherCATtongs-ethercatEthernet (Echtzeit)Gerüst, in Arbeit
PROFIBUS DPtongs-profibusSeriell (Feldbus)Gerüst, in Arbeit
EtherNet/IPtongs-ethernetipEthernetGerüst, in Arbeit

Architektur: Ein Prozess pro Segment

Jede Bridge läuft als eigenständiger Prozess. Der Anvil-Server (anvild) startet, überwacht und restartet Bridges automatisch. Ein Absturz einer Bridge beeinträchtigt 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 über Anvil Technology (Zero-Copy Shared Memory). Jedes Segment erhält 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

Geräteerkennung

Der integrierte Netzwerk-Scanner erkennt Feldgeräte automatisch:

  • ICMP Ping-Scan — Erreichbare Hosts im Subnetz ermitteln
  • Port-Scan — Modbus-Port (502) und weitere Dienste prüfen
  • Register-Scan — Modbus-Register auslesen und Gerätetyp identifizieren
  • FDD-Gerätekatalog — Bekannte Geräte anhand ihrer Register-Signaturen zuordnen

Gefundene Geräte landen im Scanner-Pool und können 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 berücksichtigt. Die zugehörigen VAR_ANVIL-Transportblöcke werden automatisch generiert.


Richtungsmodell

Jede Variable hat eine eindeutige Richtung:

  • in (Subscribe/Read) — Bridge liest vom Feldgerät, SPS empfängt
  • out (Publish/Write) — SPS sendet, Bridge schreibt zum Feldgerät

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 Geräte 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-Bus (iceoryx2, Zero-Copy Shared Memory)
ProzessmodellEin Daemon pro aktivem Segment
Plattformenx86_64, ARM64, ARMv7 (Linux)
LizenzAGPL-3.0-or-later

Ansichten

Das Netzbild: Schnittstellen, Busse darauf, Geräte daran.
Geräteansicht: die Zeichnung aus der Gerätebeschreibung, Lampen mit Live-Werten.

Tongs — Der sichere Griff in die industrielle Peripherie.

blacksmith@forgeiec.io