Interpolazione lineare
Gli impulsi vengono emessi su due canali contemporaneamente sulla base dei parametri impostati nella DUT associata, in modo che il percorso per il raggiungimento della posizione target formi una linea retta. Gli impulsi vengono emessi dal canale specificato quando il flag di controllo per tale canale è FALSE e la condizione di esecuzione è TRUE.
Ingresso
Canale uscita ad impulsi:
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
Per l'interpolazione usare a coppie canale 1 e 2 oppure canale 2 e 3. Si può indicare solo 0 oppure 2 (per C14T: solo 0).
Ingresso/uscita
Indirizzo di partenza dell'area contenente la tabella dati
FPS, FP-X: F175_PulseOutput_Linear_DUT_0
FP0R: F175_PulseOutput_Linear_DUT_1
Utilizzare la seguente DUT predefinita: F175_PulseOutput_Linear_DUT_0
Nella DUT possono essere specificati i seguenti parametri:
I seguenti parametri per ogni asse vengono calcolati all'esecuzione dell'istruzione e memorizzati nell'area riservata ai risultati dei calcoli della DUT.
Caratteristiche dell’uscita ad impulsi
Valore target asse X (canale 0): 5000
Valore target asse Y (canale 2) (FP-X: canale 1): 2000
I due assi sono controllati in modo tale da ottenere un moto lineare fino alla posizione target.
FP-X: Mentre viene eseguita un'istruzione uscita ad impulsi e gli impulsi vengono emessi, il flag di controllo dell'uscita ad impulsi (p.es. sys_bIsPulseChannel0Active) del rispettivo canale è TRUE. Finché questo flag è TRUE non può essere eseguita nessun'altra istruzione uscita ad impulsi.
FPS: Il flag di controllo del contatore veloce (p.es. sys_bIsHscChannel0ControlActive) e il flag di controllo dell’uscita ad impulsi (p.es. sys_bIsPulseChannel0Active) vengono allocati allo stesso numero di flag interno speciale (p.es. R903A). Pertanto, quando viene eseguita un'istruzione contatore veloce o un'istruzione uscita ad impulsi, il flag di controllo del contatore veloce (p.es. sys_bIsHscChannel0ControlActive) e il flag di controllo dell'uscita ad impulsi (p.es. sys_bIsPulseChannel0Active) per il canale utilizzato sono TRUE. Finché questo flag è TRUE non può essere eseguita nessun’altra istruzione contatore veloce o istruzione uscita ad impulsi.
FPS: L’esecuzione dell’istruzione di controllo di interpolazione circolare F176_PulseOutput_Center imposta il flag controllo interpolazione circolare (sys_bIsCircularInterpolationActive) su TRUE. Lo stato di questo flag viene mantenuto fino a quando viene raggiunto il valore target (anche se la condizione di esecuzione non è più TRUE). Durante questo lasso di tempo non è possibile eseguire altre istruzioni uscita ad impulsi
FPS: Nei registri di sistema impostare un contatore veloce assegnato ad un canale di uscita ad impulsi su "Non utilizzato".
FP-X: Nei registri di sistema impostare "uscita ad impulsi" per il canale desiderato.
Si raccomanda vivamente di incorporare un'opzione di stop uscita impulsi nel proprio programma di posizionamento.
Utilizzare la seguente DUT predefinita: F175_PulseOutput_Linear_DUT_1
Nella DUT possono essere specificati i seguenti parametri:
I seguenti parametri per ogni asse vengono calcolati all'esecuzione dell'istruzione e memorizzati nell'area riservata ai risultati dei calcoli della DUT.
Caratteristiche dell’uscita ad impulsi
Valore target asse X (canale 0): 5000
Valore target asse Y (canale 1): 2000
Gli impulsi vengono emessi dall'asse X (canale 0) e dall'asse Y (canale 1), in modo tale che la velocità iniziale sia 500Hz, la velocità target 5kHz e il tempo di accelerazione e di decelerazione 300ms. I due assi sono controllati in modo tale da ottenere un moto lineare fino alla posizione target.
Gli impulsi vengono emessi utilizzando un duty ratio del 25%Con la tipologia di uscita ad impulsi “impulsi/direzione,” gli impulsi sono emessi all’incirca 300ms dopo che è stato emesso il segnale della direzione; contemporaneamente viene tenuto conto delle caratteristiche del motore.
L'emissione di impulsi si arresta una volta raggiunto il valore target.
Si raccomanda vivamente di incorporare un'opzione di stop uscita impulsi nel proprio programma di posizionamento.
Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.
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;