Aller au contenu

Automate programmable

Préambule

  • Le simulateur permet d'intégrer un automate programmable physique ou virtuel dans un folio.
  • La communication avec l'API est réalisée en utilisant le protocole Modbus Tcp-IP :
    • avec l'adresse IP locale (127.0.0.1) du serveur Modbus intégré à l'API virtuel,
    • avec l'adresse IP statique du serveur Modbus intégré à l'API physique connecté sur un réseau Ethernet.
  • Cette solution permet d'utiliser les outils de programmation habituels des automates.
  • Logique d'échange client (master) (simulateur) <-> serveur (slave) (api), périodiquement :
    • le client Modbus (simulateur) émet une requête d'écriture des entrées du SAP simulé au serveur Modbus (API),
    • l'API calcule l'état des sorties du SAP selon son programme et l'état des entrées reçues,
    • le client Modbus (simulateur) émet une requête de lecture des sorties calculées par le programme au serveur Modbus (API),
    • le simulateur met à jour l'état du SAP.

Configuration Modbus

  • M221 Schneider Electric, codes fonctions 3,16 et 23, serveur modbus intégré
  • M340 Schneider Electric, code fonctions 3 et 16, serveur modbus intégré
  • Unilogic Unitronics, codes fonctions 3,16 et 23, configuration du serveur Modbus requise

  • CODESYS Control Win CODESYS 3.5, codes 3,16 et 23, configuration du serveur Modbus requise

    • Seuls les registres de retenue (holding registers) sont utilisés.
    • 48 registres (mot de 16 bits) sont affectés :
      • 24 registres pour les sorties, adresse de départ de la table : adresse_QW = 0,
      • 24 registres pour les entrées, adresse de départ de la table : adresse_IW = 24.
    • L'affectation des variables utilisées dans le programme est faite directement dans le mappage Modbus des E/S.
    • Le paramètre accessible en écriture est coché pour autoriser le serveur à écrire dans les 24 registres de sortie %QWx.y des modules M0 à M5.

Face avant de l'API virtuel

  • Chaque module d'E/S intègre quatre mots d'entrée et quatre mots de sortie 16 bits.
  • Ces mots peuvent-être déclinés :
    • en entrées ou sorties 'analogiques',
    • en entrées ou sorties TOR.
  • Finalement, chaque module peut gérer :
    • jusqu'à 64 entrées TOR et 64 sorties TOR,
    • un mix d'E/S TOR et 'analogiques', par exemple pour le module 0 :
      • %QW0.0 -> mot de 16 bits pour une sortie 'analogique'
      • %QW0.1 -> 16 bits utilisables pour 16 sorties TOR
      • %IW0.0 -> 16 bits utilisables pour 16 entrées TOR

Les exemples qui suivent illustrent la mise en oeuvre des modules dE/S.

Ascenseur M221

Fichiers :

  • 15-demo_ascenseur_M221.xrs
  • 15-demo_ascenseur_M221.smbp pour EcoStruxure Basic Expert de SchneiderElectric

Préparation côté simulateur

  • La commande de l'ascenseur nécessite 8 entrées et 4 sorties TOR. On peut utiliser un M221 type TM221CE16R qui dispose de 9 entrées TOR et de 7 sorties à relais.
  • Adressage des entrées TOR : %I0.0, %I0.1, %I0.2, %I0.3, %I0.4, %I0.5, %I0.6, %I0.7, %I0.8
  • Adressage des sorties : %Q0.0, %Q0.1, %Q0.2, %Q0.3, %Q0.4, %Q0.5, %Q0.6
  • L'exemple étudié implante 8 objets d'entrée et 4 objets de sortie en les identifiant avec les adresses API standards.

Affectation des entrées

adresse mnémonique commentaire
%I0.0 E3 appel étage 3
%I0.1 E2 appel étage 2
%I0.2 E1 appel étage 1
%I0.3 P1 cabine à létage 1
%I0.4 P2 cabine à létage 2
%I0.5 P3 cabine à létage 3
%I0.6 PF porte cabine fermée
%I0.7 PO porte cabine ouverte

Affectation des sorties

adresse mnémonique commentaire
%Q0.0 OUVRIR Ouvrir porte
%Q0.1 FERMER Fermer porte
%Q0.2 DESCENDRE Descendre cage
%Q0.3 MONTER Monter cage

Préparation côté EcoStruxure

Le programme complet 15-demo_ascenseur_M221.smbp est disponible dans le dossier :

Mise en correspondance des tableaux d'entrées/sorties avec la table d'échange ajustée sur l'adresse de départ %MW400 voir le mappage modbus:

