F166_HighSpeedCounter_Set

Uscita ON al raggiungimento del valore target (contatore veloce)

Se il valore corrente del contatore veloce corrisponde al valore target, un processo di interrupt commuta immediatamente l'uscita specificata su TRUE.

Parametri

Ingresso

n_diHscChannel (DINT)

Canale contatore veloce:

FP-S: 0–3

FP-X R: 0–11

FP-X T: 0–7

FP0: 0–3

F168_PulseOutput_Trapezoidal: 0–3

F171_PulseOutput_Trapezoidal: 0–5

s_diTargetValue (DINT)

Specificate un valore di dato a 32 bit per il valore target che sia compreso nel seguente intervallo:

FP0, F168_PulseOutput_Trapezoidal: -838808–+8388607

FPS, FP-X, F171_PulseOutput_Trapezoidal: -2147483467–+2147483648

Uscita

d_Y (BOOL)

Uscita che passa a TRUE quando il valore corrente corrisponde al valore target:

FP-S, FP0, F168_PulseOutput_Trapezoidal: Y0–Y7

FP-S (V3.1 o superiore), F171_PulseOutput_Trapezoidal: Y0–Y1F

FP-X: Y0–Y29F

Note

Caratteristiche della funzione uscita ON al raggiungimento del valore target

Valore target: 10000

  1.  (1) Valore corrente del contatore veloce
  2.  (2) Condizione di esecuzione
  3.  (3) Flag di controllo del contatore veloce
  4.  (4) Uscita del PLC

L'uscita del PLC passa a TRUE quando il valore corrente corrisponde al valore target. Inoltre il flag di controllo del contatore veloce passa a FALSE e l'istruzione viene disattivata.

Se viene specificata un’uscita che fisicamente non è presente, viene commutata solamente la memoria interna relativa alle WY

Operazione di interrupt

Il programma di interrupt viene eseguito quando il valore corrente corrisponde al valore target Ogni interrupt inserito nella lista dei Task viene automaticamente abilitato. Ad ogni numero di canale è assegnato uno speciale numero di programma di interrupt.

Canali utilizzati dai programmi di interrupt:

Tipo PLC

FP0, FP-e

FPS, FP0H

FP-X (Tipi a relè), FP-XH

FP-X (Tipi a transistor)

FP0R

Interrupt0

Canale0

Canale0

Canale0

Canale0

Canale0

Interrupt1

Canale1

Canale1

Canale1

Canale1

Canale1

Interrupt2

Canale2

Canale2

Interrupt3

Canale2

Canale2

Canale3

Canale3

Canale2

Interrupt4

Canale3

Canale3

Canale4

Canale4

Canale3

Interrupt5

Canale5

Canale5

Interrupt6

Canale6

Canale6

Canale4

Interrupt7

Canale7

Canale7

Canale5

Interrupt8

Canale8

Interrupt9

Canale9

Interrupt10

Interrupt11

CanaleA

Interrupt12

CanaleB

Informazione generale di programmazione

  • Selezionate l'ingresso del contatore veloce per il canale desiderato nei registri di sistema.

  • FP-X, FP0R: Quando viene eseguita un'istruzione contatore veloce, il flag di controllo del contatore veloce (p.es. sys_bIsHscChannel0ControlActive) per il canale utilizzato passa a TRUE. Finché il flag di controllo è TRUE, non è possibile eseguire nessun'altra istruzione contatore veloce utilizzando lo stesso canale.

  • FP0, FP-e, FPS: Il flag di controllo del contatore veloce (p.es. sys_bIsHscChannel0ControlActive) e il flag di controllo dell’uscita ad impulsi (p.es. sys_bIsPulseChannel0Active) vengono allocati allo stesso numero di flag interno speciale (p.es. R903A). Pertanto, quando viene eseguita un'istruzione contatore veloce o un'istruzione uscita ad impulsi, il flag di controllo del contatore veloce (p.es. sys_bIsHscChannel0ControlActive) e il flag di controllo dell'uscita ad impulsi (p.es. sys_bIsPulseChannel0Active) per il canale utilizzato sono TRUE. Finché questo flag è TRUE non può essere eseguita nessun’altra istruzione contatore veloce o istruzione uscita ad impulsi.

  • Se sia il programma principale sia il programma di interrupt contengono un codice per lo stesso canale, essi non devono poter esser eseguiti contemporaneamente.

  • Per commutare su FALSE un’uscita del PLC che è stata commutata su TRUE da questa istruzione, usare un’istruzione RST o MOVE.

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

  • Lo stato del flag di controllo del contatore veloce o del flag di controllo dell'uscita ad impulsi può variare durante lo svolgimento di una scansione. For example, if the number of received bytes is read more than once different statuses may exist within one scan.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se il numero di canale o valori della tabella dati sono fuori del campo ammissibile
  • se il contatore veloce non è stato impostato nei registri di sistema
sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se il numero di canale o valori della tabella dati sono fuori del campo ammissibile
  • se il contatore veloce non è stato impostato nei registri di sistema

Esempio

Variabili globali

Nella lista variabili globali si definiscono variabili alle quali possono accedere tutti i POU del progetto.

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_EXTERNAL
		out_0: BOOL:=FALSE;
			(*output Y0 of PLC*)
	END_VAR
	VAR 
		start: BOOL:=FALSE;
			(*start condition*)
	END_VAR

Corpo del POU

Quando la variabile start è impostata su TRUE, la funzione viene eseguita.

Corpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,F166_HighSpeedCounter_Set!,Instance,12,0,26,5,,?DEN?Hn_diHscChannel?Ds_diTargetValue?AENO?Cd_Y);
B(B_VARIN,,0,10,2,12,4,);
B(B_VARIN,,10,10,3,12,5,);
B(B_VAROUT,,out_0,26,2,28,4,);
B(B_CONTACT,,start,5,1,7,3,R);
L(1,2,5,2);
L(7,2,12,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

IF DF(start) then
    F166_HighSpeedCounter_Set(n_diHscChannel := 0, 
      s_diTargetValue := 10, 
      d_Y => out_0);
END_IF;
NOTA
Assegnare un numero alla variabile di ingresso (p.es. “Monitoraggio” > “Monitoraggio intestazione”, selezionare la variabile, inserire il valore, premere <Enter>) o sostituire le variabili di ingresso con numeri.

L'ultima revisione: 2023-04-17Feedback su questa paginaPanasonic hotline