来自 SPEL+ 的用户事件

通过 SPEL+ 程序可在 .NET 应用中导致事件发生。例如:您可以通知 .NET 应用有关连续循环回路的信息。这种方法要优于通过 .NET 在控制器中轮询变量值。若要通过 SPEL+ 触发 Visual Basic 事件,使用 SPEL+ 程序语句中的“SPELCom_Event”命令。
例: (Visual Basic)

SPELCom_Event 1000, cycNum, lot$, cycTime  

“SPELCom_Event”命令与“Print”命令类似。可指定一段或多段待发送至 .NET 应用的数据。有关“SPELCom_Event”的详细信息, 请参阅以下内容。
SPELCom_Event
在您可以接收事件之前,必须用 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;  
    }  
}