F172_PulseOutput_Jog

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.

Parametri

Ingresso

s_dutDataTable

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

n_iPulseOutputChannel* (costante decimale)

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

Descrizione per FP-Sigma, FP-X

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:
  • Codice di controllo
  • Frequenza
  • Valore target

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):

    Finché la condizione di esecuzione è TRUE l'uscita ad impulsi avviene secondo i valori impostati nella DUT.
    1.  (1) Condizione di esecuzione
    2.  (2) Uscita impulsi CW
  • 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)

    1.  (1) Condizione di esecuzione
    2.  (2) Uscita impulsi CW
    3.  (3) Valore target raggiunto (l'emissione di impulsi si ferma)

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.

  • La modifica del codice di controllo durante l'esecuzione dell'istruzione non avrà effetto.
  • Si raccomanda vivamente di incorporare un'opzione di stop uscita impulsi nel proprio programma di posizionamento.

  • Lo stato del flag di controllo del contatore veloce o del flag di controllo dell'uscita ad impulsi può variare durante lo svolgimento di una scansione. For example, if the number of received bytes is read more than once different statuses may exist within one scan.

Descrizione per FP0R

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:

  • Codice di controllo
  • Velocità iniziale e finale
  • Velocità target
  • Tempo di accelerazione
  • Tempo di decelerazione
  • Valore target

Caratteristiche dell’uscita ad impulsi

  1.  (1) Velocità target1
  2.  (2) Velocità target2
  3.  (3) Flag di controllo dell'uscita ad impulsi
  4.  (4) Condizione di esecuzione
  • La frequenza dell'uscita ad impulsi cambia secondo il tempo di accelerazione specificato e il tempo di decelerazione specificato.
  • La differenza fra velocità massima di 50kHz e velocità iniziale determina la pendenza della rampa di accelerazione.
  • La differenza fra velocità massima di 50kHz e velocità finale determina la pendenza della rampa di decelerazione.
  • Quando la condizione di esecuzione passa a FALSE dopo l'avvio dell'istruzione, viene eseguito uno stop decelerato.
  • Quando la condizione di esecuzione passa a TRUE durante la decelerazione, viene nuovamente eseguita l'accelerazione.
  • La velocità target può essere cambiata durante l’uscita ad impulsi.
  • 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.
  • Se durante l'accelerazione viene richiesto uno stop decelerato, la decelerazione viene eseguita con lo stesso tipo di rampa della decelerazione dalla velocità target.
  • Il tempo di accelerazione e il tempo di decelerazione hanno la priorità sulla velocità iniziale e finale. Ciò significa che i valori del tempo di accelerazione e del tempo di decelerazione non saranno modificati, mentre i valori della velocità iniziale e finale possono essere corretti dall'istruzione uscita ad impulsi per abilitare l'accelerazione e la decelerazione entro il tempo specificato. I valori modificati vengono scritti sui registri dati ai quali è possibile accedere utilizzando le variabili di sistema sys_iPulseChannelxCorrectedInitialSpeed e sys_iPulseChannelxCorrectedFinalSpeed (in cui x=numero canale

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.

    1.  (1) Velocità iniziale e finale
    2.  (2) Cambio della velocità target
    3.  (3) Condizione di esecuzione
    4.  (4) Flag di controllo dell'uscita ad impulsi
    5.  (5) Stop decelerato
  • 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.

    1.  (1) Velocità iniziale e finale
    2.  (2) Cambio della velocità target
    3.  (3) Condizione di esecuzione
    4.  (4) Flag di controllo dell'uscita ad impulsi
    5.  (5) Valore target
    6.  (6) Tempo di decelerazione

Cambiamento della velocità target durante l’uscita ad impulsi

  • Se il valore corrente supera la posizione iniziale dell'area vietata di accelerazione (p.es. sys_diPulseChannel0AccelerationForbiddenAreaStartingPosition) durante l'accelerazione, la stessa non potrà essere eseguita.
  • 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.

  • 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.
  • La modifica del codice di controllo durante l'esecuzione dell'istruzione non avrà effetto.
  • Si raccomanda vivamente di incorporare un'opzione di stop uscita impulsi nel proprio programma di posizionamento.

  • Lo stato del flag di controllo del contatore veloce o del flag di controllo dell'uscita ad impulsi può variare durante lo svolgimento di una scansione. For example, if the number of received bytes is read more than once different statuses may exist within one scan.

Esempio

Intestazione del POU

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

Corpo LD

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

Corpo ST

 (bActivateJog) then
  dutJog.diSpeed:=diSpeed;
END_IF;
IF (bActivateJog) then
  F172_PulseOutput_Jog(s_dutDataTable := dutJog, 0);
END_IF;

L'ultima revisione: 2023-03-16Feedback su questa paginaPanasonic hotline