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

Lier des éléments : maître, esclave et bornier

La plupart des éléments de la collection sont simples : on les dessine, on les place, on les câble, et c'est tout. Quelques types d'éléments font davantage — ils se lient entre eux, ils limitent ce que l'utilisateur peut raccorder, et ils modifient ce qui apparaît dans le bloc de renvoi de folio ainsi que dans la nomenclature.

Ce comportement est déterminé par un seul attribut du fichier .elmt, réglé dans l'éditeur d'élément via Fichier → Propriétés de l'élément. Cette page documente ce que fait chaque choix, ce qu'il écrit dans le fichier, et sur quelles options on peut compter aujourd'hui.

La source de référence pour tout ce qui suit est sources/properties/elementdata.cpp (typeFromString, masterTypeToString, slaveTypeToString, slaveStateToString, kindInfoToXml, kindInfoFromXml) et sources/editor/ui/elementpropertieseditorwidget.cpp côté éditeur.


link_type est un attribut de la balise racine <definition> :

<definition version="0.90" type="element" link_type="master"
            width="200" height="70" hotspot_x="100" hotspot_y="35">
link_type Libellé de l'éditeur Signification
simple Simple Élément ordinaire. La valeur par défaut — une valeur inconnue ou absente revient à celle-ci.
master Maître Porte un renvoi de folio : bobines, protections, commutateurs, modules API.
slave Esclave Un contact rattaché à un maître, listé dans son renvoi de folio.
next_report Renvoi de folio suivant Renvoi de folio, vers l'avant.
previous_report Renvoi de folio précédent Renvoi de folio, vers l'arrière.
terminal Bornier Une borne de bornier.
thumbnail Vignette Élément vignette.
conductor_definition Définition de conducteur Définition de conducteur.

Toute valeur non reconnue devient silencieusement simple (avec un avertissement sur la sortie d'erreur). Il n'y a pas d'erreur de validation : une faute de frappe dans un .elmt édité à la main se manifeste seulement par un élément qui a mystérieusement cessé de se référencer.

master, slave et terminal sont les trois types qui écrivent également un bloc <kindInformations>. Les autres types n'en écrivent pas.


2. Éléments maîtres

<kindInformations>
    <kindInformation name="type">coil</kindInformation>
</kindInformations>
Valeur de type Libellé de l'éditeur Élément typique
coil Bobine Bobines de contacteur et de relais. Valeur de repli.
protection Organe de protection Disjoncteurs, relais thermiques, fusibles à contacts.
commutator Commutateur / bouton Commutateurs, boutons-poussoirs.
plc Module PLC Module API / E-S (voir §5).

max_slaves — combien d'esclaves peuvent se rattacher

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

Écrit uniquement lorsqu'une limite est définie. La valeur par défaut est -1, c'est-à-dire illimité, et -1 n'est jamais écrit dans le fichier : un max_slaves absent et max_slaves = -1 signifient la même chose.

max_slaves compte des éléments esclaves, pas des contacts. Un même élément esclave peut déclarer number = 4 : un maître avec max_slaves = 4 peut donc porter bien plus de quatre contacts physiques. C'est le contresens le plus fréquent au sujet de cette fonction ; le maître se déclare plein lorsque le nombre d'éléments esclaves rattachés atteint la limite, quel que soit le nombre de contacts que chacun représente.

Dans l'éditeur, la limite est une case à cocher accompagnée d'un compteur, affichée pour coil, protection et commutator. Choisir plc la masque et force -1.

Groupes de contacts esclaves — déclarer le vrai budget de contacts

Un maître peut décrire les contacts qu'il offre réellement, typés et étiquetés :

<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 Valeurs Signification
type NO, NC, SW, Other État du contact. Par défaut NO.
subtype simple, power, delayOn, delayOff, delayOnOff, plc Genre de contact. Par défaut simple.
contactCount entier Nombre de contacts fournis par ce groupe. Par défaut 1.
terminalCount entier Bornes par contact. Par défaut 1.
<label> texte Une par borne, dans l'ordre (13, 14, …).

Le bloc entier n'est écrit que si la case Groupes de contacts est cochée dans l'éditeur ; sa présence au chargement recoche cette case. Il n'est pas disponible pour les maîtres plc.

État : livré mais inutilisé. Sur les 6 918 éléments de la collection 10_electric, 0 déclarent slaveContactGroups et 0 déclarent max_slaves. La fonction marche, mais aucun élément de la collection livrée ne s'en sert : un nouvel élément qui l'utilise ouvre la voie plutôt qu'il ne suit un modèle existant.


3. Éléments esclaves

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

Les trois clés sont toujours écrites pour un esclave.

Clé Valeurs Signification
type simple, power, delayOn, delayOff, delayOnOff, plc Genre de contact. Repli : simple.
state NO, NC, SW, Other Normalement ouvert / fermé / inverseur / autre. Repli : NO.
number entier Nombre de contacts que cet élément représente.

Libellés de l'éditeur : Simple, Puissance, Temporisé travail, Temporisé repos, Temporisé travail & repos pour type ; Normalement ouvert, Normalement fermé, Inverseur, Other pour state.

La liste d'états de l'éditeur comporte une entrée supplémentaire, Esclave PLC, qui n'est pas un état : la choisir fixe type = plc et state = Other, et désactive la liste des types. C'est pourquoi plc figure dans le vocabulaire de type mais jamais dans celui de state.

number est ce qui rend le total de contacts d'un maître supérieur à son nombre d'esclaves — voir la note sur max_slaves ci-dessus.


4. Éléments bornier

<kindInformations>
    <kindInformation name="type">generic</kindInformation>
    <kindInformation name="function">phase</kindInformation>
</kindInformations>
Clé Valeurs Libellés de l'éditeur
type generic, fuse, sectional, diode, ground Générique, Fusible, Séctionnable, Diode, Terre
function generic, phase, neutral Générique, Phase, Neutre

Les deux se replient sur generic.


5. Maîtres API (PLC)

Régler le type d'un maître sur plc remplace les réglages max_slaves et groupes de contacts par une table d'E-S API, sérialisée en un bloc <plcMasterData> à l'intérieur de <kindInformations> : hauteur de ligne, positions de coupure, largeurs, visibilité, noms et ordre des colonnes, polices d'en-tête et de cellule, et une liste <plcIOs> d'entrées <plcIO> portant type, address, functionText, comment, crossRef, terminalCount et les noms de bornes.

Aucun élément de la collection 10_electric livrée n'est un maître plc.


6. Indicateurs d'informations d'élément

Ceux-ci ne sont pas dans <kindInformations>. Ils vivent dans <elementInformations> comme des entrées <elementInformation> ordinaires, et se règlent élément par élément sur le folio, pas dans l'éditeur d'élément :

<elementInformations>
    <elementInformation show="1" name="potential_isolating">true</elementInformation>
</elementInformations>
Clé S'applique à Effet
potential_isolating éléments bornier Empêche le potentiel de se propager à travers la borne ; les deux côtés sont numérotés comme des potentiels distincts.
auto_num_locked éléments bornier La numérotation des bornes saute cette borne au lieu de la renuméroter.
exclude_from_bom tout élément L'élément est exclu de la nomenclature.

Les trois sont comparés à la chaîne exacte "true". "True", "1" et "yes" sont tous lus comme non défini. Les cases à cocher du dialogue d'informations écrivent toujours "true" ; le piège ne se présente donc que pour un .qet édité ou généré à la main.

exclude_from_bom est filtré en SQL, dans la définition de element_nomenclature_view dans sources/dataBase/projectdatabase.cpp.

Blocs auxiliaires

Un élément porte quatre blocs d'informations auxiliaires, auxiliary1 à auxiliary4, chacun avec ses variantes description_, designation_, manufacturer_, manufacturer_reference_, machine_manufacturer_reference_, supplier_, quantity_ et unity_ — par exemple manufacturer_reference_auxiliary2. Ils sont prévus pour les accessoires vendus avec un composant (blocs de contacts auxiliaires, bobines, kits de montage), afin que la nomenclature puisse les lister comme des lignes distinctes rattachées au même élément.

Comme les groupes de contacts, c'est livré et dormant : aucun projet des exemples livrés ne les utilise.


7. Aide-mémoire

Je veux… Régler
une bobine vers laquelle des contacts se réfèrent link_type="master", type = coil
un contact qui se rattache à une bobine link_type="slave", state = NO/NC/SW
indiquer qu'un bloc de contacts en contient trois esclave number = 3
plafonner ce qui peut se rattacher à une bobine maître max_slaves = N (N compte des éléments esclaves)
décrire le vrai budget de contacts d'une bobine maître <slaveContactGroups>
couper un potentiel au niveau d'une borne info d'élément potential_isolating = true
conserver le numéro d'une borne lors d'une renumérotation info d'élément auto_num_locked = true
masquer un élément dans la nomenclature info d'élément exclude_from_bom = true

Voir aussi : Elements XML · kindInformations · elementInformations · attribut definition