SmcWCountEvent


機能

カウント一致イベントコールバック関数を設定します。

 

書式

Ret = SmcWCountEvent( Id , AxisNo , CallBack , EventMode , CountType, Count , Parameter )

 

引数

Id [ C, C++: short ] [ Python: ctypes.c_short ]

SmcWInit 関数で取得したデバイスIDを指定します。

 

AxisNo [ C, C++: short ] [ Python: ctypes.c_short ]

軸番号を指定します。

 

CallBack [ C, C++: PSMC_COUNT_CALLBACK ] [ Python: PSMC_COUNT_CALLBACK ]

コールバック関数のアドレスを指定します。
NULLを指定するとコールバックによる通知設定をクリアします。

 

EventMode [ C, C++: short ] [ Python: ctypes.c_short ]

イベントの有効/無効を設定してください。

0

イベントを無効

1

イベントを有効

 

CountType [ C, C++: short ] [ Python: ctypes.c_short ]

カウント一致を行うカウンタを設定してください。

0

出力パルス数

1

エンコーダのカウントパルス数

 

Count [ C, C++: int ] [ Python: ctypes.c_int ]

カウント数を設定してください。
指定可能な範囲:-134217728 ~+134217727

 

Parameter [ C, C++: void * ] [ Python: ctypes.c_void_p ]

コールバックに渡すパラメータのアドレスを指定します。
パラメータが必要ない場合は、NULLを指定してください。

 

戻り値

Ret [ C, C++: long ] [ Python: ctypes.c_long ]

0

正常終了

0以外

異常終了

参照:エラーコード詳細

 

説明

カウンタ値が指定カウント数に達した場合にイベントが発行されます。

イベント発生関数は1度実行すれば、その後要因が発生する度にイベントが発生します。
イベントを停止させる目的以外で、複数回実行する必要はありません。

カウント一致が発生したとき、コールバックを通じてアプリケーションに通知します。
コールバック設定を行った後、カウントが一致すると、設定したコールバック関数が呼び出されます。

SmcWSetCtrlTypeOut関数で CtrlTypeOut1~3の設定に、カウンタカウント一致信号設定がなされている出力信号のみカウント一致の条件成立中に信号を出力させることができます。
・従って、非常に速いパルス出力の場合、レベルの変化が一瞬のため、出力先でデータとして認識できない可能性があります。
・指定パルス数で停止した場合、信号はレベルが変化した状態のままとなります。
・信号幅を指定しての1ショットパルスを出力することはできません。

信号は以下の2種類です。
・出力パルスカウンタカウント一致信号(CP1)
 CountTypeに「0 : 出力パルス数」を設定し、かつ出力パルス数カウント一致イベントが有効時。

・エンコーダカウンタカウント一致信号(CP2)
 CountTypeに「1 : エンコーダのカウントパルス数」を設定し、かつエンコーダパルス数カウント一致イベントが有効時。

 

使用例

軸番号1に対して出力パルス数500になった場合のカウント一致イベントコールバック関数を設定します。

 

C, C++

long Ret;

Ret = SmcWCountEvent( Id , 1 , CallBack , 1 , 0 , 500 , this );

 

Python

Ret = ctypes.c_long()

Ret.value = csmc.SmcWCountEvent( Id , 1 , CallBack , 1 , 0 , 500 , 0 )

 

関連項目

SmcWStopEvent SmcWBankEvent

 


コールバック関数

 

書式

CallBack( Id , AxisNo , Message , Parameter )

 

引数

Id [ C, C++: short ] [ Python: ctypes.c_short ]

SmcWInit 関数で取得したIDが渡されます。

 

AxisNo [ C, C++: short ] [ Python: ctypes.c_short ]

ドライバからイベントが発生した軸番号が渡されます。

 

Message [ C, C++: int ] [ Python: ctypes.c_int ]

コールバック関数呼び出しの原因となるメッセージ番号が渡されます。

 

Parameter [ C, C++: void * ] [ Python: ctypes.c_void_p ]

SmcWCountEvent関数に指定したパラメータが渡されます。

 

戻り値

なし [ void ]