Skip to content
ispyisail edited this page Sep 11, 2026 · 1 revision

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.


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

Home

🌐 Languages — English · Français · Deutsch

Downloads

Windows without admin rights — the portable archive, no installer

Quick Start Guide

User Manual

FAQ

Tips & Tricks

Guides

Conductors — wire properties, what feeds which export, cables, and hops where wires cross

Wires per terminal — limit the wires on a terminal, chain wiring instead of stars

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

Generic devices — a quick box symbol with terminals on any side, made by a wizard (pending)

Grid size and element size — why symbols aren't all the same scale, and scaling one without leaving the grid

Preferences reference — what each settings page does

Saving and loading settings — your whole setup in one file, to copy or keep

Keyboard-only control — mouseless QET, and what still needs a mouse

Mouse modifiers — what Shift, Ctrl and Alt change while you drag

3D mouse — SpaceMouse pan, zoom and buttons

Aligning items — snap symbols back to the grid, or line them up

Pictures on a sheet — labels, crop, transparency, what they cost in the file

Arcs and curved wires — the Arc tool, pulling an arc in or out, rounding a corner with a fillet, dashed arcs for lighting layouts

Grouping items — select, move and copy several items as one

Finding your place on a sheet — go to a cell like B13 or 4-B7, keep the headers in sight, show the cell limits, zoom and pan

Showing and hiding kinds of items — hide texts, wire numbers, shapes, pictures, tables or cross-references on every sheet

Drawing faster — place without dragging, the S shortcut bar, command search, gestures

Customising QElectroTech — keys, toolbar size and contents, the gesture ring (partly pending)

Managing collections — folders, writability, building your own shortlist

Templates — reusable multi-element blocks, placed by double-click or drag

Search & Replace — bulk property changes

Building a nomenclature query — the BOM/summary table builder

Linking wires across pages — sheet 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; command-line export and layers

The project database — the in-memory SQLite cache

File formats
Elements XML
Project XML
Development

Building from Source

Contributing Code

Automating QET — CLI, XML formats, external tools

CLI Reference — command line usage

JavaScript Scripting — --run, geometry editing, undo

MCP server — let an AI assistant read, verify and edit projects

Connecting an AI assistant — setup for Claude, Copilot, Gemini, Codex, Cursor, LM Studio

Script buttons — stored scripts with an icon, by hand or by an assistant

Live mode — an assistant working in the open project while you watch

Macro recorder — record a task by hand, for an assistant to script

Development Roadmap

Vision — proposal, under discussion

Developer Tools

About

Features

History

Community

License

Contributing to this Wiki

Clone this wiki locally