Possibilité d’accéder au registre spécial de données dans lequel le code de contrôle du compteur rapide et de la sortie impulsionnelle est sauvegardé, à l’aide de la variable système sys_wHscOrPulseControlCode. (La variable système sys_wHscOrPulseControlCode correspond au registre spécial de données DT90052.)
Opérations réalisées par le code de contrôle de la sortie impulsionnelle :
Pour décélérer le mouvement à l’approche de la position d’origine, désignez une entrée proche de l’origine (near home) et définissez le bit 4 du registre spécial de données, dans lequel le code de contrôle de la sortie impulsionnelle (sys_wHscOrPulseControlCode) est sauvegardé, sur TRUE puis de nouveau sur FALSE. Le bit d’entrée proche de l’origine (near home) est maintenu. Définissez ce bit sur FALSE juste après l’avoir paramétré sur TRUE pour pouvoir définir l’entrée proche de l’origine (near home) une seconde fois pendant un retour à l’origine.
Lorsque le bit 3 du registre de données, dans lequel le code de contrôle de sortie impulsionnelle (sys_wHscOrPulseControlCode) est sauvegardé, est sur TRUE, la sortie impulsionnelle est interrompue. Chaque programme utilisant les instructions de sortie impulsionnelle doit comporter la possibilité de procéder à un arrêt forcé. Réinitialisez le bit 3 sur FALSE pour continuer la sortie impulsionnelle.
Sortie impulsionnelle
Valeur courante
1
Lorsque le bit 1 du code de contrôle est défini sur TRUE, le comptage n’est pas autorisé et la valeur courante ne change pas. Le comptage continue lorsque le bit 1 est réinitialisé sur FALSE.
Sortie impulsionnelle
Valeur courante
Bit 0 du code de contrôle de sortie impulsionnelle (réinitialisation du logiciel)
Lorsque le bit 0 du code de contrôle est défini sur TRUE, une réinitialisation du logiciel est exécutée et la valeur courante est définie sur 0. La valeur courante garde la valeur 0 jusqu’à ce que le bit 0 soit réinitialisé sur FALSE.
Lorsque le bit 2 du registre de données, dans lequel le code de contrôle de la sortie impulsionnelle (sys_wHscOrPulseControlCode) est sauvegardé, est sur TRUE, l’exécution des instructions de sortie impulsionnelle est annulée et le drapeau de contrôle de la sortie impulsionnelle passe à FALSE. Réinitialisez le bit 2 sur FALSE pour permettre l’exécution des instructions à nouveau.
Les bits 0–15 du code de contrôle sont affectés par groupes de quatre. Dans chaque groupe, le paramétrage des bits est représenté par un nombre hexadécimal (par ex. 00020000 0000 1001 = 16#2009).
Groupe |
(1) |
Numéro de voie (voie n: 16#n) |
|
Groupe |
0 (fixe) |
||
Groupe |
(2) |
Entrée proche de l’origine (near home) (bit 4) |
|
0 : FALSE |
1 : TRUE |
||
Groupe |
(3) |
Sortie impulsionnelle (bit 3) |
|
0 : continuer |
1 : arrêter |
||
(4) |
0 (bit 2, fixe) |
||
(5) |
Comptage (bit 1) |
||
0 : autorisé |
1 : non autorisé |
||
(6) |
Réinitialiser la valeur courante sur 0 (bit 0) |
||
0 : non |
1 : oui |
Exemple : 16#2009
Groupe |
Valeur |
Description |
|
---|---|---|---|
|
2 |
Numéro de voie : 2 |
|
|
0 |
(Fixe) |
|
|
0 |
Entrée proche de l’origine (near home) : FALSE |
|
|
9 |
Hex 9 correspond aux données binaires 1001 |
|
Sortie impulsionnelle : arrêter (bit 3) |
1 |
||
(Bit 2, fixe) |
0 |
||
Comptage : autorisé (bit 1) |
0 |
||
Réinitialiser la valeur courante sur 0 : oui (bit 0) |
1 |
Groupe |
(1) |
Numéro de voie (voie n : 16#n) |
|
Groupe |
(2) |
1 (fixe) |
|
Groupe |
(3) |
Entrée proche de l’origine (near home) (bit 4) (voir nota) |
|
0 : FALSE |
1 : TRUE |
||
Groupe |
(4) |
Sortie impulsionnelle (bit 3) |
|
0 : continuer |
1 : arrêter |
||
(5) |
Comptage (bit 1) |
||
0 : autorisé |
1 : non autorisé |
||
(6) |
Réinitialiser la valeur courante sur 0 (bit 0) |
||
0 : non |
1 : oui |
Exemple : 16#2109
Groupe |
Valeur |
Description |
|
---|---|---|---|
|
2 |
Numéro de voie : 2 |
|
|
1 |
(Fixe) |
|
|
0 |
Entrée proche de l’origine (near home) : FALSE |
|
|
9 |
Hex 9 correspond aux données binaires 1001 |
|
Sortie impulsionnelle : arrêter (bit 3) |
1 |
||
(Bit 2, fixe) |
0 |
||
Comptage : autorisé (bit 1) |
0 |
||
Réinitialiser la valeur courante sur 0 : oui (bit 0) |
1 |
Les bits 0–15 du code de contrôle sont affectés par groupes de quatre. Dans chaque groupe, le paramétrage des bits est représenté par un nombre hexadécimal (par ex. 00020001 0000 1001 = 16#2109).
Groupe |
(1) |
Numéro de voie (voie n : 16#n) |
|
Groupe |
1 (fixe) |
||
Groupe |
(2) |
Demande de départ du contrôle de positionnement |
|
0 : désactivée |
1 : activée |
||
(3) |
Demande d’arrêt décéléré |
||
0 : désactivée |
1 : activée |
||
(4) |
Entrée proche de l’origine (near home) (bit 4) (voir nota) |
||
0 : FALSE |
1 : TRUE |
||
Groupe |
(5) |
Sortie impulsionnelle (bit 3) |
|
0 : continuer |
1 : arrêter |
||
(6) |
Annuler le contrôle de la sortie impulsionnelle (bit 2) |
||
0 : continuer |
1 : arrêter |
||
(7) |
Comptage (bit 1) |
||
0 : autorisé |
1 : non autorisé |
||
(8) |
Réinitialiser la valeur courante sur 0 (bit 0) |
||
0 : non |
1 : oui |
Exemple : 16#2109
Groupe |
Valeur |
Description |
|
---|---|---|---|
|
2 |
Numéro de voie : 2 |
|
|
1 |
(Fixe) |
|
|
0 |
Demande de départ du contrôle de positionnement : désactivée |
|
Demande d’arrêt décéléré : désactivée |
|||
Entrée proche de l’origine (near home) : FALSE |
|||
|
9 |
Hex 9 correspond aux données binaires 1001 |
|
Sortie impulsionnelle : arrêter (bit 3) |
1 |
||
Annuler le contrôle de la sortie impulsionnelle (bit 2) |
0 |
||
Comptage : autorisé (bit 1) |
0 |
||
Réinitialiser la valeur courante sur 0 : oui (bit 0) |
1 |
Les bits 0–15 du code de contrôle sont affectés par groupes de quatre, chaque groupe contenant les paramètres pour une voie. Dans chaque groupe, le paramétrage des bits est représenté par un nombre hexadécimal (par ex. 0000 0000 1001 0000 = 16#90).
Groupe |
|
|
Voie |
1 |
0 |
0 : continuer
1 : arrêter
0 : FALSE
1 : TRUE
0 : autorisé
1 : non autorisé
0 : non
1 : oui
Exemple : 16#90
Groupe |
Valeur |
Description |
|
---|---|---|---|
|
9 |
Numéro de voie : 1 Hex 9 correspond aux données binaires 1001 |
|
Sortie impulsionnelle : arrêter (bit 3) |
1 |
||
Entrée proche de l’origine (near home) : FALSE (bit 2) |
0 |
||
Comptage : autorisé (bit 1) |
0 |
||
Réinitialiser la valeur courante sur 0 : oui (bit 0) |
1 |
||
|
0 |
– |
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU. Le même en-tête de POU est utilisé pour tous les langages de programmation.
VAR
bEnableNearHome: BOOL:=FALSE;
END_VAR
VAR CONSTANT
PLS_CH2_ENABLE_NEAR_HOME: WORD:=16#2010;
(*Enables near home input for channel 2*)
PLS_CH2_CONTINUE: WORD:=16#2000;
(*Disables near home input for channel 2
and starts deceleration*)
END_VAR
L’entrée proche de l’origine (near home) est activée pour la voie 2 pendant le retour à l’origine.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 8 ;
NETWORK_BODY
B(B_VARIN,,PLS_CH2_ENABLE_NEAR_HOME,20,2,22,4,);
B(B_VARIN,,PLS_CH2_CONTINUE,20,6,22,8,);
B(B_F,E_MOVE!,Instance,22,0,28,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,28,2,30,4,);
B(B_F,E_MOVE!,Instance,22,4,28,8,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,28,6,30,8,);
B(B_CONTACT,,bEnableNearHome,4,1,6,3,R);
L(7,2,7,6);
L(1,2,4,2);
L(6,2,22,2);
L(7,6,22,6);
L(1,0,1,8);
END_NETWORK_BODY
END_NET_WORK
END_BODY
if DF(bEnableNearHome) then
PLS_CH2_ENABLE_NEAR_HOME:=sys_wHscOrPulseControlCode;
PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;
Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU.Le même en-tête de POU est utilisé pour tous les langages de programmation.
Un arrêt forcé de la sortie impulsionnelle est exécuté pour la voie 0.
if DF(bStopPulseOutput) then
PLS_CH2_STOP_PULSE_OUTPUT:=sys_wHscOrPulseControlCode;
PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;
Avec un arrêt forcé, les valeurs courantes en sortie d’automate et à l’entrée du moteur peuvent différer. Par conséquent, un retour à l’origine doit être exécuté après l’arrêt de la sortie impulsionnelle.