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