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;  
    }  
}