PulseOutput_Jog_TargetValue_FB

JOG運転(目標値あり)

この命令は、JOG運転に使用します。位置制御開始入力がTRUEになったあと、指定されたパルス数を出力します。減速が実行された後、目標値に達するとパルス出力は停止します。指定したチャンネルの制御中フラグがFALSEで、実行条件がTRUEのとき、指定したチャンネルからパルスが出力します。指定したチャンネルの制御中フラグがFALSEで、実行条件がTRUEのとき、指定したチャンネルからパルスが出力します。経過値が目標値に達すると、パルス出力が停止します。

パラメータ

入力

bExecute (BOOL)

実行条件:

  • エッジトリガ使用

  • 速度の変更が必要な場合、不変

bAbsolute (BOOL)

F171_PulseOutput_Trapezoidalアブソリュート = TRUEインクリメンタル = FALSE

diInitialAndFinalSpeed (BOOL)

F171_PulseOutput_Trapezoidal: 初速 = 1~50000 (1Hz~50kHz)

diTargetSpeed (DINT)

目標速度: PulseOutput_Channel_Configuration_DUTで選択した周波数レンジに従って、以下の値を設定:

FPSFP-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)

加速時間(F171_PulseOutput_Trapezoidal): 1ms~32760ms (最高速度まで)

diDecelerationTime (DINT)

減速時間(F171_PulseOutput_Trapezoidal): 1ms~32760ms (最高速度から)

diTargetValue (DINT)

目標値[パルス]: -2147483648~2147483647

dutChannelConfigurationチャンネルコンフィグレーション用にあらかじめ定義されたシステムDUT: PulseOutput_Channel_Configuration_DUT

出力

bError (BOOL)

割り付けた入力値が無効のときにTRUE。ファンクションブロックの実行は停止します。

FPSFP-Xに対する追加のエラー条件:

適用チャンネルがシステムレジスタで有効にされていない場合、あるいはbAbsoluteTRUEであるときにTRUE

解説

この非インライン命令は、パルス出力用Tool命令の一部です。内部で使われる命令に関する詳細は、をご参照ください。F172_PulseOutput_JogPulseInfo_IsActiveを使用して、選択したチャンネルの制御フラグがFALSEかどうかをチェックします。

DUT

DUT構造体はData Unit Typeの略で、複数の異なるデータ型をもつ変数で構成されます。構造体をまず定義し、その後、標準的なデータ型(BOOLINTなど)と同様にグローバル変数リストやPOUヘッダで使用します。

POUヘッダ

POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。POUヘッダは全プログラム言語で使用できます。

POUボディ

	VAR
		PulseOutput_Jog_TargetValue: PulseOutput_Jog_TargetValue_FB;
		bExecute: BOOL:=FALSE;
		bAbsolute: BOOL:=FALSE;
		ChannelConfiguration_DUT: PulseOutput_Channel_Configuration_DUT;
		bError: BOOL:=FALSE;
		bConfigureDUT: BOOL:=FALSE;
	END_VAR

LDボディ

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 28 ;
        NETWORK_BODY
B(B_CONTACT,,bConfigureDUT,3,1,5,3,);
B(B_F,E_MOVE!,,14,0,20,4,,?DEN?D?AENO?C);
B(B_VARIN,,1,12,2,14,4,);
B(B_F,E_MOVE!,,14,8,20,12,,?DEN?D?AENO?C);
B(B_VARIN,,FALSE,12,10,14,12,);
B(B_VAROUT,,ChannelConfiguration_DUT.bOutput_Pulse_SignReverse,20,10,22,12,);
B(B_F,E_MOVE!,,14,12,20,16,,?DEN?D?AENO?C);
B(B_F,E_MOVE!,,14,4,20,8,,?DEN?D?AENO?C);
B(B_VARIN,,TRUE,12,6,14,8,);
B(B_VAROUT,,ChannelConfiguration_DUT.bOutput_Pulse_SignForward,20,6,22,8,);
B(B_VARIN,,TRUE,12,14,14,16,);
B(B_VAROUT,,ChannelConfiguration_DUT.iChannel,20,2,22,4,);
B(B_F,E_MOVE!,,14,16,20,20,,?DEN?D?AENO?C);
B(B_VARIN,,FALSE,12,18,14,20,);
B(B_VAROUT,,ChannelConfiguration_DUT.bDutyRatio25,20,18,22,20,);
B(B_VAROUT,,ChannelConfiguration_DUT.bAccelerationSteps60,20,14,22,16,);
B(B_VAROUT,,ChannelConfiguration_DUT.bFrequencyRange_191Hz_100kHz,20,22,22,24,);
B(B_VARIN,,TRUE,12,22,14,24,);
B(B_F,E_MOVE!,,14,20,20,24,,?DEN?D?AENO?C);
B(B_F,E_MOVE!,,14,24,20,28,,?DEN?D?AENO?C);
B(B_VARIN,,TRUE,12,26,14,28,);
B(B_VAROUT,,ChannelConfiguration_DUT.Jog_bNoCountingInCWCCWNoTargetValueMatch,20,26,22,28,);
L(5,2,14,2);
L(9,18,14,18);
L(9,14,14,14);
L(9,10,14,10);
L(9,6,14,6);
L(9,2,9,18);
L(9,18,9,22);
L(9,22,14,22);
L(9,22,9,26);
L(9,26,14,26);
L(1,2,3,2);
L(1,0,1,28);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 11 ;
        NETWORK_BODY
B(B_FB,PulseOutput_Jog_TargetValue_FB!,PulseOutput_Jog_TargetValue,13,1,29,11,,?BbExecute?BbAbsolute?BdiInitialAndFinalSpeed?BdiTargetSpeed?BdiAccelerationTime?BdiDecelerationTime?BdiTargetValue?BdutChannelConfiguration?AbError);
B(B_VARIN,,bExecute,11,2,13,4,);
B(B_VARIN,,bAbsolute,11,3,13,5,);
B(B_VARIN,,600,11,4,13,6,);
B(B_VARIN,,12000,11,5,13,7,);
B(B_VARIN,,300,11,6,13,8,);
B(B_VARIN,,600,11,7,13,9,);
B(B_VARIN,,50000,11,8,13,10,);
B(B_VARIN,,ChannelConfiguration_DUT,11,9,13,11,);
B(B_VAROUT,,bError,29,2,31,4,);
L(1,0,1,11);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

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.Jog_bNoCountingInCWCCWNoTargetValueMatch := FALSE;
ChannelConfiguration_DUT.bExecuteInInterrupt := FALSE;
(* FB *)
PulseOutput_Jog_TargetValue(bExecute := bExecute,
            bAbsolute := bAbsolute,
            diInitialAndFinalSpeed := 600,
            diTargetSpeed := 12000,
            diAccelerationTime := 300,
            diDecelerationTime := 600,
            diTargetValue := 50000,
            dutChannelConfiguration := ChannelConfiguration_DUT,
            bError => bError);

最終修正日: 2019-08-03このページに関するフィードバックお問い合わせ窓口