Hsc_TargetValueMatch_Set

Uscita ON al raggiungimento del valore target (contatore veloce)

Se il valore corrente corrisponde al valore target diTargetValue del canale contatore veloce specificato da iChannel, il flag di uscita specificato da pYOutput passa immediatamente a TRUE.

Parametri

Ingresso

bExecute
Un fronte di salita attiva la funzione; valutare il flag di controllo del contatore veloce utilizzando HscInfo_IsActive
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

pYOutputPOINTER
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 i contatori veloci. Per una descrizione dettagliata delle istruzioni utilizzate internamente, vedere : F167_HighSpeedCounter_Reset F166_HighSpeedCounter_Set

NOTA

Per convalidare la combinazione di canale e uscita Y, il compilatore richiede il seguente modello di nome per le variabili globali:%sHsc_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 contatore veloce 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 Hsc_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
	VAR 
		bExecute: BOOL:=0;
		iChannel1: INT:=1;
		diTargetValue0: DINT:=15000;
		bIsActive: BOOL:=FALSE;
		diElapsedValue: DINT:=0;
		bSet: BOOL:=FALSE;
		bErrorSet: BOOL:=FALSE;
	END_VAR

Corpo LD

Utilizzate HscInfo_IsActive per valutare il canale specificato da iChannel1. 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_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On. Quando il contatore veloce sul canale 1 raggiunge il valore target diTargetValue0, l'uscita Y1 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_F,HscInfo_IsActive!,,9,0,18,3,,?DiChannel?C);
B(B_VARIN,,iChannel1,7,1,9,3,);
B(B_VAROUT,,bIsActive,18,1,20,3,);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_VAROUT,,bErrorSet,46,1,48,3,);
B(B_CONTACT,,bSet,2,1,4,3,R);
B(B_CONTACT,,bIsActive,6,1,8,3,N);
B(B_VARIN,,iChannel1,31,2,33,4,);
B(B_VARIN,,diTargetValue0,31,4,33,6,);
B(B_F,GetPointer!,,26,3,33,5,,?D?C);
B(B_VARIN,,g_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On,24,3,26,5,);
B(B_F,Hsc_TargetValueMatch_Set!,,33,0,46,6,,?DbExecute?DiChannel?DpYOutput?DdiTargetValue?CbError);
L(1,2,2,2);
L(4,2,6,2);
L(8,2,33,2);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

bIsActive:=HscInfo_IsActive(iChannel1);
Hsc_TargetValueMatch_Set(bExecute := DF(bSet) AND NOT bIsActive,
             iChannel := iChannel1,
             pYOutput := GetPointer(g_bHsc_TargetValueMatch_Channel1_Y1_RedLamp_On),
             diTargetValue := diTargetValue0,
             bError => bErrorSet);

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