機能
カウンタの動作設定を行います。
書式
Ret = SmcWSetCounterMode( Id , AxisNo , ClearCntLtc , LtcMode , ClearCntClr , ClrMode )
引数
Id [ C, C++: short ] [ Python: ctypes.c_short ]
SmcWInit 関数で取得したデバイスIDを指定します。
AxisNo [ C, C++: short ] [ Python: ctypes.c_short ]
軸番号を指定します。
ClearCntLtc [ C, C++: short ] [ Python: ctypes.c_short ]
LTC信号がOFF→ONへ変化した時にクリアするカウンタの種類を設定します。
0 |
カウンタをクリアしない |
1 |
出力パルスカウンタをクリア |
2 |
エンコーダカウンタをクリア |
3 |
出力パルスカウンタおよびエンコーダカウンタをクリア |
LtcMode [ C, C++: short ] [ Python: ctypes.c_short ]
LTC信号入力時にラッチするカウンタの種類を設定します。
0 |
ラッチ機能を使用しない |
1 |
出力パルスカウンタをラッチ |
2 |
エンコーダカウンタをラッチ |
3 |
出力パルスカウンタおよびエンコーダカウンタをラッチ |
ClearCntClr [ C, C++: short ] [ Python: ctypes.c_short ]
CLR信号がOFF→ONへ変化した時にクリアするカウンタの種類を設定します。
0 |
カウンタをクリアしない |
1 |
出力パルスカウンタをクリア |
2 |
エンコーダカウンタをクリア |
3 |
出力パルスカウンタおよびエンコーダカウンタをクリア |
ClrMode (予約) [ C, C++: short ] [ Python: ctypes.c_short ]
0固定です。
戻り値
Ret [ C, C++: long ] [ Python: ctypes.c_long ]
0 |
正常終了 |
0以外 |
異常終了 |
参照:エラーコード詳細
初期値
ClearCntLtc |
0H : クリアしない |
LtcMode |
0H : 使用しない |
ClearCntClr |
0H : クリアしない |
ClrMode |
0 (固定) |
説明
SmcWSetCtrlTypeIn関数の CtrlIn のビット4(IN4/LTC)をONしていない場合、LTC信号として認識しません。
LTC信号によりカウンタクリアを行うには、カウンタのラッチを行う必要があります。
従って、ClearCntLtc のビットをONとした場合、自動的に LtcMode 側のビットもONとなります。
エンコーダのZ相出力によりカウンタゼロクリアを行うには、外部入力によるカウンタクリアを参照してください。
SMC-4/8DF シリーズ 使用時には、ラッチするカウンタを選択することができません。
従って、LtcModeでラッチON設定とすると、他方のビットもON設定となります。
ラッチした各カウンタ値は各ラッチカウンタ読み出し関数(SmcWGetLatchOutPulse, SmcWGetLatchCountPulse)にて読み出すことができます。
CLR信号は、SMC-4/8DF シリーズ 使用時のみ有効です。従ってSMC-2/4/8DL
シリーズ使用時には、ClearCntClrは無効です。
軸が動作中の場合、この関数は実行できません。
初期設定関数実行後は、SmcWSetInitParam関数を実行する必要があります。
「初期設定関数について」を参照してください。
使用例
軸番号1のエンコーダカウンタの情報を設定します。
LTC信号がOFF→ONへ変化した時にクリアしない。
LTC信号入力時に出力パルスカウンタを使用しない。
CLR信号がOFF→ONへ変化した時にクリアしない。
C, C++
long Ret;
short ClearCntLtc ;
short LtcMode ;
short ClearCntClr ;
short ClrMode ;
ClearCntLtc = 0;
LtcMode = 0;
ClearCntClr = 0;
ClrMode = 0;
Ret = SmcWSetCounterMode( Id , 1, ClearCntLtc , LtcMode , ClearCntClr , ClrMode );
Python
Ret = ctypes.c_long()
ClearCntLtc = ctypes.c_short()
LtcMode = ctypes.c_short()
ClearCntClr = ctypes.c_short()
ClrMode = ctypes.c_short()
ClearCntLtc.value = 0
LtcMode.value = 0
ClearCntClr.value = 0
ClrMode.value = 0
Ret.value = csmc.SmcWSetCounterMode( Id , 1, ClearCntLtc , LtcMode , ClearCntClr , ClrMode )
関連項目