F150_READ

Lettura di dati da unità intelligenti

Legge i dati dalla memoria condivisa in un modulo intelligente.

Parametri

Ingresso

s1_BankSlot (WORD, INT, UINT)

Specifica il numero banco/slot nella memoria condivisa del modulo intelligente

s2_Start (WORD, INT, UINT)

Specifica l'indirizzo iniziale nella memoria condivisa del modulo intelligente (indirizzo dati di origine)

n_Number (INT)

Specifica il numero di word da leggere

d_Start (WORD, INT, UINT)

Indirizzo iniziale nella CPU per memorizzare i dati letti (indirizzo di destinazione)

Note

Le n_Number word del dato memorizzati nella memoria condivisa dell'unità intelligente/scheda specificata da s1_BankSlot vengono lette dall'indirizzo specificato da s2_Start e vengono memorizzate nell'area specificata da d_Start della CPU.

Il numero di argomenti di variabile agli ingressi è limitato dai registri indice disponibili del PLC.

Specifica s1_BankSlot

  • Unità intelligente senza banco

    Specificate il numero slot nel quale l'unità intelligente target è stata installata.

    1.  (1) Byte superiore
    2.  (2) Byte inferiore
  • Unità intelligente con banco

    Specificate il numero slot (costante esadec.) nel quale l'unità intelligente target è stata installata e il numero banco (costante esadec.).

    1.  (1) Byte superiore
    2.  (2) Byte inferiore
   
 

Nome

Numero ordine

 

Unità di memoria dati di espansione FP3

AFP32091

AFP32092

 

Unità di memoria dati di espansione FPS

AFPG201

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se s1_BankSlot eccede il limite dell'intervallo specificato

  • se il dato letto eccede l'area di d_Start

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se s1_BankSlot eccede il limite dell'intervallo specificato

  • se il dato letto eccede l'area di d_Start

Esempio

Intestazione del POUCopy code to clipboard

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;
			(*activates the function*)
		SlotNo: WORD:=16#03;
			(*if start is TRUE, this value
gets 2 words from the address
1 from the unit-slot 0*)
		AddrDataToRead: INT:=19;
		NoWordsToRead: INT:=4;
		DestAddrCPU: ARRAY [0..3] OF INT:=[4(0)];
			(*Starting address in CPU to store data read*)
	END_VAR

Corpo del POU

Legge 4 word del dato memorizzato negli indirizzi a partire da 19, specificate in AddrDataToRead, della memoria condivisa dell'unità intelligente (situata nello slot 3). Dopo di che le memorizza nell'array DestAddrCPU, quando Start passa a TRUE.

  1.  (1) Numero slot
  2.  (2) Unità intelligente
  3.  (3) CPU
  4.  (4) 4 word

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 := 8 ;
        NETWORK_BODY
B(B_F,F150_READ!,Instance,13,1,21,8,,?DEN?Ds1_BankSlot?Ds2_Start?Dn_Number?Dd_Start?AENO);
B(B_VARIN,,SlotNo,11,3,13,5,);
B(B_VARIN,,NoWordsToRead,11,4,13,6,);
B(B_VARIN,,NoWordsToRead,11,5,13,7,);
B(B_VARIN,,DestAddrCPU[0],11,6,13,8,);
B(B_CONTACT,,Start,7,2,9,4,);
L(9,3,13,3);
L(1,3,7,3);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo STCopy code to clipboard

IF start then
    F150_READ( s1_BankSlot:= SlotNo,
         s2_Start:= AddrDataToRead,
         n_Number:= NoWordsToRead,
         d_Start:= DestAddrCPU[0]);
END_IF;

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