F171_PulseOutput_Jog_Positioning

Operazione JOG e posizionamento

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_DUT_DataTable (DUT)

Indirizzo di partenza dell'area contenente la tabella dati

F171_PulseOutput_Jog_Positioning_Type0_DUT o F171_PulseOutput_Jog_Positioning_Type1_DUT
n_iPulseOutputChannel (costante decimale)

Canale uscita ad impulsi:0–3

Note

Selezionate una delle due diverse modalità operative:

  • Tipo 0: La velocità può essere variata entro il campo della velocità target determinata.

  • Tipo 1: La velocità target può essere cambiata una volta quando l'ingresso per inizio controllo di posizione passa a TRUE.

Caratteristiche dell’uscita ad impulsi

  1.  (1) Velocità iniziale e finale
  2.  (2) Velocità target
  3.  (3) Valore target
  4.  (4) Tempo di accelerazione
  5.  (5) Tempo di decelerazione
  6.  (6) Condizione di esecuzione
  7.  (7) Ingresso per inizio controllo di posizione
  8.  (8) Flag di controllo dell'uscita ad impulsi
  • La frequenza dell'uscita ad impulsi cambia secondo il tempo di accelerazione specificato e il tempo di decelerazione specificato.

  • La differenza fra velocità target e velocità iniziale determina la pendenza della rampa di accelerazione.

  • La differenza fra velocità target e velocità finale determina la pendenza della rampa di decelerazione.

  • Dopo che l'ingresso per inizio controllo di posizione è passato a TRUE, l'emissione di impulsi continua, poi decelera e si ferma una volta raggiunto il valore target.

Arresto dell'emissione di impulsi

L'emissione di impulsi può essere arrestata con una delle seguenti operazioni:

  • Impostazione del trigger di controllo posizionamento su TRUE (l'emissione di impulsi continua fino al raggiungimento del valore target e al completamento della decelerazione): Il trigger di controllo del posizionamento può essere avviato mettendo un ingresso per inizio controllo di posizione su TRUE o mettendo il bit 6 del registro dati che memorizza il codice di controllo dell'uscita ad impulsi da FALSE a TRUE (p.es. MOVE(16#140, sys_wHscOrPulseControlCode);).

  • Richiesta di uno stop decelerato: Per eseguire uno stop decelerato, impostate il bit 5 del registro dati che memorizza il codice di controllo dell’uscita impulsi da FALSE a TRUE (p.es. MOVE(16#120, sys_wHscOrPulseControlCode);).Se durante l'accelerazione viene richiesto uno stop decelerato, la decelerazione viene eseguita con lo stesso tipo di rampa della decelerazione dalla velocità target.

  • Esecuzione di uno stop di emergenza: Per eseguire uno stop di emergenza, impostate il bit 3 del registro dati che memorizza il codice di controllo dell'uscita impulsi da FALSE a TRUE (p.es. MOVE(16#108, sys_wHscOrPulseControlCode);).

NOTA

Al momento dell'arresto, disabilitate tutte le funzioni di uscita ad impulsi per il canale utilizzato nel programma.

Operazione JOG tipo 0

Utilizzare la seguente DUT predefinita: F171_PulseOutput_Jog_Positioning_Type0_DUT

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

La velocità target può essere cambiata durante l’uscita ad impulsi.Cambiamento della velocità target durante l’uscita ad impulsi

Senza cambio della velocità target:

Con cambio della velocità target:

  1. Velocità iniziale e finale

  2. Velocità target

  3. Valore target

  4. Tempo di accelerazione

  5. Tempo di decelerazione

  6. Condizione di esecuzione

  7. Ingresso per inizio controllo di posizione

  8. Flag di controllo dell'uscita ad impulsi

  • Per modificare la velocità, mantenere la condizione di esecuzione su TRUE.

  • Se la velocità target viene impostata su un valore maggiore di 50kHz, essa verrà corretta a 50kHz.

  • 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.

  • La modifica della velocità target non è possibile se l'istruzione viene eseguita in un programma di interrupt.

Operazione JOG tipo 1

Utilizzare la seguente DUT predefinita: F171_PulseOutput_Jog_Positioning_Type1_DUT

Nella DUT possono essere specificati i seguenti parametri:

  • Codice di controllo

  • Velocità iniziale e finale

  • Velocità target1

  • Tempo di accelerazione

  • Velocità target2

  • Tempo di cambiamento

  • Tempo di decelerazione

  • Valore target

Velocità target 1 < velocità target 2:

Velocità target 1 > velocità target 2:

  1. Velocità iniziale e finale

  2. Velocità target

  3. Velocità target

  4. Valore target

  5. Tempo di accelerazione

  6. Tempo di cambiamento

  7. Tempo di decelerazione

  8. Condizione di esecuzione

  9. Ingresso per inizio controllo di posizione

Dopo che l'ingresso per inizio controllo di posizione è passato a TRUE, la frequenza dell'uscita ad impulsi cambierà utilizzando il tempo di modifica per accelerare o decelerare alla velocità target 2. Ulteriori modifiche alla velocità target non sono possibili. L'ingresso per inizio controllo di posizione non verrà considerato se impostato su TRUE durante l'accelerazione.

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.

  • Impostate l'ingresso per inizio controllo di posizione (X0, X1, X2, X3) nel registro di sistema 402.

  • Per l'ingresso per inizio controllo di posizione viene rilevato solo il fronte di salita (TRUE).

  • L'istruzione non può essere avviata nel caso in cui sia stato richiesto uno stop decelerato.

  • Per effettuare il riavvio dopo aver arrestato l'operazione, impostare la condizione di esecuzione su FALSE e poi nuovamente su TRUE.

  • 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
		Start: BOOL:=FALSE;
		dutJog: F171_PulseOutput_Jog_Positioning_Type0_DUT:=dwControlCode := 16#010,
diInitialAndFinalSpeed := 1000,
diTargetSpeed := 7000,
diAccelerationTime := 300,
diDecelerationTime := 450,
diTargetValue := 10000;
			(*Digit3: 0=Pulse output
Digit2: 1=Fixed
Digit0: 0=CW/CCW2*)
		diInitialAndFinalSpeed: DINT:=1000;
		@'': @'';
	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 := 5 ;
        NETWORK_BODY
B(B_F,E_MOVE!,Instance,13,0,19,4,,?DEN?D?AENO?C);
B(B_VARIN,,diInitialAndFinalSpeed,11,2,13,4,);
B(B_VAROUT,,dutJog.diInitialAndFinalSpeed,19,2,21,4,);
B(B_CONTACT,,Start,6,1,8,3,);
L(1,2,6,2);
L(8,2,13,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,F171_PulseOutput_Jog_Positioning!,Instance,8,0,24,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutJog,6,2,8,4,);
B(B_VARIN,,0,6,3,8,5,);
B(B_CONTACT,,Start,2,1,4,3,);
L(1,2,2,2);
L(4,2,8,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

IF (Start) then
    dutJog.diInitialAndFinalSpeed:=diInitialAndFinalSpeed;
END_IF;
IF (Start) then
  F171_PulseOutput_Jog_Positioning(s_dutDataTable := dutJog, 0);
END_IF;

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