Achsposition persistieren
Eine Achse, die über einen Absolutgeber verfügt, kann eine Position speichern, so dass sie nach einem Neustart der Steuerung ihre vorige Position behält. Eine Referenzfahrt wird unnötig. Die Funktionsbausteine SMC3_PersistPosition
und SMC3_PersistPositionLogical
bieten die Funktionalität zur Speicherung. Die nötigen Daten werden in SMC3_PersistPosition_Data
und SMC3_PersistPositionLogical_Data
gespeichert.
Der Ausgang bPositionStored
zeigt an, ob sich der Inhalt von PersistentData
geändert hat. Je nach Art des Persistierens geschieht dies unterschiedlich häufig.
Der vom Encoder persistierte Wertebereich muss am Eingang SMC_PersistPosition.maxPersistedValue
konfiguriert werden. Für Multi-Turn-Encoder wird der Wert auf 16#FFFFFFFF
gesetzt, für einen 12-Bit-Single-Turn-Encoder beispielsweise auf den Wert 2^12 = 4096.
Für weitere Informationen siehe: Datenpersistenz
Tipp
Die Persistierung der Instanz erfolgt über eine Deklaration als VAR_PERSISTENT
oder über den Persistence Managers des Application Composers.
Achsposition eines Multiturn-Absolutgebers mit realer Achse persistieren
Voraussetzung: Die Achse verfügt über einen Multiturn-Absolutgeber.
Verwenden Sie den Baustein SMC3_PersistPosition
um die Position der realen Achse zu persistieren. Das zugehörige Programm läuft in der Motion-Task.
Legen Sie eine Instanz des Funktionsbausteins
SMC3_PersistPosition
für die Achse an.pp: SM3_BASIC.SMC3_PersistPosition;
Instanzieren Sie eine persistente Datenstruktur des Typs
SMC3_PersistPosition_Data
.pp_Data: SM3_BASIC.SMC3_PersistPosition_Data1;
Erweitern Sie das Programm der Motion-Task so, dass dort ein Aufruf der
SMC3_PersistPosition
-Instanz implementiert ist.Aufruf implementiert in CFC:
Der Funktionsbaustein wird zyklisch mit der Motion-Task aufgerufen. Die
SMC3_PersistPosition
-Instanz führt während des Start-up-Vorgangs das Wiederherstellen der gespeicherten Position durch. Der Baustein speichert im Normalbetrieb die Istposition in die zugehörige Datenstruktur ab.
Achsposition eines Singleturn-Absolutgebers mit realen Achse persistieren
Voraussetzung: Die reale Achse verfügt über einen Singleturn-Absolutgeber.
Verwenden Sie den Funktionsbaustein SMC3_PersistPosition
um die Position der Achse zu persistieren. Das zugehörige Programm läuft in der Motion-Task. Die Position wird nur dann korrekt angezeigt, wenn die Achse zwischen Aus- und Einschalten der Steuerung keine oder nur eine kleine Distanz zurückgelegt hat (maximal die Hälfte der Singleturn-Distanz). Um das erreichen, können Sie beispielsweise eine mechanische Bremse verwenden. Wenn die Achse bei ausgeschalteter Steuerung eine größere Bewegung macht, erhält sie eine falsche Position. Eine Überprüfung durch den Baustein ist nicht möglich.
Legen Sie eine Instanz des Funktionsbausteins
SMC3_PersistPosition
für die Achse an.ppst_X: SM3_BASIC.SMC3_PersistPositionSinglturn;
Instanzieren Sie eine persistente Datenstruktur des Typs
SMC3_PersistPosition_Data
.ppst_Data_X: SMC3_PersistPositionSingleturn_Data;
Erweitern Sie das Programm der Motion-Task so, dass dort ein Aufruf der
SMC3_PersistPosition
-Instanz implementiert ist und ihr die persistente Datenstruktur vom TypSMC_PersistPosition_Data
übergeben wird.
Achsposition einer logischer Achse persistieren
Voraussetzung: Die Achse ist logisch.
Verwenden Sie den Funktionsbaustein SMC3_PersistPositionLogical
um die Position der logischen Achse zu persistieren. Das funktioniert nur, wenn die Position der übergeordneten realen Achse persistiert wurde. Die Position einer virtuellen Achse kann mit diesem Bausteinen nicht persistiert werden.
Legen Sie eine Instanz des Funktionsbausteins
SMC3_PersistPositionLogical
für die Achse an.ppl: SM3_BASIC.SMC3_PersistPositionLogical;
Instanzieren Sie eine persistente Datenstruktur des Typs
SMC3_PersistPositionLogical_Data
.ppl_Data: SMC3_PersistPositionLogical_Data;
Erweitern Sie das Programm der Motion-Task so, dass dort ein Aufruf der
SMC3_PersistPositionLogical
-Instanz implementiert ist und ihr die persistenten Daten vomTyp SMC3_PersistPositionLogical_Data
übergeben werden.