Files
sps_skel/doc/HundM/BricsCAD_TRO_Symbol.md

6.7 KiB
Raw Permalink Blame History

BricsCAD-Symboldefinition — TRO-Block

Zweck

Dieses Dokument beschreibt ein BricsCAD-Blocksymbol ("TRO-Symbol"), das im Layoutplan der Förderanlage platziert wird und dessen Attribute per DXF/Skript-Export in ein TRO-Objekt der JSON-Layout-Konfiguration überführt werden können (Abschnitt "4. TROs").

Das Symbol bildet nur die Daten ab, die sich pro physischer Instanz unterscheiden und nicht aus Nachbarschaft/Zeichnung oder aus dem Typ ableitbar sind. Timing-Werte (trailingTime, handlingTime, senFree, senWait, jamTime, ...) werden bewusst nicht am Symbol gepflegt, sondern beim JSON-Export aus einer Default-Tabelle pro TRO_TYPE gezogen (siehe Kapitel "Defaults je Typ"). Für Sonderfälle steht ein optionales Override-Attribut zur Verfügung.

Ebenfalls nicht am Symbol gepflegt: Position/Rotation (kommt aus der Blockeinfügung) und Connections/JamAreas (entry/exit, kommen aus der grafischen Topologie — welche Verbindungslinie an welchem Anschlusspunkt des Symbols endet).


Attributliste (ATTDEF)

Gruppe 1 — Kern / Identifikation (Pflicht, bei jedem Typ)

Tag Prompt (DE) Beispielwert Default Typ Bemerkung
TRO_ID TRO-ID TRO107 Text Eindeutig; Basis für mainTroNo (cMainTro107), separator.no (cSep107.1), hmi-Pfad
TRO_TYPE TRO-Typ 1Sep1Swi Liste (Enum) Steuert fbType + Timing-Defaults; siehe TRO-Typen-Tabelle
CONTROL_UNIT Steuerkreis OF1 OF1 Liste (Enum) Sicherheitszone/Schaltschrank
COMMENT Bezeichnung Weiche Boom 1 Text Klartext für Doku, HMI, SCL-Kommentar

Gruppe 2 — Hardware-IO (Pflicht, nicht ableitbar)

Tag Prompt (DE) Beispielwert Default Typ Bemerkung
SENSOR_IN_SEP Sensor Separator BG3306 Text Hauptsensor, ergibt sensorInSep + cIn-Konstante
SENSOR_JAM2 Sensor Jam 2 BG3305 (leer) Text, optional zweiter Stau-/Kontrollsensor
SENSOR_JAM3 Sensor Jam 3 BG3330 (leer) Text, optional nur bei Switch-Typen mit 3. Sensor
STOPPER_OUTPUT Ausgang Stopper MB3306 Text Stopper-/Vereinzelungs-Ausgang
SWITCH_OUTPUT Ausgang Weiche MB3304 (leer) Text nur bei 1Sep1Swi / 1Sep2Swi sichtbar/Pflicht

Gruppe 3 — Scanner (optional, blendet sich nur bei Bedarf ein)

Tag Prompt (DE) Beispielwert Default Typ Bemerkung
SCANNER_ID Scanner-ID BX1104 (leer) Text, optional Cognex-Barcodeleser-Kennung
HAS_SSCC_SCANNER SSCC-Scanner? false false Bool (Liste true/false) schaltet ssccScanner- und wcsTelegram-Block im Export frei

Gruppe 4 — Priorität / Verhalten

Tag Prompt (DE) Beispielwert Default Typ Bemerkung
PRIORITY_TYPE Prioritätsart releaseOk releaseOk Liste (Enum: releaseOk, Manager, Dir2Manager) steuert priority-Block im JSON
IS_BORNER Einschleusepunkt? false false Bool markiert Borner-TROs (Direction-Zuweisung an dieser Stelle)
N_TO_1_DESTINATIONS Anzahl Weichenziele 3 (leer) Ganzzahl, optional nur bei Switch-Typen

Gruppe 5 — Override (Ausnahmefälle, i. d. R. leer)

