Clone
1
element_linking DE
ispyisail edited this page 2026-09-11 21:09:14 +12:00

Elemente verknüpfen: Master, Slave und Klemme

Die meisten Elemente der Sammlung sind einfach: Sie werden gezeichnet, platziert, verdrahtet — mehr nicht. Einige wenige Elementtypen leisten mehr: Sie verknüpfen sich miteinander, sie schränken ein, was angeschlossen werden darf, und sie verändern, was im Querverweisblock und in der Stückliste erscheint.

Dieses Verhalten entscheidet ein einziges Attribut in der .elmt-Datei, gesetzt im Element-Editor unter Datei → Elementeigenschaften. Diese Seite dokumentiert, was jede Wahl bewirkt, was sie in die Datei schreibt und auf welche Optionen man sich heute verlassen kann.

Maßgebliche Quelle für alles Folgende ist sources/properties/elementdata.cpp (typeFromString, masterTypeToString, slaveTypeToString, slaveStateToString, kindInfoToXml, kindInfoFromXml) sowie sources/editor/ui/elementpropertieseditorwidget.cpp auf Editor-Seite.


link_type ist ein Attribut des Wurzel-Tags <definition>:

<definition version="0.90" type="element" link_type="master"
            width="200" height="70" hotspot_x="100" hotspot_y="35">
link_type Editor-Beschriftung (FR) Bedeutung
simple Simple Gewöhnliches Element. Der Standard — ein unbekannter oder fehlender Wert fällt hierauf zurück.
master Maître Trägt einen Querverweis: Spulen, Schutzorgane, Schalter, SPS-Module.
slave Esclave Ein Kontakt, der sich an einen Master hängt und in dessen Querverweis erscheint.
next_report Renvoi de folio suivant Folioverweis, vorwärts.
previous_report Renvoi de folio précédent Folioverweis, rückwärts.
terminal Bornier Eine Klemme einer Klemmenleiste.
thumbnail Vignette Vorschaubild-Element.
conductor_definition Définition de conducteur Leiterdefinition.

Alles, was QET nicht kennt, wird stillschweigend zu simple (mit einer Warnung auf stderr). Es gibt keinen Validierungsfehler: Ein Tippfehler in einer von Hand bearbeiteten .elmt-Datei zeigt sich nur als Element, das rätselhafterweise keine Querverweise mehr bildet.

master, slave und terminal sind die drei Typen, die zusätzlich einen <kindInformations>-Block schreiben. Die übrigen Typen tun das nicht.


2. Master-Elemente

<kindInformations>
    <kindInformation name="type">coil</kindInformation>
</kindInformations>
Wert von type Editor-Beschriftung (FR) Typisches Element
coil Bobine Schütz- und Relaisspulen. Rückfallwert.
protection Organe de protection Leitungsschutzschalter, Thermorelais, Sicherungen mit Kontakten.
commutator Commutateur / bouton Wahlschalter, Taster.
plc Module PLC SPS- / E-A-Modul (siehe §5).

max_slaves — wie viele Slaves sich anhängen dürfen

<kindInformations>
    <kindInformation name="type">coil</kindInformation>
    <kindInformation name="max_slaves">4</kindInformation>
</kindInformations>

Wird nur geschrieben, wenn eine Grenze gesetzt ist. Der Standard ist -1, also unbegrenzt, und -1 wird nie in die Datei geschrieben: Ein fehlendes max_slaves und max_slaves = -1 bedeuten dasselbe.

max_slaves zählt Slave-Elemente, nicht Kontakte. Ein einzelnes Slave-Element kann selbst number = 4 deklarieren; ein Master mit max_slaves = 4 kann also weit mehr als vier physische Kontakte tragen. Das ist das häufigste Missverständnis dieser Funktion: Der Master meldet sich als voll, sobald die Anzahl der angehängten Slave-Elemente die Grenze erreicht — ganz gleich, wie viele Kontakte jedes davon darstellt.

Im Editor ist die Grenze ein Kontrollkästchen mit Zahlenfeld, sichtbar für coil, protection und commutator. Die Wahl von plc blendet sie aus und erzwingt -1.

Slave-Kontaktgruppen — das tatsächliche Kontaktbudget angeben

Ein Master kann die Kontakte beschreiben, die er wirklich anbietet, typisiert und beschriftet:

<kindInformations>
    <kindInformation name="type">coil</kindInformation>
    <slaveContactGroups>
        <group type="NO" subtype="simple" contactCount="2" terminalCount="2">
            <label>13</label>
            <label>14</label>
        </group>
        <group type="NC" subtype="simple" contactCount="1" terminalCount="2">
            <label>21</label>
            <label>22</label>
        </group>
    </slaveContactGroups>
</kindInformations>
Attribut Werte Bedeutung
type NO, NC, SW, Other Kontaktzustand. Standard NO.
subtype simple, power, delayOn, delayOff, delayOnOff, plc Kontaktart. Standard simple.
contactCount ganze Zahl Wie viele Kontakte diese Gruppe liefert. Standard 1.
terminalCount ganze Zahl Klemmen je Kontakt. Standard 1.
<label> Text Eine je Klemme, in Reihenfolge (13, 14, …).

Der gesamte Block wird nur geschrieben, wenn im Editor das Kästchen Kontaktgruppen gesetzt ist; ist er beim Laden vorhanden, wird das Kästchen wieder gesetzt. Für plc-Master steht er nicht zur Verfügung.

