short FireEvent ( long val );
VisualBasicなどからの返却値が返却されます。
val:VisualBasicなどへ通知する値を指定します。
VisualBasicなどへイベントを通知し、処理依頼をするのに使用します。
本関数を使用することで、VisualBasicなどのアプリケーションで事象待ち受けをポーリングにて監視する必要がなくなります。
アプリケーション側では、MwControllerコンポーネントのApplEventイベントで本関数による通知を受け取ることができます。
例えばVisualBasicでは、ApplEventイベントプロシージャに通知に対する処理を記述してイベントをハンドリングします。ApplEventイベントにはEventIDというパラメータがあり、ここに本関数で指定したvalが渡されてきますので、アプリケーション側ではvalに応じた処理を行うことができます。ApplEventを扱うハンドラのリターン値が本関数の戻り値になります。
本関数は応答タイムアウト時間を設定していないので、ApplEventイベントハンドラからの応答を待ち続けます。イベントハンドラは短時間で応答するようにしてください。
〇PCベースコントローラ
×InterMotion
次の例では、RobPtpMoveで指定位置へ移動後、VB.net/C#へイベントを通知します。そしてFireEventの戻り値を参照して良品と不良品の判定をしています。(例えばポート出力に良/不良の表示等が可能です)
// MOSBench側のソースコードの例
void main() {
・・・・
// 測定位置へ移動
RobPtpMove(0, Pos1, 1);
rc = FireEvent(1/*測定開始*/);
if(rc == 0) {
// 測定結果:良品
}
else {
// 測定結果:不良
}
・・・・
}
// C#側のソースコードの例
public partial class Form1 : Form
{
private MwControllerLib.SystemCtrl sysCtrl = new MwControllerLib.SystemCtrl();
public Form1()
{
InitializeComponent();
//FireEventの登録
sysCtrl.ApplEvent += SysCtrl_ApplEvent;
//FireEventを有効にする。
sysCtrl.EnableApplEvents(1);
}
//FireEventから呼ばれる関数
private short SysCtrl_ApplEvent(short ProcNo, int EventID)
{
double MesureResult = 0;
//測定処理
//............
int r = 0;
if(MesureResult > 100)
{
r = 0; 不良品
}
else
{
r = 1; 良品
}
return (r);
}
}