パルス出力制御コードの書き込み

高速カウンタおよびパルス出力制御コードが格納されている特殊データレジスタは、システム変数sys_wHscOrPulseControlCodeを使用して読み出し、書き込みすることができます。(システム変数sys_wHscOrPulseControlCodeは、特殊データレジスタDT90052に相当します。)

パルス出力制御コードで制御できる動作

それぞれのチャンネルに対する制御コードの設定内容は、システム変数sys_wHscChannelxControlCodeまたはsys_wPulseChannelxControlCodeを使ってモニタすることができます(x=チャンネルNo.を示します)。このシステム変数の設定内容は、他の設定が実行されるまで保持されます。
注記
  • この制御コードの設定により強制停止が実行されると、PLCとモータ側の経過値が異なる状態になりますので、パルス出力が停止したあと、原点復帰を実行してください。
  • カウントの禁止が設定されている場合、あるいは、ソフトリセットが実行されているとき、原点近傍入力の設定は無効となります。

原点近傍入力のセット/リセット

原点近傍位置で減速動作をさせるためには、原点近傍入力に割り付けられているパルス出力制御コード(sys_wHscOrPulseControlCode) (特殊データレジスタ)のビット4TRUEにセットしたあと、再び、FALSEに戻してください。原点近傍入力のビットの値は保持されます。原点復帰時、2回目以降の原点近傍入力を有効とするためには、このビットの値をFALSEにセットした後、TRUEにリセットしてください。

  1.  (1) 初速
  2.  (2) 目標速度
  3.  (3) 原点近傍入力: TRUE
  4.  (4) 原点入力: TRUE
  5.  (5) 常時、原点入力が有効になります。

パルス出力の継続/停止(強制停止)

パルス出力制御コード(sys_wHscOrPulseControlCode)のビット3TRUEにセットすると、パルス出力が停止します。パルス出力命令を使って、プログラム毎に強制停止できるようにしてください。パルス出力を継続するには、ビット3FALSEにリセットしてください。

カウント動作の許可/禁止

Y*

パルス出力

(1)

経過値

(2)

1

制御コードのビット1の値をTRUEにセットすると、カウントが禁止され、経過値が保持されます。ビット1の値をFALSEにリセットすると、カウントを継続します。

高速カウンタ経過値のリセット(ソフトリセット)

Y*

パルス出力

(1)

経過値

(2)

パルス出力制御コードのビット 0 (ソフトリセット)

制御コードのビット0 の値を TRUE にセットすると、ソフトリセットが実行され、経過値が 0 になります。ビット0の値がFALSEにリセットされるまで、経過値は0を保持します。

高速カウンタおよびパルス出力命令のキャンセル(FP0Rのみ)

パルス出力命令の実行をキャンセルするには、パルス出力制御コード(sys_wHscOrPulseControlCode)を格納しているデータレジスタのビット2TRUEにセットします。その後、パルス出力制御フラグがFALSEになります。命令の実行を再び有効にするには、ビット2FALSEに戻します。

FP-Sigmaに関する説明

