| name | virtual-commissioning |
| description | Simuler des automates et configurer la mise en service. |
| version | 1.0.0 |
| author | EVA |
| license | Privée EVA St-Étienne |
| platforms | ["linux","macos","windows"] |
| metadata | {"tags":["virtual-commissioning","simulation","plc-emulation","digital-twins","industrial-automation"],"related_skills":["digital-twins","systematic-debugging"]} |
Mise en Service Virtuelle (Virtual Commissioning)
Vue d'ensemble
La Mise en Service Virtuelle (Virtual Commissioning) consiste à connecter le véritable programme d'un automate (exécuté sur un automate physique ou émulé) à un modèle tridimensionnel et physique de la machine (jumeau numérique). Cette simulation reproduit le comportement dynamique de la machine (déplacement mécanique, capteurs, gravité, flux de produits).
Avantages de la mise en service virtuelle :
- Réduction drastique des temps de chantier : Les tests de logique et de trajectoires sont validés à 95% en bureau d'études.
- Sécurité des équipements et du personnel : Détection des risques de collision machine ou de blocages sans risque de détruire du matériel réel.
- Validation précoce des cadences (TRS) : Analyse des goulots d'étranglement cinématiques avant la fabrication de la machine.
Les outils standards de l'industrie :
- Émulation de l'automate : PLCSIM Advanced (Siemens), TwinCAT Real-Time Virtual (Beckhoff), Logix Emulate (Rockwell).
- Simulation comportementale et de flux : SIMIT (Siemens), Emulate3D (Rockwell), Process Simulate (Siemens Tecnomatix).
Quand l'utiliser
À utiliser lorsque l'utilisateur demande :
- De configurer une liaison de données (ex: OPC UA, PLCSIM API, Shared Memory) entre un émulateur de PLC et un outil de simulation.
- D'écrire des scripts de simulation comportementale (ex: modéliser un capteur de proximité qui s'active lorsqu'un modèle 3D passe devant).
- De concevoir la logique automate de simulation pour bypasser les sécurités physiques de terrain lors des tests.
- De structurer des scénarios de test d'injection de pannes (ex: simuler un disjoncteur moteur qui saute pour vérifier la réaction du programme).
Ne pas utiliser pour :
- La simple modélisation CAO de pièces en 3D sans notion de comportement dynamique ou de simulation physique.
1. Architecture de Communication pour la Simulation
La mise en service virtuelle nécessite un canal de communication temps réel bidirectionnel rapide entre l'automate de contrôle et le modèle de simulation.
[ LOGICIEL AUTOMATE (Studio 5000 / TIA Portal) ]
│ Chargement du programme
▼
[ ÉMULATEUR DE PLC (PLCSIM Advanced / Logix Emulate) ]
▲
│ Protocole API locale (ou OPC UA)
▼
[ LOGICIEL DE SIMULATION 3D (Emulate3D / SIMIT) ]
(Lit la sortie physique PLC ➔ Anime le modèle 3D)
(Modèle 3D touche un capteur virtuel ➔ Écrit l'entrée physique PLC)
2. Exemple de Script de Simulation d'un Actionneur (Vérin)
Dans l'outil de simulation (ici représenté sous forme de logique de script Python générique utilisable dans des outils comme Emulate3D), il faut simuler le temps physique de déplacement des équipements.
class CylinderSimulation:
def __init__(self, stroke_time_seconds):
self.stroke_time = stroke_time_seconds
self.current_position = 0.0
def update(self, cmd_sortir, cmd_rentrer, delta_time_seconds):
"""
Appelé à chaque pas de calcul de la simulation (ex: toutes les 10 ms).
"""
speed = 1.0 / self.stroke_time
if cmd_sortir and not cmd_rentrer:
self.current_position += speed * delta_time_seconds
if self.current_position > 1.0:
self.current_position = 1.0
elif cmd_rentrer and not cmd_sortir:
self.current_position -= speed * delta_time_seconds
if self.current_position < 0.0:
self.current_position = 0.0
sensor_rentre = .current_position <=
sensor_sorti = .current_position >=
sensor_fault = cmd_sortir cmd_rentrer
{
: sensor_rentre,
: sensor_sorti,
: sensor_fault
}
Pièges Courants (Common Pitfalls) (Pièges Courants)
- Désynchronisation temporelle (Time Scaling) :
- Erreur : Exécuter la simulation 3D en temps réel non synchronisé alors que l'automate émulé s'exécute en mode "temps accéléré" ou subit des dérives de calcul de tâche de la machine Windows. Les temporisations automates expireront trop tôt.
- Correction : Utiliser une synchronisation de pas d'horloge (Clock Sync) entre le simulateur et l'émulateur d'automate (ex: PLCSIM Advanced gère le mode "Synchrone" où il attend l'autorisation de pas de calcul du jumeau numérique).
- Ignorer le rebond et l'inertie physique :
- Erreur : Écrire un simulateur qui renvoie une valeur d'entrée à
TRUE instantanément à l'écriture de la commande. Les filtres d'entrées ou les détections de front de l'automate ne réagiront pas comme avec du matériel physique.
- Correction : Intégrer des temps de réponse physiques réalistes (ex: 200 ms pour l'ouverture d'une vanne pneumatique) et des bruits ou rebonds de capteurs si nécessaire.
Liste de vérification (Checklist)