FB_CX70xx_RW_EEPROM

FB_CX70xx_RW_EEPROM 1:

Der Baustein erlaubt das Schreiben von maximal 120 Byte in das EEPROM (Hardware) des CX70xx. Das EEPROM darf maximal 200-mal beschrieben werden. Der Speicher ist für das einmalige Schreiben gedacht.

Dieser Funktionsbaustein kann dafür verwendet werden, den CX70xx zu personalisieren. Das heißt, im einfachsten Fall schreiben Sie Ihre Firmenkennung in das EEPROM. Beim Start des CX70xx Programms lesen Sie den Inhalt des Speichers aus. Ist dieser zum Beispiel leer, können Sie das Programm nicht weiter ausführen, da es sich nicht mehr um Ihren originalen CX70xx handelt, den Sie programmiert haben.

Sollten Sie einen CX70xx gegen ein neues Gerät austauschen wollen, muss das EEPROM erneut von Ihnen geschrieben werden.

FB_CX70xx_RW_EEPROM 2: Eingänge

VAR_INPUT
    bExecute       : BOOL;         // rising edge triggers process with selected mode
    eMode          : E_CX70xx_EEPROM_Mode;    // select RW mode
    pSrcBuf        : PVOID;        // pointer to WRITE EEPROM data buffer
    cbSrcBufSize   : UINT;         // size of WRITE EEPROM data buffer (max.120 Bytes)
    pDstBuf        : PVOID;        // pointer to READ EEPROM data buffer
    cbDstBufSize   : UINT;         // max.size of READ EEPROM data buffer (max.120 Bytes)
END_VAR

Name

Typ

Beschreibung

bExecute

BOOL

Positive Flanke startet den Baustein.

eMode

E_CX70xx_EEPROM_Mode

ReadOnly: EEPROM Lesen
WriteOnly: EEPROM Schreiben
WriteAndRead: EEPROM Schreiben und im Anschluss Lesen

pSrcBuf

PVOID

Pointer auf den Datenpuffer, der geschrieben werden soll.

cbSrcBufLen

UINT

Länge der zu schreibenden Daten (maximal 120 Bytes)

pDstBuf

PVOID

Pointer auf den Datenpuffer, in den der Inhalt des EEPROM kopiert werden soll.

cbDstBufLen

UINT

Länge der zu lesenden Daten. (maximal 120 Bytes)
Beim Lesen muss die Längeninformation größer gleich der im EEPROM enthalten Daten sein.

FB_CX70xx_RW_EEPROM 3: Ausgänge

VAR_OUTPUT
    bBusy            : BOOL;         // FB is working
    bError           : BOOL;         // FB has an Error
    nErrorID         : UDINT;        (* Error Code
    If nErrorID=DEVICE_INVALIDACCESS the EEPROM write cycles reached max. value. 
    If nErrorID=DEVICE_INVALIDPARM the given pointer parameter is invalid/null. 
    If nErrorID=DEVICE_INVALIDSIZE the given buffer size is too small or too big.
    If nErrorID=DEVICE_SRVNOTSUPP probably the image version need to be updated to support this feature. *)
    nDataSizeEEPROM  : UINT;         // current size of (read) EEPROM data in bytes (max.120 Bytes)
    nWritesCycles    : UINT;         // already performed EEPROM write cycles (maximum possible = 200)
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

Der Baustein ist aktiv und arbeitet.

bError

BOOL

Der Baustein hat einen Fehler.

nErrorID

UDINT

ADS Fehler Code
Beispiele:

DEVICE_INVALIDACCESS: Die EEPROM Schreibzyklen haben den maximalen Wert erreicht. Das EEPROM kann nicht erneut beschrieben werden.

DEVICE_INVALIDPARM: Die zugewiesenen Pointer sind ungültig/NULL.

DEVICE_INVALIDSIZE: Die zugewiesene Puffergröße ist zu klein oder zu groß.

DEVICE_SRVNOTSUPP: Die Image-Version des CX70xx unterstützt dieses Feature nicht. Ein Update (>=35695) ist notwendig.

nDataSizeEEPROM

UINT

Aktuelle Größe in Bytes der gelesenen EEPROM Daten

nWritesCycles

UINT

Anzahl der noch zur Verfügung stehenden Schreibvorgänge

Entwicklungsumgebung

Zielplattform

Einzubindende SPS- Bibliotheken

TwinCAT v3.1.4024.26

CX70xx

Tc2_SystemCX (System) >= 3.4.8.0