En la redundancia por software de S7-300, el fallo de una periferia ET200M o de un esclavo DP no provoca la conmutación de la CPU máster; el sistema redirige los datos a través de la CPU de reserva mediante el bus activo, manteniendo la CPU original como máster de la lógica.
Pourquoi le système S7-300 Software Redundancy ne commute-t-il pas de CPU lors d'une panne DP ?
Catégorie : SIMATIC S7-300 | Technologie : Siemens STEP 7, S7-300 Software Redundancy, FB101 (SWR_ZYK), IM 153-2, OB86, PROFIBUS DP | Type d'article : Guide de dépannage | Code : C130
Vues associées : Configuring S7-300 Software Redundancy Sync Links | Troubleshooting ET200M Redundant IM Modules | CFC and STEP 7 Error OB Block Architecture | Preventing Flashing Outputs in Redundant PLCs
Pourquoi la CPU principale reste-t-elle Maître (Master) malgré la coupure d'alimentation ou du câble PROFIBUS d'une station ET200M, et comment stabiliser les sorties logiques ?
En la redundancia por software de S7-300, el fallo de una periferia ET200M o de un esclavo DP no provoca la conmutación de la CPU máster; el sistema redirige los datos a través de la CPU de reserva mediante el bus activo, manteniendo la CPU original como máster de la lógica.
Table des matières
- Premières vérifications avant de modifier la logique de redondance
- Quand ce comportement de non-commutation se manifeste-t-il
- Contexte technique : Architecture SWR face aux pannes de périphérie
- Diagnostic et comportement des entrées/sorties en cas de panne
- Procédure de configuration : Forcer une commutation ou stabiliser les signaux
- Erreurs de programmation et de diagnostic fréquentes
- Liste de contrôle pour la validation de la redondance
- Foire aux questions (FAQ)
Premières vérifications avant de modifier la logique de redondance
- Vérifier les paramètres du bloc FC 100 (SWR_START) : Confirmez que les plages d'adresses périphériques (
PIO_FIRST,PIO_LAST) et les adresses des esclaves (SLAVE_NO,SLAVE_LEN,SLAVE_DISTANCE) configurées dans la fonction d'initialisation correspondent exactement à l'implantation matérielle du HW Config. - Confirmer la présence de l'OB86 : Assurez-vous que l'OB86 (Organisation Block pour défaillance de rack/périphérie) est bien chargé dans les deux automates. Ne supprimez jamais cet OB pour tenter de forcer un basculement.
- Contrôler le montage matériel de l'ET200M : Vérifiez que les deux modules d'interface
IM 153-2 High Feature(ex.6ES7 153-2BA02-0XB0) sont clipsés sur un profilé support équipé de modules de bus actifs pour redondance (Active Backplane Bus Modules).
Quand ce comportement de non-commutation se manifeste-t-il
Ce phénomène se produit sur les architectures haute disponibilité économiques basées sur la bibliothèque logicielle SIMATIC S7 Software Redundancy (SWR) associant deux CPU autonomes (par exemple deux CPU 315-2DP) à des châssis de périphérie décentralisée ET200M.
Le basculement automatique de l'automate A (Maître) vers l'automate B (Réserve) fonctionne parfaitement lorsque la CPU A est basculée manuellement en mode STOP ou qu'elle est mise hors tension. En revanche, lorsqu'un ingénieur simule une panne de réseau sur le châssis de l'ET200M relié à la CPU A (en coupant l'alimentation de la tête d'interface IM-A ou en débranchant son cordon PROFIBUS), la LED de basculement ACT (Active) de l'ET200M commute correctement sur le module partenaire IM-B, mais la CPU A reste indéfiniment Maître du système. L'automate continue de faire tourner son programme en mode dégradé bien que ses propres voies de communication directes avec la périphérie soient coupées.
Contexte technique : Architecture SWR face aux pannes de périphérie
Pour résoudre ce problème, il est indispensable de comprendre la différence fondamentale de philosophie entre la redondance logicielle (S7-300 Software Redundancy) et la redondance matérielle stricte des systèmes haut de gamme (S7-400H).
Dans un système S7-300 SWR, le package logiciel n'est pas conçu pour provoquer un basculement de la CPU maître lors de la perte d'un esclavo DP ou d'un module IM. Le système d'exploitation considère que tant que la CPU maître est en mode RUN, elle doit conserver le contrôle du procédé.
Grâce à l'utilisation du bus de fond de panier actif (Active Backplane Connector), les deux têtes d'interface IM 153-2 de l'ET200M parlent en réalité au même groupe de cartes d'entrées/sorties logiques ou analgiques. Lorsque le câble PROFIBUS de la CPU A se coupe, la logique interne SWR tente de rerouter les données : la CPU A interroge la CPU B via la liaison de synchronisation (généralement un lien MPI ou PROFIBUS dédié géré par le bloc FB 101 / SWR_ZYK), et la CPU B lui renvoie l'état des entrées lues sur le module sain IM-B.
Cependant, ce mécanisme de reroutage présente une contrainte majeure d'exécution : la CPU maître lit des valeurs à zéro (0) pour les périphériques directement inaccessibles pendant l'intervalle de détection de panne, tandis que la CPU de réserve (Standby) lit les bonnes valeurs réelles. Si le programme de l'utilisateur n'isole pas les zones d'exécution, la CPU maître va forcer l'écriture de valeurs à zéro sur le bus de synchronisation, tandis que la CPU de réserve tente de maintenir l'état vrai. Ce conflit de scrutation provoque un phénomène d'interférence logicielle qui fait clignoter les sorties physiques (Digital Outputs clignotant rapidement entre 0 et 1).
Diagnostic et comportement des entrées/sorties en cas de panne
Afin d'analyser la réaction des variables lors de la déconnexion de l'IM-A, observez le comportement suivant :
- Diagnostic de la table des variables (VAT) : Si vous observez la table des variables directement en vous connectant en ligne sur la CPU A (Maître), les adresses d'entrées périphériques (ex.
PEW) passent à0car le canal physique local est rompu. Sur la CPU B, ces mêmes variables affichent leur valeur réelle de terrain. - Analyse de l'OB86 : Le système d'exploitation de la CPU appelle automatiquement l'OB86 dès la perte du nœud PROFIBUS. À l'intérieur, le bloc de diagnostic
CALL SWR_DIAG(FC 102) intercepte l'événement pour mettre à jour les bits internes du mot de statut SWR, mais il ne déclenchera jamais de lui-même un signal de conmutación de CPU. - Effet de la suppression de l'OB86 : Si un utilisateur supprime l'OB86 du dossier des blocs, l'automate maître bascule instantanément en mode
STOPdès que le câble PROFIBUS est débranché, car le processeur ne trouve pas la routine de gestion des erreurs de rack. La CPU B prend alors le relais en tant que nouveau Maître. C'est un comportement fonctionnel, mais dangereux : la CPU maître subit un crash matériel provoqué (STOP) pour une simple panne de bus de terrain.
Procédure de configuration : Forcer une commutation ou stabiliser les signaux
Note de production : Toute modification de la configuration de FC 100 ou la régénération des blocs de données internes de redondance nécessite un redémarrage complet des deux automates en mode STOP. Planifiez ces tests lors d'un arrêt technique complet de l'installation.
Option 1 — Isoler le programme utilisateur pour stabiliser les sorties (Recommandé)
Pour éviter le clignotement destructeur des sorties et s'assurer que l'automate de réserve ne soit pas écrasé par les zéros de l'automate maître en cas de panne de l'IM :
- Ouvrez votre bloc d'organisation cyclique de redondance (généralement configuré dans l'interruption cyclique OB35).
- Utilisez strictement le bit d'état de détection de rôle maître contenu dans l'instance de synchronisation (par exemple, le bit
DB5.DBX 9.1pour l'instance duFB 101 / SWR_ZYK). - Encadrez votre logique utilisateur par un saut conditionnel de façon à ce que seule la CPU qui possède le rôle de maître effectif exécute le code d'automatisme et écrive dans la mémoire des sorties :
Plaintext
// LOGIQUE DE SAUT DANS L'OB35
AN DB5.DBX 9.1 // Vérifie si cette CPU est le MESTRE (1 = Master, 0 = Standby)
JC RESERVE // Si 0 (Standby), saute le programme pour ne rien écraser
CALL "Program_User" // Appel de votre logique de vannes, moteurs et interverrouillages
RESERVE: NOP 0
Option 2 — Programmer une commutation manuelle forcée de la CPU via l'OB86
Si la politique d'exploitation de la plante exige impérativement que la CPU maître cède son rôle de leader dès qu'elle perd son lien direct avec l'ET200M (plutôt que de fonctionner via le reroutage de données de la liaison de secours) :
- Ouvrez le bloc OB86 dans le catalogue de votre projet STEP 7.
- Laissez l'appel obligatoire du bloc de diagnostic SWR en haut du segment :
Plaintext
CALL "SWR_DIAG"
DB_WORK :=1
OB86_EV_CLASS:=#OB86_EV_CLASS
OB86_FLT_ID :=#OB86_FLT_ID
RETURN_VAL :=MW102
- Insérez un nouveau segment de code sous l'appel de diagnostic. Utilisez le bit de demande de synchronisation et de changement de rôle contenu dans le mot de contrôle de la redondance (généralement le bit de requête de basculement
DB10.DBX 0.0ou équivalent selon votre mappage de DB de travail) : - Écrivez une logique d'interception : Si l'OB86 détecte un événement de disparition de nœud esclave (
#OB86_EV_CLASS = B#16#39) et que l'ID de panne correspond à l'adresse PROFIBUS de votre IM locale, forcez l'activation du bit de demande de changement de maître (SETsur le bitSYNC_REQ). - Lors du cycle suivant, le bloc de synchronisation
SWR_ZYKverra la demande de modification d'état, transférera les dernières données saines et passera proprement la CPU A en mode Standby et la CPU B en mode Master, sans provoquer de crash ou de modeSTOPsur l'automate.
Erreurs de programmation et de diagnostic fréquentes
- Supprimer l'OB86 pour forcer la commutation : Supprimer les blocs d'erreur système (
OB86,OB82,OB122) pour obliger la CPU à s'arrêter. Cela résout le basculement mais génère un stress matériel inutile et empêche la collecte des diagnostics dans le tampon d'historique (Diagnostic Buffer). - Omettre de régénérer le DB d'instance après modification du FC 100 : Modifier les adresses d'entrées/sorties ou les numéros de stations PROFIBUS dans l'appel du
FC 100sans effacer le DB d'instance en ligne (DB5). Le système conservera les anciennes longueurs de table de données en mémoire flash, ce qui provoquera des erreurs de type Area length error when reading. - Utiliser des temporisations de type S5T (S5 Timers) dans la zone redondante : Intégrer des compteurs ou des temporisations S5 classiques dans les blocs de code soumis à la synchronisation de données. Ces variables matérielles ne peuvent pas être transférées correctement d'une CPU à l'autre par le logiciel SWR ; utilisez exclusivement les temporisations au standard CEI (
SFB4 / TON,SFB5 / TOF).
Liste de contrôle pour la validation de la redondance
L'OB86 est-il présent et chargé dans la mémoire des deux processeurs de l'usine ? ☐ Oui ☐ No ☐ Nécessite un examen
Le programme utilisateur de régulation et de commande est-il ignoré par un saut logique (JC) lorsque la CPU est en mode Standby ? ☐ Oui ☐ No ☐ Nécessite un examen
Le dossier en ligne a-t-il été purgé de l'ancien DB d'instance de synchronisation après modification des paramètres du FC 100 ? ☐ Oui ☐ No ☐ Nécessite un examen
La LED d'état ACT sur les modules IM 153-2 commute-t-elle de manière stable sans provoquer de clignotement sur les bobines de sorties physiques ? ☐ Oui ☐ No ☐ Nécessite un examen
Foire aux questions (FAQ)
Pourquoi les concepteurs de Siemens ont-ils programmé la redondance par logiciel pour qu'elle ne commute pas de CPU lors d'une coupure PROFIBUS ? La redondance logicielle S7-300 a été développée comme une solution économique permettant d'utiliser des CPU standard non redondantes de la gamme SIMATIC. L'objectif principal est de maintenir le procédé en marche au coût le plus bas possible. Si le câble PROFIBUS de la CPU maître est sectionné, mais que la CPU est toujours saine et capable de calculer ses boucles de régulation, le système utilise la liaison réseau intermédiaire (MPI ou PROFIBUS inter-CPU) pour lire les données via l'autre automate. Le basculement complet de la CPU est une opération lourde qui prend plusieurs secondes (1 à 3 secondes de gel de données) ; le système évite donc cette interruption tant que la CPU maîtresse est capable de tourner.
Si je souhaite un basculement instantané à chaud (< 100 ms) de l'automate dès qu'un câble réseau ou un module d'entrée tombe en panne, quelle architecture dois-je déployer ? Si votre procédé industriel ne tolère aucun gel de données de quelques secondes et exige une conmutación automatique immédiate sur n'importe quel défaut réseau, la solution de redondance logicielle S7-300 n'est pas adaptée. Vous devez migrer votre architecture vers un système de redondance matérielle native SIMATIC S7-400H (ou les solutions de redondance R/H de la gamme S7-1500). Ces plateformes intègrent des processeurs synchronisés par fibre optique au niveau du microcode de la CPU, gèrent nativement les OB de commutation automatique et basculent de manière transparente sans aucune modification de code ou écriture de scripts de synchronisation manuels.
Articules associés ou prochaine étapes
- Configuring Word-Level Communications Links for S7-300 PLC Clusters — Paramétrage des liaisons de couplage inter-automates.
- Understanding Fault Tolerant Architecture and Hardware Synchronization Interrupts — Les bases des systèmes de sécurité S7-400H.
Étiquettes associées
Contact / Support
Besoin d'un support professionnel ou d'un dépannage en automatisation industrielle ?
Appelez, envoyez un SMS ou contactez-nous.
Classification technique
Category: SIMATIC S7-300
Technology: Siemens STEP 7, S7-300 Software Redundancy, FB101 (SWR_ZYK), IM 153-2, OB86, PROFIBUS DP
Type d'objet : Blocs d'organisation système (OB) / Routine de synchronisation logicielle
Cas d'utilisation : Stabilisation du comportement des entrées/sorties et gestion des basculements lors des pannes de réseau PROFIBUS décentralisé
Type d'article : Guide de dépannage Intention de recherche principale : S7-300 Software Redundancy didn't switchover when DP fail
Phrases de recherche associées : - S7-300 software redundancy switchover on IM153 failure