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類別)