レスポンス
コマンドをコントローラーが正しく受信できた場合、実行するコマンドにより、以下のフォーマットのレスポンスがあります。
レスポンスフォーマット
ACK 1 Byte | コマンド 1Byte | データ 可変 | ETX 1 Byte | BCC 1 Byte |
ACK : &H06
ETX: &H03
BCC : 送受信データのチェックサム
コマンドからETXまでの1 ByteごとのXOR値
| コマンド | フォーマット |
|---|---|
値を取得するリモートコマンド (以下)以外 | [ACK][コマンド] (1 Byte)[ETX][BCC] |
| GetCurRobot | [ACK]'y'[Robot番号] [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' [アラーム数][アラーム番号]... [ETX][BCC] (例) アラームがない場合 &H06&H7A&H00&H03&H79 (例) アラーム1とアラーム9が発生している場合 &H06&H7A&H02&H01&H09&H03&H73 |
*1 [&H00 | &H01] IOビットがオンの場合 &H01、オフの場合 &H00
*2 aaaaaaaaaaa部: ステータス
上記の例 [aaaaaaaaaaa]の11桁は、それぞれ次のフラグ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 1 Byte | コマンド 1 Byte | エラーコード 2 Byte | ETX 1 Byte | BCC 1 Byte |
NAK : &H15
エラーコード: &H31&H30 (例:エラーコード “10” の場合)
ETX : &H03
BCC : 送受信データのチェックサム
コマンドからETXまでの1 ByteごとのXOR値
| エラーコード | 内容 |
|---|---|
| 10 | リモートコマンドが$で始まっていない |
| 11 | リモートコマンドが不正 Loginしていない |
| 12 | リモートコマンドのフォーマットが不正 |
| 13 | Loginコマンドのパスワードが不正 |
| 14 | 取得個数の指定が範囲外 (1以上100以下) 取得個数の指定を省略した 文字列変数を指定した |
| 15 | 変数が存在しない 変数の次元が違う 範囲外の要素を要求 |
| 16 | BCC不正 |
| 19 | リクエストタイムアウト |
| 20 | コントローラーが実行状態にない |
| 21 | Execute実行中のため、実行できない |
| 99 | システムエラー, 通信異常など |