回應
當控制器正確接收到命令時,會在執行命令中顯示下列格式的回應。
回應格式
ACK 1Byte | 命令 1Byte | 資料 變數 | ETX 1Byte | BCC 1Byte |
ACK : &H06
ETX : &H03
BCC : 已傳送和已接收資料的總和檢查碼
每1Byte從命令至ETX的XOR值
命令 | 格式 |
---|---|
取得值的遠程命令 (以下)除外 | [ACK][命令] (1 Byte)[ETX][BCC] |
GetCurRobot | [ACK]'y'[機器人編號] [ETX][BCC] |
GetIO | [ACK] 'i'[&H00 | &H01] [ETX][BCC] *1 |
GetMemIO | [ACK] 'o'[&H00 | &H01] [ETX][BCC] *1 |
GetIOByte | [ACK] 'b'[ Byte值(8bit) (&H00~&HFF)] [ETX][BCC] |
GetMemIOByte | [ACK] 't'[ Byte值(8 bit) (&H00~&HFF)] [ETX][BCC] |
GetIOWord | [ACK] 'w'[ Word值(16 bit) (&H0000~&HFFFF)] [ETX][BCC] |
GetIOMemWord | [ACK] 'u'[ Word值(16 bit) (&H0000~&HFFFF)] [ETX][BCC] |
GetVariable | [ACK] 'v'[參數值]*5 [ETX][BCC] |
GetVariable(若為陣列) | [ACK] 'v'[參數值1]*5[參數值2]*5 ...[ETX][BCC] *4 |
GetStatus | [ACK] 'S'[狀態][錯誤, 警告代碼] [ETX][BCC] 範例 [ACK] 'S'[aaaaaaaaaaa][bbbb][ETX][BCC] *2 *3 |
Execute | 如果數值以命令執行的結果傳回 [ACK] 'X' "[執行結果]" [ETX][BCC] |
GetAlm | [ACK] 'z' [number of alarms][alarm number]... [ETX][BCC] 範例)沒有警報發生時 &H06&H7A&H00&H03&H79 範例)發生警報1和9時 &H06&H7A&H02&H01&H09&H03&H73 |
*1 [&H00 | &H01]I/O位 開啟:&H01/關閉:&H00
*2 aaaaaaaaaaa部分:狀態
在上述範例中,11個數字「aaaaaaaaaaa」係用於下列11個旗標。
Test/Teach/Auto/Warning/SError/Safeguard/EStop/Error/Paused/Running/Ready
開啟:&H01/關閉:&H00
若Ready和Auto為開啟,
則為[&H00&H00&H01&H00&H00&H00&H00&H00&H00&H00&H01]。
*3 bbbb部分:錯誤/警告代碼
以4個數字表示。如果沒有出現錯誤和警告,則為「0000」(&H30&H30&H30&h30)。
範例1:[ACK]
'S[&H00&H00&H01&H00&H00&H00&H00&H00&H00&H00&H01][ &H30&H30&H30&h30]
Auto和Ready的位為&H01。
這表示AutoMode為開啟且進入Ready狀態。您可以執行命令。
範例2:[ACK]
'S[&H00&H00&H01&H01&H00&H00&H00&H00&H00&H01&H00][ &H30&H35&H31&h37]
這表示操作期間出現警告。針對警告代碼採取適當的措施。(在此情況下,警告代碼為0517)
旗標 | 內容 |
---|---|
Test | 在TEST模式下開啟 |
Teach | 在TEACH模式下開啟 |
Auto | 在遠程輸入接受狀況下開啟 |
Warning | 在警告狀況下開啟 即使出現警告,任務也能如常執行。 不過,請儘快針對警告採取相應措施。 |
SError | 發生嚴重錯誤時開啟。 發生嚴重錯誤時,「Reset輸入」不會作用。 重啟控制器即可恢復。 |
Safeguard | 在安全門打開的情況下開啟 |
EStop | 在緊急狀況下開啟 |
Error | 在錯誤狀況下開啟 使用「Reset輸入」可從錯誤狀況恢復。 |
Paused | 任務暫停時開啟 |
Running | 任務執行時開啟 在「Paused輸出」開啟時會關閉。 |
Ready | 於控制器啟動完成且沒有任務正在執行時開啟 |
*4 其會傳回在「取得數值」中指定的數值。
*5 二進位資料。如果在要求取得、轉換程序之後,轉換為指定數據類型。
錯誤回應
當控制器無法正確接收遠程命令時,會以下列格式顯示錯誤回應。
NAK 1Byte | 命令 1Byte | 錯誤代碼 2Byte | ETX 1Byte | BCC 1Byte |
NAK : &H15
ETX : &H03
BCC : 已傳送和已接收資料的總和檢查碼
每1Byte從命令至ETX的XOR值
錯誤代碼 | 內容 |
---|---|
10 | 遠程命令沒有使用$作為開頭 |
11 | 遠程命令錯誤 Login未執行 |
12 | 遠程命令格式錯誤 |
13 | Login命令密碼錯誤 |
14 | 指定的取得數值超出範圍(小於1或大於100) 取得數值被省略 已指定字串參數 |
15 | 參數不存在 參數的維度錯誤 調用了超出範圍的元素 |
16 | BCC錯誤 |
19 | 要求超時 |
20 | 控制器未就緒 |
21 | 因Execute正在運行中而無法執行 |
99 | 系統錯誤、通信錯誤等 |