Tutoriel ladder set et reset (partie 2):
La mémoire des ampoules
Nous voici dans la secondes section (donc la dernière) consacrée au Ladder. Dans ce chapitre nous commencerons par manipuler codesys, ce qui nous permettra de nous remettre doucement dans le bain. Puis vous découvrirez une sortie particulière appelé SET et RESET, qui permettra de mémoriser un état, puis les « Fronts ». Ensuite je vous expliquerai comment se déroule le « cycle » d’un programme et ce qu’est un chronogramme. Enfin nous finirons par un exemple qui regroupera tous ce que l’on à vue précédemment. Pour éviter une vidéo trop longue, celle ci à été coupée en trois parties. Alors c’est parti pour le tutoriel ladder set reset (partie 2).
Note: si vous n’avez pas installé Codesys, le logiciel que nous utilisons pour nous exemple, voici le lien expliquant la procédure à faire: Lien pour télécharger et installer codesys.
Voici un lien vers le chapitre précédent « programmez avec une ampoule », cliquez ici.
Première vidéo: La prise en main de Codesys.
Deuxième vidéo: Réalisation d’un auto-alimentation.
Troisième vidéo: Réalisation d’un télérupteur.
Aguerrissons nous sur Codesys.
Démarrons doucement, mais démarrons bien. Ré-ouvrez Codesys et reprenez notre schéma avec nos contacts NO (Normally Open) et NC (Normally Close) du chapitre précedent.
Refaites ce programme sous Codesys (pour rappel ces 4 lignes sont les même mais avec des états différents pour DI1 et DI2, donc dans le logiciel vous n’en programmerai qu’une seule), et testez les 4 combinaisons pour confirmer qu’une seule n’alimente la sortie. Ceci n’étant qu’une rappel, ce n’est pas censé vous poser de problème, alors passons à la suite. Voici ce que vous devez avoir:
Astuce: En réalité vous n’êtes pas obligé de créer vos variables, Codesys est doté d’un éditeur automatique. Lorsque vous insérez un élément, mettez directement son noms dans les 3 points interrogations, et quand vous appuierez sur entrée, une fenêtre s’ouvrira.
Classe: Laissez VAR pour l’instant.
Noms: Le noms de votre variable.
Type: Pour l’instant nous ne faisons que du Tout Ou Rien, donc BOOL
Commentaire: Mettez y les commentaires de votre variable.
Pour l’instant ignorez les autres champs.
Élargissons nous possibilités avec les contacts en parallèle.
Depuis le début nous avons vu les contacts en série, mais vous vous apercevez que cela reste assez limité. C’est la qu’interviennent les contacts en parallèle (c’est aussi possible avec les sorties).
Voici un exemple:
Contrairement où, avec les contacts en série, il fallait avoir DI1 ET DI2 passant pour alimenter la sortie, ici il faut DI1 OU DI2 soit passant pour avoir le même résultat. Regardons d’ailleurs le schéma avec les 2 contacts au travail:
Je vous laisse donc le soin de chercher à définir combien de combinaisons sont possibles entre ces 2 contacts, et parmi toutes ces combinaisons, lesquelles activent notre sortie? Par la même occasion essayez d’en déduire la table de vérité.
Vous avez trouvé?
Une petite bannière pour créer une séparation jusque la solution?
Voici le résultat attendu:
Comprenez donc bien la différence:
En série, TOUS les contacts de la ligne doivent être passant pour alimenter la sortie.
En parallèle, AU MOINS UN contact doit être passant pour alimenter la sortie.
Je vous laisse tester cela sous Codesys.
Pour insérer un contact en parallèle sous codesys, il faut sélectionner créer un premier contact, le sélectionner, puis cliquer sur le bouton de la barre d’outil « contact en parallèle » pour le NO, et « contact en parallèle nié » pour le NC. Votre deuxième contact s’affichera en parallèle du premier.
Un contact de sortie?!?
Jusque là, nous avons utilisé des contacts pour les entrées et des bobines pour nos sorties. Bon, alors loin de moi l’idée de vouloir vous embrouiller l’esprit (promis), mais nous avons aussi la possibilité d’utiliser une sortie comme contact 😯 .
En effet, il sera souvent nécessaire de connaitre l’état d’une sortie afin d’effectuer telle ou telle action en conséquence, donc sachez que ceci est parfaitement en règle:
Avant de ne lire l’explication essayez de comprendre par vous même ce schéma.
Explication: La partie alimentant la sortie DO1 est la même que précédemment, cela n’est donc pas censé vous poser de problème. Alors penchons nous sur le deuxième réseau. Le premier contact se nome SortieDO1, c’est « l’image » de la SortieDO1. Ce qui veut dire qu’il sera passant lorsque SortieDO1 sera alimenté, et non passant lorsque SortieDO1 sera à 0.
Pour ce qui est du fonctionnement du montage:
- Pour alimenter la sortie DO1, nous devons appuyer sur le ContactDI1 OU ne pas appuyer sur le contactDI2.
- Pour alimenter la sortieDO2, nous devons appuyer sur contactDI3 ET (appuyer sur contactDI1 OU ne pas appuyer sur ContactDI2). Mais la condition entre parenthèses étant la même que celle alimentant la SortieDO1, le programme se simplifie en prenant l’état de celle ci plutôt que ses conditions.
Rappel: Dans une expression, les éléments se trouvant entre parenthèses sont exécutés en premier.
Sous codesys, vous allez avoir besoin de créer un nouveau réseau pour y mettre la branche de DO2. Dans la barre de menu, allez donc dans insérer -> réseau (après), vous devriez voir un réseau 0002 apparaître en dessous du premier.
Allez confirmer cela sous Codesys.
On fait une petite synthèse?
Nous entrons dans le vif du sujet, vous allez avoir l’occasion de mettre TOUT ce que vous venez d’apprendre dans le même programme.
Je vous demande de réaliser sous Codesys, une AUTO-ALIMENTATION, en voici le cahier des charges:
- Un contact DI1 doit servir à activer une sortie DO1
- Une fois cette action faite, la sortie doit rester alimentée même lorsque l’on relâche DI1
- Un contact DI2 doit servir à éteindre la sortie DO1
(En gros DI1 allume DO1, et DI2 éteint DO1.)
Vous pouvez utiliser autant de contacts et de sorties que vous le souhaitez.
A vous de jouer sous Codesys.
Voici un indice si cela est trop compliqué:
Utilisez l’état de la sortie DO1 pour remplacer l’appui de DI1.
Et voici le résultat:
En action cela donne:
Explication:
- Lorsque l’on appuie sur DI1, DI2 étant normalement fermé, on alimente DO1.
- DO1 étant alimentée, son contact en parrallèle de DI1 se ferme et « remplace » celui ci.
- On relache DI1, mais le contact Sortie étant à 1, la sortie reste alimentée.
- Un appuie sur DI2 ouvre le circuit, la sortie s’éteint donc.
- La sortie étant éteinte, son contact retombe donc à 0.
Cela fait déjà un gros morceau, mais dans la suite vous allez voir qu’il y a une fonction toute faite pour exécuter cela, alors faites une petite pause, puis passez à la suite du Tutoriel ladder set reset.