Rezeptur-Dateien: Hintergrundinformation und Dateistruktur
Die maximale Anzahl von Rezeptur-Dateien, die unterstützt werden, hängt vom Steuerungstyp ab. Die Anzahl der Datensätze pro Datei hängt von der eingesetzten Sicherheitssteuerung ab. Für eine SPLC 3000 class kann jede Rezeptur-Datei bis zu 128 Datensätze (Dateisektionen) mit jeweils maximal 64 Byte an Rezepturdaten enthalten.
Die folgende Tabelle listet den Umfang an Rezepturdaten für zwei Typen von Sicherheitssteuerungen auf:
Typ Sicherheits-SPS | Anzahl Rezeptur-Dateien | Gesamtmenge Rezepturdaten |
---|---|---|
SPLC 3000 class | 8 | 64 KByte (8 Dateien * 128 Datensätze * 64 Byte) |
SPLC 1000 class | 8 | 1 KByte (8 Dateien * 2 Datensätze * 64 Byte) |
Die Dateinamen für Rezeptur-Dateien lauten rcp_00x.svv mit x = 0 bis 8.
Rezeptur-Dateien enthalten sicherheitsvalidierte Werte (safety validated values, svv) mit verschiedenen Prüfsummen (siehe nachfolgenden Abschnitt "Struktur von Rezeptur-Dateien").
Struktur von Rezeptur-Dateien
Eine Rezeptur-Datei hat folgenden Aufbau:
Am Anfang der Datei befindet sich der Header, gefolgt von bis zu 128 Datensätzen (Sektionen) mit den eigentlichen Rezepturdaten. Jede Sektion hat zum Schutz der Daten ihre eigene CRC (DataSetCRC). Am Ende der Datei stehen eine Dateiprüfsumme (FileCRC) und eine Gesamtprüfsumme, die beide unten beschrieben sind. Die Anzahl der Datensätze pro Datei ist variabel (konfigurierbar) und hängt vom Typ der Sicherheitssteuerung ab.
Die folgende Grafik zeigt die maximale Dateigröße von 128 Datensätzen.
Header der Rezeptur-Datei
Der Datei-Header ist wie folgt aufgebaut:
- 4 Byte Projekt-CRC: Die Projekt-CRC der Applikation.Beim Lesen von Rezepturen mit dem Funktionsbaustein SF_RecipeRead kann eine Validierung der Projekt-CRC aktiviert werden, indem der Eingang CheckProjectCRC des betreffenden FB mit SAFETRUE belegt wird. Details hierzu finden Sie im Abschnitt "Fehlervermeidung" der SF_RecipeRead-Hilfe.Das Vergleichen der Projekt-CRC hilft dabei sicherzustellen, dass die zu lesende Rezeptur-Datei aus exakt demselben Applikationsprojekt (und auch derselben Version) geschrieben wurde.
Die Projektprüfsumme wurde beim Erzeugen des Projekts in PLCnext Engineer berechnet und dann in die Projektdatei geschrieben.
Der FB SF_RecipeWrite liest diese Prüfsumme aus der Projektdatei und schreibt sie in den Header der Rezeptur-Datei.
Falls beim SF_RecipeRead-FB der Eingang CheckProjectCRC auf SAFETRUE gesetzt ist, liest dieser die ProjectCRC aus dem Header der Rezeptur-Datei und vergleicht sie mit der ProjectCRC des aktuellen Projekts. - 32 Byte Projektname: Der Name der Applikation aus der die Datei geschrieben wurde.
- 64 Byte Seriennummer der Sicherheitssteuerung.Beim Lesen von Rezepturen mit dem Funktionsbaustein SF_RecipeRead kann eine Validierung der Seriennummer aktiviert werden, indem der Eingang CheckSerialNumber des betreffenden FB mit SAFETRUE belegt wird. Diese Validierung erkennt, ob die Rezepturdaten von einem Zielsystem gelesen wurden, für das die Rezeptur-Datei nicht geschrieben (erstellt) wurde. Details hierzu finden Sie im Abschnitt "Fehlervermeidung" der SF_RecipeRead-Hilfe.
- 28 Bytes reserviert für zukünftige Erweiterungen.
Dateisektionen (Datensätze) mit CRC
Jede Dateisektion (d.h. jeder Datensatz) in einer Rezeptur-Datei setzt sich wie folgt zusammen:
- 64 Byte Datensatz, bestehend aus 16 Werten à 4 Byte.
- 4 Byte Datensatz-CRCBeim Lesen von Rezepturen mit dem Funktionsbaustein SF_RecipeRead kann eine Validierung der Datensatz-CRC aktiviert werden, indem der Eingang CheckDataSetCRC des betreffenden FB mit SAFETRUE belegt wird. Entspricht die Prüfsumme nicht dem erwarteten Wert, werden die gelesenen Daten als ungültig betrachtet.Diese konfigurierbare Validierung hilft sicherzustellen, dass exakt der richtige Rezeptur-Datensatz gelesen wird. Unabhängig von dieser konfigurierbaren Validierung prüft der FB vor dem Lesen grundsätzlich die Konsistenz des Datensatzes, indem er die Datensatz-CRC neu berechnet und vergleicht.Details hierzu finden Sie im Abschnitt "Fehlervermeidung" der SF_RecipeRead-Hilfe.
Dateiprüfsumme (FileCRC) und interne Gesamtprüfsumme
An vorletzter Position in der Rezeptur-Datei steht die Dateiprüfsumme (FileCRC) mit einer Länge von 4 Byte. Die FileCRC wurde über den Datei-Header und alle Datensatzprüfsummen (DataSetCRCs) in den einzelnen Sektionen berechnet.
Beim Lesen von Rezepturen mit dem Funktionsbaustein SF_RecipeRead kann eine Validierung der Dateiprüfsumme (FileCRC) aktiviert werden, indem der Eingang CheckFileCRC des betreffenden FB mit SAFETRUE belegt wird. Entspricht die Prüfsumme nicht dem erwarteten Wert, werden die gelesenen Daten als ungültig betrachtet. Details hierzu finden Sie im Abschnitt "Fehlervermeidung" der SF_RecipeRead-Hilfe.
Diese konfigurierbare Validierung hilft sicherzustellen, dass exakt der richtige Datei gelesen wird.
Unabhängig von dieser konfigurierbaren Validierung prüft der FB vor dem Lesen grundsätzlich die Konsistenz der Datei, indem er die Gesamt-CRC, die am Dateiende gespeichert ist, neu berechnet und vergleicht. Diese Gesamtprüfsumme wird über alle Daten in der Datei, inklusive der oben genannten Dateiprüfsumme (FileCRC) berechnet. Sie ist in der Applikation nicht sichtbar und wird nur für interne Datenvalidierungen des FB verwendet.