IOF_SER_DRIVE_BackupEx

IOF_SER_DRIVE_BackupEx 1:

Der Funktionsbaustein "IOF_SER_DRIVE_BackupEx" erlaubt das Backup (Sichern) und Restore (Wiederherstellen) der Antriebsdaten (S- und P-Parameter) über die SPS in eine Binärdatei bzw. zurück in den Antrieb. Die Liste der zu sichernden S- und P-Parameterdaten wird standardmäßig dem Sercos-Parameter IDN192 entnommen. Backup und Restore erfordern den SERCOS-Parameter-Mode (Phase 2).

Wenn bStdBackupList = TRUE (Standard) ist, dann wird der Parameter IDN192 als Liste der zu sichernden Daten genommen.
Wenn bUserBackupList = TRUE ist, dann wird der die Parameterliste arrList als Liste der zu sichernden Daten genommen.
Anderenfalls wird IDN17 verwendet, die Liste aller Sercos-Parameter.

Restore erfordert eine Backup-Datei, die mit Parameter IDN192 oder mit einer Userparameterliste erstellt wurde. Einige Parameter der Liste IDN17 sind schreibgeschützt.

Backup und Restore können eine CRC16-CCITT und eine 16 bit Check-Summe erstellen und speichern diese in Parameter IDN142, wenn verfügbar. Die Option bCRCEnable ist standardmäßig deaktiviert (FALSE).

Intern werden Instanzen der Funktionsbausteine IOF_SER_IDN_Read, IOF_SER_IDN_Write, FB_FileOpen, FB_FileClose, FB_FileRead und FB_FileWrite benutzt.

Das Dateiformat der Backup-Datei ist in Backup-Dateiformat beschrieben.

Demoprojekt für Backup/Restore mit IOF_SER_DRIVE_BackupEx in Sample03.

VAR_INPUT

VAR_INPUT
    bCheck          : BOOL;
    bBackup         : BOOL;
    bRestore        : BOOL;
    bCRCEnable      : BOOL;
    bStdBackupList  : BOOL      := TRUE;
    bUserBackupList : BOOL;
    sNetId          : T_AmsNetId;
    nPort           : UINT;
    sComment        : T_MaxString;
    ePath           : E_OpenPath    := PATH_BOOTPATH;
    sPathName       : T_MaxString   := 'DRIVEPAR.BIN';
    tTimeout        : TIME;
    bIgnoreParamErr : BOOL;
END_VAR

bCheck: Über eine positive Flanke an diesem Eingang wird die Überprüfung per CRC und Checksumme aktiviert. CRC und Checksumme werden persistent und im Parameter IDN142 nach einem Backup oder Restore gespeichert. Wenn der Wert aus Parameter IDN142 und die persistenten Daten übereinstimmen wird bCheckOK auf WAHR gesetzt, anderenfalls wird bCheckOK auf FALSCH gesetzt.

bBackup: Über eine positive Flanke an diesem Eingang wird das Backup aktiviert.

bRestore: Über eine positive Flanke an diesem Eingang wird das Restore aktiviert.

bCRCEnable: Der CRC16-CCITT und die 16 bit Checksumme werden über bCRCEnable = TRUE (WAHR) aktiviert. Die CRC und die Checksumme werden in Parameter IDN142 gespeichert, wenn bCRCEnable = TRUE (WAHR).

bStdBackupList: Bestimmt, welche Parameterliste für das Backup benutzt wird. Standardmäßig wird IDN192 (bStdBackupList = TRUE) für das Backup benutzt, wenn bStdBackupList = FALSE (FALSCH) ist, dann wird die Liste aller Parameter IDN017 benutzt. Restore benötigt eine Backup-Datei, die mit der Liste IDN192 erzegt wurde.

bUserBackupList: Bestimmt, ob eine benutzerdefinerte Parameterliste arrList für das Backup benutzt wird. Standardmäßig wird IDN192 (bStdBackupList = TRUE) für das Backup benutzt, wenn bStdBackupList = FALSE (FALSCH) und bUserBackupList = TRUE ist, dann wird die Liste arrList benutzt. Restore benötigt eine Backup-Datei, die mit der Liste IDN192 oder einer benutzerdefinierten Parameterliste erzegt wurde.

sNetId: Hier kann die AmsNetId des TwinCAT-Rechners angegeben werden, auf dem das ADS-Kommando durchgeführt werden soll. Für den lokalen Rechner kann auch ein Leerstring angegeben werden.

nIDN: Beinhaltet die Sercos-Parameter-Nummer, auf die schreibend zugegriffen werden soll. Für S-Parameters muß nIDN zwischen 0 und 32767 liegen, für P-Parameters zwischen 32768 und 65535.

nPort: Die Port-Number nPort wird im TwinCAT System Manager während der Hardware-Konfiguration vergeben.

sComment: Ist ein Kommentar, der in den Datei-Header der Backup-Datei geschrieben wird.

ePath: Bestimmt den Pfad der Backup-Datei. Wenn ePath = PATH_BOOTPATH dann wird der TwinCAT BOOT-Pfad genommen, bei ePath = PATH_GENERIC wird der in sPathName spezifizierte Pfad genommen.

