F12_EPRD

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.

Parameter

Eingang

EN (BOOL)

Aktivierung der Funktion (bei EN = TRUE, wird die Funktion bei jedem SPS-Zyklus abgearbeitet)

s1_Start (DWORD, DINT, UDINT, DATE, TOD, DT)

EEPROM Startblock-Nummer

s2_Number (DWORD, DINT, UDINT, DATE, TOD, DT)

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

ENO (BOOL)

Wenn die Funktion ausgeführt wurde, wird ENO auf TRUE gesetzt. Das ist nützlich, um mehrere Funktionen mit EN-Funktionalität zu kaskadieren

d_Start (WORD, INT, UINT)

DT-Anfangsadresse für die Datenspeicherung

SPS-spezifische Daten

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

Anmerkung

Stromausfall und Wechsel von RUN-> in PROG-Modus werden mitgezählt.

Beispiel

POE-Kopf

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

POE-Rumpf

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].

KOP-Rumpf

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

AWL-Rumpf

LD

start

DF

F12_EPRD

0,1,datafield[0]

Letzte Änderung am: 2021-07-28Feedback zu dieser SeitePanasonic Hotline