Testez votre logique d'automatisation sans automate physique. AutomationView inclut un moteur de simulation par cycle de balayage intégré à l'éditeur qui exécute vos programmes de Séquence et affiche un retour en direct.
La fonctionnalité de simulation est également appelée émulation par endroits. Les boutons à l'écran et les titres de commandes affichent "Simulation", tandis que les paramètres, le groupe de configuration et les identifiants internes utilisent "emulation". Ils désignent la même fonctionnalité.
Le moteur de simulation s'exécute entièrement à l'intérieur d'AutomationView. C'est un simulateur de cycle de balayage pur qui s'exécute entièrement en logiciel, sans runtime externe ni automate réel. Il exécute vos programmes de Séquence dans un cycle de balayage continu, évalue les transitions, active et désactive les étapes, traite les actions temporisées et fournit un retour visuel en direct dans l'Éditeur de Séquence.
Il existe plusieurs façons de démarrer l'exécution de votre programme. Choisissez la méthode qui convient le mieux à votre flux de travail.
Appuyez sur F5 pour démarrer la simulation immédiatement. Aucune étape supplémentaire n'est requise.
Cliquez sur le bouton Lecture (Play) dans la barre de titre de la vue Explorateur de Séquence.
Pour la liste complète des commandes de simulation, consultez la référence Commandes de Simulation.
La simulation est contrôlée par quatre commandes : Démarrer la Simulation, Arrêter la Simulation, Pas de Simulation et Réinitialiser la Simulation. Elles sont disponibles depuis la Palette de Commandes, les boutons de titre de la vue Explorateur de Séquence et les raccourcis clavier suivants.
| Commande | Raccourci | Description |
|---|---|---|
| Démarrer la Simulation | F5 | Démarre la simulation en mode continu |
| Arrêter la Simulation | Shift+F5 | Arrête la simulation et réinitialise l'état de toutes les étapes et variables |
| Pas de Simulation | F10 | Exécute exactement un cycle de balayage |
| Réinitialiser la Simulation | Ctrl+Shift+F5 (mac Cmd+Shift+F5) | Réinitialise aux conditions initiales et continue l'exécution |
Pas de Simulation (F10) exécute un seul cycle de balayage afin que vous puissiez avancer un cycle à la fois et observer exactement comment les transitions se déclenchent et que les étapes changent. Si la simulation n'est pas déjà en cours d'exécution, le premier Pas la démarre dans un mode mono-cycle en pause.
Les boutons de titre de la vue affichés dépendent de l'état d'exécution de la simulation.
Chaque cycle suit le modèle d'exécution automate standard, de sorte que le comportement simulé correspond à celui d'un contrôleur réel. Comprendre ces phases vous aide à déboguer les problèmes de synchronisation et d'ordonnancement.
Les écritures de variables sont regroupées et validées à la fin de chaque cycle, reproduisant le comportement réel d'un automate. Le temps simulé avance du temps de cycle, et non du temps réel d'horloge.
Les instructions de temporisateur et de compteur (TON, TOF, TP, RTO, CTU, CTD, CTUR, CTDR) s'exécutent avec leur comportement complet uniquement lorsqu'une instance de runtime est enregistrée pour elles - généralement fournie par un plugin. Sans instance enregistrée, une telle instruction se dégrade en une simple mise à un / mise à zéro booléenne et sa logique de temporisateur/compteur ne s'exécute pas.
Ces améliorations ont été livrées dans la série de versions v0.6.x. Elles corrigent des cas limites qui étaient visibles dans les versions antérieures lors du test de séquences avec des temporisateurs, des compteurs et de la logique de branchement.
Propagation de jeton conforme à l'IEC. L'émulateur suit désormais précisément le modèle de jeton SFC de l'IEC 61131-3. Un jeton avance à travers les étapes et les transitions dans l'ordre défini par la norme, de sorte que les séquences qui dépendent d'un ordre d'activation exact se comportent comme elles le feraient sur un contrôleur réel.
Les valeurs de présélection des temporisateurs et compteurs sont préservées à l'activation de l'étape. Si vous définissez manuellement une présélection de temporisateur (PT) ou une présélection de compteur (PV) avant ou pendant une exécution, cette valeur est conservée lorsque l'étape s'active. Les versions antérieures rejetaient les présélections définies manuellement et les remplaçaient par la valeur par défaut compilée lors de l'activation. Votre surcharge survit désormais à l'activation de l'étape et prend effet immédiatement.
La réinitialisation restaure les variables à leurs valeurs initiales. Lorsque vous appuyez sur Réinitialiser la Simulation (Ctrl+Shift+F5), chaque variable revient à la valeur initiale qu'elle avait lorsque la simulation a démarré pour la première fois, et non à zéro. Cela vous donne une base de référence cohérente et signifie que vous pouvez réexécuter un scénario de test sans réinitialiser manuellement les variables une par une.
Forcer une étape active ou inactive. Pendant que la simulation tourne, cliquez sur une étape dans le diagramme de séquence pour basculer son état entre actif et inactif. Utilisez-le pour sauter en avant vers une branche spécifique, sortir d'un état bloqué pendant le débogage, ou tester des transitions en aval sans devoir piloter la condition amont à TRUE. Voir Forcer l'État Actif d'une Étape ci-dessous pour tous les détails.
Ajustez le temps de cycle de balayage pour contrôler la vitesse d'exécution de la simulation. Réglez-le via le paramètre automationview.emulation.cycleTimeMs, décrit dans la référence Paramètres de Simulation. La valeur est appliquée en direct, donc la modifier pendant l'exécution prend effet au cycle suivant.
| Temps de cycle | Cycles/sec | Cas d'Utilisation |
|---|---|---|
| 50 ms | 20 | Validation rapide |
| 100 ms (défaut) | 10 | Simulation normale |
| 500 ms | 2 | Observation lente |
| 1000 ms | 1 | Débogage pas à pas |
Pendant que la simulation s'exécute, vous pouvez définir n'importe quelle variable à une valeur spécifique pour tester différents scénarios. Les modifications prennent effet lors du prochain cycle de balayage.
Ceci n'est pas un forçage. Définir une valeur de variable ne la verrouille pas. Si une instruction telle que OTE, SET, ou toute autre instruction de sortie écrit dans cette variable pendant le cycle de balayage, la logique du programme écrasera la valeur que vous avez définie. Pour maintenir de manière fiable une valeur, vous devez vous assurer qu'aucune instruction dans le programme n'écrit sur cette variable.
Cliquez sur une variable dans la barre latérale des Variables pour définir sa valeur directement.
Cliquez directement sur une transition dans le diagramme de séquence pour définir la variable associée :
Ceci est utile pour simuler des entrées de capteurs, des pressions de boutons, ou pour tester des cas limites sans matériel physique.
Pendant que la simulation tourne, cliquez (ou faites un clic droit) directement sur une étape du diagramme de séquence pour basculer son état actif :
Le changement prend effet immédiatement au prochain cycle de balayage. Utilisez-le pour sauter en avant dans une séquence, sortir d'un état bloqué pendant le débogage, ou tester le comportement des transitions en aval sans devoir piloter la condition amont à TRUE.
Forcer une étape active n'exécute pas les actions de transition de la transition qui la précède (par exemple les incréments de compteur). Seules les actions de l'étape elle-même s'exécutent pendant qu'elle est forcée active.
Pour les séquences dynamiques, le basculement cible l'instance actuellement affichée dans le sélecteur d'instance de l'éditeur.
L'Éditeur de Séquence fournit des retours en direct pendant une exécution :
| Élément | État Actif |
|---|---|
| Étapes | Mises en évidence avec une couleur distincte |
| Transitions | Marquées lorsque la condition est VRAIE |
| Actions Temporisées | Barre de progression avec compte à rebours |
| Transitions Franchies | Brève animation de clignotement |
Une liste de variables en direct affiche les valeurs actuelles (y compris les enfants des temporisateurs et compteurs tels que IN, Q et ET), ainsi que le numéro de cycle actuel et le temps simulé.