高速カウンタおよびパルス出力制御コードが格納されている特殊データレジスタは、システム変数sys_wHscOrPulseControlCodeを使用して読み出し、書き込みすることができます。(システム変数sys_wHscOrPulseControlCodeは、特殊データレジスタDT90052に相当します。)
パルス出力制御コードで制御できる動作
原点近傍位置で減速動作をさせるためには、原点近傍入力に割り付けられているパルス出力制御コード(sys_wHscOrPulseControlCode) (特殊データレジスタ)のビット4をTRUEにセットしたあと、再び、FALSEに戻してください。原点近傍入力のビットの値は保持されます。原点復帰時、2回目以降の原点近傍入力を有効とするためには、このビットの値をFALSEにセットした後、TRUEにリセットしてください。
パルス出力制御コード(sys_wHscOrPulseControlCode)のビット3をTRUEにセットすると、パルス出力が停止します。パルス出力命令を使って、プログラム毎に強制停止できるようにしてください。パルス出力を継続するには、ビット3をFALSEにリセットしてください。
パルス出力
経過値
1
制御コードのビット1の値をTRUEにセットすると、カウントが禁止され、経過値が保持されます。ビット1の値をFALSEにリセットすると、カウントを継続します。
パルス出力
経過値
パルス出力制御コードのビット 0 (ソフトリセット)
制御コードのビット0 の値を TRUE にセットすると、ソフトリセットが実行され、経過値が 0 になります。ビット0の値がFALSEにリセットされるまで、経過値は0を保持します。
パルス出力命令の実行をキャンセルするには、パルス出力制御コード(sys_wHscOrPulseControlCode)を格納しているデータレジスタのビット2をTRUEにセットします。その後、パルス出力制御フラグがFALSEになります。命令の実行を再び有効にするには、ビット2をFALSEに戻します。
制御コードのビット0~15は、4つのグループに割り付けられています。それぞれの値は、16進数で設定します。(例: 00020000 0000 1001 = 16#2009)
グループ |
(1) |
チャンネルNo. (チャンネルn: 16#n) |
|
グループ |
0 (固定) |
||
グループ |
(2) |
原点近傍入力(ビット4) |
|
0:FALSE |
1: TRUE |
||
グループ |
(3) |
パルス出力(ビット3) |
|
0: 継続 |
1: 停止 |
||
(4) |
0 (ビット2、固定) |
||
(5) |
カウント(ビット1) |
||
0: 許可 |
1: 禁止 |
||
(6) |
経過値を0にリセットする(ビット0) |
||
0: しない |
1: する |
例: 16#2009
グループ |
値 |
説明 |
|
---|---|---|---|
|
2 |
チャンネルNo.: 2 |
|
|
0 |
(固定) |
|
|
0 |
原点近傍入力: FALSE |
|
|
9 |
16進数Hex 9は、2進数1001に対応します。 |
|
パルス出力: 停止(ビット3) |
1 |
||
(ビット2、固定) |
0 |
||
カウント: 許可(ビット1) |
0 |
||
経過値を0にリセットする: する(ビット0) |
1 |
グループ |
(1) |
チャンネルNo. (チャンネルn: 16#n) |
|
グループ |
(2) |
1 (固定) |
|
グループ |
(3) |
原点近傍入力(ビット4) (注) |
|
0: FALSE |
1: TRUE |
||
グループ |
(4) |
パルス出力(ビット3) |
|
0: 継続 |
1: 停止 |
||
(5) |
カウント(ビット1) |
||
0: 許可 |
1: 禁止 |
||
(6) |
経過値を0にリセットする(ビット0) |
||
0: しない |
1: する |
例: 16#2109
グループ |
値 |
説明 |
|
---|---|---|---|
|
2 |
チャンネルNo.: 2 |
|
|
1 |
(固定) |
|
|
0 |
原点近傍入力: FALSE |
|
|
9 |
16進数Hex 9は、2進数1001に対応します。 |
|
パルス出力: 停止(ビット3) |
1 |
||
(ビット 2、固定) |
0 |
||
カウント: 許可(ビット1) |
0 |
||
経過値を0にリセットする: する(ビット0) |
1 |
制御コードのビット0~15は、4つのグループに割り付けられています。それぞれの値は、16進数で設定します。(例: 00020001 0000 1001 = 16#2109)
グループ |
(1) |
チャンネルNo. (チャンネルn: 16#n) |
|
グループ |
1 (固定) |
||
グループ |
(2) |
位置制御開始要求 |
|
0: 無効 |
1: 有効 |
||
(3) |
減速停止要求 |
||
0: 無効 |
1: 有効 |
||
(4) |
原点近傍入力(ビット4) (注) |
||
0: FALSE |
1: TRUE |
||
グループ |
(5) |
パルス出力(ビット3) |
|
0: 継続 |
1: 停止 |
||
(6) |
パルス出力制御のキャンセル(ビット2) |
||
0: 継続 |
1: 停止 |
||
(7) |
カウント(ビット1) |
||
0: 許可 |
1: 禁止 |
||
(8) |
経過値を0にリセットする(ビット0) |
||
0: しない |
1: する |
例: 16#2109
グループ |
値 |
説明 |
|
---|---|---|---|
|
2 |
チャンネルNo.: 2 |
|
|
1 |
(固定) |
|
|
0 |
位置制御開始要求: 無効 |
|
減速停止要求: 無効 |
|||
原点近傍入力: FALSE |
|||
|
9 |
16進数Hex 9は、2進数1001に対応します。 |
|
パルス出力: 停止(ビット3) |
1 |
||
パルス出力制御のキャンセル(ビット2) |
0 |
||
カウント: 許可(ビット1) |
0 |
||
経過値を0にリセットする: する(ビット0) |
1 |
制御コードのビット0~15は、1つのチャンネル毎の設定を含む、4つのグループに割り付けられています。それぞれの値は、16進数で設定します。(例: 0000 0000 1001 0000 = 16#90)
グループ |
|
|
チャンネル |
1 |
0 |
0: 継続
1: 停止
0: FALSE
1: TRUE
0: 許可
1: 禁止
0: しない
1: する
例: 16#90
グループ |
値 |
説明 |
|
---|---|---|---|
|
9 |
チャンネルNo.: 1 16進数Hex 9は、2進数1001に対応します。 |
|
パルス出力: 停止(ビット3) |
1 |
||
原点近傍入力: FALSE (ビット2) |
0 |
||
カウント: 許可(ビット1) |
0 |
||
経過値を0にリセットする: する(ビット0) |
1 |
||
|
0 |
– |
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
原点復帰中にチャンネル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
if DF(bEnableNearHome) then
PLS_CH2_ENABLE_NEAR_HOME:=sys_wHscOrPulseControlCode;
PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。POUヘッダは全プログラム言語で使用できます。
チャンネル 0 に強制停止を実行します。
if DF(bStopPulseOutput) then
PLS_CH2_STOP_PULSE_OUTPUT:=sys_wHscOrPulseControlCode;
PLS_CH2_CONTINUE:=sys_wHscOrPulseControlCode;
end_if;
この制御コードの設定により強制停止が実行されると、PLCとモータ側の経過値が異なる状態になりますので、パルス出力が停止したあと、原点復帰を実行してください。