EEPROM Speicher lesen
Mit diesem Befehl werden Daten aus dem EEPROM/ Flash-ROM in den Datenspeicher (DT) kopiert. Diese Kopierfunktion arbeitet nur blockweise. Damit ist das Kopieren einzelner Worte nicht möglich. Die Blockgröße und Blockmenge ist in der Tabelle aufgeführt. Achten Sie darauf, dass Sie für den Zielspeicher mindestens 64 bzw. 2048 freie Datenregister (1 Block = 64 bzw. 2048 Wörter (DT)) reservieren.
Eingang
Aktivierung der Funktion (bei EN = TRUE, wird die Funktion bei jedem SPS-Zyklus abgearbeitet)
EEPROM Startblock-Nummer
Zahl der auszulesenden Blöcke. Die Blockgröße beträgt je nach SPS-Typ 64 oder 2048 Datenregister (siehe folgende Tabelle "SPS-spezifische Daten").
Ausgang
Wenn die Funktion ausgeführt wurde, wird ENO auf TRUE gesetzt. Das ist nützlich, um mehrere Funktionen mit EN-Funktionalität zu kaskadieren
DT-Anfangsadresse für die Datenspeicherung
SPS-Typ |
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 |
Blockgröße (1 Block) |
64 Worte (64x16 Bit) |
64 Worte (64x16 Bit) |
64 Worte (64x16 Bit) |
2048 Worte (2048x16 Bit) |
2048 Worte (2048x16 Bit) |
EEPROM Startblock-Nummer |
0 bis 9 |
0 bis 95 |
0 bis 255 |
0 bis 15 |
0 bis 31 |
Anzahl der zu lesenden / schreibenden Blocks pro Ausführung |
1 bis 2 |
1 bis 8 |
1 bis 255 |
1 (schreiben) 1 bis 16 (lesen) |
1 (schreiben) 1 bis 32 (lesen) |
Schreibdauer (zusätzliche Zykluszeit) |
< 20ms pro Block |
< 5ms pro Block |
< 5ms pro Block |
< 100ms pro Block |
< 100ms pro Block |
Lesedauer (zusätzliche Zykluszeit) |
Weniger als 1ms pro Block |
Weniger als 1ms pro Block |
Weniger als 1ms pro Block |
9.94ms + (1562.6*Anzahl der Blocks) ms |
|
Max. Anzahl an Schreibvorgängen |
100000 |
10000 |
10000 |
10000 |
10000 |
Max Lesedauer |
Keine Obergrenze |
Keine Obergrenze |
Keine Obergrenze |
Keine Obergrenze |
Keine Obergrenze |
Stromausfall und Wechsel von RUN-> in PROG-Modus werden mitgezählt.
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
start: BOOL:=FALSE;
(*activates the instruction*)
datafield: ARRAY [0..63] OF INT:=[64(0)];
(*data field to be uploaded data from EEPROM*)
END_VAR
Wenn die Variable start von FALSE auf TRUE gesetzt wird, wird die Funktion ausgeführt.
Sie liest einen Block (= 64 Wörter) ab Startblock Nummer 0 aus dem EEPROM und schreibt die Information in das Datenfeld von datafield[0] bis datafield[63].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,F12_EPRD!,Instance,8,1,16,6,,?DEN?Ds1_Start?Ds2_Number?AENO?Cd_Start);
B(B_VARIN,,0,6,3,8,5,);
B(B_VARIN,,1,6,4,8,6,);
B(B_VAROUT,,datafield[0],16,3,18,5,);
B(B_CONTACT,,start,3,2,5,4,);
L(5,3,8,3);
L(1,3,3,3);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
LD |
start |
DF |
|
F12_EPRD |
0,1,datafield[0] |