Configuration Bus

Namespace

https://forgeiec.io/v2/bus-config

Ce schema decrit l’extension ForgeIEC du format XML PLCopen pour le stockage de la configuration des bus de terrain dans les fichiers de projet .forge. Il utilise le mecanisme <addData> conforme au standard PLCopen TC6.

Apercu

La configuration bus definit la topologie physique d’une installation : les segments (reseaux de bus) contiennent des devices (appareils), et chaque appareil est lie aux variables d’E/S du projet via un bus binding.

Projet .forge
  +-- Segments (reseaux de bus)
  |     +-- Devices (appareils)
  |           +-- Variables (via bus binding dans le pool d'adresses)
  +-- Pool d'adresses (FAddressPool)
        +-- Variable : DI_1, %IX0.0, busBinding -> Maibeere
        +-- Variable : DO_1, %QX0.0, busBinding -> Maibeere

Structure XML

La configuration bus est stockee en tant que <addData> au niveau du projet :

<project>
  <!-- Contenu PLCopen standard -->
  <types>...</types>
  <instances>...</instances>

  <!-- Configuration bus ForgeIEC -->
  <addData>
    <data name="https://forgeiec.io/v2/bus-config"
          handleUnknown="discard">
      <fi:busConfig xmlns:fi="https://forgeiec.io/v2">

        <fi:segment id="a3f7c2e1-..."
                    protocol="modbustcp"
                    name="Bus de terrain Hall 1"
                    enabled="true"
                    interface="eth0"
                    bindAddress="192.168.24.100/24"
                    gateway=""
                    pollIntervalMs="0">

          <fi:device hostname="Maibeere"
                     ipAddress="192.168.24.25"
                     port="502"
                     slaveId="1"
                     anvilGroup="Maibeere"/>

          <fi:device hostname="Stachelbeere"
                     ipAddress="192.168.24.26"
                     port="502"
                     slaveId="1"
                     anvilGroup="Stachelbeere"/>

        </fi:segment>

      </fi:busConfig>
    </data>
  </addData>
</project>

Elements

fi:busConfig

Element racine. Contient un ou plusieurs elements fi:segment.

AttributRequisDescription
xmlns:fiouiNamespace : https://forgeiec.io/v2

fi:segment

Un segment de bus de terrain (reseau physique).

AttributRequisTypeDescription
idouiUUIDIdentifiant unique du segment
protocolouiStringProtocole : modbustcp, modbusrtu, ethercat, profibus
nameouiStringNom d’affichage (libre)
enablednonBoolSegment actif (true) ou desactive (false). Defaut : true
interfacenonStringInterface reseau (ex. eth0, /dev/ttyUSB0)
bindAddressnonStringIP/CIDR de l’interface (ex. 192.168.24.100/24)
gatewaynonStringAdresse de la passerelle (vide = pas de passerelle)
pollIntervalMsnonIntIntervalle d’interrogation en millisecondes (0 = aussi vite que possible)

fi:device

Un appareil au sein d’un segment.

AttributRequisTypeDescription
hostnameouiStringNom de l’appareil (utilise comme identifiant)
ipAddressnonStringAdresse IP (Modbus TCP)
portnonIntPort TCP (defaut : 502)
slaveIdnonIntIdentifiant esclave Modbus
anvilGroupnonStringGroupe Anvil IPC pour le transport zero-copie

Liaison Variable-Device

Les variables d’E/S ne sont pas listees dans l’element fi:device. Chaque variable du pool d’adresses porte un attribut busBinding pointant vers le hostname du device :

FLocatedVariable
  name: "DI_1"
  address: "%IX0.0"
  anvilGroup: "Maibeere"
  busBinding:
    deviceId: "Maibeere"
    modbusAddress: 0
    count: 1

Attribution des adresses IEC

L’adresse IEC d’une variable liee est derivee de la topologie physique :

Base du segment + Offset du device + Position du registre
Plage d’adressesSignificationSource
%IX / %IW / %IDEntree physiqueBus binding
%QX / %QW / %QDSortie physiqueBus binding
%MX / %MW / %MDMemento (pas d’E/S physique)Allocateur de pool

Protocoles supportes

ProtocoleValeur protocolMediumDaemon bridge
Modbus TCPmodbustcpEthernettongs-modbustcp
Modbus RTUmodbusrtuRS-485 (serie)tongs-modbusrtu
EtherCATethercatEthernet (temps reel)tongs-ethercat
Profibus DPprofibusSerie (bus de terrain)tongs-profibus

Compatibilite

L’attribut handleUnknown="discard" garantit que les outils PLCopen ne connaissant pas ForgeIEC peuvent ignorer la configuration bus sans erreur. Inversement, ForgeIEC lit les blocs <addData> inconnus d’autres fournisseurs et les preserve lors de la sauvegarde.


Configuration Bus ForgeIEC — Hors ligne, conforme PLCopen, sans redondance.

blacksmith@forgeiec.io