Scrivi nella memoria EEPROM
Utilizzando questa istruzione, i dati verranno copiati dall'area dati (DT) nella EEPROM/Flash ROM.
Ingresso
Attivazione della funzione (quando EN passa da FALSE a TRUE, la funzione viene eseguita una volta)
Indirizzo iniziale DT del blocco o dei blocchi da salvare
Numero di blocchi da scritta. La dimensione del blocco è di 64 o 2048 registri di dati a seconda del tipo di PLC (vedere la seguente tabella "Informazioni specifiche del PLC").
Nr. iniziale blocchi EEPROM
Uscita
Una volta eseguita la funzione, ENO viene impostato su TRUE. Utile per il concatenamento di funzioni con funzionalità EN
Memoria EEPROM e area ritentiva non sono la stessa cosa. L'area ritentiva memorizza i dati in tempo reale. Ogni qualvolta l'alimentazione viene disinserita, i dati ritenuti vengono memorizzati nella memoria EEPROM. L'istruzione P13_EPWT invia i dati alla EEPROM soltanto quando viene eseguita. Prevede inoltre una limitazione per quanto concerne il numero di scritture possibili (vedere la tabella sottostante). Dovete assicurarvi che l'istruzione P13_EPWT non venga eseguita per un numero di volte maggiore rispetto al numero di scritture specificato.
Per esempio, se si esegue P13_EPWT con il flag R901A (tempo impulso 0,1s), la EEPROM diventerà inutilizzabile dopo 100.000 * 0,1 sec=10.000 sec (2,8 ore). Tuttavia, se desiderate mantenere i vostri dati di profilo quali ad esempio i parametri di posizionamento o qualsiasi altro valore di parametro modificato di rado, troverete questa istruzione molto utile.
Ad una delle due variabili di ingresso s2_Number o d_Start deve essere allocato un valore numerico costante.
Tipo di PLC |
FP0 2,7k C10/C14/C1, FP-e |
FP0 5k C32 |
FP0 10k T32CP |
FP-Sigma, FP-X, FP0R |
FP0H |
---|---|---|---|---|---|
ROM |
EEPROM |
EEPROM |
EEPROM |
Flash ROM |
Flash ROM |
Dimensione blocchi (1 blocco) |
64 word (64x16bit) |
64 word (64x16bit) |
64 word (64x16bit) |
2048 word (2048x16bit) |
2048 word (2048x16bit) |
Nr. iniziale blocchi EEPROM |
Da 0 a 9 |
Da 0 a 95 |
Da 0 a 255 |
Da 0 a 15 |
Da 0 a 31 |
Nr. blocchi da leggere / scrivere ad ogni esecuzione |
Da 1 a 2 |
Da 1 a 8 |
Da 1 a 255 |
1 (scrittura) Da 1 a 16 (lettura) |
1 (scrittura) Da 1 a 32 (lettura) |
Durata scrittura (Tempo di scansione aggiuntivo) |
< 20ms per ogni blocco |
< 5ms per ogni blocco |
< 5ms per ogni blocco |
< 100ms per ogni blocco |
< 100ms per ogni blocco |
Durata lettura (Tempo di scansione aggiuntivo) |
Meno di 1ms per ogni blocco |
Meno di 1ms per ogni blocco |
Meno di 1ms per ogni blocco |
9,94ms + (1562,6*numero di blocchi) ms |
|
Numero max. di eventi di scrittura |
100000 |
10000 |
10000 |
10000 |
10000 |
Tempi max. di lettura |
Nessun limite |
Nessun limite |
Nessun limite |
Nessun limite |
Nessun limite |
Il conteggio include spegnimenti e cambi di modalità RUN -> PROG.
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;
@'data field': @'ARRAY (0..63] OF INT':=@'(1,2,3,4,5,6,7,8,9,10,11,12,52(0)]';
END_VAR
Quando la variabile start passa da FALSE a TRUE, la funzione viene eseguita.
La funzione legge i contenuti dell'array di dati[0] fino all'array di dati[63] (s2* = 1 => 1 blocco = 64 word) e scrive le informazioni dopo il numero iniziale di blocchi 0 nella EEPROM.BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,P13_EPWT!,Instance,11,0,19,6,,?DEN?Ds1_Start?Ds2_Number?Dd_Start?AENO);
B(B_VARIN,,DataField[0],9,2,11,4,);
B(B_VARIN,,1,9,3,11,5,);
B(B_VARIN,,0,9,4,11,6,);
B(B_CONTACT,,start,3,1,5,3,);
L(1,2,3,2);
L(5,2,11,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY