Pulse_TargetValueMatch_Set

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.

Parametri

Ingresso

bExecute (BOOL)

Un fronte di salita attiva la funzione; valutate il flag di controllo del canale uscita ad impulsi utilizzando PulseInfo_IsTargetValueMatchActive

iChannel (INT)

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

pYOutput (POINTER)

Risultato del puntatore ottenuto da GetPointer da una variabile globale che fornisce numero canale e uscita

diTargetValue (DINT)

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

bError (BOOL)

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

Note

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

NOTA

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

Esempio

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.

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

Corpo LD

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

Corpo ST

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

L'ultima revisione: 2021-11-10Feedback su questa paginaPanasonic hotline