5.3.1 Séquences dans l’API pour gérer le procédé
La liste des séquences présentes dans l’automate et liées à la gestion de procédé sont :
- Sauvegarde de programme ;
- Programme en cours ;
- Récupération de programme ;
- Demande de Sauvegarde de Tous les Programmes.
5.3.2 Séquence : Programme en cours
Dans une séquence maître Procédé, la séquence gère les demandes de procédé et lance les séquences :
- Conditions initiales : Permet de contrôler que la machine est prête à être lancée ;
- Process : Exécute le programme en mode recettage c’est-à-dire un grafcet avec les types d’opération en parallèle ;
- Arrêt machine : Permet de mettre en sécurité la machine en cas de fin de programme ou d’annulation.
5.3.3 Séquence de sauvegarde de programme
La liste des fonctions :
- Sauvegarde ;
- Vidage.
Le fonctionnement :
Lorsque l’API reçoit une demande de sauvegarde par Lina, il va stocker le programme à sauvegarder dans un DB de stockage en fonction du code communiqué.
Une demande de sauvegarde s’enclenche lors :
- D’une demande de lancement de programme ;
- D’une modification d’un programme dans les menus Lina.
Une fois la demande traitée, l’automate renvoie une réponse de sauvegarde effectuée. Lina demande à l’automate de vidanger le DB de tampon.
L’automate réinitialise alors la zone tampon puis informe ensuite LINA qu’il a terminé.
Les variables utilisées :
Figure 67 : ordre lors de sauver prog
Le grafcet SEQ_SAUV_PROG :
Figure 68 : G7 SEQ_SAUV_PROG
5.3.4 Séquence de gestion programme en cours
La liste des fonctions :
- Lancement ;
- Départ différé ;
- Modification en cours ;
- Demande annulation ;
- Gestion des états ;
- Saut d’étape ;
- Reprise.
Le fonctionnement :
Demande de lancement en départ direct ou différé :
Lorsque l’utilisateur lance le départ d’un programme à partir de Lina, voici ce qui est transmis à l’automate :
- Le code programme sélection ;
- Le numéro d’étape au démarrage ;
- La demande de lancement ;
- La confirmation de demande de lancement.
Une fois que l’automate reçoit l’information qu’une demande de lancement a été effectuée et validée, le programme va comparer le code du programme sélectionné dans le but de l’identifier. Cela lui permet ensuite de connaître l’identité du programme et de savoir dans quel DB de stockage elle est stockée.
L’automate doit alors affecter le programme contenu dans le DB de stockage dans le DB de programme en cours et réinitialiser les données d’échanges.
Il existe deux types de départ, le départ direct et le départ différé. Si l’opérateur choisit un départ différé, le mois, le jour, l’heure et la minute de départ seront communiqués à l’automate qui les stocke dans le DB de paramètre du programme en cours. Il n’y a plus qu’à attendre que l’heure du départ soit similaire à l’heure de l’automate pour lancer le programme.
Il est important de noter qu’à chaque demande de lancement d’un programme, Lina envoie une demande de sauvegarde à l’automate.
⚠ Attention : État de l’équipement doit être à 0 pour que ce mode fonctionne !
Modifications en cours :
À chaque modification du programme en cours par l’utilisateur, LINA envoie le programme dans la zone tampon puis informe l’automate d’une modification en activant la demande de modification.
La CPU traite la demande en copiant le programme du DB tampon dans le DB de programme en cours puis informe Lina qu’il a terminé en activant la réponse de modification.
Une demande de vidange est automatiquement envoyée et traitée pour vider le DB tampon.
⚠ Attention : Il est important de noter que lors d’une modification en cours sur un programme en attente de départ dans le cas d’un départ différé, une mise à jour des données de départ (heure, jour, mois, minute) est à faire dans le DB de paramètre !
Une modification de programme en cours n’est JAMAIS sauvegardée dans les DB de stockage de programme.
Annulation d’un programme en cours :
Si l’utilisateur fait une demande d’annulation d’un programme en cours ou en attente de départ, Lina envoie une demande d’arrêt à l’automate qui doit la réinitialiser.
Il doit ensuite vider le DB de programme en cours.
Gestion des états du programme en cours :
Lorsqu’un programme est en cours, l’automate doit remonter à Lina son évolution par l’intermédiaire des données d’état : équipement et étapes.
L’état équipement est automatiquement mis à 1 ce qui bloque toutes nouvelles demandes de lancement car le process est considéré comme occupé. L’évolution des étapes se fait tout au long du programme en cours. La séquence de gestion de programme en cours doit constamment aller demander à la séquence process son état afin de suivre et de communiquer en temps réel l’évolution du programme lancé.
Une fois le programme terminé, les deux variables sont remises à 0.
Saut d’étape :
Si une demande de saut d’étape est émise par l’utilisateur, Lina doit alors communiquer à l’automate l’étape dans laquelle aller. Une confirmation de la demande est mise à 1 par le logiciel et l’automate après avoir traité la demande doit alors remettre à 0 les données d’échanges liées à la demande.
Reprise :
Si une demande de reprise est émise par l’utilisateur, Lina doit alors communiquer à l’automate l’étape dans laquelle redémarrer le programme. Une fois que l’automate reçoit cette information, il répond à Lina qu’il a bien reçu la demande. Une demande de vidage du DB tampon est alors effectuée par Lina (À voir dans le futur).
Les variables utilisées :
Figure 70 : Sauver, Lancer, Démarrer, Etats, Saut
Les données sont réparties ainsi :
- La modification de programme ;
- Reprise du programme ;
- Lancement / annulation d’un programme en cours ;
- Démarrage/départ différé ;
- Suivi des états ;
- Saut d’étape.
Le grafcet SEQ_PROG_EN_COURS :
Figure 71 : G7 SEQ_PROG_EN_COURS étape 0
Figure 72 : G7 SEQ_PROG_EN_COURS étape 500
Figure 73 : G7 SEQ_PROG_EN_COURS étape 1130
Figure 74 : G7 SEQ_PROG_EN_COURS étape 2030
Figure 75 : G7 SEQ_PROG_EN_COURS étape 5040
Figure 76 : G7 SEQ_PROG_EN_COURS étape 9040
5.3.5 Séquence de récupération de programme
La liste des fonctions : Récupération de programme
Le fonctionnement :
Le but d’une récupération de programme est de charger un nouveau programme ou les modifications d’un programme déjà existant dans Lina à partir de l’IHM. La demande ne peut donc pas être faite à partir de Lina.
Une fois que la séquence reçoit un code de programme à récupérer, l’automate doit recopier dans le DB de récupération, le programme à envoyer à Lina en fonction du code reçu. Il doit ensuite envoyer à Lina une demande de récupération qui sera remise à zéro par le logiciel, une fois celle-ci traitée.
L’automate vide alors le code et le DB de récupération.
Les variables utilisées :
Figure 78 : var recup prog
Le grafcet SEQ_RECUP_PROG :
Figure 79 : G7 SEQ_RECUP_PROG
5.3.6 Séquence de demande pour sauver tout prog
La séquence de demande de sauvegarde de tous les programmes comprend :
La liste des fonctions : Sauvegarde de tous les programmes dans l’automate
Le fonctionnement :
Cette partie autorise Lina à envoyer l’intégralité des programmes contenus dans sa base dans les DB de stockage de l’automate. Pour cela, il doit mettre à 1 la demande de sauvegarde de tous les programmes. Lina la remet ensuite à 0 une fois la demande prise en compte.
Lina exécute en boucle le processus de sauvegarde puis de vidage jusqu’au dernier programme en mémoire.
⚠ Attention : cette tâche est exécutée en prenant le programme dans l’ordre alphanumérique des noms des programmes !
Les variables utilisées
Figure 81 : var sauve tout
Le grafcet SEQ_DSTP : Demande de Sauvegarde de Tous les Programmes
Figure 82 : G7 SEQ_DSTP