adresse mappage MODBUS mnémonique commentaire
%I0.0 %MW500 :X0 E3 appel étage 3
%I0.1 %MW500 :X1 E2 appel étage 2
%I0.2 %MW500 :X2 E1 appel étage 1
%I0.3 %MW500 :X3 P1 cabine à létage 1
%I0.4 %MW500 :X4 P2 cabine à létage 2
%I0.5 %MW500 :X5 P3 cabine à létage 3
%I0.6 %MW500 :X6 PF porte cabine fermée
%I0.7 %MW500 :X7 PO porte cabine ouverte
adresse mappage MODBUS mnémonique commentaire
%Q0.0 %MW400 :X0 OUVRIR Ouvrir porte
%Q0.1 %MW400 :X1 FERMER Fermer porte
%Q0.2 %MW400 :X2 DESCENDRE Descendre cage
%Q0.3 %MW401 :X3 MONTER Monter cage

Dans l'onglet Programmation ->Outils -> Liste de symboles, on trouve l'assignation des entrées/sorties qui correspond aux tableaux précédents:

Programme API:

Démarrer le contrôleur AVANT de lancer le simulateur en activant les boutons Lancer le simulateur et Démarrer le contrôleur dans l'onglet Mise en service d'EcoStruxure:

E-S analogiques CODESYS

Fichiers :

  • 41 - demo_E-S_analogiques_CODESYS.smbp
  • 41 - demo_E-S_analogiques_CODESYS.project pour CODESYS 3.5

Utiliser CODESYS avec le simulateur

Préparation côté simulateur

  • Le schéma met en oeuvre :

    • trois entrées analogiques :
      • %IW1.0 connectée au capteur 4-20 mA B2
      • %IW1.1 connectée au capteur 4-20 mA B1
      • %IW1.2 connectée au capteur 0-10 V AU1
    • deux sorties analogiques :
      • %QW2.0, sortie courant 0-20 mA
      • %QW2.1, sortie tension 0-10 v
  • Le grapheur Grapheur est paramétré pour visualiser l'évolution de la sortie %QW2.0

    • Vqw2_0.value.5
      • Vqw2_0 -> nom du voltmètre
      • value -> affichage de la valeur mesurée
      • 5 -> calibre du voltmètre (250 * 20e-3)

  • Le programme implanté dans le contrôleur permet d'ajuster la période de la dent de scie avec le potentiomère du capteur AU1 connecté sur %IW1.2.

Préparation côté CODESYS

  • L'affectation des variables est faite directement dans le mapping modbus des E/S configuration Modbus

    • %IW1.0 -> IW1_0
    • %IW1.1 -> IW1_1
    • %IW1.2 -> IW1_2
  • Code ST avec l'ensemble des registres d'E/S pour visualisation

  • CODESSYS en exécution

    • F11 (créer code)
    • Alt-F8 (se connecter) il faut que le contrôleur CODESYS Control Win Systray soit en marche
    • F5 (démarrer)

Tri de pièces CODESYS

Fichiers :

  • 42 - demo_Tri_De_Caisses_CODESYS.smbp
  • 42 - demo_Tri_De_Caisses_CODESYS.project pour CODESYS 3.5

Utiliser CODESYS avec le simulateur

Préparation côté simulateur

Préparation côté CODESYS

  • L'affectation des variables est faite directement dans le mapping modbus des E/S configuration Modbus

  • Préparation du SFC

  • Code ST avec l'ensemble des registres d'E/S pour visualisation

  • CODESSYS en exécution

Construction d'un objet API

  • Un automate est construit avec les objets élémentaires :

    • input# pour les entrées TOR,
    • output# pour les sorties TOR,
    • analog_input# pour les entrées analogiques,
    • analog_output# pour les sorties analogiques,
    • plc_supply# pour l'alimentation de l'API
  • Toutes les E/S ont pour parent l'objet plc_supply afin d'asservir l'alimentation de ces E/S à l'alimentation de l'automate.

  • Le serveur MODBUS est implicitement attaché à l'automate en place dans le schéma.
  • On ne peut placer qu'un seul automate dans le schéma.
  • Des exemples d'automates sont disponibles dans le dossier blocs_simulables à partir de la commande 'Ouvrir un bloc' de WinRelais.

Toutes ces empreintes d'automate sont ajustables et modifiables selon les besoins.

Entrées/Sorties logiques

input, output bibliothèque _api
%Ir.v ou %Qr.v r = [0,5] v = [0,31]
parent = nom de l'objet plc_supply#

Entrées analogiques

analog_input bibliothèque _api
%IWr.v r = [0,5] v = [0,3]
parent = nom de l'objet plc_supply#
input_type = U ou I
input_range = (min,max) V [-10,10] V ou (min,max) mA [0, 20] mA
input_scale = min,max [-32768, 32767]

Sorties analogiques

analog_output bibliothèque _api
%QWr.v r = [0,5] v = [0,3]
parent = nom de l'objet plc_supply#
output_type = U ou I
output_range = (min,max) V [-10,10] V ou (min,max) mA [0, 20] mA
output_scale = min,max [-32768, 32767]