Spel類別事件
EventReceived事件,Spel類別
描述
發生於Epson RC+ 8.0傳送系統事件時;或發生於使用SPELCom_Event陳述式,以SPEL+執行中的程式傳送事件時。
語法
EventReceived (ByVal sender As Object, ByVal e As RCAPINet.SpelEventArgs)
參數
- e.Event
代表特用使用者定義事件的編號。 - e.Message
包含事件訊息的字串。
備註
Epson RC+ 8.0會發出多種系統事件。下表提供詳細說明。
系統事件
依據預設,部分事件為停用狀態。若要使用這些事件,您必須先使用EnableEvent方法將他們啟用。
事件編號 | 事件訊息 | 常數 | 描述 |
---|---|---|---|
1 | "PAUSE" | SpelEvents.Pause | 於任務暫停時發生。 預設為啟用。 |
2 | "SAFE GUARD OPEN" | SpelEvents.SafeGuardOpen | 於安全防護打開時發生。 預設為啟用。 |
3 | "SAFE GUARD CLOSE" | SpelEvents.SafeGuardClose | 於安全防護關閉時發生。 預設為啟用。 |
4 | Project build status text | SpelEvents.ProjectBuildStatus | 各建置狀態訊息會在BuildProject方法期間傳送。 CRLF會視需要添加。 這些訊息與在Epson RC+ 8.0 GUI的Project Build Status視窗上顯示的訊息相同。 此事件必須以EnableEvent方法啟用。 預設為停用。 |
5 | "Error xxx!: mmm in task at line yyy" | SpelEvents.Error | 於因未處理的錯誤或產生系統錯誤而導致任務終止時發生。 預設為啟用。 |
6 | Text from print statement | SpelEvents.Print | 於一Print陳述式從SPEL+任務執行時發生。 預設為停用。 |
7 | "ESTOP ON" | SpelEvents.EStopOn | 於緊急停止情況變為ON時發生。 預設為啟用。 |
8 | "ESTOP OFF" | SpelEvents.EStopOff | 於緊急停止情況變為OFF時發生。 預設為啟用。 |
9 | "CONT" | SpelEvents.Continue | 於執行Cont後發生。 預設為啟用。 |
10 | <Robot #>,"MOTOR ON" | SpelEvents.MotorOn | 於所指示機器人的馬達變為ON時發生。 預設為停用。 |
11 | <Robot #>,"MOTOR OFF" | SpelEvents.MotorOff | 於所指示機器人的馬達變為OFF時發生。 預設為停用。 |
12 | <Robot #>,"POWER HIGH" | SpelEvents.PowerHigh | 於所指示機器人的運行功率變為HIGH時發生。 預設為停用。 |
13 | <Robot #>,"POWER LOW" | SpelEvents.PowerLow | 於所指示機器人的運行功率變為LOW時發生。 預設為停用。 |
14 | "TEACH MODE" | SpelEvents.TeachMode | 於示教模式啟動時發生。 預設為啟用。 |
15 | "AUTO MODE" | SpelEvents.AutoMode | 於自動模式啟動時發生。 預設為啟用。 |
16 | "<TaskID>,<Status>,<FuncName>" Status: "RUN", "HALT", "PAUSE", "FINISHED", "ABORTED" | SpelEvents.TaskState | 於任務狀態改變時發生。 預設為無效。 |
17 | "SHUTDOWN" | SpelEvents.Shutdown | 於RC+正在關閉時發生。 預設為無效。 |
18 | "ALL TASKS STOPPED" | SpelEvents.AllTasksStopped | 於所有任務已停止時發生。 預設為無效。 |
19 | "DISCONNECTED" | SpelEvents.Disconnected | 當控制器通信與PC中斷時發生。 啟用時,RC+不會顯示表示連線中斷的訊息方塊。 預設為無效。 |
20 | “MOTION STARTED” | SpelEvents.MotionStarted | 控制命令已經開始。 如果啟用,將在執行以下Spel類方法時顯示。 Arc、Arc3、BGo、BMove、CVMove、Go、Home、JTran、Jump、Jump3、Jump3CP、MCal、Move、Pass、PTran、Pulse、TGo、TMove 預設為無效。 |
21 | “MOTION COMPLETE” | SpelEvents.MotionComplete | 控制命令已經結束。 如果啟用,將在執行以下Spel類方法時顯示。 Arc、Arc3、BGo、BMove、CVMove、Go、Home、JTran、Jump、Jump3、Jump3CP、MCal、Move、Pass、PTran、Pulse、TGo、TMove 預設為無效。 |
使用者事件
您可透過SPEL+程式,使用「SPELCom_Event」命令,將事件傳送至Visual Basic應用程式。
Spelcom_Event 3000, cycNum, lotNum, cycTime
此陳述式執行時,EventReceived常式將會連同事件編號及訊息一起調用。請參閱Epson RC+ 8.0線上說明或SPEL+ 語言參考,瞭解「SPELCom_Event」的詳細資訊。
使用範例
VB 例:
Sub m_spel_EventReceived ( _
ByVal sender As Object, _
ByVal e As RCAPINet.SpelEventArgs) _
Handles m_spel.EventReceived
Redim tokens(0) As String
Select Case e.Event
Case 3000
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# 例:
public void m_spel_EventReceived(object sender, SpelEventArgs e)
{
string[] tokens = new string[3];
switch ((int) e.Event){
case 3000:
tokens = e.Message.Split(' ');
lblCycCount.Text = tokens(0);
lblLotNumber.Text = tokens(1);
lblCycTime.Text = tokens(2);
break;
default:
break;
}
}
處理事件
當EventReceived從Spel類別執行個體調用時,Epson RC+ 8.0處理伺服器將需等待事件處理常式結束。因此,您切勿嘗試在EventReceived常式期間執行任何RC+ API命令或執行長執行時間的處理作業。若要根據發生的事件執行命令,請在EventReceived中設定旗標,並從事件處理函數範圍外的應用程式main迴圈處理旗標。
例如,在Load程序的Visual Basic主要表單中,您可從SPEL+建立接收事件的事件迴圈。在「spel_EventReceived」常式中,設定「全域旗標」以指示已接收的事件後,即可從「Load」程序所建立的事件迴圈中,執行實際的事件處理。
顯示事件訊息
將TextBox控制項添加至表單。每次收到事件時,您可以在TextBox控制項的Text屬性中顯示事件訊息。
VB 例:
Private Sub m_spel_EventReceived(ByVal sender As Object, _
ByVal e As SpelEventArgs) Handles m_spel.EventReceived
txtEvents.AppendText(e.Event & ": " & e.Message & vbCrLf)
End Sub
C# 例:
private void m_spel_EventReceived(object sender, SpelEventArgs e)
{
txtEvents.AppendText(e.Event + ": " + e.Message);
}
另請參閱
EnableEvent(Spel類別)
← Spel類別方法 SPELVideo控制項 →