sPathName: Beinhaltet den Dateinamen (bei Verwendung des Boot-Pfades) bzw. den kompletten Pfad und Dateinamen bei Verwendung des generischen Pfades.

tTimeout: Gibt die Timeout-Zeit an, die bei der Ausführung des ADS-Kommandos nicht überschritten werden darf.

bIgnoreParamErr: Bestimmt, ob bei Parameterlese- oder Parameterschreibfehlern das Backup/Restore fortgeführt oder abgebrochen werden soll. Standardmäßig wird bei Fehlern abgebrochen (bIgnoreParamErr = FALSE). Ist das Ignorieren von Fehlern aktiviert (bIgnoreParamErr = TRUE), dann werden in der Liste der übersprungenen Parameter arrSkippedList die Parameternummer und die Fehlernummern hinterlegt.

VAR_IN_OUT

VAR_IN_OUT
    arrList         : ST_SercosParamList;
    arrSkippedList  : ST_SercosParamErrList;
END_VAR

arrList: Bei Standardbackup über IDN192 (bStdBackupList = TRUE) stehen in dieser Liste nach dem Backup die Backup-Parameter aus IDN192.
Bei benutzerdefiniertem Backup (bUserBackupList = TRUE und bStdBackupList = FALSE) müssen in dieser Liste vor dem Backup die Liste der zu sichernden Parameter stehen.
Bei Backup über IDN17 (bStdBackupList = FALSE und bStdBackupList = FALSE) stehen in dieser Liste nach dem Backup die Liste vorhandenen Parameter aus IDN17.

arrSkippedList: Enthält eine Liste der übersprungenen Parameter (die Parameternummer und die Fehlernummern).

Siehe Strukturdefinitionen unten.

VAR_OUTPUT

VAR_OUTPUT
    bBusy          : BOOL;
    bError         : BOOL;
    nErrId         : UDINT;
    bCheckOK       : BOOL;
    iSkippedParams : UINT;
    iHandledParams : UINT;
END_VAR

bBusy: Bei der Aktivierung des Funktionsbausteins wird dieser Ausgang gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

bError: Sollte ein ADS-Fehler bei der Übertragung des Kommandos erfolgen, dann wird dieser Ausgang gesetzt, nachdem der bBusy-Ausgang zurückgesetzt wurde.

nErrId: Liefert bei einem gesetzten ERR-Ausgang die ADS-Fehlernummer bzw. die spezifische Funktionsbaustein-Fehlernummer.

bCheckOk: Ist WAHR, wenn der Checksummen-Test erfolgreich war.

iSkippedParams: Enthält die Anzahl der übersprungenen Parameter (siehe arrSkippedList), falls das Ignorieren der Parameterfehler aktiv war (bIgnoreParamErr = TRUE).

iHandledParams: Enthält die Anzahl der erfolgreich gesicherten/wiederhergestellten Parameter.

Strukturdefinitionen

TYPE ST_SercosParamList :
STRUCT
    iActCount : UINT;
    iMaxCount : UINT;
    iList     : ARRAY [0..2047] OF UINT;
END_STRUCT
END_TYPE

iActCount: Ist die aktuelle Anzahl der Parameter einer Liste * 2. Sercos speichert hier die Anzahl der Bytes, eine Parameternummer besteht aus zwei Bytes, z.B. 6 bedeutet 3 Parameter.

iMaxCount: Ist die max. Anzahl der Parameter einer Liste * 2. Sercos speichert hier die Anzahl der Bytes, eine Parameternummer besteht aus zwei Bytes, z.B. 6 bedeutet 3 Parameter.

iList: Ist ein Feld von bis zu 2048 Parameternummern.

TYPE ST_SercosParamErrList :
STRUCT
    iActCount : UINT;
    iMaxCount : UINT;
    iList     : ARRAY [0..2047] OF UINT;
    iError    : ARRAY [0..2047] OF UDINT;
END_STRUCT
END_TYPE

iActCount: Ist die Anzahl der übersprungenen Parameter (hier bedeutet 3 = 3 Parameterfehler).

iMaxCount: Ist die Anzahl der übersprungenen Parameter (hier bedeutet 3 = 3 Parameterfehler).

iList: Ist ein Feld von bis zu 2048 Parameternummern, bei denen Zugriffsfehler auftraten.

iError: Ist ein Feld von bis zu 2048 Zugriffsfehlernummern.

spezifische Functionsbaustein- Fehlernummer

Beschreibung

0x1003

Falscher Parameter-Mode

0x1004

Falsche Parameterdatengröße

0x1005

Falscher Backup Parameter Typ

0x1006

Backup Parameterliste war nicht IDN 192 oder benutzerdefiniert

Voraussetzungen

Entwicklungsumgebung

Zielplattform

IO-Hardware

Einzubindende SPS-Bibliotheken

TwinCAT v2.8.0 Build > 735

PC (i386)

Sercans SCS-P ISA; Sercans SCS-P PCI;
Beckhoff FC750x PCI

TcIoFunctions.Lib

( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib werden automatisch eingebunden )