Cause d’une reprise à chaud

Une reprise à chaud peut être provoquée par un rétablissement du courant sans perte du contexte.

Illustration

Le schéma ci-après décrit le déroulement d’une reprise à chaud.

Déroulement

Le tableau ci-après décrit les phases de reprise de l’exécution du programme sur reprise à chaud.

Etape

Description

1

L'exécution du programme ne reprend pas à partir de l’élément où a eu lieu la coupure de courant. Le programme restant est ignoré pendant le démarrage à chaud. Chaque tâche redémarre depuis le début.

2

A la fin du cycle de reprise, le système effectue :

  • la restitution de la valeur variable de l'application,

  • la définition du bit %S1 sur 1,

  • l'initialisation des files de messages et d'événements,

  • l'envoi des paramètres de configuration à tous les modules d'entrées/sorties TOR et métiers,

  • la désactivation de la tâche rapide et des traitements événementiels (jusqu'à la fin du premier cycle de la tâche maître).

3

Le système effectue un cycle de reprise dans lequel il :

  • relance la tâche maître depuis le début du cycle,

  • remet à l'état 0 le bit %S1 à la fin de ce premier cycle de la tâche maître,

  • réactive la tâche rapide et les traitements événementiels à la fin de ce premier cycle de la tâche maître.

Traitement par programme de la reprise à chaud

En cas d'une reprise à chaud, si vous souhaitez un traitement particulier de l'application, vous devez écrire le programme correspondant pour vérifier que %S1 est défini sur 1 en début de programme de la tâche maître.

Fonctions spécifiques du démarrage à chaud SFC

Le démarrage à chaud sur les automates M340 n'est pas réellement considéré comme un démarrage à chaud par l'UC. L'interpréteur SFC ne dépend pas des tâches.

SFC publie une zone de mémoire « ws_data » sur le système d'exploitation qui contient les données spécifiques à la section SFC qui doivent être enregistrées en cas de panne. Au début du traitement du diagramme, les étapes actives sont enregistrées dans « ws_data » et le traitement est marqué comme étant dans une « section critique ». Une fois le traitement terminé, la section n'est plus marquée comme critique.

Si une coupure de courant se produit dans cette section critique, elle peut être décelée si cet état est actif au début (puisque le cycle est abandonné et que la tâche MAST est recommencée au début). Dans ce cas, l'espace de travail peut être incohérent et est restauré à partir des données sauvegardées.

D'autres informations provenant de SFCSTEP_STATE dans la zone des données localisées sont utilisées pour régénérer l'état de la machine.

Lorsqu'une panne de courant se produit :

  • au cours du premier cycle %S1 =1, la tâche Mast est exécutée mais pas les tâches Fast et Event.

Lors du rétablissement du courant :

  • le diagramme est effacé, l'enregistrement du diagnostic est annulé, les actions définies sont conservées,

  • les étapes sont définies à partir de la zone sauvegardée,

  • les temps d'étapes sont définis à partir de SFCSTEP_STATE,

  • le temps écoulé est restauré pour les actions minutées.

NOTE : L'interpréteur SFC est indépendant, si la transition est valide, le diagramme SFC évolue tant que %S1 est vrai.

Changements de sortie

Dès la détection de la coupure de courant, les sorties sont mises en position de repli :

  • soit elles prennent la valeur de repli,

  • soit elles conservent leur valeur courante,

suivant le choix de la configuration.

Au rétablissement du courant, les sorties restent en mode sécurité (état égal à 0) jusqu'à leur mise à jour par une tâche d'exécution.