Table of Contents
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) sowiesources/editor/ui/elementpropertieseditorwidget.cppauf Editor-Seite.
1. Der Grundtyp — link_type
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
Getting Started
🌐 Languages — English · Français · Deutsch
Guides
Conductors — wire properties, what feeds which export, and cables
Wire & cable catalogue — cable types, IEC 60757 core colours, assigning a core to a conductor
Printing and exporting — paper, PDF, images, and what each path does differently
Linking elements — master, slave, terminal
PLC modules — I/O tables and linking a wire to a specific point
Using the element editor — drawing tools, saving, checks
Preferences reference — what each settings page does
Keyboard-only control — mouseless QET, and the one real gap
Mouse modifiers — what Shift, Ctrl and Alt change while you drag
Managing collections — folders, writability, building your own shortlist
Templates — reusable multi-element blocks, and why clicking one does nothing
Search & Replace — bulk property changes
Building a nomenclature query — the BOM/summary table builder
Linking wires across pages — folio reports
Variables & formulas — %f, %{label}, sequences
Auto-numbering — schemes, sequences, freezing
Terminal strips — strips, levels, bridges
Title block templates — the .titleblock format
Importing EPLAN parts (.edz) — EPLAN Data Portal
DXF import & export — two unrelated features, one format
The project database — the in-memory SQLite cache
Development
Automating QET — CLI, XML formats, external tools
CLI Reference — command line usage
JavaScript Scripting — --run, geometry editing, undo
Vision — proposal, under discussion
