Scrittura del codice di controllo del contatore veloce

È possibile accedere al registro dati speciale in cui sono memorizzati i codici di controllo del contatore veloce e dell'uscita ad impulsi con la variabile di sistema sys_wHscOrPulseControlCode. (La variabile di sistema sys_wHscOrPulseControlCode corrisponde al registro dati speciale DT90052.)

Operazioni effettuate dal codice di controllo del contatore veloce

Le impostazioni del codice di controllo per ciascun canale possono essere monitorate usando le variabili del sistema sys_wHscChannelxControlCode o sys_wPulseChannelxControlCode (ove x=numero di canale). Le impostazioni di tale variabile di sistema restano invariate fino a quando viene eseguita un'altra operazione di impostazione.

Cancellazione delle istruzioni contatore veloce (bit 3)

L'esecuzione delle istruzioni di uscita ad impulsi si interrompe mettendo il bit 3 del registro dati nel quale è memorizzato il codice di controllo per il contatore veloce (sys_wHscOrPulseControlCode) su TRUE. Allora il flag di controllo del contatore veloce passa a FALSE. Per riabilitare l'esecuzione dell'istruzione del contatore veloce, riportare il bit 3 a FALSE.

Abilitazione/disabilitazione dell'ingresso di reset (reset hardware) del contatore veloce (bit 2)

X0 Ingresso contatore veloce

  1.  (1) Valore corrente
  2.  (2) Bit 2 del codice di controllo del contatore veloce (abilitare/disabilitare l'ingresso di reset)
  3.  (3) Il valore corrente è reimpostato su 0
  4.  (4) Il reset non è possibile

Quando il bit 2 del codice di controllo è impostato su TRUE, non è possibile effettuare un reset hardware utilizzando l'ingresso di reset specificato nei registri di sistema. Il conteggio continua anche se l'ingresso di reset è passato a TRUE. Il reset hardware resta disabilitato finché il bit 2 viene resettato su 0.

Abilitazione/disabilitazione delle operazioni di conteggio (bit 1)

Conteggio operazione controllo ingresso

X0 Ingresso contatore veloce

  1.  (1) Valore corrente
  2.  (2) Bit 1 del codice di controllo del contatore veloce (conteggio)

Quando il bit 1 del codice di controllo è impostato su TRUE, il conteggio è proibito e il valore corrente mantiene il suo valore attuale. Il conteggio prosegue quando il bit 1 viene resettato su FALSE.

Reset del valore corrente (reset software) del contatore veloce a 0 (bit 0)

X0 Ingresso contatore veloce

  1.  (1) Valore corrente
  2.  (2) Bit 0 del codice di controllo del contatore veloce (reset software)

Quando il bit 0 del codice di controllo è impostato su TRUE, viene eseguito un reset software del valore corrente di conteggio che viene posto a 0. Il valore corrente resta al valore 0 finché il bit 0 non viene resettato su FALSE.

Descrizione per FP-Sigma, FP-X, FP0R

I bit 0–15 del codice di controllo vengono allocati in gruppi di quattro. L'impostazione dei bit in ciascun gruppo è rappresentata da un numero esadecimale (p.es. 00020000 0000 1001 = 16#2009).

  1.  (1) Numero di canale (canale n: 16#n)
  2.  (2) Annulla istruzione contatore veloce (bit 3)

    0: continua/1: annulla

  3.  (3) Ingresso di reset (bit 2) (vedere la nota)

    0: abilitato/1: disabilitato

  4.  (4) Conta (bit 1)

    0: permetti/1: proibisci

  5.  (5) Resetta valore corrente su 0 (bit 0)

    0: no/1: sì

Esempio: 16#2009

Gruppo

Valore

Descrizione

IV

2

Numero di canale: 2

III

0

(fisso)

II

0

(fisso)

I

9

9 esadec. corrisponde a 1001 binario

Annulla istruzione contatore veloce: annulla (bit 3)

1

Ingresso di reset: abilitato (bit 2)

0

Conta: permetti (bit 1)

0

Resetta valore corrente su 0: sì (bit 0)

1

Descrizione per FP0, FP-e

I bit 0–15 del codice di controllo vengono allocati in gruppi di quattro e ciascun gruppo contiene le impostazioni per un canale. L'impostazione dei bit in ciascun gruppo è rappresentata da un numero esadecimale (p.es. 0000 0000 1001 0000 = 16#90).

  1.  (1) Annulla istruzione contatore veloce (bit 3)

    0: continua/1: annulla

  2.  (2) Ingresso di reset (bit 2) (vedere la nota)

    0: abilitato/1: disabilitato

  3.  (3) Conta (bit 1)

    0: permitti/1: proibisci

  4.  (4) Resetta valore corrente su 0 (bit 0)

    0: no/1: sì

Gruppo

IV

III

II

I

Canale

3

2

1

0

Esempio: 16#90

Gruppo

Valore

Descrizione

IV

0

III

0

II

9

Numero di canale: 1

9 esadec. corrisponde a 1001 binario

Annulla istruzione contatore veloce: annulla (bit 3)

1

Ingresso di reset: abilitato (bit 2)

0

Conta: permetti (bit 1)

0

Resetta valore corrente su 0: sì (bit 0)

1

I

0

NOTA

Impostando l'ingresso di reset su TRUE, si imposta il valore corrente su 0. Usare il reset hardware (bit 2) per disabilitare l'ingresso di reset situato nei registri di sistema.

Esempio: reset software per il canale 0

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU.La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

	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

Corpo del POU

Il reset viene effettuato nel passo 1, e 0 viene inserito immediatamente dopo nel passo 2 per avviare il conteggio. Il solo reset non fa avviare il conteggio.

Corpo 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

Corpo ST

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

Esempio: reset software per il canale 1 (FP-SIGMA, FP-X, FP0R)

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU.La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

	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

Corpo del POU

Il reset viene effettuato nel passo 1, e 0 viene inserito immediatamente dopo nel passo 2 per avviare il conteggio. Il solo reset non fa avviare il conteggio.

Corpo 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

Corpo ST

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

L'ultima revisione: 2021-06-29Feedback su questa paginaPanasonic hotline