PulseOutput_Home_FB

Home Return (ritorno alla posizione iniziale)

Questa istruzione esegue un Home Return (ritorno alla posizione iniziale) secondo i parametri nel Function Block e nella 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

bExecute (BOOL)

Un fronte di salita attiva il Function Block

bReverse (BOOL)

Direzione movimento: Avanti = FALSE, Inverso = TRUE

diInitialSpeed, diTargetSpeed (DINT)

Velocità iniziale/Velocità target: Impostate questo valore secondo il campo di frequenza selezionato in PulseOutput_Channel_Configuration_DUT:

FPS, FP-X: 1 a 9800 (1,5Hz–9,8kHz)

48 a 100000 (48Hz–100kHz)

191 a 100000 (191–100kHz)

F171_PulseOutput_Trapezoidal: 1 a 50000 (1Hz–50kHz)

FP0, F168_PulseOutput_Trapezoidal: 40 a 5000 (40Hz–5kHz)

diAccelerationTime (DINT)

Tempo di accelerazione/decelerazione (FPS, FP-X):

Con 30 passi: 30ms–32760ms (specificare in passi di 30)

Con 60 passi: 60ms–32760ms (specificare in passi di 60)

Tempo di accelerazione/decelerazione (FP0, F168_PulseOutput_Trapezoidal): 30ms–32760ms

Tempo di accelerazione (F171_PulseOutput_Trapezoidal): 1ms–32760ms

diDecelerationTime (DINT)

Tempo di decelerazione (F171_PulseOutput_Trapezoidal): 1ms–32760ms

diCreepSpeed (DINT)

Velocità di ricerca (F171_PulseOutput_Trapezoidal): 1 a 50000 (1Hz–50kHz)

dutChannelConfigurationDUT di sistema predefinita per la configurazione del canale: PulseOutput_Channel_Configuration_DUT

Uscita

bError (BOOL)

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

Note

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

  • FPS, FP-X: F171_PulseOutput_Home

  • FP-e, FP0: F168_PulseOutput_Home

Utilizzate PulseInfo_IsActive per controllare che il flag di controllo per il canale selezionato sia FALSE.Utilizzate PulseInfo_IsHomeInputTrue per controllare che l'ingresso home sia TRUE.

NOTA

Evitate malfunzionamenti o un errore di funzionamento:

  • Assicuratevi di impostare il registro di sistema in modalità uscita ad impulsi quando utilizzate un ingresso home.

  • L'ingresso home non deve essere occupato da altre istruzioni quali ingresso cattura impulsi, ingresso di interrupt o contatore veloce.

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.

Corpo del POU

	VAR
		PulseOutput_Home: PulseOutput_Home_FB;
		bExecute: BOOL:=FALSE;
		bReverse: BOOL:=FALSE;
		bError: BOOL:=FALSE;
		ChannelConfiguration_DUT: PulseOutput_Channel_Configuration_DUT;
		bConfigureDUT: 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 := 32 ;
        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_SignReverse,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_SignForward,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_F,E_MOVE!,,15,20,21,24,,?DEN?D?AENO?C);
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,24,21,28,,?DEN?D?AENO?C);
B(B_VARIN,,FALSE,13,26,15,28,);
B(B_VAROUT,,ChannelConfiguration_DUT.Home_bEnableHomeOnlyAfterNearHomeDeceleration,21,26,23,28,);
B(B_F,E_MOVE!,,15,28,21,32,,?DEN?D?AENO?C);
B(B_VAROUT,,ChannelConfiguration_DUT.Home_iDeviationCounterClearSignalOutputTime_in_0p5ms,21,30,23,32,);
B(B_VARIN,,5,13,30,15,32,);
L(10,2,10,6);
L(10,10,10,14);
L(10,6,10,10);
L(10,14,10,18);
L(10,18,10,22);
L(10,22,10,26);
L(6,2,10,2);
L(1,2,4,2);
L(10,26,10,30);
L(10,30,15,30);
L(10,26,15,26);
L(10,22,15,22);
L(10,18,15,18);
L(10,6,15,6);
L(10,14,15,14);
L(10,10,15,10);
L(10,2,15,2);
L(1,0,1,32);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 11 ;
        NETWORK_BODY
B(B_FB,PulseOutput_Home_FB!,PulseOutput_Home,15,1,28,11,,?BbExecute?BbReverse?BdiInitialAndFinalSpeed?BdiTargetSpeed?BdiAccelerationTime?BdiDecelerationTime?BdiCreepSpeed?BdutChannelConfiguration?AbError);
B(B_VARIN,,bExecute,13,2,15,4,);
B(B_VARIN,,bReverse,13,3,15,5,);
B(B_VARIN,,1500,13,4,15,6,);
B(B_VARIN,,12000,13,5,15,7,);
B(B_VARIN,,300,13,6,15,8,);
B(B_VARIN,,600,13,7,15,9,);
B(B_VARIN,,500,13,8,15,10,);
B(B_VARIN,,ChannelConfiguration_DUT,13,9,15,11,);
B(B_VAROUT,,bError,28,2,30,4,);
L(1,0,1,11);
        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.Home_bEnableHomeOnlyAfterNearHomeDeceleration := FALSE;
ChannelConfiguration_DUT.Home_iDeviationCounterClearSignalOutputTime_in_0p5ms := 5;
ChannelConfiguration_DUT.bExecuteInInterrupt := FALSE;
(* FB *)
PulseOutput_Home(bExecute := bExecute,
         bReverse := bReverse,
         diInitialAndFinalSpeed := 1500,
         diTargetSpeed := 12000,
         diAccelerationTime := 300,
         diDecelerationTime := 600,
         diCreepSpeed := 500,
         dutChannelConfiguration := ChannelConfiguration_DUT,
         bError => bError);

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