Pub

mardi 2 mars 2021

myTinyPLC : exemple de programmation - bistable à 4 relais

 Voici un schéma intéressant dont j'ai trouvé l'original sur www.volta-electricite.info. Il s'agit de réaliser l'équivalent d'un télérupteur (relais bistable) avec quatre relais classiques. C'est un bon exercice de programmation de myTinyPLC en langage IL.

 Imaginez quatre boutons poussoirs répartis le long d'un couloir pour commander l'éclairage. Une impulsion sur un bouton quelconque allume la lampe, une impulsion sur un bouton quelconque l'éteint.

 Les boutons sont les entrées i1, i2, i3, i4 et la sortie o4 représente la commande de l'éclairage. les sorties o1, o2 et o3 sont des relais de commande intermédiaires nécessaires au fonctionnement. On peut les remplacer par les mémoires m1, m2, m3 si on ne souhaite pas voir ces LEDs s'allumer sur l'Arduino (mais ça serait dommage).

Le schéma :

 |                      __                                       |
 |     i1               o3                                 o1    |
 +----] [----+----+----]/[--------------------------------( )----+
 |           |    |                                              |
 |     i2    |    |     o2                                 o2    |
 +----] [----+    +----] [----+---------------------------( )----+
 |           |    |           |                                  |
 |     i3    |    |     o3    |                                  |
 +----] [----+    +----] [----+                                  |
 |           |                                                   |
 |     i4    |                                                   |
 +----] [----+                                                   |
 |                      __                      __               |
 |                      o2          o1          o1         o3    |
 +---------------------]/[----+----] [----+----]/[--------( )----+
 |                            |           |                      |
 |                            |     o4    |                o4    |
 |                            +----] [----+---------------( )----+
 |                                                               |
 |                                                               |
 
 |                                  o4                 ECLAIRAGE |
 +---------------------------------] [--------------------(x)----+
 |                                                               |
 |                                                               |

Le programme IL pour myTinyPLC :

  stp[1] = 11; // Read input 1
  stp[2] = 12; // Read input 2
  stp[3] = 13; // Read input 3
  stp[4] = 14; // Read input 4
  stp[5] = 82; // OR
  stp[6] = 82; // OR
  stp[7] = 82; // OR
  stp[8] = 91; // DUP
  stp[9] = 91; // DUP
  stp[10] = 33; // Read output 3
  stp[11] = 83; // NOT
  stp[12] = 81; // AND
  stp[13] = 41; // Write output 1 
  stp[14] = 93; // DROP
  stp[15] = 32; // Read output 2
  stp[16] = 33; // Read output 3
  stp[17] = 82; // OR
  stp[18] = 81; // AND
  stp[19] = 42; // Write output 2
  stp[20] = 32; // Read output 2
  stp[21] = 83; // NOT
  stp[22] = 91; // DUP
  stp[23] = 31; // Read output 1
  stp[24] = 34; // Read output 4
  stp[25] = 82; // OR
  stp[26] = 81; // AND
  stp[27] = 44; // Write output 4
  stp[28] = 31; // Read output 1
  stp[29] = 83; // NOT
  stp[30] = 81; // AND
  stp[31] = 43; // Write output 3
  stp[32] = 99; // END

C'est ma version mais il y a bien sûr de nombreuses façons d'arriver au même résultat.
Cette fois, je n'ai pas écrit les équations logiques des sorties car le langage de myTinyPLC se prête finalement assez bien à la programmation directement à partir du schéma.

*** Guy F8ABX - 02/03/2021 **

Aucun commentaire:

Enregistrer un commentaire