AdrDT_Of_Offs32

Restituisce l'indirizzo DT dell'ingresso o uscita con offset a 32 bit

Partendo dal valore sull'I/O Offs, la funzione genera un indirizzo a 16 bit nell'area DT sull'I/O AdrDT. Questo ingresso deve essere collegato direttamente a un I/O a 32 bit di una funzione base. Il valore sull'I/O Offs rappresenta l'offset indirizzo all'interno dell'area dati DT. Tramite GetPointer32 può essere trasferito insieme a un valore per l'area di memoria in una funzione o un Function Block definiti dall'utente.

Parametri

Ingresso

AdrDT (DINT)

Restituisce l'indirizzo offset DT a 16 bit

Questo pin deve essere collegato all'I/O di una funzione base per cui sia ammesso il tipo di dato INT, WORD

Uscita

Offs32 (WORD, INT, UINT)

Offset a 32 bit per l'indirizzo DT0

Note

  • Ricordate: l'esecuzione della funzione base che utilizza l'indirizzo creato nell'area DT si determina allocando alla funzione Is_AreaDT il valore per l'area di memoria della variabile all'ingresso EN.

  • Solo per LD e FBD editor: Utilizzate “Istruzione ingresso” o “Istruzione uscita” nella finestra ancorabile “Istruzioni” per inserire l'istruzione richiesta nella finestra di programmazione.

Esempio

Utilizzo della funzione definita dall'utente ReadFromIcCard in un programma

In questo esempio viene creata la funzione definita dall'utente ReadFromIcCard, la quale utilizza le funzioni AdrDT_Of_Offs32_O, AdrFL_Of_Offs_O, Is_AreaDT e Is_AreaFL in diagramma contatti (LD) o in diagramma Function Block (FBD).

Nel tipo di dato strutturato DUT vengono allocate le diverse variabili non booleane contenute nella struttura.

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
		start: BOOL:=FALSE;
			(*activation of the function*)
		DutNonBoolean: @'Dut_NonBoolean';
			(*structured data type*)
		ActualPosition: DINT:=0;
			(*beginning position from which the data should be read to the IC card*)
	END_VAR

Qui è dichiarata la variabile DutNonBoolean del tipo di dato allocato nella DUT menzionata sopra. L'allocazione di valori agli elementi della variabile DutNonBoolean non è stata eseguita nell'intestazione del POU o nel corpo in quanto i valori della variabile DutNonBoolean vengono sovrascritti dopo che la funzione ReadFromIcCard viene eseguita.

Corpo del POU

Quando la variabile bStart passa da FALSE a TRUE, la funzione ReadFromIcCard viene eseguita. La funzione legge i valori sulla IC memory card a partire dall'indirizzo diActualPosition e scrive le informazioni nella variabile DutNonBoolean. Non dimenticate che la IC memory card deve essere formattata in modo appropriato tramite il menu “Online” > “Gestore IC memory card” e che, se necessario, i valori a partire dall'indirizzo diActualPosition devono essere presenti sulla IC memory card.

Corpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_CONTACT,,start,6,1,8,3,R);
B(B_F,ReadFromIcCard!,,18,1,27,8,,?DEN?DArea?DOffset?DSize?DPosition?AENO?C);
B(B_VARIN,,ActualPosition,16,6,18,8,);
B(B_VAROUT,,ActualPosition,27,3,29,5,);
B(B_VARIN,,Dut_NonBoolean,7,3,9,5,);
B(B_F,Size_Of_Var!,,9,5,16,7,,?D?C);
B(B_F,GetPointer!,,11,3,18,5,,?D?C);
B(B_VARIN,,2,16,4,18,6,);
L(18,2,18,3);
L(8,2,18,2);
L(1,2,6,2);
L(9,4,11,4);
L(9,4,9,6);
L(16,6,18,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

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