Operazione JOG
Questa istruzione è utilizzata per l'operazione JOG. Il numero di impulsi impostato viene inviato in uscita dopo che l'ingresso per inizio controllo di posizione viene portato a TRUE. Prima che il valore target venga raggiunto e che l'uscita ad impulsi si fermi viene effettuata una decelerazione. Gli impulsi vengono emessi dal canale specificato quando il flag di controllo per tale canale è FALSE e la condizione di esecuzione è TRUE.
Ingresso
Indirizzo di partenza dell'area contenente la tabella dati
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
Canale uscita ad impulsi:
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
Utilizzare la seguente DUT predefinita: F172_PulseOutput_Jog_Type0_DUT_0 (Modalità senza confronto con valore target) o F172_PulseOutput_Jog_Type1_DUT_0 (Modalità raggiungimento del valore target)
Nella DUT possono essere specificati i seguenti parametri:Caratteristiche dell’uscita ad impulsi
La frequenza e il valore target possono essere modificati in ogni scansione. Il codice di controllo, tuttavia, non può essere modificato durante l'esecuzione dell'istruzione.Selezionate una delle due diverse modalità operative:
Modalità senza confronto con valore target (tipo 0):
Modalità raggiungimento del valore target (tipo 1):
L'uscita ad impulsi si arresta una volta raggiunto il valore target. Impostare questa modalità nel codice di controllo e specificare il valore target (un valore assoluto) nella DUT. (FPSV1.4 o superiore, FP-X)
Informazione generale di programmazione
Non appena si inizia a modificare un programma online (ossia in modalità RUN) utilizzando questa istruzione, l’emissione di impulsi si arresta.
Se sia il programma principale sia il programma di interrupt contengono un codice per lo stesso canale, essi non devono poter esser eseguiti contemporaneamente.
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.
Se l'esecuzione dell'istruzione viene avviata con un valore di frequenza non valido, si verifica un errore di funzionamento. Se la frequenza viene modificata in un valore non valido durante l'esecuzione dell'istruzione, l'emissione di frequenza verrà regolata al valore minimo o massimo dell'intervallo ammissibile.
Si raccomanda vivamente di incorporare un'opzione di stop uscita impulsi nel proprio programma di posizionamento.
Utilizzare la seguente DUT predefinita: F172_PulseOutput_Jog_Type0_DUT_1 (Modalità senza confronto con valore target) o F172_PulseOutput_Jog_Type1_DUT_1 (Modalità raggiungimento del valore target)
Nella DUT possono essere specificati i seguenti parametri:
Caratteristiche dell’uscita ad impulsi
Selezionate una delle due diverse modalità operative:
Modalità senza confronto con valore target (tipo 0):
Finché la condizione di esecuzione è TRUE l'uscita ad impulsi avviene secondo i valori impostati nella DUT.Uno stop decelerato inizia ogni volta che la condizione di esecuzione è FALSE.
Modalità raggiungimento del valore target (tipo 1):
L'uscita ad impulsi si arresta una volta raggiunto il valore target. Impostare questa modalità nel codice di controllo e specificare il valore target (un valore assoluto) nella DUT.Uno stop decelerato viene effettuato quando il valore target è stato raggiunto. La decelerazione è effettuata entro il tempo di decelerazione specificato.
Cambiamento della velocità target durante l’uscita ad impulsi
La velocità di decelerazione non può essere inferiore alla velocità finale corretta.
Informazione generale di programmazione
Non appena si inizia a modificare un programma online (ossia in modalità RUN) utilizzando questa istruzione, l'emissione di impulsi si arresta.
Se sia il programma principale sia il programma di interrupt contengono un codice per lo stesso canale, essi non devono poter esser eseguiti contemporaneamente.
Si raccomanda vivamente di incorporare un'opzione di stop uscita impulsi nel proprio programma di posizionamento.
Modalità di programmazione in RUN
Scrittura del codice di controllo dell'uscita impulsi
F172_PulseOutput_Jog_Type0_DUT_0
F172_PulseOutput_Jog_Type1_DUT_0
F172_PulseOutput_Jog_Type0_DUT_1
F172_PulseOutput_Jog_Type1_DUT_1
PulseOutput_Jog_TargetValue_FB
Tabella delle variabili di sistema: indirizzi/valori e disponibilità
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_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;