SPEL+からのユーザーイベント
SPEL+プログラムから.NETアプリケーションにイベントを発生させることができます。例えば、.NETアプリケーションに連続サイクルループについての情報を教えることができます。これは、.NETからコントローラー内の変数値をポーリングするよりも、更に適切な使用方法です。SPEL+からVisual Basicにイベントを起こすには、SPEL+プログラムステートメントで、 “SPELCom_Event”コマンドを使ってください。
例: (Visual Basic)
SPELCom_Event 1000, cycNum, lot$, cycTime
“SPELCom_Event”コマンドは、“Print”コマンドに似ています。.NETアプリケーションに送られる1つまたはそれ以上のデータを指定できます。“SPELCom_Event”の詳細については、
以下を参照してください。
SPELCom_Event
Visual Basicでイベントを受信するには、“WithEvents”で、Spelクラス変数を宣言します。
Public WithEvents m_spel As RCAPINet.Spel
“Spelクラス”インスタンスの、“EventReceived”で、イベントをキャッチしてください。このルーチンを編集するには、Spelクラスを宣言したモジュールで、クラス名リストから“m_spel”を、プロシージャリストから“EventReceived”を選択してください。
以下は、イベントが発生したときにラベルを更新する“EventReceived”ルーチンのコード例です。
VB 例:
Sub m_spel_EventReceived (ByVal sender As Object, _
ByVal e As RCAPINet.SpelEventArgs) _
Handles m_spel.EventReceived
Dim tokens() As String
Select Case e.Event
Case 2000
tokens = e.Message.Split(New [Char]() {" "c}, _
System.StringSplitOptions.RemoveEmptyEntries)
lblCycCount.Text = tokens(0)
lblLotNumber.Text = tokens(1)
lblCycTime.Text = tokens(2)
End Select
End Sub
C# 例:
void m_spel_EventReceived(object sender, SpelEventArgs e)
{
string[] tokens = new string[3];
switch(e.Event)
{
case 2000:
tokens = e.Message.Split(' ');
lblCycCount.Text = tokens(0);
lblLotNumber.Text = tokens(1);
lblCycTime.Text = tokens(2);
break;
default:
break;
}
}