制御コードのビット0~15は、4つのグループに割り付けられています。それぞれの値は、16進数で設定します。(例: 00020000 0000 1001 = 16#2009)

グループ IV

(1)

チャンネルNo. (チャンネルn: 16#n)

グループ III

0 (固定)

グループ II

(2)

原点近傍入力(ビット4)

0FALSE

1: TRUE

グループ I

(3)

パルス出力(ビット3)

0: 継続

1: 停止

(4)

0 (ビット2、固定)

(5)

カウント(ビット1)

0: 許可

1: 禁止

(6)

経過値を0にリセットする(ビット0)

0: しない

1: する

例: 16#2009

グループ

説明

IV

2

チャンネルNo.: 2

III

0

(固定)

II

0

原点近傍入力: FALSE

I

9

16進数Hex 9は、2進数1001に対応します。

パルス出力: 停止(ビット3)

1

(ビット2、固定)

0

カウント: 許可(ビット1)

0

経過値を0にリセットする: する(ビット0)

1

FP-Xに関する説明

グループ IV

(1)

チャンネルNo. (チャンネルn: 16#n)

グループ III

(2)

1 (固定)

グループ II

(3)

原点近傍入力(ビット4) (注)

0: FALSE

1: TRUE

グループ I

(4)

パルス出力(ビット3)

0: 継続

1: 停止

(5)

カウント(ビット1)

0: 許可

1: 禁止

(6)

経過値を0にリセットする(ビット0)

0: しない

1: する

例: 16#2109

グループ

説明

IV

2

チャンネルNo.: 2

III

1

(固定)

II

0

原点近傍入力: FALSE

I

9

16進数Hex 9は、2進数1001に対応します。

パルス出力: 停止(ビット3)

1

(ビット 2、固定)

0

カウント: 許可(ビット1)

0

経過値を0にリセットする: する(ビット0)

1

FP0Rに関する説明

制御コードのビット0~15は、4つのグループに割り付けられています。それぞれの値は、16進数で設定します。(例: 00020001 0000 1001 = 16#2109)

グループ IV

(1)

チャンネルNo. (チャンネルn: 16#n)

グループ III

1 (固定)

グループ II

(2)

位置制御開始要求

0: 無効

1: 有効

(3)

減速停止要求

0: 無効

1: 有効

(4)

原点近傍入力(ビット4) (注)

0: FALSE

1: TRUE

グループ I

(5)

パルス出力(ビット3)

0: 継続

1: 停止

(6)

パルス出力制御のキャンセル(ビット2)

0: 継続

1: 停止

(7)

カウント(ビット1)

0: 許可

1: 禁止

(8)

経過値を0にリセットする(ビット0)

0: しない

1: する

例: 16#2109

グループ

説明

IV

2

チャンネルNo.: 2

III

1

(固定)

II

0

位置制御開始要求: 無効

減速停止要求: 無効

原点近傍入力: FALSE

I

9

16進数Hex 9は、2進数1001に対応します。

パルス出力: 停止(ビット3)

1

パルス出力制御のキャンセル(ビット2)

0

カウント: 許可(ビット1)

0

経過値を0にリセットする: する(ビット0)

1

FP0、FP-eに関する説明

制御コードのビット0~15は、1つのチャンネル毎の設定を含む、4つのグループに割り付けられています。それぞれの値は、16進数で設定します。(例: 0000 0000 1001 0000 = 16#90)

グループ

II

I

チャンネル

1

0

  1.  (1) パルス出力(ビット3)

    0: 継続

    1: 停止

  2.  (2) 原点近傍入力(ビット2) (注)

    0: FALSE

    1: TRUE

  3.  (3) カウント(ビット1)

    0: 許可

    1: 禁止

  4.  (4) 経過値を0にリセットする(ビット0)

    0: しない

    1: する

例: 16#90

グループ

説明

II

9

チャンネルNo.: 1

16進数Hex 9は、2進数1001に対応します。

パルス出力: 停止(ビット3)

1

原点近傍入力: FALSE (ビット2)

0

カウント: 許可(ビット1)

0

経過値を0にリセットする: する(ビット0)

1

I

0

例: チャンネル2の原点近傍入力を有効にする(FP-SIGMA)

POUヘッダ

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

	VAR
	 bEnableNearHome: BOOL:=FALSE;
	END_VAR
	VAR CONSTANT
		PLS_CH2_ENABLE_NEAR_HOME: WORD:=16#2010;
			(*Enables near home input for channel 2*)
		PLS_CH2_CONTINUE: WORD:=16#2000;
			(*Disables near home input for channel 2
and starts deceleration*)
	END_VAR

LDボディ

原点復帰中にチャンネル2の原点近傍入力を有効にします。

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_VARIN,,PLS_CH2_ENABLE_NEAR_HOME,20,2,22,4,);
B(B_VARIN,,PLS_CH2_CONTINUE,20,6,22,8,);
B(B_F,E_MOVE!,Instance,22,0,28,4,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,28,2,30,4,);
B(B_F,E_MOVE!,Instance,22,4,28,8,,?DEN?D?AENO?C);
B(B_VAROUT,,sys_wHscOrPulseControlCode,28,6,30,8,);
B(B_CONTACT,,bEnableNearHome,4,1,6,3,R);
L(7,2,7,6);
L(1,2,4,2);
L(6,2,22,2);
L(7,6,22,6);
L(1,0,1,8);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

STボディ

if DF(bEnableNearHome) then
    PLS_CH2_ENABLE_NEAR_HOME:=sys_wHscOrPulseControlCode;
    PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;

例: チャンネル0のパルス出力を強制停止する方法(FP0FP-eFP-SIGMA)

POUヘッダ

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

LDボディ

チャンネル 0 に強制停止を実行します。

STボディ

if DF(bStopPulseOutput) then
    PLS_CH2_STOP_PULSE_OUTPUT:=sys_wHscOrPulseControlCode;
    PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;
注記

この制御コードの設定により強制停止が実行されると、PLCとモータ側の経過値が異なる状態になりますので、パルス出力が停止したあと、原点復帰を実行してください。

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