La simulation. Crouzet Millenium 3 XD26
Vous trouverez ci-dessous de brèves informations concernant le Millenium 3. Ce guide explique le fonctionnement de l'atelier de programmation, la création de projets, le choix du contrôleur et des extensions, le langage FBD, la surface de câblage, la supervision, la programmation, le câblage, la simulation, et les raccourcis clavier.
changer grâce aux fonctions de programmation de la face avant, mais je ne vais pas vous embrouiller avec ca pour le moment)
Sa page de paramétrage est très simple :
Il suffit donc de choisir la valeur que l’on souhaite donner à la constante.
Configurez les deux blocs constante comme décrit ci-dessous :
B09 = 20
B10 = 21
Je vais être directe sur ce point, ce paramétrage va poser un petit problème mais le mettre en
évidence va permettre de vous faire comprendre que lorsqu’on programme une régulation avec des entrées analogiques, il faut prendre en considération les légères fluctuations
électriques qui peuvent aboutir à des phénomènes d’oscillation d’état dans votre programme.
Bon nous sommes maintenant fin prêt pour faire un premier test de notre programme.
La simulation
Pour l’instant nous allons nous intéresser qu’aux fonctions de base de la simulation, à savoir l’action sur les éléments d’entrées sorties, les forçages, et la simulation des entrées analogiques.
Une information important sur le simulateur de l’atelier Millenium 3. Le simulateur de l’atelier Millenium 3 est ce qu’on appel un simulateur fidèle. Ceci veut dire que tout est exécuté exactement de la même manière que si votre programme était chargé dans votre M3.
Le coté intéressant de ceci est que vous allez pouvoir presque complètement mettre au point votre programme tranquillement assit devant votre PC. Pourquoi presque? Parce que comme je l’ai dit juste avant, il peut arriver que l’on n’ait pas pris en considération certains facteurs physiques du monde réel, qui auront un impacte sur votre programme.
31/44
Passer en simulation : les changements dans l’atelier
Dans la barre d’outils, vous avez des boutons bien utiles pour changer de mode :
Ici on va s’intéresser aux boutons E, S, M.
E : bouton pour passer en mode édition
S : bouton pour passer en mode simulation
M : bouton pour passer en mode monitoring.
Le bouton surligné de vert correspond au mode courant.
Cliquez sur le bouton S, et observez les changements dans l’atelier :
Voici une petite liste des changements :
la barre de fonction a disparue
32/44
Les liens TOR ont pris de la couleur.
Des valeurs sont affichées à coté des entrées et sorties de bloc
Vous ne POUVEZ PLUS déplacer les blocs fonction ou tracer des liens
Vous pouvez toujours modifier des paramètres (sauf pour quelques blocs fonctions spécifiques, mais qui n’ont pas encore été présentés pour le moment)
Une nouvelle barre d’outils est apparue : la barre d’outils de simulation (image cidessous)
Une description un peu plus poussée de cette barre d’outils sera faite au fur et à mesure,
Vous pouvez actionner certains éléments de votre programme.
Pour l’instant intéressons nous à ce qu’on peut faire sur notre programme en mode simulation.
Une petite note au passage par rapport au fait le les liens TOR ont pris de la couleur (pour rappel ce sont les traits noir plein en mode édition). Lorsque ces liens sont bleus, cela signifie que l’état est à OFF, cet état est également matérialisé par un texte OFF affiché à chaque extrémité de ce lien. Lorsque ces liens sont rouge, cela signifie que l’état est à ON, cet état est
également matérialisé par un texte ON affiché à chaque extrémité comme pour l’état OFF.
Les forçages fugitifs
Pour étudier ce type d’action nous allons pour le moment nous concentrer uniquement sur la partie du programme qui concerne notre télérupteur temporisé.
Alors il faut bien distinguer les différents types de forçage que l’on peut effectuer sur le programme, et pour cela nous allons commencer par les forçages fugitifs. Ce sont des forçages qui ne sont pas maintenues dans le temps
Cliquez sur le lien indiqué par la flèche sur la capture ci-dessous :
Si vous avez bien visé avec votre souris, vous avez du le voir changer de couleur rapidement avant de reprendre son état initial :
33/44
Vous aurez noté que ce changement d’état est très fugitif.
Après avoir cliqué sur ce lien, vous avez du observer d’autres choses changer d’état :
Eh oui, vous avez « appuyé ET relâché » un bouton (action fugitive), ce qui a déclenché le télérupteur, et vous voyez donc que la sortie O1 (bloc B07) est active.
Alors pour les plus pointilleux d’entre vous, un petit truc aurait du vous chagriner. En effet, on n’a pas vu changer d’état la sortie du bloc logique OU B04 qui est sensé activer le télérupteur... mais alors comment celui-ci s’est activé !!! Non, je vous jure que ce n’est ni par l’opération du saint esprit, nous l’œuvre du malin (encore que vous pouvez considérer un ordinateur comme étant une machine diabolique qui ne fait jamais rien comme vous le voulez)
L’explication :
Il faut savoir que par défaut le simulateur exécute 10 cycles de l’automate en 100 millisecondes, ce qui veut dire qu’un changement effectif sur seulement un seul cycle a très peut de chance d’être visible, et si il l’est, il sera extrêmement furtif.
Un cycle…mais c’est quoi cette bête !!! Pourquoi il utilise des mots barbares le Pasquall, il cherche à nous embrouiller !!!!
Alors oui la j’ai sortis comme ça un mot vulgaire, qui sans explications risque de vous perdre et je vais donc m’empresser de vous expliquer ce que c’est.
Il faut considérer que le M3 va exécuter votre programme en partant des entrées, en suivant les liens, pour finalement arriver aux sorties. Une exécution complète de gauche à droite correspond à 1 cycle. De manière générale, le M3 va mettre en 10 et 20 millisecondes pour exécuter un cycle selon la complexité de votre programme.
34/44
Quand on est en simulation on à la chance de pouvoir volontairement régler la vitesse d’exécution du programme afin de pouvoir observer ces fameux états furtifs qui sont mangés par la vitesse de calcule de nos PC. Voyons ca en détails dans ce qui suit.
Ralentir la simulation
Je vous avez dit qu’on allait reparler de la barre d’outils de simulation !!!
Alors nous allons nous intéresser aux deux premiers éléments en partant de la gauche :
La période de rafraichissement, et le nombre de cycles. Ce sont ces deux paramètres qui vont définir la vitesse de simulation.
La période de rafraichissement (que je noterai PF) est réglable de 100 ms à 2000 ms. Elle va définir la période à laquelle on va simuler le nombre de cycles (que je noterai NbC) définit dans le champ suivant.
Le nombre de cycles va définir combien de cycles sont exécuté à chaque période de
rafraichissement. Le NbC est réglable de 1 à 255.
Alors oui la on a un beau serpent qui se mord la queue mais prenons un exemple concret pour mieux comprendre.
Par défaut ces deux valeurs son réglées à PF = 100, et NBC = 10. Cela veux dire qu’on exécute un cycle toutes les 10ms (100ms / 10 = 10 ms/cycle), soit environ ce que fait le M3 en vrai sur un programme simple. On est à peut près en temps réel (je dis bien à peu près, le simulateur est bien moins précis sur le temps que le M3)
Allez ! On va jouer un peu, et on va changer le NbC à 1 (utilisez les petites flèches pour régler la valeur). Nous exécutons donc 1 cycle toutes les 100ms ce qui veux dire qu’on est ralentis environ 10 fois.
Voyons ce que ca donne en cliquant sur le même lien que tout à l’heure. Normalement vous devez voir de façon fugitive cet état (note, l’état de la sortie du télérupteur peut être OFF s’il
était encore actif au moment ou vous avez cliqué sur le lien) :
Vous voyez, aucune source occulte n’était responsable du changement d’état du télérupteur !!
Bon OK, ca passe vite et on à tout juste le temps de voir ce qui se passe, nous allons donc encore ralentir la simulation pour que tout le monde (même un suisse ;-) ) ait le temps de voir ce qu’il se passe.
Cette fois on va modifier le PF et le régler à 2000 (valeur maximum). Vous pouvez rester appuyé sur la petit flèche qui point vers le haut pour que la valeur augment toute seul.
Nous sommes donc à 1 cyclé exécuté toutes les 2 secondes, ce qui veut dire qu’on est ralentis
200 fois !! Avec un tel ralenti, il devient très facile d’observer ce qu’il se passe dans un programme qui à un bug.
Je vous laisse refaire la même opération que précédemment et observer le résultat qui est le même mais en plus lent.
35/44
Petit point sur les actions fugitives :
Ce que vous venez de faire à plusieurs reprise sur un des liens de votre programme peut être fait sur N’IMPORTE quel lien de votre programme. C'est-à-dire que vous pouvez directement intervenir sur le lien qui connecte le bloc logique OU au bloc télérupteur, ou encore sur la sortie du timer qui arrête le télérupteur. Bien entendu l’action sur un lien ne provoque pas de changement en amont de la sortie du bloc ou le lien est connecté (si vous cliquez entre le OU et le télérupteur, cela ne va pas changer l’état de vos entrées).
L’intérêt de ceci est de pouvoir tester des morceaux de programme en partant des sorties, pour voir à partir de ou ca ne fonctionne plus lorsqu’on a un problème.
UN BUG DANS L’ATELIER M3: Si vous quittez la simulation, puis que vous la relancez, bien que la PF affiche la dernière valeur utilisée, celle-ci est mal renvoyée au simulateur, il faut juste la changer une fois puis la remettre à la valeur souhaitée pour qu’elle soit correctement prise en compte.
Alors on a vu les forçages fugitifs sur les liens TOR, attaquons maintenant les forçages sur les liens analogiques. Prenons donc notre petit « thermostat » et cliquons sur le lien entre l’entrée analogique B08 et le bloc GAIN B13.
Cette fois ci une petite fenêtre s’ouvre et vous propose de saisir une valeur
Petite anecdote de développeur que je ne peux pas me retenir de raconter, car aussi stupide que cela puisse paraître, cette petite fenêtre m’a valu une bonne tranche de rire alors que je travaillai encore au développement de l’atelier de programmation du M3. Donc pour la petite histoire, le nom de cette « classe » (pour les non développeurs, c’est le nom que porte
36/44
cette fenêtre dans le code) porte le joli nom de CIhmDlgForcageAnal. Oui oui, anal pour analogique bien sur… on s’amuse beaucoup nous les développeurs.
Donc dans cette petite fenêtre vous allez pouvoir saisir la valeur que vous voulez donner à votre lien analogique. Comme pour le lien TOR, cette valeur ne sera appliqué que de façon fugitive et on va donc profiter d’être toujours en mode ralentis pour bien observer ce qu’il va se passer. Saisissez la valeur 1000 et cliquez sur le bouton OK.
Voila le résultat (toujours fugitif)
Alors la qu’est ce que nous avons de beau. L’entrée analogique envoie grâce au forçage la valeur 1000. Par l’intermédiaire du bloc GAIN qui nous convertis ceci en degré soit 38° (nous avions une sonde -10 +40°). Ainsi nous sommes passés à une température supérieure à notre consigne de « Arrêt à marche » (B10 qui vaut 21) Ceci à donc provoqué le changement d’état de la sortie du Trigger qui est passé à ON.
Une fois que le forçage fugitif est terminé, on revient à l’état initial.
37/44
Allez, vous pouvez essayer de faire la même opération sur le lien qu’il y a entre le bloc GAIN
B13 et le bloc Trigger B11. Jusqu’ici rien de très nouveau.
Par contre essayez donc de cliquer sur un des deux liens en sortie de B09 ou de B10… comment ca !! Ca ne marche pas… !!
Alors sachez que c’est tout à fait normal et cela me permet d’introduire un concept qu’il est important de comprendre si on souhaite utiliser la programmation de la face avant dans le futur, c’est le concept du paramètre sortie (non il ne manque pas mot).
Alors il faut bien faire la différence entre une sortie, et un paramètre sortie !!
Une sortie de bloc est calculée en fonction de sa (ses) entrée(s), alors qu’un paramètre sortie est un paramètre qu’on retrouve en sortie du bloc et qui est FIXE à l’exécution (seul vous, par l’atelier ou par la programmation de la face avant peuvent modifier sa valeur)!!
En fait, on en a déjà vu avant…souvenez vous des paramètres du timer, le retard marche et le retard arrêt… et bien ces valeurs aussi son des paramètres sortie !!
Si vous n’avez pas tout compris de suite, ce n’est pas grave pour le moment et vous avez le temps pour appréhender ce concept.
Pour finir cette partie du la vitesse de simulation, dans notre cas nous avons ralentis les choses pour bien observer comment ca marche, mais il est également possible d’accélérer la simulation jusqu'à 25 fois. Cela peut parfois s’avérer utile, libre a vous de tester ceci avec le timer que du télérupteur temporisé (pour ne pas à avoir une minute que celui-ci s’active par exemple)
Allez, on va voir maintenant la suite des actions que l’on peut faire en simulation.
Les forçages maintenus
Alors pour cette nouvelle action en simulation, nous allons revenir sur notre télérupteur temporisé. Cette fois ci cliquez sur le bloc B00 plutôt que sur le lien. Voila le résultat :
Alors en apparence c’est la même chose que tout à l’heure… mais en dehors du fait que ca ne disparaît pas avec le temps (l’état est maintenu) si vous êtes observateurs vous avez du remarquer autre chose….
Allez ! Je vous aide, comparez ces deux images :
38/44
(Forçage fugitif) (Forçage maintenu)
Eh oui la ruse est là…le couleur de fond du texte ON n’est pas la même !! Eh oui ce petit fond
(de) rosé ca change tout (hips). Bref, en dehors de toute plaisanterie ceci indique que la valeur est forcée et ne changera pas d’état sans action de votre part. (Petite note d‘humour… malgré cette association de forçage et rosé…il ne faut pas forcer sur le Rosé… re hips)
Si vous recliquez sur l’entrée B00, on repasse à OFF mais toujours à l’état forcé !! Pour relâcher un forçage, il faut faire un clique droit sur le lien correspondant et choisir l’action
« Relâcher » ou « Relâcher tout ». L’action relâcher va juste désactiver le forçage sur le lien ou vous avez cliqué, alors que relâcher tout va relâcher TOUT les forçages courant dans votre programme.
Les actions de forçages maintenu sur les liens analogique est aussi possible et voici un exemple. Pour le mettre en œuvre le principe est le même cliquez sur le bloc B08 et saisissez une valeur.
Pour en finir avec tout ca, faites un clique droit quelque part, et sélectionnez relâchez tout (il est important de le faire pour la partie suivante de ce tutoriel)
La simulation des entrées analogiques
Alors les forçages fugitifs et maintenu, c’est bien marrant, mais pour simuler rapidement des variations de température on doit quand même pouvoir faire mieux !! Eh oui !! Pour ca il y a
la simulation des entrées analogiques. Allez ! On reprend notre barre d’outils de simulation,
et on va utiliser un nouveau bouton :
Ce petit bouton anodin permet de faire apparaître une petite fenêtre bien pratique : la fenêtre de simulation des entrées analogiques :
39/44
Alors dans notre exemple, elle n’a qu’une seule ligne car nous avons utilisé qu’une seule des
6 entrées analogique de notre M3 (elle détecte automatiquement quelles entrées sont utilisée et créer les lignes correspondantes). Si nous avions utilisé les 6 entrées analogiques, elle ressemblerait à cela :
Comment ca marche ? C’est très simple, déplacez les curseurs afin de faire varier la valeur de l’entrée analogique correspondante !!
Avec ca, il devient très simple de régler les valeurs simulées.
Petite astuce clavier : Cliquez sur le curseur et ensuite utilisez les flèches droites/gauche ou
haut/bas du pavé de directionnel du clavier pour changer finement la valeur. Vous pouvez rester appuyé sur une touche afin que la valeur augmente ou diminue en continu.
Alors je vous ai parlé bien plus tôt d’un problème que nous allons avoir avec le paramétrage de nos blocs constantes, souvenez vous :
« Je vais être directe sur ce point, ce paramétrage va poser un petit problème mais le mettre en évidence va permettre de vous faire comprendre que lorsqu’on programme une régulation avec des entrées analogiques, il faut prendre en considération les légères fluctuations
électriques qui peuvent aboutir à des phénomènes d’oscillation d’état dans votre programme. »
En utilisant l’astuce clavier que je viens de vous citer, approcher la valeur d’entrée de sorte que vous êtes à la limite entre 20° et 21° en sortie du bloc gain (valeur de l’entrée analogique
= 634). Toujours avec le clavier, faite osciller la valeur de l’entrée analogique entre 634 et
635. On observe que la sortie du Trigger oscille entre les états ON et OFF !!
40/44

Lien public mis à jour
Le lien public vers votre chat a été mis à jour.
Caractéristiques clés
- Programmation facile avec le langage FBD (Function Bloc Diagram)
- Simulation intégrée pour tester le programme avant le chargement
- Possibilité d'ajouter des extensions pour augmenter les fonctionnalités
- Fonctions logiques, temporisateurs et entrées/sorties TOR et ANA
- Interface de supervision pour le suivi du programme
- Paramétrage des blocs fonction via une interface simple