FP_GET_UNIT_ID

restituisce l'ID unità di espansione di uno slot specificato

Questa istruzione FP restituisce l'ID dell'unità di espansione del numero slot specificato da iSlot. L'ID unità trovato in Configurazione unità e mappa I/O viene scritto nella variabile di uscita wUnitId e può essere utilizzato per il confronto con una variabile di sistema del gruppo Costanti unità PLC.

Ingresso

iSlot (WORD, INT, UINT)

Numero slot dell'unità di espansione

Uscita

wUnitId (WORD, INT, UINT)

ID dell'unità di espansione, p.es. SYS_UNIT_AFP7X16DW

Note

Prima di utilizzare questa istruzione, ricompilare il programma del PLC e scaricarlo con Online > Scarica codice programma e configurazione PLC su PLC nel PLC. In questo modo si evita la restituzione di un ID unità errato in caso di modifica della configurazione dell'unità.

Esempio

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
		bStart: BOOL:=FALSE;
		iSlot: INT:=1;
		wModelCode: WORD:=0;
		bIsInputUnit_16Points_AttachedToSlot: BOOL:=FALSE;
		@'': @'';
	END_VAR

Corpo del POUCopy code to clipboard

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

Corpo LDCopy code to clipboard

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 4 ;
        NETWORK_BODY
B(B_VARIN,,iSlot,10,2,12,4,);
B(B_VAROUT,,wModelCode,21,2,23,4,);
B(B_CONTACT,,bStart,5,1,7,3,);
B(B_F,FP_GET_UNIT_ID!,,12,0,21,4,,?DEN?DiSlot?AENO?CwUnitId);
L(1,2,5,2);
L(7,2,12,2);
L(1,0,1,4);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 3 ;
        NETWORK_BODY
B(B_F,@EQ-2!,,12,0,17,3,,?D?D?C);
B(B_VARIN,,wModelCode,10,0,12,2,);
B(B_VARIN,,SYS_UNIT_AFP7X16DW,10,1,12,3,);
B(B_VAROUT,,bIsInputUnit_16Points_AttachedToSlot,17,0,19,2,);
L(1,0,1,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo STCopy code to clipboard

IF (bStart) THEN
    FP_GET_UNIT_ID(iSlot := iSlot, wUnitId => wModelCode);
END_IF;
IF wModelCode = SYS_UNIT_AFP7X16DW  THEN
    bIsInputUnit_16Points_AttachedToSlot:= TRUE;
END_IF;

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