PulseOutput_Jog_Positioning1_FB

Operazione JOG e posizionamento

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.La velocità target può essere cambiata una volta quando l'ingresso per inizio controllo di posizione passa a TRUE.

Parametri

Ingresso

bExecute (BOOL)

La condizione di esecuzione può essere:

  • con trigger sul fronte

  • permanente, se è necessario un cambio di velocità.

bAbsoluteBOOL:=FALSE

Solo la modalità di controllo relativo è supportata; deve essere sempre FALSE, altrimenti viene emesso un errore.

diInitialAndFinalSpeed (DINT)

Velocità iniziale e finale = 1–50000 (1Hz–50kHz)

diTargetSpeed1 (DINT)

Velocità target = 1–50000 (1Hz–50kHz)

diAccelerationTime (DINT)

Tempo di accelerazione= 1ms–32760ms

diTargetSpeed2 (DINT)

Velocità target = 1–50000 (1Hz–50kHz)

diChangeTime (DINT)

Tempo di cambiamento = 1–32760ms

diDecelerationTime (DINT)

Tempo di decelerazione = 1–32760ms

diTargetValue (DINT)

Valore target[impulsi]: -2147483648–2147483647

Uscita

bError (BOOL)

TRUE se un valore di ingresso applicato non è valido. L'esecuzione del Function Block si arresta.

TRUE se il canale applicato non è abilitato nei registri di sistema o se bAbsolute è TRUE

Note

Questa istruzione non in linea è parte delle istruzioni TOOL per uscita ad impulsi. Per una descrizione dettagliata delle istruzioni utilizzate internamente, vedere:F171_PulseOutput_Jog_Positioning

Utilizzate PulseInfo_IsActive per controllare che il flag di controllo per il canale selezionato sia FALSE.Utilizzate PulseControl_PulseOutputStop per arrestare l'emissione di impulsi su un canale specificato. Utilizzate PulseControl_DeceleratedStop per eseguire uno stop decelerato.

Esempio

DUT

Con un tipo unità dati (DUT) è possibile definire un tipo unità dati composto da altri tipi di dati. Una DUT è definita prima di tutto nel gruppo DUT e poi elaborata come i tipi di dati standard (BOOL, INT, ecc.) nella lista delle variabili globali o nell'intestazione del POU.

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
		PulseOutput_Jog_Positioning1: PulseOutput_Jog_Positioning1_FB;
		bExecute: BOOL:=FALSE;
		ChannelConfiguration_DUT: PulseOutput_Channel_Configuration_DUT;
		bError: BOOL:=FALSE;
		bConfigureDUT: BOOL:=FALSE;
		bAbsolute: BOOL:=FALSE;
		@'': @'';
	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,,bConfigureDUT,4,1,6,3,);
B(B_F,E_MOVE!,,15,0,21,4,,?DEN?D?AENO?C);
B(B_VARIN,,1,13,2,15,4,);
B(B_F,E_MOVE!,,15,8,21,12,,?DEN?D?AENO?C);
B(B_VARIN,,FALSE,13,10,15,12,);
B(B_VAROUT,,ChannelConfiguration_DUT.bOutput_Pulse_ForwardFalse,21,10,23,12,);
B(B_F,E_MOVE!,,15,12,21,16,,?DEN?D?AENO?C);
B(B_F,E_MOVE!,,15,4,21,8,,?DEN?D?AENO?C);
B(B_VARIN,,TRUE,13,6,15,8,);
B(B_VAROUT,,ChannelConfiguration_DUT.bOutput_Pulse_ForwardTrue,21,6,23,8,);
B(B_VARIN,,TRUE,13,14,15,16,);
B(B_VAROUT,,ChannelConfiguration_DUT.iChannel,21,2,23,4,);
B(B_F,E_MOVE!,,15,16,21,20,,?DEN?D?AENO?C);
B(B_VARIN,,FALSE,13,18,15,20,);
B(B_VAROUT,,ChannelConfiguration_DUT.bDutyRatio25,21,18,23,20,);
B(B_VAROUT,,ChannelConfiguration_DUT.bAccelerationSteps60,21,14,23,16,);
B(B_VAROUT,,ChannelConfiguration_DUT.bFrequencyRange_191Hz_100kHz,21,22,23,24,);
B(B_VARIN,,TRUE,13,22,15,24,);
B(B_F,E_MOVE!,,15,20,21,24,,?DEN?D?AENO?C);
L(1,2,4,2);
L(6,2,15,2);
L(10,18,15,18);
L(10,14,15,14);
L(10,10,15,10);
L(10,6,15,6);
L(10,2,10,18);
L(10,18,10,22);
L(10,22,15,22);
L(1,0,1,24);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 13 ;
        NETWORK_BODY
B(B_VARIN,,600,10,4,12,6,);
B(B_VARIN,,10000,10,5,12,7,);
B(B_VARIN,,300,10,6,12,8,);
B(B_VARIN,,25000,10,7,12,9,);
B(B_VARIN,,1200,10,8,12,10,);
B(B_VARIN,,600,10,9,12,11,);
B(B_VARIN,,90000,10,10,12,12,);
B(B_VARIN,,ChannelConfiguration_DUT,10,11,12,13,);
B(B_VARIN,,bExecute,10,2,12,4,);
B(B_VAROUT,,bError,28,2,30,4,);
B(B_FB,PulseOutput_Jog_Positioning1_FB!,PulseOutput_Jog_Positioning1,12,1,28,13,,?BbExecute?BbAbsolute?BdiInitialAndFinalSpeed?BdiTargetSpeed1?BdiAccelerationTime?BdiTargetSpeed2?BdiChangeTime?BdiDecelerationTime?BdiTargetValue?BdutChannelConfiguration?AbError);
B(B_VARIN,,bAbsolute,10,3,12,5,);
L(1,0,1,13);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

(* Used DUT parameters *)
ChannelConfiguration_DUT.iChannel := 1;
ChannelConfiguration_DUT.bOutput_Pulse_ForwardTrue := TRUE;
ChannelConfiguration_DUT.bOutput_Pulse_ForwardFalse := FALSE;
ChannelConfiguration_DUT.bAccelerationSteps60 := FALSE;
ChannelConfiguration_DUT.bDutyRatio25 := TRUE;
ChannelConfiguration_DUT.bFrequencyRange_191Hz_100kHz := TRUE;
ChannelConfiguration_DUT.bExecuteInInterrupt := FALSE;
(* FB *)
PulseOutput_Jog_Positioning1(bExecute := bExecute,
             bAbsolute := bAbsolute             
             diInitialAndFinalSpeed := 600,
             diTargetSpeed1 := 10000,
             diAccelerationTime := 300,
             diTargetSpeed2 := 25000,
             diChangeTime := 1200,
             diDecelerationTime := 600,
             diTargetValue := 90000,
             dutChannelConfiguration := ChannelConfiguration_DUT,
             bError => bError);

L'ultima revisione: 2021-07-05Feedback su questa paginaPanasonic hotline