Fonction de surveillance des écarts de position entre axes
(Traduction du document original anglais)
Description
La fonction de surveillance des écarts de position entre axes permet de surveiller des écarts entre des axes indépendants (réel, imaginaire ou consigne externe) quelconques du module.
Cette fonction pourra être instanciée plusieurs fois avec des listes d'axes différentes.
La fonction sera assurée par 3 opcodes :
Lancement de la surveillance
Permet de démarrer la surveillance par l'appel d'une fonction TRF_RECIPE (opcode 26200) sur la voie 0.
A l'appel de la fonction le module fait une photographie des différentes positions des axes à surveiller puis :
Objet
Type
Explication
Commentaire
%MF r.m.0.15
Flottant
Numéro d'instance
Paramètre du TRF_RECIPE, transformé en entier par le module
%MF i
Flottant
Seuil d'alarme
En unité de position de l'axe de référence
%MF i+2
Flottant
Seuil de défaut
En unité de position de l'axe de référence
%MW i+4
Mot
Axe de référence
%MW i+5
Mot
Axe 1
%MF i+6
Flottant
Numérateur Axe 1
%MF i+8
Flottant
Dénominateur Axe 1
.. .. ..
..
..
%MW i+5+5(N-1)
Mot
Axe N
%MF i+5+5(N-1)+1
Flottant
Numérateur Axe N
%MF i+5+5(N-1)+3
Flottant
Dénominateur Axe N
Exemple :
Surveillance des axes 8, 12 et 7 :
Le seuil d'alarme est de 4 mm.
Le seuil de défaut est de 10 mm.
IF %MW104.0.0: X3 = 0 THEN (* pas de TRF_RECIPE en cours *)
%MW104.0.10 := 26200; (* Action 26200 = GAP_CONTROL *)
%MF104.0.15 := 1.0; (* Numéro d'instance *
%MF150 :=4.0; (* Seuil d'alarme *)
%MF152 := 10.0; (* Seuil de défaut *)
%MW154 := 8; (* Axe de référence *)
%MW155 := 12; (* Deuxième axe à surveiller *)
%MF156 := 4.0.0; (* Numérateur du rapport entre le 2ème axe et l'axe de référence *)
%MF158 := 1.0; (* Dénominateur du rapport entre le 2ème axe et l'axe de référence *)
%MW160 :=7.0; (* Troisième axe à surveiller *)
%MF161 := 1.0; (* Numérateur du rapport entre le 3eme axe et l'axe de référence *)
%MF163 := 10.0; (* Dénominateur du rapport entre le 3eme axe et l'axe de référence *)
TRF_RECIPE %CH 104.0 (15,150);
END_IF;
Une alarme sera déclenchée si l'axe 8 se déplace de 5 mm alors que l'axe 12 n'a bougé que de 4°.
Un défaut sera déclenché si l'axe 8 se déplace de 20 mm alors que l'axe 12 n'a bougé que de 4°.
Cas de refus du TRF_RECIPE 26200 : erreur sur le mot %MWr.m.0.3
Relecture des paramètres de la fonction
Permet de relire les paramètres de surveillance d'une instance donnée, par l'appel d'une fonction TRF_RECIPE (opcode 16200) sur la voie 0.
Le résultat de la fonction sera lisible sur des %M banalisés.
Objet
Type
Explication
Commentaire
%MF i
Flottant
Seuil d'alarme
En unité de position de l'axe de référence
%MF i+2
Flottant
Seuil de défaut
En unité de position de l'axe de référence
%MW i+4
Mot
Axe de référence
%MW i+5
Mot
Axe 1
%MF i+6
Flottant
Numérateur Axe 1
%MF i+8
Flottant
Dénominateur Axe 1
.. .. ..
..
..
%MW i+5+5(N-1)
Mot
Axe N
%MF i+5+5(N-1)+1
Flottant
Numérateur Axe N
%MF i+5+5(N-1)+3
Flottant
Dénominateur Axe N
Exemple :
IF %MW104.0.0: X3 = 0 THEN (* Pas de TRF_RECIPE en cours*)
%MW104.0.10 := 16200; (* Action 26200 = GAP_CONTROL*)
%MF104.0.15 := 1.0 (* Instance à relire*)
TRF_RECIPE %CH 104.0 (15,150);
END_IF;
Cas de refus du TRF_RECIPE 16200 : erreur sur le mot %MWr.m.0.3 ;
Arrêt de la surveillance
Permet de supprimer la surveillance d'une instance donnée, par l'appel d'une fonction TRF_RECIPE (opcode 14200) sur la voie 0.
Exemple:
IF %MW104.0.0: X3 = 0 THEN (* Pas de TRF_RECIPE en cours *)
%MW104.0.10 := 14200; (* Action 14200 = GAP_CONTROL *)
%MF104.0.15 := 1.0 (* Instance à supprimer*)
TRF_RECIPE %CH 104.0 (0,0);
END_IF;
Cas de refus du TRF_RECIPE 14200 : erreur sur le mot %MWr.m.0.3 ;
Contrôle de l'activité de la fonction de surveillance
Permet de contrôler si une instance est active ou inactive, par l'appel d'une fonction TRF_RECIPE (opcode 16201) sur la voie 0.
Le résultat de la fonction est lisible sur un %MW banalisé :
TRF_RECIPE %CH4.0(1,150)
avec 1= longueur et 150 = offset retour.
Chaque bit du premier octet est l'image de l'activité de l'instance correspondante (exemple : Bit 0 => Instance 0 etc.)
Exemple : l'instance est t'elle active?
IF %M9 AND NOT %MW4.0:X3 THEN
%MW4.0.10:=16201;
TRF_RECIPE %CH4.0(1,150);
RESET %M9;
END_IF;
Le résultat est accessible sur le mot %MW150 .
Si %MW150 = 3, les instances 0 et 1 sont actives.
Refus :erreur sur le mot %MWr.m,i,3 :