F177_PulseOutput_Home

Home Return (ritorno alla posizione iniziale)

Questa istruzione effettua un Home Return secondo i parametri della DUT specificata. 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 (F177_PulseOutput_Home_Type0_DUT) oppure (F177_PulseOutput_Home_Type1_DUT)

Indirizzo di partenza dell'area contenente la tabella dati

n_iPulseOutputChannel* (costante decimale)

Canale uscita ad impulsi:0–3

Note

Dopo che sistema di azionamento è stato attivato, vi è una differenza tra posizione interna (valore corrente) e la posizione meccanica dell’asse; questa differenza non può essere determinata anticipatamente. Per avere corrispondenza tra il valore interno dell’asse e la posizione reale è necessario eseguire un’operazione di sincronizzazione. La sincronizzazione si effettua mediante un’istruzione di Home Return, durante il quale il valore della posizione viene registrato (azzerato) in una determinata posizione (Home).Con l’istruzione di Home Return vengono emessi impulsi finché non viene attivato l’ingresso di home. L'allocazione I/O dipende dal canale.Per decelerare il moto durante l'avvicinamento alla posizione di home, si deve stabilire un ingresso near home e mettere il bit 4 del registro dati speciali nel quale è memorizzato il codice di controllo per l'uscita degli impulsi (sys_wHscOrPulseControlCode) prima su TRUE e poi di nuovo su FALSE.L'uscita reset deviazione conteggio su servo driver può essere messa su TRUE una volta completato lo Home Return.

Selezionate una delle due diverse modalità operative:

  • Tipo 0:

    L'ingresso home può essere attivato indipendentemente dal fatto che vi sia o no un ingresso near home, che la decelerazione stia avendo luogo o che la decelerazione sia stata completata.

    Senza ingresso near home:

    1.  (1) Velocità iniziale
    2.  (2) Velocità target
    3.  (3) -
    4.  (4) Ingresso home: TRUE

    Con ingresso near home:

    1.  (1) Velocità iniziale
    2.  (2) Velocità target
    3.  (3) Ingresso near home: TRUE
    4.  (4) Ingresso home: TRUE
    5.  (5) Velocità di ricerca
    6.  (6) L’ingresso home può essere attivato in qualsiasi momento.
  • Tipo 1: L'ingresso home può essere attivato solo dopo che una decelerazione (iniziata da un ingresso near home) è stata completata.

    1.  (1) Velocità iniziale
    2.  (2) Velocità target
    3.  (3) Ingresso near home: TRUE
    4.  (4) Ingresso home: TRUE
    5.  (5) Velocità di ricerca
    6.  (6) L'ingresso home può essere attivato solo dopo la decelerazione

Utilizzare la seguente DUT predefinita: F177_PulseOutput_Home_Type0_DUT oppure F177_PulseOutput_Home_Type1_DUT

Nella DUT possono essere specificati i seguenti parametri:

  • Codice di controllo

  • Velocità iniziale

  • Velocità target

  • Tempo di accelerazione

  • Tempo di decelerazione

  • Velocità di ricerca

  • Segnale reset deviazione conteggio su servo driver (tempo di uscita)

Caratteristiche 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 il tipo di rampa.

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

Informazione generale di programmazione

  • Nei registri di sistema impostare "uscita ad impulsi" per il canale desiderato.

  • Anche in presenza dell’ingresso home, l’esecuzione di questa istruzione provoca l’avvio dell’emissione di impulsi.

  • Se l’ingresso near home viene abilitato mentre l’accelerazione è in corso, verrà avviata la decelerazione.

  • Il segnale reset deviazione conteggio su servo driver viene allocato a indirizzi di uscita dedicati specifici per ciascun tipo di PLC.

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

  • Durante il lavoro ai programmi nella modalità operativa RUN l’uscita ad impulsi si arresta, ma riprende dopo che sono state scaricate le modifiche al programma.

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

Uscita reset deviazione conteggio su servo driver e ingresso home per FP0R

  • FP0R C16

    Canale n.°

    Uscita reset deviazione conteggio su servo driver

    Ingresso home

    0 Y6 X4
    1 Y7 X5
    2 X6
    3 X7
    NOTA
    • Gli ingressi X4–X7 possono essere utilizzati sia come ingressi contatore veloce sia come ingressi home.

    • Y6 e Y7 possono essere utilizzati sia come uscite ad impulsi per il canale 3 sia come uscite reset deviazione conteggio su servo driver per il canale 0 e 1.

  • FP0R C32, T32, F32

    Canale n.°

    Uscita reset deviazione conteggio su servo driver

    Ingresso home

    0 Y8 X4
    1 Y9 X5
    2 YA X6
    3 YB X7
    NOTA

    Gli ingressi X4–X7 possono essere utilizzati sia come ingressi contatore veloce sia come ingressi home.

