Lettura di dati da unità intelligenti
Legge i dati dalla memoria condivisa in un modulo intelligente.
Ingresso
Specifica il numero banco/slot nella memoria condivisa del modulo intelligente
Specifica l'indirizzo iniziale nella memoria condivisa del modulo intelligente (indirizzo dati di origine)
Specifica il numero di word da leggere
Indirizzo iniziale nella CPU per memorizzare i dati letti (indirizzo di destinazione)
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.
Unità intelligente con banco
Specificate il numero slot (costante esadec.) nel quale l'unità intelligente target è stata installata e il numero banco (costante esadec.).
Nome |
Numero ordine |
|
Unità di memoria dati di espansione FP3 |
AFP32091 AFP32092 |
|
Unità di memoria dati di espansione FPS |
AFPG201 |
se s1_BankSlot eccede il limite dell'intervallo specificato
se il dato letto eccede l'area di d_Start
se s1_BankSlot eccede il limite dell'intervallo specificato
se il dato letto eccede l'area di d_Start
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
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.
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
IF start then
F150_READ( s1_BankSlot:= SlotNo,
s2_Start:= AddrDataToRead,
n_Number:= NoWordsToRead,
d_Start:= DestAddrCPU[0]);
END_IF;