Linearinterpolation
Durch eine zweikanalige Pulsausgabe wird eine geradlinige Bewegung erzeugt. Die Parameter für die Pulsausgabe werden in einem SDT festgelegt. Die Pulse werden vom angegebenen Kanal ausgegeben, wenn der Kontrollmerker für diesen Kanal FALSE und die Ausführungsbedingung TRUE ist.
Eingang
Pulsausgabekanal:
FP-XH C30 T/P: 0–3
FP-XH C60 T/P: 0–5
FPS: 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
Für die Interpolation verwenden Sie paarweise Kanal 0 und 1 oder Kanal 2 und 3 Sie können nur 0 oder 2 angeben (für C14T: nur 0).
Ein-/Ausgang
Anfangsadresse des Bereiches, der die Datentabelle enthält
FPS, FP-X: F175_PulseOutput_Linear_DUT_0
FP0R: F175_PulseOutput_Linear_DUT_1
Verwenden Sie folgende, vordefinierte strukturierte Datentypen: F175_PulseOutput_Linear_DUT_0
Im SDT lassen sich folgende Parameter festlegen:
Die folgenden Parameter für jede Achse werden bei der Befehlsausführung berechnet und im Speicherbereich für Rechenergebnisse des SDT gespeichert.
Merkmale der Pulsausgabe
Sollwert (x-Achse) (Kanal 0): 5000
Sollwert (y-Achse) (Kanal 2) (FP-X: Kanal 1): 2000
Beide Achsen werden so gesteuert, dass eine lineare Bewegung bis zur Sollposition erzielt wird.
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".
Es ist unbedingt empfehlenswert, die Möglichkeit eines erzwungenen Stopps in Ihrem Positionierprogramm vorzusehen.
Verwenden Sie folgende, vordefinierte strukturierte Datentypen: F175_PulseOutput_Linear_DUT_1
Im SDT lassen sich folgende Parameter festlegen:
Die folgenden Parameter für jede Achse werden bei der Befehlsausführung berechnet und im Speicherbereich für Rechenergebnisse des SDT gespeichert.
Merkmale der Pulsausgabe
Sollwert (x-Achse) (Kanal 0): 5000
Sollwert (y-Achse) (Kanal 1): 2000
Die Pulse werden von Kanal 0 (x-Achse) und Kanal 1 (y-Achse) so ausgegeben, dass die Anfangsgeschwindigkeit 500Hz, die Sollgeschwindigkeit 5kHz, und die Beschleunigungs-/Bremszeit 300ms beträgt. Beide Achsen werden so gesteuert, dass eine lineare Bewegung bis zur Sollposition erzielt wird.
Die Pulse werden mit einem Puls-Pausenverhältnis von 25% ausgegeben.Bei der Verwendung der Methode Pulsausgabe/Richtungsanzeige werden die Pulse ca. 300ms nach der Ausgabe des Richtungsanzeigesignals ausgegeben; das Verhalten des Motorantriebs wird gleichzeitig berücksichtigt.
Die Pulsausgabe stoppt, wenn der letzte Sollwert erreicht ist.
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
bTrigger: BOOL:=FALSE;
dutLinearData: F175_PulseOutput_Linear_DUT_0:=dwControlCode := 16#1000,
diInitialAndFinalSpeed := 500,
diMaximumSpeed := 5000,
diAccelerationAndDecelerationTime := 300,
diTargetValue_X := 5000,
diTargetValue_Y := 2000;
(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 0=Fixed
Digit 1: 0=Relative value control
Digit 0: 0=CW/CCW
*)
@'': @'';
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_CONTACT,,bTrigger,4,2,6,4,R);
B(B_VARIN,,dutLinearData,11,4,13,6,);
B(B_VARIN,,0,11,3,13,5,);
B(B_F,F175_PulseOutput_Linear!,Instance,13,1,28,6,,?DEN?Hn_iPulseOutputChannel?Ds_dutDataTable?As_dutDataTable?AENO);
L(1,3,4,3);
L(6,3,13,3);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(bTrigger) then
F175_PulseOutput_Linear(n_iPulseOutputChannel := 0,
s_dutDataTable := dutLinearData);
END_IF;