Esempio

Variabili globali

Nella lista variabili globali si definiscono variabili alle quali possono accedere tutti i POU del progetto.

DUT

La DUT F177_PulseOutput_Home_Type1_DUT è predefinita nella “FP library”.

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
		X0_bMotorSwitch: BOOL:=FALSE;
			(*at X0*)
	END_VAR
	VAR 
		diInitialSpeed: DINT:=1000;
		diTargetSpeed: DINT:=5000;
		diAccelerationTime: DINT:=3000;
		diDecelerationTime: DINT:=3000;
		diCreepSpeed: DINT:=5000;
		dutHomeType1: F177_PulseOutput_Home_Type1_DUT:=dwControlCode := 16#0012,
diInitialSpeed := 0,
diTargetSpeed := 0,
diAccelerationTime := 0,
diDecelerationTime := 0,
diCreepSpeed := 0;
			(*For ControlCode (16#0012):
1 = Forward 
2 = Pulse/Sign forward on*)
		@'': @'';
	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 := 24 ;
        NETWORK_BODY
B(B_CONTACT,,X0_bMotorSwitch,4,1,6,3,R);
B(B_F,E_MOVE!,Instance,17,4,23,8,,?DEN?D?AENO?C);
B(B_F,E_MOVE!,Instance,17,8,23,12,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHomeType1.diTargetSpeed,23,6,25,8,);
B(B_VARIN,,diTargetSpeed,15,6,17,8,);
B(B_VAROUT,,dutHomeType1.diAccelerationTime,23,10,25,12,);
B(B_VARIN,,diAccelerationTime,15,10,17,12,);
B(B_F,E_MOVE!,Instance,17,20,23,24,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHomeType1.diDeviationCounterClearSignalOutputTime,23,22,25,24,);
B(B_VARIN,,0,15,22,17,24,);
B(B_F,E_MOVE!,Instance,17,0,23,4,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHomeType1.diInitialSpeed,23,2,25,4,);
B(B_VARIN,,diInitialSpeed,15,2,17,4,);
B(B_F,E_MOVE!,Instance,17,12,23,16,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHomeType1.diDecelerationTime,23,14,25,16,);
B(B_VARIN,,diDecelerationTime,15,14,17,16,);
B(B_F,E_MOVE!,Instance,17,16,23,20,,?DEN?D?AENO?C);
B(B_VAROUT,,dutHomeType1.diCreepSpeed,23,18,25,20,);
B(B_VARIN,,diCreepSpeed,15,18,17,20,);
L(7,2,7,6);
L(1,2,4,2);
L(6,2,7,2);
L(7,2,17,2);
L(7,6,17,6);
L(7,10,17,10);
L(7,6,7,10);
L(7,10,7,22);
L(7,22,17,22);
L(7,14,17,14);
L(7,18,17,18);
L(1,0,1,24);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 12 ;
        NETWORK_BODY
B(B_CONTACT,,X0_bMotorSwitch,8,5,10,7,R);
B(B_VARIN,,dutHomeType1,15,6,17,8,);
B(B_VARIN,,0,15,7,17,9,);
B(B_COMMENT,,Example for home position return,1,2,18,4,);
B(B_F,F177_PulseOutput_Home!,Instance,17,4,30,9,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
L(10,6,17,6);
L(1,6,8,6);
L(1,0,1,12);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

IF DF(X0_bMotorSwitch) then
  dutHomeType1.diInitialSpeed:=diInitialSpeed;
  dutHomeType1.diTargetSpeed:=diTargetSpeed;
  dutHomeType1.diAccelerationTime:=diAccelerationTime;
  dutHomeType1.diDecelerationTime:=diDecelerationTime;
  dutHomeType1.diCreepSpeed:=diCreepSpeed;
  dutHomeType1.diDeviationCounterClearSignalOutputTime:=0;
END_IF;
(*Example for home position return*)
IF DF(X0_bMotorSwitch) then
  F177_PulseOutput_Home(s_dutDataTable := dutHomeType1, 
    n_iPulseOutputChannel := 0);
END_IF;

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