Properties-Panel

Ueberblick

Das Properties-Panel ist die rechte Detail-Anzeige des Editor-Hauptfensters. Es zeigt alle Felder des aktuell im Project-Tree selektierten Elements an und macht sie inline editierbar — ohne dass man fuer jeden Edit einen modalen Dialog oeffnen muss.

Project-Tree                          Properties-Panel
+-- Bus                               +-- Name:        OG-Modbus
|   +-- segment_modbus    <-- klick   |   Protocol:    [modbustcp ▼]
|       +-- device_motor              |   Interface:   eth0
|           +-- slot_0                |   Bind Addr:   192.168.1.10/24
+-- Programs                          |   Poll:        100 ms
|   +-- PLC_PRG                       |   Enabled:     [x]
                                      |   Port:        502
                                      |   Timeout:     2000 ms

Ein Single-Click auf einen Knoten im Project-Tree erzeugt sofort die passende Felder-Liste — ein Doppelklick oeffnet zusaetzlich den modalen Konfigurations-Dialog (Bus-Konfiguration) mit identischem Feld-Set.

Das Panel ist in eine QScrollArea gewickelt und scrollt vertikal: Devices mit FDD-Erweiterungen + Status-Tabelle bekommen leicht 40+ Felder, und die muessen alle erreichbar bleiben, auch wenn der Dock-Bereich schmal ist.

Bus-Segment

Wenn ein Bus-Segment selektiert ist, zeigt das Panel:

FeldBedeutung
NameAnzeige-Name im Project-Tree.
Protocolmodbustcp, modbusrtu, ethercat, profibus, ethernetip.
InterfaceNetzwerk-Interface, an das der Bridge bindet (eth0, eth1, …).
Bind AddressCIDR-Notation, z. B. 192.168.1.10/24. Validiert.
GatewayDefault-Gateway fuer den Bridge-Prozess.
Poll IntervalPeriode in ms, mit der der Bridge die Devices abfragt.
EnabledBridge-Subprozess aktiv (an / aus).

Advanced Network (alle optional)

Spiegelt die gleichnamige Gruppe aus dem FSegmentDialog und ueberschreibt OS- bzw. Bridge-Defaults:

  • Subnet CIDR (192.168.24.0/24)
  • Source Port Range (30000-39999)
  • Keep-Alive Idle / Interval / Count (TCP-Heartbeat)
  • Max Connections (0 = unlimited)
  • VLAN ID (0 = untagged)

Protokoll-spezifisch

ProtokollFelder
modbustcpPort (Default 502), Timeout in ms (Default 2000).
modbusrtuSerial Port (z. B. /dev/ttyUSB0), Baud Rate, Parity (none/even/odd).
profibusSerial Port, Baud Rate (bis 12 Mbit/s), Master Address (0..126).

Logging

  • Log Leveloff / error / warn / info / debug.
  • Log File — z. B. /var/log/forgeiec/segment.log. Leer = stdout.

Bus-Device

FeldBedeutung
HostnameDNS-Name oder Anzeige-Name.
IP AddressIPv4 des Devices.
PortModbus-Port am Slave (Default 502).
Slave IDModbus-Unit-ID (0..247).
Anvil GroupAnvil-IPC-Gruppen-Name — zugleich der Name der auto-generierten AnvilVarList. Beim Umbenennen werden GVL-Tag, AnvilVarList und alle Pool-Variablen mit anvilGroup = oldGroup synchron umbenannt.

Advanced Overrides (alle optional, leer = Segment-Default)

  • MAC AddressAA:BB:CC:DD:EE:FF. Mit Validator.
  • EndiannessABCD / DCBA / BADC / CDAB.
  • Timeout in ms. 0 = vom Segment erben.
  • Retry Count. 0 = vom Segment erben.
  • Connection Modealways connected oder on demand.
  • Gateway (override) — nur wenn das Device in einem anderen Subnet liegt.
  • Description — freier Text (z. B. Bewaesserungsventil Sued).

Status-Variablen (read-only)

Jedes Device exponiert automatisch das Common-Fault-Model — sieben implizite Felder, die ueber Anvil als read-only Status-Topic veroeffentlicht werden:

NameIEC-TypBedeutung
xOnlineBOOLTRUE wenn eState = Online oder Degraded.
eStateeDeviceStateAktueller Fehlerzustand.
wErrorCountUDINTFehler insgesamt seit Bridge-Start.
wConsecutiveFailuresUDINTFehler seit letztem Online (resettet auf Online).
wLastErrorCodeUINT0 = keiner; 1..99 Common; 100+ Protokoll.
sLastErrorMsgSTRING[48]UTF-8, zero-padded.
tLastTransitionULINTUnix-Zeit (ms) des letzten State-Wechsels.

Wenn das Device an eine FDD (Field-Device-Description) gebunden ist (catalogRef), zeigt die Status-Tabelle zusaetzlich die FDD-spezifischen Erweiterungen mit dem Vermerk FDD +<offset> in der Source-Spalte.

Im ST-Code sind alle Status-Variablen unter anvil.<seg>.<dev>.Status.* ansprechbar:

IF NOT anvil.OG_Modbus.K1_Mains.Status.xOnline THEN
    Lampe_Stoerung := TRUE;
END_IF;

Bus-Module

Bus-Module sind I/O-Slices innerhalb eines Devices. Das Panel zeigt:

Metadata

  • Module (Anzeige-Name oder catalogRef)
  • Slot (Slot-Index im Device)
  • Catalog (FDD-Referenz, z. B. Beckhoff.EL2008)
  • Base Addr (IEC-Basis-Offset)

IO-Variables-Tabelle

Listet alle Pool-Variablen, deren busBinding.deviceId und busBinding.moduleSlot zu diesem Modul passen. Spalten:

SpalteInhalt
NamePool-Name (editierbar, z. B. Motor_Run).
TypeIEC-Typ (editierbar, z. B. BOOL, INT).
AddressIEC-Adresse (%IX0.0, read-only).
Bus AddrModbus-Register-Offset (read-only).
Dirin oder out (read-only).

Sortierreihenfolge: Inputs vor Outputs, dann nach Bus-Adresse aufsteigend.

Edit-Verhalten

Jeder Edit im Panel laeuft direkt gegen das Modell:

  1. Edit im Widget (editingFinished / valueChanged / toggled).
  2. Modell-Feld wird aktualisiert (seg->name = ...).
  3. project->markDirty() setzt das Dirty-Flag.
  4. Signal busConfigEdited wird emittiert.
  5. Das MainWindow refresht das Project-Tree-Label, falls noetig.

Es gibt kein explizites Apply und kein Cancel — Edits sind sofort wirksam. Ctrl+Z (Undo) auf dem Project-Tree macht den letzten Edit rueckgaengig.

Verwandte Themen

  • Bus-Konfiguration — modale Dialoge mit identischem Feld-Set, fuer Power-User mit hohem Edit-Volumen.
  • Variables Panel — der Pool, aus dem die IO-Variables-Tabelle stammt.