FB_CX70xx_RW_EEPROM
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.
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 |
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) |
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 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 |