MCV_CamSwitch
Der FB MCV_CamSwitch realisiert den Ausgang eines nockengesteuerten Schalters, der einer Achse zugeordnet ist. Dabei ist der Bereich des Nockens frei parametrierbar.
Den FB-internen Berechnungen liegt ein Modulo-Koordinatensystem mit dem Wertebereich [0, 3600000] 0,1 µm bzw. 10-4 ° zugrunde.
Zusätzlich muss die Voraussetzung erfüllt sein, dass von der Achse je SPS-Zyklus nicht mehr als der halbe Modulowertebereich zurückgelegt wird.
Blockdiagramm
Parameter des FB
VAR_IN_OUT | ||
Variablenname | Datentyp | Beschreibung |
Axis | AXIS_REF | Achsreferenz |
VAR_INPUT | ||
Variablenname | Datentyp | Beschreibung |
Enable | BOOL | Aktiviert den nockengesteuerten Schalter. |
FirstOnPosition | LREAL | Position der Achse, bei der der Ausgang des nockengesteuerten Schalters von FALSE auf TRUE wechselt, wenn sich die Achse in positive Richtung bewegt. Standard-Einheit [0,1µm bzw. 10-4 °] |
LastOnPosition | LREAL | Position der Achse, bei der der Ausgang des nockengesteuerten Schalters von TRUE auf FALSE wechselt, wenn sich die Achse in positiver Richtung bewegt. Standard-Einheit [0,1µm bzw. 10-4 °] |
CompTime | LREAL | Kompensationszeit, um welche die Einschaltphase des Schalters vorgezogen oder verzögert wird. Standard-Einheit [1ms] |
PosType | INT | Auswahl ob Soll- oder Istposition der Achse zum Vergleich mit den Eingangsgrößen und zur Berechnung der durch die Kompensationszeit veränderten Einschalt-/Ausschaltposition herangezogen werden soll. 0: Sollposition der Achse (ACTIVE_POS) 1: Istposition der Achse (CURRENT_POS) |
VAR_OUTPUT | ||
Variablenname | Datentyp | Beschreibung |
Active | BOOL | Zeigt an, dass das der nockengesteuerte Schalter aktiv ist. |
State | BOOL | Ausgang des nockengesteuerten Schalters. Der Ausgang ist TRUE, wenn
|
Error | BOOL | Ist TRUE, wenn ein Fehler im FB auftritt |
ErrorID | WORD | Fehlerkennung |
Pulsed | BOOL | Dient zu Visualisierungszwecken. Wird der Ausgang „State“ TRUE, zeigt der Ausgang „Pulsed“ für 1s ebenfalls TRUE. |
Verhalten des FB:
- Eingabewerte für „FirstOnPosition“ und „LastOnPosition“, die kleiner als der untere Grenzwert des Modulo-Koordinatensystems sind, werden auf den unteren Grenzwert gesetzt. Eingabewerte, die größer als der obere Grenzwert sind, werden auf den oberen Grenzwert gesetzt. Dies erfolgt ohne Rückmeldung intern im FB.
- Die Vorgabe einer Kompensationszeit führt im FB zu einer Modifikation der durch „FirstOnPosition“ und „LastOnPosition“ definierten Schaltpositionen. Falls sich für die modifizierten Schaltpositionen Werte ergeben, die außerhalb des Wertebereichs des Modulo-Koordinatensystems liegen, werden diese auf Werte innerhalb des Wertebereichs umgerechnet. Dies erfolgt ohne Rückmeldung intern im FB.
- Die Modifikation der Schaltpositionen durch Vorgabe einer Kompensationszeit wird unmittelbar in dem SPS-Zyklus durchgeführt, in dem sie am Eingang „CompTime“ übergeben wurde und wirkt sofort in vollem Umfang.
- Die Vorgabe der Kompensationszeit „CompTime“ wirkt auf die „FirstOnPosition“ und „LastOnPosition“ gleichermaßen. Positive Werte für „CompTime“ führen dazu, dass sich der Ausgang „State“ zeitlich verzögert zum Erreichen einer Schaltposition ändert. Negative Werte führen dazu, dass sich der Ausgang „State“ vor Erreichen der Schaltposition ändert.
- Verhalten des Ausgangs „State“ des nockengesteuerten Schalters und der Lage der Positionen, die an die Eingänge „FirstOnPosition“ und „LastOnPosition“ übergeben werden. Die Achse bewegt sich dabei in positiver Richtung von unterer Grenze des Modulo-Koordinatensystems zu der oberen Grenze.
Fall 1: „FirstOnPosition“ < „LastOnPosition“
Fall 2: „FirstOnPosition“ > „LastOnPosition“
- Der FB berücksichtigt 2 Sonderfälle, die sich aus der Tatsache ergeben, dass es sich bei dem SPS-System um ein diskretes System handelt. Diese sind:
- Die Achsposition zum Zeitpunkt tn liegt vor der Einschaltposition, und zum Zeitpunkt tn+1 nach der Ausschaltposition. Der Schaltbereich ist also kleiner als der in einem SPS-Zyklus zurückgelegte Weg der Achse.
- Liegt zum Zeitpunkt tn die Achsposition vor der Einschaltposition, kann sich durch Vorgabe einer Kompensationszeit die Situation ergeben, dass die Achsposition zum Zeitpunkt tn+1 durch die Modifikation der Einschaltpunkte nach der Ausschaltposition liegt.
- Bei diesen Sonderfällen wird der Ausgang „State“ für mindestens einen SPS-Takt TRUE, obwohl innerhalb einer Umdrehung der Achse nicht detektiert wurde, dass sich die Achsposition zwischen den Schaltpositionen befunden hat.