Tag Prompt (DE) Beispielwert Default Typ Bemerkung
OVERRIDE_TIMING_JSON Timing-Override (JSON) (leer) (leer) Text, optional Freitext-JSON-Fragment, überschreibt einzelne Default-Timings dieser Instanz (z. B. {"trailingTime":"T#100ms"})
CUSTOM_CODE_REF Sonderlogik-Referenz (leer) (leer) Text, optional Verweis auf ein customCode-Snippet, das der Export separat einbindet (siehe Json-Konzept Abschnitt 10)

Sichtbarkeits-/Pflichtregeln beim Attribut-Dialog

Regel Bedingung
SWITCH_OUTPUT, N_TO_1_DESTINATIONS nur sichtbar/Pflicht TRO_TYPE ∈ {1Sep1Swi, 1Sep2Swi}
SENSOR_JAM3 nur sichtbar TRO_TYPE ∈ {1Sep1Swi, 1Sep2Swi}
SCANNER_ID Pflicht TRO_TYPE = 1Sep_SSCC oder Scanner-Kommentar in COMMENT
HAS_SSCC_SCANNER nur true möglich TRO_TYPE = 1Sep_SSCC
PRIORITY_TYPE = Dir2Manager nur zulässig TRO_TYPE = 1Sep1Swi

Diese Regeln werden nicht durch BricsCAD selbst erzwungen (ATTDEF kennt keine bedingte Sichtbarkeit), sondern im Export-Skript (Validierung) und optional per Dynamic-Block-Sichtbarkeitszuständen je TRO_TYPE-Variante.


Empfohlener Blockaufbau

  • 1 Basis-Blockdefinition SYM_TRO mit allen Attributen aus Gruppe 15 (leere Defaults für optionale Gruppen).
  • Anschlusspunkte als benannte Punkte/Layer im Block (PT_ENTRY, PT_EXIT, PT_EXIT2, PT_EXIT3) — dienen dem Export-Skript zur automatischen Ableitung der connections[]-Einträge aus angeschlossenen Linien, ersetzen die früher diskutierten Attribute für entry/exit.
  • Grafik je TRO_TYPE unterschiedlich einfärben/formen (z. B. über Dynamic-Block-Sichtbarkeitszustand), damit der Plan auf einen Blick den Typ zeigt — analog zu den classDef-Farben im Mermaid-Diagramm in Json_Layout-Konzept.md (sep, swi, buf, vario, sscc).

Defaults je Typ (Timing)

Die Timing-Defaults werden nicht am Symbol gepflegt, sondern zentral im Export-Skript als Lookup-Tabelle TRO_TYPE → Timing-Defaults hinterlegt (z. B. aus den in Json_Layout-Konzept.md Abschnitt 4 beobachteten Werten: 1SeptrailingTime=T#600ms, handlingTime=T#200ms, 1Sep1SwitrailingTime=T#100ms, handlingTime=T#50ms, VariotrailingTime=T#800ms, handlingTime=T#300ms, usw.). Die vollständige, typspezifische Default-Tabelle inkl. aller in dieser Anlage tatsächlich vorkommenden Typen steht in TRO_Typen.md.

Beispiel: Attributsatz für TRO107 (Switch Boom 1)

TRO_ID                 = TRO107
TRO_TYPE                = 1Sep1Swi
CONTROL_UNIT             = OF1
COMMENT                  = Weiche Boom 1 (LS / Clearing)
SENSOR_IN_SEP            = BG3306
SENSOR_JAM2              = BG3305
SENSOR_JAM3              = BG3330
STOPPER_OUTPUT           = MB3306
SWITCH_OUTPUT            = MB3304
SCANNER_ID               = (leer)
HAS_SSCC_SCANNER         = false
PRIORITY_TYPE            = Dir2Manager
IS_BORNER                = false
N_TO_1_DESTINATIONS      = 3
OVERRIDE_TIMING_JSON     = (leer)
CUSTOM_CODE_REF          = (leer)

Der Export-Generator ergänzt daraus automatisch mainTroNo=cMainTro107, separator.no=cSep107.1, hmi=DB_Interface_HMI.stTRO.TRO107, die Timing-Werte aus der Default-Tabelle für 1Sep1Swi, sowie jamAreas.entry/exit2/exit3 aus den an PT_ENTRY/PT_EXIT2/PT_EXIT3 angeschlossenen Verbindungslinien.