Tipp-Betrieb und Positionierung
Wenn der Positionierungstrigger-Eingang auf TRUE gesetzt wird, wird die zuvor festgelegte Zahl von Pulsen ausgegeben. Ehe der Sollwert erreicht ist und die Pulsausgabe endet, wird eine Abbremsung ausgeführt. Die Pulse werden vom angegebenen Kanal ausgegeben, wenn der Kontrollmerker für diesen Kanal FALSE und die Ausführungsbedingung TRUE ist.
Eingang
Anfangsadresse des Bereiches, der die Datentabelle enthält
F171_PulseOutput_Jog_Positioning_Type0_DUT oder F171_PulseOutput_Jog_Positioning_Type1_DUTPulsausgabekanal:0–3
Es gibt zwei verschiedene Betriebsarten:
Typ 0: Die Geschwindigkeit lässt sich nur innerhalb des für die Sollgeschwindigkeit festgelegten Bereichs ändern.
Typ 1: Die Sollgeschwindigkeit lässt sich einmal ändern, wenn der Positionierungstrigger-Eingang auf TRUE gesetzt wird.
Merkmale der Pulsausgabe
Die Pulsausgabefrequenz ändert sich mit der angegebenen Beschleunigungs- und Bremszeit.
Der Unterschied zwischen der Soll- und Anfangsgeschwindigkeit bestimmt die Steigung der Beschleunigungsrampe.
Der Unterschied zwischen der Soll- und Endgeschwindigkeit bestimmt die Steigung der Bremsrampe.
Nachdem der Positionierungstrigger-Eingang auf TRUE geschaltet hat, wird die Pulsausgabe fortgesetzt; dann setzt der Bremsvorgang ein und es erfolgt der Stopp, wenn der Sollwert erreicht ist.
Die Pulsausgabe wird durch einen der folgenden Vorgänge beendet:
Positionierungstrigger-Eingang auf TRUE setzen (die Pulsausgabe wird solange fortgesetzt, bis der Sollwert erreicht und der Bremsvorgang abgeschlossen ist): Der Positionierungstrigger lässt sich starten, indem Sie den Positionierungstrigger-Eingang auf TRUE setzen oder Bit 6 des Datenregisters, in dem der Steuercode für die Pulsausgabe gespeichert wird, von FALSE auf TRUE setzen (z.B. MOVE(16#140, sys_wHscOrPulseControlCode);
).
Signal für gebremsten Halt: Um einen gebremsten Halt auszuführen, setzen Sie Bit 5 des Datenregisters, in dem der Steuercode für die Pulsausgabe gespeichert wird von FALSE auf TRUE (z.B. MOVE(16#120, sys_wHscOrPulseControlCode);
). Wenn während der Beschleunigung das Signal für einen gebremsten Halt ausgelöst wird, wird der Bremsvorgang mit derselben Geschwindigkeit ausgeführt wie der normale Bremsvorgang, der von der Sollgeschwindigkeit ausgeht.
Not-Aus-Stopp ausführen: Um einen Not-Halt auszuführen, setzen Sie Bit 3 des Datenregisters, in dem der Steuercode für die Pulsausgabe gespeichert wird von FALSE auf TRUE (z.B. MOVE(16#108, sys_wHscOrPulseControlCode);
).
Während des Not-Aus-Stopps müssen sämtliche Pulsausgabefunktionen des verwendeten Kanals deaktiviert werden.
Verwenden Sie folgende, vordefinierte strukturierte Datentypen: F171_PulseOutput_Jog_Positioning_Type0_DUT
Im SDT lassen sich folgende Parameter festlegen:
Steuercode
Anfangs- und Restgeschwindigkeit
Sollgeschwindigkeit
Beschleunigungszeit
Bremszeit
Sollwert
Die Sollgeschwindigkeit lässt sich während der Pulsausgabe ändern.Sollgeschwindigkeit während der Pulsausgabe ändern
Sollgeschwindigkeit wird nicht geändert: |
Sollgeschwindigkeit wird geändert: |
Anfangs- und Restgeschwindigkeit
Sollgeschwindigkeit
Sollwert
Beschleunigungszeit
Bremszeit
Ausführungsbedingung
Positionierungstrigger-Eingang
Kontrollmerker für Pulsausgabe
Die Geschwindigkeit kann nur geändert werden, wenn die Ausführungsbedingung kontinuierlich TRUE ist.
Wenn für die Sollgeschwindigkeit ein höherer Wert als 50kHz festgelegt wurde, erfolgt eine Korrektur auf 50kHz.
Wenn der Istwert während der Beschleunigung den Beschleunigungswert überschreitet (z.B. sys_diPulseChannel0AccelerationForbiddenAreaStartingPosition), wird die Beschleunigung gestoppt.
Die Bremsgeschwindigkeit kann nicht unter der korrigierten Restgeschwindigkeit liegen.
Eine Änderung der Sollgeschwindigkeit ist nicht möglich, wenn der Befehl innerhalb eines Interrupt-Programms ausgeführt wird.
Verwenden Sie folgende, vordefinierte strukturierte Datentypen: F171_PulseOutput_Jog_Positioning_Type1_DUT
Im SDT lassen sich folgende Parameter festlegen:
Steuercode
Anfangs- und Restgeschwindigkeit
Sollgeschwindigkeit1
Beschleunigungszeit
Sollgeschwindigkeit2
Wechselzeit
Bremszeit
Sollwert
Sollgeschwindigkeit 1 < Sollgeschwindigkeit 2: |
Sollgeschwindigkeit 1 > Sollgeschwindigkeit 2: |
Anfangs- und Restgeschwindigkeit
Sollgeschwindigkeit
Sollgeschwindigkeit
Sollwert
Beschleunigungszeit
Wechselzeit
Bremszeit
Ausführungsbedingung
Positionierungstrigger-Eingang
Nachdem der Positionierungstrigger-Eingang auf TRUE schaltet, steigt oder sinkt die Pulsausgabefrequenz innerhalb der festgelegten Wechselzeit auf den Sollwert 2. Weitere Sollwertänderungen sind nicht möglich. Der Positionierungstrigger-Eingang wird nicht berücksichtigt, wenn er während der Beschleunigung eingeschaltet wird.
Wenn Sie Programme, die diesen Befehl verwenden, im RUN-Modus bearbeiten (Online-Editieren), wird die Pulsausgabe beendet.
Wenn sowohl das Hauptprogramm als auch das Interrupt-Programm Code für denselben Kanal enthalten, dürfen die Programme nicht gleichzeitig ausgeführt werden.
Während der Ausführung eines Pulsausgabefehls und der Ausgabe von Pulsen steht der Kontrollmerker "Pulsausgabe" des entsprechenden Kanals (z.B. sys_bIsPulseChannel0Active) auf TRUE. Solange der Merker auf TRUE steht, kann kein anderer Pulsausgabebefehl ausgeführt werden.
Positionierungstrigger-Eingang (X0, X1, X2, X3) im Systemregister setzen 402.
Der Positionierungstrigger-Eingang wird nur erkannt, wenn eine steigende Flanke (TRUE) anliegt.
Der Befehl kann nicht initiiert werden, wenn das Signal für einen gebremsten Halt ausgelöst wurde.
Um nach dem Stopp des Betriebs einen Neustart auszuführen, muss die Ausführungsbedingung zunächst auf FALSE und dann wieder auf TRUE gesetzt werden.
Es ist unbedingt empfehlenswert, die Möglichkeit eines erzwungenen Stopps in Ihrem Positionierprogramm vorzusehen.
Der Status des Kontrollmerkers für den schnellen Zähler oder den Pulsausgang kann sich innerhalb eines Zyklus ändern.
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
Start: BOOL:=FALSE;
dutJog: F171_PulseOutput_Jog_Positioning_Type0_DUT:=dwControlCode := 16#010,
diInitialAndFinalSpeed := 1000,
diTargetSpeed := 7000,
diAccelerationTime := 300,
diDecelerationTime := 450,
diTargetValue := 10000;
(*Digit3: 0=Pulse output
Digit2: 1=Fixed
Digit0: 0=CW/CCW2*)
diInitialAndFinalSpeed: DINT:=1000;
@'': @'';
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_F,E_MOVE!,Instance,13,0,19,4,,?DEN?D?AENO?C);
B(B_VARIN,,diInitialAndFinalSpeed,11,2,13,4,);
B(B_VAROUT,,dutJog.diInitialAndFinalSpeed,19,2,21,4,);
B(B_CONTACT,,Start,6,1,8,3,);
L(1,2,6,2);
L(8,2,13,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_F,F171_PulseOutput_Jog_Positioning!,Instance,8,0,24,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutJog,6,2,8,4,);
B(B_VARIN,,0,6,3,8,5,);
B(B_CONTACT,,Start,2,1,4,3,);
L(1,2,2,2);
L(4,2,8,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF (Start) then
dutJog.diInitialAndFinalSpeed:=diInitialAndFinalSpeed;
END_IF;
IF (Start) then
F171_PulseOutput_Jog_Positioning(s_dutDataTable := dutJog, 0);
END_IF;