Premières programmations et découverte du langage LADDER

Combinatoire et séquentiel

Cet exercice a pour objectif de bien faire la différence entre un système séquentiel et un système combinatoire.

  • Dans un système combinatoire, le temps n’intervient pas. L’état des sorties dépend uniquement de l’état des entrées.
  • Dans un système séquentiel, l'état des sorties dépend du temps et de l'ordre dans lequel les entrées sont appliquées.

Indiquez dans les deux problématiques ci-dessous, laquelle est combinatoire, laquelle est séquentielle.

 

"Les conditions de démarrage sont réunies si le capot est fermé et le bain d’huile à la bonne température". Ceci décrit un système .

"Suite à un ordre de marche, le vérin sort. Quand la tige est totalement sortie, il faut attendre 10s. Ensuite, le vérin rentre. Quand la tige est totalement rentrée, on attend un nouvel ordre de marche". Ceci décrit un système .

 

  

Principe du langage LADDER

Le langage LADDER est constitué de "réseaux". Chaque réseau correspond à une équation logique. On manipule donc des signaux TOR (Tout ou rien). Cette équation permet de calculer un résultat dépendant de signaux d'entrée. Ce résultat est représenté par une bobine. Chaque signal d'entrée est représenté par un contact (interrupteur) normalement ouvert ou normalement fermé. Il ne peut y avoir qu'une seule bobine dans un même réseau.

Voici quelques exemples:

  • Toutes les combinaisons sont permises....
  • Les contacts (comme a et b) peuvent être des entrées automates, des bits internes, les résultats booléens d'inégalités, la fin d'un timer, etc... Les bobines peuvent êtres des sorties automates, des bits internes, des affectations, la validation de fonctions, le lancement de timer, etc...
  • A chaque cycle de l'automate, les réseaux sont exécutés du premier (celui du haut de la première section) au dernier (celui du bas de la dernière section), séquentiellement. Le cycle se répète environ toutes les 10ms.
  • Par rapport à la représentation électrique, la barre de gauche représente l'alimentation Vcc et celle de droite la masse GND.

  • La fonction "mémorisation" existe en LADDER. On utilise alors les bobines SET (mémorisation d'un '1') et RESET (mémorisation d'un '0'). Ceci est présenté dans l'exemple ci-dessous:

Nous verrons un peu plus loin comment manipuler des grandeurs numériques en LADDER.

Création du programme en LADDER

Notre cahier des charges est le suivant: le voyant V0 s'allume si et seulement si l'un des boutons BP1 ou BP2 est enfoncé. On obtient l'équation  V0 = bp1 + bp2

Lancez Unity Pro et ouvrez le projet pupitre3. Sous Unity Pro, les tâches (ou sections) sont réparties en 1 tâche principale (MAST) et tâches événementielles. Nous resterons  sur des sections de la tâche principale.

Procédez comme sur la figure ci-dessous. ATTENTION, vous ne devez JAMAIS modifier ou effacer la section "Initialisation" qui permet le fonctionnement correct de la partie opérative virtuelle.:

Une fois la section créée, vous devez ajouter le réseau de contacts. Les contacts proposés sont les suivants :

 

 

Vous pouvez les placer avec la souris ou les raccourcis clavier.

 

Les bobines proposées sont les suivantes (la bobine inverse est rarement utilisée) :

Vous pouvez les placer avec la souris ou les raccourcis clavier.

 

Une fois les contacts et bobines positionnés, faîtes le lien à l'aide des 4 outils disponibles :

 

Procédez ensuite de la manière suivante pour associer des variables aux contacts et bobines :

Vous devez obtenir le réseau suivant :

 

Notez que les raccourcis clavier Copier CTRL+C et Coller CTRL+V fonctionnent avec les éléments mais aussi avec les réseaux complets.

Une fois la saisie effectuée, enregistrez votre programme.

Compilation, exécution et mise au point du programme

Compilez le programme (Génération > Générer le projet ou CTRL+B ou icône associée).

Vérifiez dans la fenêtre inférieure que vous n'avez ni erreur, ni avertissement.

Connectez-vous à l'automate (Automate > Connexion ou CTRL+K ou icône associée) et transférez le projet dans l'automate (Automate > Transférer le projet vers l'automate ou CTRL+L ou icône associée).

Validez la modification des variables virtuelles dans la fenêtre de la partie opérative virtuelle (Services > Valider modification variable ou F7)

Lancez l'exécution du programme (Automate >Exécuter ou CTRL+R ou icône associée

Vérifiez le bon fonctionnement de votre programme à l'aide des boutons et voyants de la partie opérative virtuelle. Vous remarquerez également que les contacts et les connexions « traversés par un courant » passent du rouge au vert pour vous aider dans le débogage du programme. Vous pouvez ici fermer la table d'animation pour afficher uniquement le programme et le pupitre. Il est alors commode d'utiliser le mode d'affichage Fenêtre > Mozaïque verticale

Quand c'est terminé, déconnectez l'automate, enregistrez le projet et fermez Unity Pro ou bien passez à la suite.

Un exercice en autonomie

Ouvrez à nouveau le projet pupitre3 et enregistrez-le sous le nom pupitre4. Effacez la section créée lors de l'exercice précédent.

Ecrivez maintenant un programme correspondant aux spécifications suivantes : le bouton BP1 enfoncé allume V0 et V1, le bouton BP2 allume V0 et V2. Pour faire simple, vous pouvez repartir du programme précédent. Cette fonction est-elle combinatoire ou séquentielle ? Avant de commencer, écrivez sur un brouillon l'équation logique vérifiée par V0, celle vérifiée par V1, puis celle vérifiée par V2

Aide : votre programme doit comporter 3 réseaux LADDER, un pour V0, un pour V1, un pour V2.

Suivez la démarche précédente pour saisir, compiler, exécuter le programme. N'hésitez pas à utiliser le "copier/coller" pour la saisie des réseaux. Quand cela fonctionne, déconnectez l'automate . Enregistrez votre projet et fermez Unity Pro ou bien passez à la suite.

Un autre exercice, utilisation de la mémoire interne

Ouvrez le projet pupitre4

Dans la section de l'exercice précédent, ajoutez les 2 réseaux LADDER correspondant à la spécification suivante:

  • L'état du bouton BP3_G doit être en permanence recopié dans le bit interne %M0
  • Le voyant V3 prend l'état du bit interne %M1

Aide : les bits internes peuvent être utilisés avec un contact et avec une bobine.

Suivez la démarche précédente pour saisir, compiler, exécuter le programme. Quand cela fonctionne, déconnectez l'automate. Enregistrez votre projet et fermez UNity Pro ou bien passez à la suite.