Uscita ON al raggiungimento del valore target (uscita ad impulsi)
Se il valore corrente corrisponde al valore target diTargetValue del canale uscita ad impulsi specificato da iChannel, il flag di uscita specificato da pYOutput passa immediatamente a TRUE.
Ingresso
Un fronte di salita attiva la funzione; valutate il flag di controllo del canale uscita ad impulsi utilizzando PulseInfo_IsTargetValueMatchActive
FPS: 0, 2
FP-X R: 0, 1
FP-X 16K C14T: 0, 1, 2
FP-X 32K C30T, C60T: 0, 1, 2, 3
FP0R: 0, 1, 2, 3
FP0: 0, 1
FP-e: 0, 1
Risultato del puntatore ottenuto da GetPointer da una variabile globale che fornisce numero canale e uscita
Specificate un valore di dato a 32 bit per il valore target che sia compreso nel seguente intervallo:
FP0, FP-e: -838808–+8388607
FPS, FP-X, FP0R: -2147483467–+2147483648
Uscita
TRUE se la combinazione di Channel%d
e pYOuput.iOffset
non corrisponde a una combinazione valida di numero canale e uscita come determinato dalla variabile globale
Questa istruzione non in linea è parte delle istruzioni TOOL per uscita ad impulsi. Per una descrizione dettagliata delle istruzioni utilizzate internamente, vedere:F166_PulseOutput_Set
Per convalidare la combinazione di canale e uscita Y, il compilatore richiede il seguente modello di nome per le variabili globali:%sPulse_TargetValueMatch_Channel%d_Y%d_%s
Utilizzare sempre questo modello per le variabili globali nel controllo di corrispondenza del valore target.
Channel%d deve essere un numero canale uscita ad impulsi abilitato nei registri di sistema
Y%d
deve essere un indirizzo di uscita esplicito supportato dal PLC
FP-S, FP0, FP-e: |
Y0–Y7 |
FP-S (V3.1 o superiore), FP0R: |
Y0–Y1F |
FP-X: |
Y0–Y29F |
%s
è un descrittore opzionale all'inizio del modello
_%s
è un descrittore opzionale alla fine del modello
Opzionale | Modello fisso | Opzionale |
g_b |
Pulse_TargetValueMatch_ChannelA_Y11F |
_MotorOn |
Questa variabile globale genera il codice per il canale A e l'uscita Y11F.
Panoramica delle istruzioni uscita ad impulsi
F166_PulseOutput_Set Uscita ON al raggiungimento del valore target (uscita ad impulsi)
Nella lista variabili globali si definiscono variabili alle quali possono accedere tutti i POU del progetto.
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
g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On: BOOL:=FALSE;
END_VAR
VAR
diTargetValue0: DINT:=11000;
iChannel1: INT:=1;
bIsActive: BOOL:=FALSE;
bErrorSet: BOOL:=FALSE;
bSet: BOOL:=FALSE;
END_VAR
Utilizzate PulseInfo_IsTargetValueMatchActive per valutare se il canale iChannel1 è attivo. Se viene rilevato un fronte di salita su bSet e se bIsActive non è TRUE, l'istruzione viene eseguita. La combinazione di numero canale e contatto di uscita viene convalidata nella variabile globale g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On. Quando l'uscita ad impulsi sul canale 1 raggiunge il valore target diTargetValue0, l'uscita YA viene impostata su TRUE.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 3 ;
NETWORK_BODY
B(B_VARIN,,iChannel1,7,1,9,3,);
B(B_VAROUT,,bIsActive,26,1,28,3,);
B(B_F,PulseInfo_IsTargetValueMatchActive!,,9,0,26,3,,?DiChannel?C);
L(1,0,1,3);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_VAROUT,,bErrorSet,51,1,53,3,);
B(B_CONTACT,,bSet,3,1,5,3,R);
B(B_CONTACT,,bIsActive,7,1,9,3,N);
B(B_VARIN,,iChannel1,32,2,34,4,);
B(B_VARIN,,diTargetValue0,32,4,34,6,);
B(B_F,GetPointer!,,27,3,34,5,,?D?C);
B(B_VARIN,,g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On,25,3,27,5,);
B(B_F,Pulse_TargetValueMatch_Set!,,34,0,48,6,,?DbExecute?DiChannel?DpYOutput?DdiTargetValue?CbError);
L(5,2,7,2);
L(1,2,3,2);
L(9,2,34,2);
L(48,2,51,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
bIsActive:=PulseInfo_IsTargetValueMatchActive(iChannel1);
Pulse_TargetValueMatch_Set(bExecute := DF(bSet) AND NOT bIsActive,
iChannel := iChannel1,
pYOutput := GetPointer(g_bPulse_TargetValueMatch_Channel1_YA_Horn1_On),
diTargetValue := diTargetValue0,
bError => bErrorSet);