Status: ausgeliefert, aber ungenutzt. Von den 6 918 Elementen der Sammlung 10_electric deklarieren 0 slaveContactGroups und 0 max_slaves. Die Funktion arbeitet, aber kein Element der ausgelieferten Sammlung nutzt sie — ein neues Element damit betritt Neuland, statt einem Vorbild zu folgen.


3. Slave-Elemente

<kindInformations>
    <kindInformation name="type" show="1">simple</kindInformation>
    <kindInformation name="state" show="1">NO</kindInformation>
    <kindInformation name="number" show="1">1</kindInformation>
</kindInformations>

Alle drei Schlüssel werden für einen Slave immer geschrieben.

Schlüssel Werte Bedeutung
type simple, power, delayOn, delayOff, delayOnOff, plc Kontaktart. Rückfall: simple.
state NO, NC, SW, Other Schließer / Öffner / Wechsler / sonstige. Rückfall: NO.
number ganze Zahl Wie viele Kontakte dieses eine Element darstellt.

Editor-Beschriftungen: Simple, Puissance, Temporisé travail, Temporisé repos, Temporisé travail & repos für type; Normalement ouvert, Normalement fermé, Inverseur, Other für state.

Die Zustandsliste des Editors enthält einen zusätzlichen Eintrag, Esclave PLC, der gar kein Zustand ist: Seine Wahl setzt type = plc und state = Other und sperrt die Typliste. Deshalb taucht plc im Vokabular von type auf, aber nie in dem von state.

number ist der Grund, weshalb die Kontaktsumme eines Masters größer sein kann als seine Slave-Zahl — siehe den Hinweis zu max_slaves oben.


4. Klemmen-Elemente

<kindInformations>
    <kindInformation name="type">generic</kindInformation>
    <kindInformation name="function">phase</kindInformation>
</kindInformations>
Schlüssel Werte Editor-Beschriftungen (FR)
type generic, fuse, sectional, diode, ground Générique, Fusible, Séctionnable, Diode, Terre
function generic, phase, neutral Générique, Phase, Neutre

Beide fallen auf generic zurück.


5. SPS-Master

Setzt man den type eines Masters auf plc, ersetzt eine SPS-E-A-Tabelle die Bedienelemente für max_slaves und Kontaktgruppen. Serialisiert wird sie als Block <plcMasterData> innerhalb von <kindInformations>: Zeilenhöhe, Umbruchpositionen, Spaltenbreiten, -sichtbarkeit, -namen und -reihenfolge, Kopf- und Zellenschrift sowie eine Liste <plcIOs> mit <plcIO>-Einträgen, die type, address, functionText, comment, crossRef, terminalCount und die Klemmennamen tragen.

Kein Element der ausgelieferten Sammlung 10_electric ist ein plc-Master.


6. Elementinformations-Schalter

Diese stehen nicht in <kindInformations>. Sie leben in <elementInformations> als gewöhnliche <elementInformation>-Einträge und werden je Element auf dem Folio gesetzt, nicht im Element-Editor:

<elementInformations>
    <elementInformation show="1" name="potential_isolating">true</elementInformation>
</elementInformations>
Schlüssel Gilt für Wirkung
potential_isolating Klemmen-Elemente Das Potential läuft nicht durch die Klemme; beide Seiten werden als getrennte Potentiale nummeriert.
auto_num_locked Klemmen-Elemente Die Klemmennummerierung überspringt diese Klemme, statt sie neu zu nummerieren.
exclude_from_bom beliebiges Element Das Element bleibt aus der Stückliste heraus.

Alle drei werden mit der exakten Zeichenkette "true" verglichen. "True", "1" und "yes" gelten allesamt als nicht gesetzt. Die Kontrollkästchen im Informationsdialog schreiben stets "true"; die Falle stellt sich also nur bei einer von Hand bearbeiteten oder erzeugten .qet-Datei.

exclude_from_bom wird in SQL gefiltert, in der Definition von element_nomenclature_view in sources/dataBase/projectdatabase.cpp.

Zusatzblöcke

Ein Element trägt vier Zusatz-Informationsblöcke, auxiliary1 bis auxiliary4, jeweils mit den Varianten description_, designation_, manufacturer_, manufacturer_reference_, machine_manufacturer_reference_, supplier_, quantity_ und unity_ — etwa manufacturer_reference_auxiliary2. Sie sind für Zubehör gedacht, das mit einem Bauteil verkauft wird (Hilfskontaktblöcke, Spulen, Montagesätze), damit die Stückliste sie als eigene Positionen zum selben Element führen kann.

Wie die Kontaktgruppen ist dies ausgeliefert und ruhend: Kein Projekt der mitgelieferten Beispiele verwendet sie.


7. Kurzübersicht

Ich möchte… Setzen
eine Spule, auf die Kontakte querverweisen link_type="master", type = coil
einen Kontakt, der sich an eine Spule hängt link_type="slave", state = NO/NC/SW
angeben, dass ein Kontaktblock drei Kontakte hat Slave number = 3
begrenzen, was sich an eine Spule hängen darf Master max_slaves = N (N zählt Slave-Elemente)
das echte Kontaktbudget einer Spule beschreiben Master <slaveContactGroups>
ein Potential an einer Klemme trennen Elementinfo potential_isolating = true
die Nummer einer Klemme beim Neunummerieren behalten Elementinfo auto_num_locked = true
ein Element aus der Stückliste ausblenden Elementinfo exclude_from_bom = true

Siehe auch: Elements XML · kindInformations · elementInformations · definition-Attribut