Écrire le code de contrôle du compteur rapide

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 du compteur rapide

Le code de contrôle peut être paramétré pour chaque voie à l’aide des variables système sys_wHscChannelxControlCode ou sys_wPulseChannelxControlCode (avec x= le numéro de voie). Les paramètres de cette variable système restent identiques jusqu’à ce qu’ils soient redéfinis.

Annuler les instructions du compteur rapide (bit 3)

Pour annuler l’exécution d’une instruction, définissez le bit 3 du registre de données, dans lequel le code de contrôle du compteur rapide (sys_wHscOrPulseControlCode) est sauvegardé, sur TRUE. Le drapeau de contrôle du compteur rapide passe à FALSE. Pour que l’instruction puisse être à nouveau exécutée, définissez le bit 3 sur FALSE.

Activer/désactiver l’entrée de réinitialisation (réinitialisation du matériel) du compteur rapide (bit 2)

X0 Entrée du compteur rapide

  1.  (1) Valeur courante
  2.  (2) Bit 2 du code de contrôle du compteur rapide (activation/désactivation de l’entrée reset)
  3.  (3) Valeur courante réinitialisée à 0
  4.  (4) Réinitialisation impossible

Lorsque le bit 2 du code de contrôle est défini sur TRUE, il est impossible de réinitialiser le matériel via l’entrée reset spécifiée dans les registres système. Le comptage continue même si l’entrée reset passe à TRUE. La réinitialisation du matériel est désactivée jusqu’à ce que le bit 2 soit réinitialisé à 0.

Activer/désactiver le comptage (bit 1)

Contrôle de l’entrée comptage

X0 Entrée du compteur rapide

  1.  (1) Valeur courante
  2.  (2) Bit 1 du code de contrôle du compteur rapide (comptage)

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.

Réinitialiser la valeur courante (réinitialisation du logiciel) du compteur rapide sur 0 (bit 0)

X0 Entrée du compteur rapide

  1.  (1) Valeur courante
  2.  (2) Bit 0 du code de contrôle du compteur rapide (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.

Description pour les FP-Sigma, FP-X, FP0R

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).

  1.  (1) Numéro de voie (voie n: 16#n)
  2.  (2) Annuler l’instruction du compteur rapide (bit 3)

    0 : continuer/1 : annuler

  3.  (3) Entrée reset (bit 2) (voir nota)

    0 : activée/1 : désactivée

  4.  (4) Comptage (bit 1)

    0 : autorisé/1 : non autorisé

  5.  (5) Réinitialiser la valeur courante sur 0 (bit 0)

    0 : non/1 : oui

Exemple : 16#2009

Groupe

Valeur

Description

IV

2

Numéro de voie : 2

III

0

(Fixe)

II

0

(Fixe)

I

9

Hex 9 correspond aux données binaires 1001

Annuler l’instruction du compteur rapide : annuler (bit 3)

1

Entrée reset : activée (bit 2)

0

Comptage : autorisé (bit 1)

0

Réinitialiser la valeur courante sur 0 : oui (bit 0)

1

Description pour les FP0, FP-e

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).

  1.  (1) Annuler l’instruction du compteur rapide (bit 3)

    0 : continuer/1 : annuler

  2.  (2) Entrée reset (bit 2) (voir nota)

    0 : activée/1 : désactivée

  3.  (3) Comptage (bit 1)

    0 : autorisé/1: non autorisé

  4.  (4) Réinitialiser la valeur courante sur 0 (bit 0)

    0 : non/1 : oui

Groupe

IV

III

II

I

Voie

3

2

1

0

Exemple : 16#90

Groupe

Valeur

Description

IV

0

III

0

II

9

Numéro de voie : 1

Hex 9 correspond aux données binaires 1001

Annuler l’instruction du compteur rapide : annuler (bit 3)

1

Entrée reset : activée (bit 2)

0

Comptage : autorisé (bit 1)

0

Réinitialiser la valeur courante sur 0 : oui (bit 0)

1

I

0

NOTA

La valeur courante est mise à TRUE en activant l’entrée reset (0). Le paramétrage de l’entrée reset (bit 2) permet de désactiver l’entrée reset définie dans les registres système.

Exemple : réinitialisation du logiciel pour la voie 0

En-tête du POU

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
		bSoftwareReset: BOOL:=FALSE;
			(*Activates the function*)
	END_VAR
	VAR CONSTANT 
		HSC_CH0_RESET_ELAPSED_VALUE: WORD:=16#0001;
			(*Resets elapsed value of channel 0*)
		HSC_CH0_CONTINUE: WORD:=16#0000;
			(*Continues counting in channel 0*)
	END_VAR
	VAR 
	END_VAR

Corps du POU

La réinitialisation est exécutée à l’étape 1, puis 0 doit être entré avant que l’étape 2 ne démarre le comptage. La réinitialisation seule ne suffit pas à démarrer le comptage.

Corps en LD

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,,HSC_CH0_RESET_ELAPSED_VALUE,22,2,24,4,);
B(B_CONTACT,,bSoftwareReset,5,1,7,3,R);
B(B_VARIN,,HSC_CH0_CONTINUE,22,6,24,8,);
B(B_F,E_MOVE!,Instance,24,0,30,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,30,2,32,4,);
B(B_F,E_MOVE!,Instance,24,4,30,8,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,30,6,32,8,);
L(1,2,5,2);
L(7,2,8,2);
L(8,2,24,2);
L(8,6,24,6);
L(8,2,8,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

if DF(bSoftwareReset) then
    sys_wHscOrPulseControlCode:=HSC_CH0_RESET_ELAPSED_VALUE;
    sys_wHscOrPulseControlCode:=HSC_CH0_CONTINUE;
end_if;

Exemple : réinitialisation du logiciel pour la voie 1 (FP-SIGMA, FP-X, FP0R)

En-tête du POU

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
		bSoftwareReset: BOOL:=FALSE;
			(*Activates the function*)
	END_VAR
	VAR CONSTANT 
		HSC_CH1_RESET_ELAPSED_VALUE: WORD:=16#1001;
			(*Resets elapsed value of channel 1*)
		HSC_CH1_CONTINUE: WORD:=16#1000;
			(*Continues counting in channel 1*)
	END_VAR
	VAR 
	END_VAR

Corps du POU

La réinitialisation est exécutée à l’étape 1, puis 0 doit être entré avant que l’étape 2 ne démarre le comptage. La réinitialisation seule ne suffit pas à démarrer le comptage.

Corps en LD

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,,HSC_CH1_RESET_ELAPSED_VALUE,24,2,26,4,);
B(B_CONTACT,,bSoftwareReset,5,1,7,3,R);
B(B_VARIN,,HSC_CH1_CONTINUE,24,6,26,8,);
B(B_F,E_MOVE!,Instance,26,0,32,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,32,2,34,4,);
B(B_F,E_MOVE!,Instance,26,4,32,8,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,32,6,34,8,);
L(1,2,5,2);
L(7,2,8,2);
L(8,2,26,2);
L(1,0,1,8);
L(8,6,26,6);
L(8,2,8,6);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en ST

if DF(bSoftwareReset) then
    sys_wHscOrPulseControlCode:=HSC_CH1_RESET_ELAPSED_VALUE;
    sys_wHscOrPulseControlCode:=HSC_CH1_CONTINUE;
end_if;

Modifié le : 2021-08-09Feedback on this pagePanasonic hotline