Tipp-Betrieb
Dieser Befehl wird für den Tipp-Betrieb verwendet. 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
FP-S, FP-X:
F172_PulseOutput_Jog_Type0_DUT_0
F172_PulseOutput_Jog_Type1_DUT_0
FP0R:
F172_PulseOutput_Jog_Type0_DUT_1
F172_PulseOutput_Jog_Type1_DUT_1
Pulsausgabekanal:
FP-XH C30 T/P: 0–3
FP-XH C60 T/P: 0–5
FP-S: 0,2
FP-X R: 0,1
FP-XC14T: 0,1,2
FP-X C30T/C60T: 0,1,2,3
FP0R: 0,1,2,3
Verwenden Sie folgende, vordefinierte strukturierte Datentypen: F172_PulseOutput_Jog_Type0_DUT_0 (Ohne Sollwertvergleich) oderF172_PulseOutput_Jog_Type1_DUT_0 (Mit Sollwertvergleich)
Im SDT lassen sich folgende Parameter festlegen:Merkmale der Pulsausgabe
Die Frequenz und der Sollwert können in jedem Zyklus geändert werden. Der Steuercode kann jedoch nicht während der Befehlsausführung geändert werden.Es gibt zwei verschiedene Betriebsarten:
Ohne Sollwertvergleich (Typ 0):
Mit Sollwertvergleich (Typ 1):
Die Pulsausgabe stoppt, wenn der Sollwert erreicht ist. Setzen Sie diesen Modus im Steuercode und geben Sie den Sollwert (absoluter Wert) im SDT an. (FPSV1.4 oder neuer, FP-X)
Allgemeine Programmierhinweise
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.
FP-X: 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.
FPS: Der Kontrollmerker "Schneller Zähler" (z.B. sys_bIsHscChannel0ControlActive) und der Kontrollmerker "Pulsausgabe" (z.B. sys_bIsPulseChannel0Active) sind derselben Sondermerker-Nummer zugeordnet (z.B. R903A). Daher ist sowohl der Kontrollmerker für den schnellen Zähler (z.B. sys_bIsHscChannel0ControlActive) als auch der Kontrollmerker für die Pulsausgabe (z.B. sys_bIsPulseChannel0Active) für den betreffenden Kanal TRUE, wenn ein schneller Zählerbefehl oder ein Pulsausgabebefehl ausgeführt wird. Solange dieser Merker auf TRUE steht, kann kein anderer schneller Zählerbefehl oder Pulsausgabebefehl ausgeführt werden.
FPS: Wennn der Kreisinterpolationsbefehl F176_PulseOutput_Center ausgeführt wird, wird der Kontrollmerker "Kreisinterpolation" (sys_bIsCircularInterpolationActive) auf TRUE gesetzt, Der Status dieses Merkers bleibt erhalten, bis der Zielwert erreicht ist (auch wenn die Ausführungsbedingung nicht mehr TRUE ist). In dieser Zeit lassen sich keine anderen Pulsausgabebefehle ausführen.
FPS: Setzen Sie einen schnellen Zähler, der einem Pulsausgabekanal zugeordnet ist, in den Systemregistern auf "Unbenutzt".
FP-X: Setzen Sie den gewünschten Kanal im Systemregister auf "Pulsausgabe".
Wird die Befehlsausführung mit einem ungültigen Frequenzwert gestartet, tritt ein Operationsfehler auf. Wenn die Frequenz während der Befehlsausführung einen ungültigen Wert erhält, wird die ausgegebene Frequenz entweder auf den untersten oder obersten Wert des zulässigen Bereichs eingestellt.
Es ist unbedingt empfehlenswert, die Möglichkeit eines erzwungenen Stopps in Ihrem Positionierprogramm vorzusehen.
Verwenden Sie folgende, vordefinierte strukturierte Datentypen: F172_PulseOutput_Jog_Type0_DUT_1 (Ohne Sollwertvergleich) oder F172_PulseOutput_Jog_Type1_DUT_1 (Mit Sollwertvergleich)
Im SDT lassen sich folgende Parameter festlegen:
Merkmale der Pulsausgabe
Es gibt zwei verschiedene Betriebsarten:
Ohne Sollwertvergleich (Typ 0):
Solange die Ausführungsbedingung TRUE ist, erfolgt die Pulsausgabe entsprechend den Werten im strukturierten Datentyp.Ein gebremster Halt beginnt, sobald die Ausführungsbedingung FALSE ist.
Mit Sollwertvergleich (Typ 1):
Die Pulsausgabe stoppt, wenn der Sollwert erreicht ist. Setzen Sie diesen Modus im Steuercode und geben Sie den Sollwert (absoluter Wert) im SDT an.Wenn der Sollwert erreicht ist, wird ein gebremster Halt ausgeführt. Der Bremsvorgang wird in der angegebenen Bremszeit durchgeführt.
Sollgeschwindigkeit während der Pulsausgabe ändern
Die Bremsgeschwindigkeit kann nicht unter der korrigierten Restgeschwindigkeit liegen.
Allgemeine Programmierhinweise
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.
Es ist unbedingt empfehlenswert, die Möglichkeit eines erzwungenen Stopps in Ihrem Positionierprogramm vorzusehen.
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_EXTERNAL
bActivateJog: BOOL:=FALSE;
END_VAR
VAR
dutJog: F172_PulseOutput_Jog_Type0_DUT_0:=dwControlCode := 16#1110;
(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 1=Frequency range 48Hz-100kHz
Digit 1: 1=Incremental counting
Digit 0: 0=CW*)
diSpeed: DINT:=300;
@'': @'';
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 4 ;
NETWORK_BODY
B(B_CONTACT,,bActivateJog,4,1,6,3,);
B(B_F,E_MOVE!,Instance,16,0,22,4,,?DEN?D?AENO?C);
B(B_VARIN,,diSpeed,14,2,16,4,);
B(B_VAROUT,,dutJog.diSpeed,22,2,24,4,);
L(1,2,4,2);
L(6,2,16,2);
L(1,0,1,4);
END_NETWORK_BODY
END_NET_WORK
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,bActivateJog,4,1,6,3,);
B(B_VARIN,,dutJog,14,2,16,4,);
B(B_VARIN,,0,14,3,16,5,);
B(B_F,F172_PulseOutput_Jog!,Instance,16,0,29,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
L(1,2,4,2);
L(6,2,16,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
(bActivateJog) then
dutJog.diSpeed:=diSpeed;
END_IF;
IF (bActivateJog) then
F172_PulseOutput_Jog(s_dutDataTable := dutJog, 0);
END_IF;