PulseOutput_Jog_Positioning0_FB

Opération JOG et positionnement

Cette instruction est utilisée pour l’opération JOG. Le nombre d’impulsions indiqué est sorti lorsque l’entrée déclenchement du contrôle de positionnement devient TRUE. La sortie impulsionnelle décélère jusqu’à ce que la valeur de consigne soit atteinte puis elle s’arrête. Les impulsions sont émises en sortie de la voie indiquée lorsque le drapeau de contrôle de cette voie est FALSE et la condition d’exécution est TRUE.La vitesse peut être modifiée dans l’intervalle de la vitesse de consigne spécifiée.

Paramètres

Entrée

bExecute (BOOL)

La condition d’exécution peut être :

  • Avec déclenchement sur front

  • Permanent lorsqu’un changement de vitesse est requis

bAbsoluteBOOL:=FALSE

Contrôle de la valeur relative uniquement possible ; doit toujours être FALSE sinon erreur sortie.

diInitialAndFinalSpeed (DINT)

Vitesse initiale et finale (F171_PulseOutput_Trapezoidal) : 1 à 50000 (1Hz–50kHz)

diTargetSpeed (DINT)

Vitesse de consigne : Définissez cette valeur selon l’intervalle de fréquence sélectionné dans PulseOutput_Channel_Configuration_DUT :

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

48 à 100000 (48Hz–100kHz)

191 à 100000 (191–100kHz)

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

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

diAccelerationTime (DINT)

Temps d’accélération (F171_PulseOutput_Trapezoidal) : 1ms–32760ms (jusqu’à la vitesse maximale)

diDecelerationTime (DINT)

Temps de décélération (F171_PulseOutput_Trapezoidal) : 1ms–32760ms (à partir de la vitesse maximale)

diTargetValue (DINT)

Valeur de consigne [impulsions] : -2147483648–2147483647

dutChannelConfigurationDUT système prédéfini pour la configuration des voies : PulseOutput_Channel_Configuration_DUT

Sortie

bError (BOOL)

TRUE si une valeur d’entrée appliquée est invalide. L’exécution du bloc fonction est arrêtée.

TRUE si la voie appliquée n’est pas activée dans les registres système ou si bAbsolute est TRUE

Remarques

Cette instruction non inline fait partie des instructions Tool pour sorties impulsionnelles. Pour en savoir plus sur les instruction(s) utilisées en interne, voir :F171_PulseOutput_Jog_Positioning. Utilisez PulseInfo_IsActive pour vérifier si le drapeau de contrôle des voies sélectionnées est FALSE. Utilisez PulseControl_PulseOutputStop pour arrêter la sortie impulsionnelle sur une voie spécifiée. Utilisez PulseControl_DeceleratedStop pour exécuter un arrêt décéléré.

Exemple

DUT

Un type de données structurées (DUT) peut être composé d’autres types de données. Un DUT est tout d’abord défini dans le gestionnaire de DUT et ensuite traité comme les autres types de données standard (BOOL, INT, etc.) dans la liste des variables globales ou l’en-tête du POU.

En-tête du POU

Toutes les variables d’entrée et de sortie utilisées pour programmer cette fonction ont été déclarées dans l’en-tête du POU.Le même en-tête de POU est utilisé pour tous les langages de programmation.

	VAR
		PulseOutput_Jog_Positioning0: PulseOutput_Jog_Positioning0_FB;
		bExecute: BOOL:=FALSE;
		ChannelConfiguration_DUT: PulseOutput_Channel_Configuration_DUT;
		bError: BOOL:=FALSE;
		bConfigureDUT: BOOL:=FALSE;
		bAbsolute: BOOL:=FALSE;
		@'': @'';
	END_VAR

Corps en 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,22,15,22);
L(10,18,15,18);
L(10,14,15,14);
L(10,10,15,10);
L(10,6,15,6);
L(10,18,10,22);
L(10,2,10,18);
L(1,0,1,24);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 11 ;
        NETWORK_BODY
B(B_VARIN,,600,10,4,12,6,);
B(B_VARIN,,12000,10,5,12,7,);
B(B_VARIN,,300,10,6,12,8,);
B(B_VARIN,,600,10,7,12,9,);
B(B_VARIN,,50000,10,8,12,10,);
B(B_VARIN,,ChannelConfiguration_DUT,10,9,12,11,);
B(B_VARIN,,bExecute,10,2,12,4,);
B(B_VAROUT,,bError,28,2,30,4,);
B(B_FB,PulseOutput_Jog_Positioning0_FB!,PulseOutput_Jog_Positioning0,12,1,28,11,,?BbExecute?BbAbsolute?BdiInitialAndFinalSpeed?BdiTargetSpeed?BdiAccelerationTime?BdiDecelerationTime?BdiTargetValue?BdutChannelConfiguration?AbError);
B(B_VARIN,,bAbsolute,10,3,12,5,);
L(1,0,1,11);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corps en 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_Positioning0(bExecute := bExecute,
             bAbsolute := bAbsolute             
             diInitialAndFinalSpeed := 600,
             diTargetSpeed := 12000,
             diAccelerationTime := 300,
             diDecelerationTime := 600,
             diTargetValue := 50000,
             dutChannelConfiguration := ChannelConfiguration_DUT,
             bError => bError);

Modifié le : 2021-08-09Commentaires sur cette pageAssistance téléphonique