Allgemeines NOV-RAM
Non-Volatile Random Access Memory (im Allgemeinen abgekürzt bezeichnet als NOVRAM, NV-RAM oder NOV-RAM) ist ein spezieller Typ von Speicherbaustein, der prinzipbedingt zyklisch beschrieben werden darf, bei dem aber trotzdem, bei auftretendem externen Spannungsausfall, der letztgültige Dateninhalt im internen ROM-Bereich gesichert wird. Ein im NOVRAM integrierter Kondensator liefert hierbei die Energie die nötig ist, um bei Ausfall der extern angelegten Spannung den Inhalt des, jeweils ebenfalls im NOVRAM integrierten, RAM-Bereichs in den ROM-Bereich umzukopieren. Die Applikation (in diesem Fall TwinCAT) schreibt zyklisch nur in den RAM-Bereich des IC's.
Um die optionale NOV-RAM-Erweiterung der Beckhoff Feldbuskarten (z.B. FC3101-0002 / FC3102-0002, FC3151-0002,FC5101-0002 / FC5102-0002, FC5151-0002, FC5201-0002 / FC5202-0002, FC5251-0002, FC7551-0002 ) unter TwinCAT nutzen zu können, muss ein zusätzliches E/A-Gerät, zu finden im Bereich E/A-Geräte | Verschiedenes, als "Allgemeines DP-/NOV-RAM " eingebunden werden.
Bei den CX1100-000x Netzteilmodulen aus der Beckhoff CX10xx-Serie, wird der stets vorhandene, hier 8 kByte große, NOVRAM-Baustein automatisch beim Einlesen erkannt.
Bei dem CX900x wird der stets vorhandene, hier 128 kByte große, NOVRAM-Baustein, automatisch beim Einlesen erkannt.
Des Weiteren unterstützt die unten beschriebene Vorgehensweise auch die Mini-PCI NOVRAM Module mit den Bestellnummern C9900-R230, C9900-R231 und C9900-R232.
Nur bei TwinCAT 2.8 Ein Schreiben von Daten auf angefügte und verknüpfte Ausgangsvariablen per SPS E/A-Auffrischung, ohne die Nutzung der SPS-Funktionsbausteine, hätte bei Systemstop ein Zu-Nullschreiben der jeweiligen Datenbereiche im NOVRAM zur Folge. Siehe hierzu auch: Konfigurationsbeispiel fürTwinCAT 2.8 |
Konfigurationsbeispiel (TwinCAT 2.9/2.10):
Unter anderem bei der Projektierung von CX-Steuerungen und anderen Embedded -Geräten (C69xx, CP62xx, CP66xx) ist es wichtig, dass gewisse Betriebsdaten bei einem Neustart erhalten bleiben. Beim CX ist in diesem Fall die NOVRAM-Unterstützung besonders wichtig, da dort oftmals keine USV (optional: CX1100-0910, CX1100-0920) verwendet wird. Neu unter TwinCAT 2.9 ist, dass keine SPS-Funktionsbausteine zum Lesen und Schreiben, und damit zur Synchronisation von Neustart-überlebenden SPS-Variablenwerten (Anmerkung: Der Begriff "persistent" ist hier absichtlich nicht gewählt worden), benötigt werden. Diese Funktionalität kann auch mit den FCxxxx-0002 Feldbuskarten genutzt werden.
Der nachfolgende Dialog zeigt die Einstellungen, welche nötig sind, um vom I/O-Treiber eine Synchronisation mit ausgewählten SPS-Ausgangsvariablen zu ermöglichen.
Adresse: Die hier zu definierende Adresse wird bei einem Online-Suchen der Geräte automatisch vergeben, ebenso wie die Größe ("Länge") des gefundenen NOVRAM Bausteins.
Auto Init linked PLC Outputs: Die Checkbox muss bei der Einbindung remanenter, d.h. mit der SPS bei Neustart synchronisierter Daten, aktiviert sein.
Vorab werden unter "Ausgänge" per "Variable einfügen..." im Baum in passender Größe definierten Ausgangsvariablen (im oberen Fall sind dies die Array-Variablen "Betriebsdaten1" und "Betriebsdaten2") und - ggfs. an passender Adresse im NOVRAM - mit Ausgangsvariablen der SPS verknüpft. Diese werden automatisch bei einem Systemstart bzw. nach einem Bootvorgang und folgender Aktivierung des Bootprojekts, mit den zuletzt gültigen Variablen aus dem NOVRAM synchronisiert (also vorinitialisiert). Das SPS-Programm wird dadurch nach jedem Neustart mit zuletzt gültigen Variablenwerten aus dem NOVRAM fortgeführt.
Eine spezielle Deklaration der Variablen in der SPS ist nicht notwendig (außer das man sie natürlich als lokierte Ausgangsvariablen deklarieren muß, z.B. als AT %Q* ). Speziell eine Deklaration als VAR xxx PERSISTENT oder VAR xxx RETAIN, ist in diesem Fall nicht zulässig!
Export Data to Disk: Schreibt den aktuellen Inhalt des NOVRAM Bausteins - zur besseren Übersicht unterteilt in 1k (1024 Byte) große Blöcke - in eine XML-Datei auf einen auszuwählenden Datenträger. Für diese Schreibroutine muß sich das gerade aktive Zielsystem zwingend im Konfigurationsmodus ("Config Mode") befinden.
Import Data from Disk: Liest Daten einer zuvor erstelten NOVRAM XML-Datei ein und schreibt die Dateiinhalt in den jeweils deklarierten Adressbereich des NOVRAM-Bausteins. Da die Daten in 1k große Blöcke unterteilt sind, kann man auch eigene Konfigurationsdateien erstellen, welche alle oder nur einen Teil der 1k Blöcke enthalten, um, im zweitgenannten Fall z.B. nur einen Teilbereich eines NOVRAMs mit Ausgangsdaten herstellerseitig vorzubelegen. Ein Blick in eine selbstexportierte NOVRAM XML-Datei verdeutlicht die Verwendungsmöglichkeiten!
Konfigurationsbeispiel für TwinCAT 2.8:
Im Gegensatz zu einer Konfiguration des Systems mit einer gewöhnlichen DP-RAM Karte muss hier beachtet werden, dass die zu sichernden Daten nicht per E/A-Variablen unterhalb des Geräts zu konfigurieren sind, sondern in diesem Fall per ADS-Kommando direkt zu dem NOV-RAM Baustein auf der Feldbuskarte geschrieben werden. Dies bedeutet, dass im Normalfall keine Variablen unterhalb von "Eingänge" oder "Ausänge" (siehe dazu auch nachfolgende Abbildung) konfiguriert und verknüpft werden müssen, um Daten im NOVRAM der Karte sichern zu können. Das Schreiben der Daten darf hierbei prinzipbedingt auch zyklisch geschehen.
Nachfolgend ein Beispiel einer möglichen Konfiguration allerdings ohne die notwendigerweise korrekt einzustellende PCI-Adresse und sonstiger PCI Geräteinformationen.
Die Adressen und Längenangaben, die hier anzugeben sind, entnehmen sie bitte der bereits erfolgten Feldbuskartenkonfiguration (im obigen Fall ist dies die FC3101-0002), bzw. ermitteln Sie diese mit Hilfe der Schaltfläche:
... Suchen: Hierüber wird die Adresse der PCI-Karte entsprechend der Vendor ID, Device ID und der „Base Address“ gesucht.
Weitere Details zu den dabei ermittelten Werten können der Beschreibung der jeweiligen Karte entnommen werden.
Zugriff auf das NOV-RAM durch die SPS-Funktionsbausteine:
Mit Hilfe des Funktionsbausteins "FB_NovRamReadWrite", welcher standardmäßig in der Bibliothek "TcIOFunctions.lib" ab der TwinCAT Version 2.8 > Build 722 mitinstalliert wird, kann lesend bzw. schreibend auf den NOVRAM-Baustein der Beckhoff Feldbuskarte zugegriffen werden. Wichtig ist hierbei die TwinCAT System Manager Geräte-ID des NOV-RAM Gerätes (im nachfolgenden Beispiel zum Beispiel die ID 2). Ein Auslesen der Geräte-ID per Name ist hierbei auch möglich. Siehe hierzu auch: "IOF_GetDeviceIDByName". Nähere Details hierzu entnehmen Sie bitte der Bibliotheksbeschreibung.