A-ZEUS 通信コマンド一覧 Ver3.0


------ 経緯台制御用 通信コマンド一覧 -------    更新 2006.5.24
赤道儀版との相違項目は、行頭に「$」を付記する
言葉の置き換え 「赤経」→「方位」,「赤緯」→「高度」,「恒星時」→「恒星追尾」

*****************
  1.基本設計
*****************
1. シリアルポート(RS-232C)により通信する。
	・Baudrate	9600bps
	・データビット	8 bit
	・パリティなし
	・ストップビット	1 bit
	・非同期

2. 基本的にPCからコマンドを送信し、A-ZEUS(PICマイコン) から返答する。
    A-ZEUSから要求するコマンドは設けない。

$3. A-ZEUS は、PCのコマンドに対して原則として返答を行う。
    PCは A-ZEUS からの返答をもって、後続のコマンドを送信可能とする。
    原則として、A-ZEUS はコマンドを受信直後に返答を行うが、コマンドのバッファ
    が満杯の場合のみ、バッファの空きを待って返答する。(関連(4))
     ※ 参考:返答の役割分担
       (1) 先頭文字が "V" 以外のコマンドには、TGautoAA が返答する
       (2) "VDC#" コマンドに対しては 高度側 PostAA が返答する
       (3) (1)(2)以外は 方位側 PostAA が返答する
       これらの返信は、同じ Tx ポートから発せられるため返信元は特定できな
       い。(特定の必要もない)

4. DVコマンドは完了までに時間を要す。このため、A-ZEUS 側は複数のコマンドを受
    信可能なバッファを設ける。
    また、DVコマンド以外のコマンドは、DVコマンドの完遂以前でも受け付け次第
    即座に実行し回答する。

5. スローアップ,スローダウンの制御は A-ZEUS で判断し実行する。

6. DVコマンドにより、低速,中速,高速 で稼動中は、DVコマンドの完遂までハン
    ドコントローラー(等の外部コントロール)は受け付けない前提とする。
    (例外)停止,非常停止

7. ハンドコントローラー(等の外部コントロール)による制御信号(Ex Control)
    が発生した時は、A-ZEUS がPCより受け付けた DVコマンドは全てキャンセルする。

8. 移動および停止命令の優先順位は以下とする。

(1) ハンドコントローラによる停止
(2) PCによるSPコマンド
(3) PCによるDV(ステップ指定)コマンド
(4) ハンドコントローラによる移動
(5) PCによるDV(連続駆動)コマンド

9. 移動命令の禁則
(1) 外部コントロール中に DV コマンドを受信した。

(処置)エラーコード「!01」を返信。受信したコマンドは無視する。

(2) 方位モーターが「低速」または「中速」または「高速」で移動中に、
   数値付DVRAコマンド を受信した。
   高度モーターが「低速」または「中速」または「高速」で移動中に、
   数値付DVDCコマンド を受信した。

(処置)エラーコード「!02」を返信。受信したコマンドは無視する。

(3) 数値付DVコマンド実行中(=目的値に達する前)に、数値なしDVコマ
    ンドを受信した。

(処置)エラーコード「!03」を返信。受信したコマンドは無視する。

※ 警告動作
  エラーにはしないが、警告を伴う動作。---急速反転の禁止。
(4) 方位モーターが「低速」または「中速」または「高速」で移動中に、
   反対の方向の「低速」または「中速」または「高速」命令を受信した。
   高度モーターが「低速」または「中速」または「高速」で移動中に、
   反対の方向の「低速」または「中速」または「高速」命令を受信した。

(処置)エラーコード「!80」とACK「#」を続けて返信。
   方位は、速度を「1」(恒星追尾)に置き換えて実行する。
$  高度は、速度を「1」(恒星追尾)に置き換えて実行する。

10. 数値付DVコマンド完了時の処置
  数値付DVコマンドで、モーターが目的値に達した後は、
   方位は、速度を「1」(恒星追尾)を実行する。
$  高度は、速度を「1」(恒星追尾)を実行する。

11. 外部コントロール終了後の処置
   方位は、速度を「1」(恒星追尾)を実行する。
$  高度は、速度を「1」(恒星追尾)を実行する。
  ....実際には、A-ZEUS は何らかの状態を示す必要があるので、外部コント
      ロールを認知したと同時に、上記の状態を作って待機する。

12. モータの回転方向の定義
  ・方位モーターは日周運動方向を正転とする。
$  ・高度モーターは天頂方向を正転とする。

**********************
  2.コマンド一覧
**********************

*** 文字,数字 全て ASCIIコードにて通信すること ***

●モーター位置要求コマンド PC -> A-ZEUS
  0123456789
  ----------------------
  GP
  
  ・01
   "GP"・・・位置取得コマンド
  
  ■モーター位置 PC <- A-ZEUS
  01234567891011121314151617181920
  ----------------------------------------
  GP#HHHHHHHH#hhhhhhhh
  
  ・01
   "GP"・・・位置返信
  
  ・2,11
   "#"・・・モーターの値であることを示す
  
  ・3-10
   RAモーターステップ16進8桁
  
  ・12-19
   DCモーターステップ16進8桁


●モーター制御コマンド PC -> A-ZEUS
  012345678901011121314
  ----------------------
  DVRAF2                    : 連続駆動
  DVRAF2#HHHHHHHH  : ステップ数指定駆動/相対数指定
  
  ・01
   "DV"・・・ドライブコマンド
  
  ・23
   "RA"・・・方位モーター
   "DC"・・・高度モーター
  
  ・4
   "F"・・・正転
   "R"・・・逆転
  
  ・5
   "0"・・・停止
   "1"・・・恒星追尾
   "2"・・・低速
   "3"・・・中速
   "4"・・・高速
  
  ・6
   "#"・・・区切り
   ・・・連続駆動(ステップ数の指定なし)
  
  ・7-13
   "HHHHHHHH" ・・・モーターステップ16進8桁(相対数)



  ■ACK PC <- A-ZEUS
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK  :コマンドのバッファが満杯でなければ直ぐに回答


$●モーター速度問い合わせ PC -> A-ZEUS

  012
  ---------
  VB
  
  ・01
   "VB"・・・モーター速度問い合わせ

  ■モーター周回数 PC <- A-ZEUS
  01234567891011121314151617181920
  ----------------------------------------
  VB#NHHHHHHH#nhhhhhhh
  
  ・01
   "VB"・・・モータ速度返信
  
  ・2,11
   "#"・・・区切り
  
    ・3
   "0"・・・RAモーター正転
   "1"・・・RAモーター逆転

  ・4-10
   RAモーター速度16進7桁
  
    ・12
   "0"・・・DCモーター正転
   "1"・・・DCモーター逆転

  ・13-19
   DCモーター速度16進7桁


$●速度制御コマンド 両軸指定 PC -> A-ZEUS
  ※ 電源をOFFにするとデフォルト値に復帰します。

  01234567891011121314151617181920
  ----------------------------------------
  VB#NHHHHHHH#nhhhhhhh
  
  ・01
   "VB"・・・速度制御コマンド 両軸指定
  
  ・2,11
   "#"・・・区切り
  
    ・3
   "0"・・・RAモーター正転
   "1"・・・RAモーター逆転

  ・4-10
   RAモーター速度16進7桁
  
    ・12
   "0"・・・DCモーター正転
   "1"・・・DCモーター逆転

  ・13-19
   DCモーター速度16進7桁

  ※ A-ZEUSのデフォルト値は
     RA=0
     DC=0

  ■ACK PC <- A-ZEUS
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK


$●速度制御コマンド 単軸指定 PC -> A-ZEUS
  0123456789101112
  ----------------------
  VRA#NHHHHHHH  : 速度制御コマンド 単軸指定
  
  ・0
   "V"・・・速度制御コマンド 単軸指定
  
  ・12
   "RA"・・・方位モーター
   "DC"・・・高度モーター
  
  ・3
   "#"・・・区切り
  
    ・4
   "0"・・・モーター正転
   "1"・・・モーター逆転

  ・5-10
   "HHHHHHH" ・・・モーター速度16進7桁


  ■ACK PC <- A-ZEUS
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK


●モーター停止要求コマンド PC -> A-ZEUS
  このコマンドを受け付けた場合、実行中および実行待ちのDVコマンドは
  その時点でキャンセルする。

  0123456789
  ----------------------
  SP0
  
  ・01
   "SP"・・・モーター停止要求コマンド
 
  ・2
   "0"・・・完全停止
   "1"・・・恒星追尾運転に

  ■ACK PC <- A-ZEUS
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK


●BOX状態コマンド PC -> A-ZEUS
  0123456789
  ----------------------
  ST
 
  ・01
   "ST"・・・BOX状態要求コマンド
  
  
  ■BOX状態 PC <- A-ZEUS
  
  0123456789
  ----------------------
  STPF2BR3
  
  ・01
   "ST"・・・BOX状態
 
  ・2
   "P"・・・方位モーターがPC司令にて移動中
   "B"・・・方位モーターがBOXにて移動中
   "I"・・・方位モーターがアイドル状態(停止、もしくは恒星追尾運転)
  ・3
   "F"・・・方位モーターが順転中
   "R"・・・方位モーターが逆転中
  ・4
   方位モータースピード(0、1、2、3、4)
   (注) A-ZEUS による制御中は無条件に "0"とする

  ・5
   "P"・・・高度モーターがPC司令にて移動中
   "B"・・・高度モーターがBOXにて移動中
   "I"・・・高度モーターがアイドル状態(停止)
  ・6
   "F"・・・高度モーターが順転中
   "R"・・・高度モーターが逆転中
  ・7
$   高度モータースピード(0、1、2、3、4)
   (注) A-ZEUS による制御中は無条件に "0"とする

●周回ステップ数問い合わせ PC -> A-ZEUS

  012
  ---------
  RD
  
  ・01
   "RD"・・・周回ステップ数問い合わせ

  ■モーター周回数 PC <- A-ZEUS
  01234567891011121314151617181920
  ----------------------------------------
  RD#HHHHHHHH#hhhhhhhh
  
  ・01
   "RD"・・・モータ周回ステップ数返信
  
  ・2,11
   "#"・・・区切り
  
  ・3-10
   RAモーター周回ステップ16進8桁
  
  ・12-19
   DCモーター周回ステップ16進8桁

●周回ステップ数変更 PC -> A-ZEUS
  A-ZEUSのデフォルト値は外山さんと相談の上、こちらで決めておきます。

  ※ このコマンドは、外部コントロール中には受信を拒否します。
  ※ このコマンドは、モータが停止中または恒星追尾駆動中のみ受信します。
  ※ 周回ステップの変更を行うと、現在値のモータ位置をクリアします。
  ※ 電源をOFFにしても、変更した周回ステップ数を記憶します。

  01234567891011121314151617181920
  ----------------------------------------
  RD#HHHHHHHH#hhhhhhhh
  
  ・01
   "RD"・・・周回ステップ数教示
  
  ・2,11
   "#"・・・区切り
  
  ・3-10
   RAモーター周回ステップ数16進8桁
  
  ・12-19
   DCモーター周回ステップ数16進8桁

  ■ACK PC <- A-ZEUS
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK


$●到着予告ステップ数問い合わせ(Ver2.0より追加) PC -> A-ZEUS

  012
  ---------
  PA
  
  ・01
   "PA"・・・到着予告ステップ数問い合わせ

  ■モーター到着予告ステップ数 PC <- A-ZEUS
  012345678
  ----------------------------------------
  PA#HH#hh
  
  ・01
   "PA"・・・モータ周回ステップ数返信
  
  ・2,5
   "#"・・・区切り
  
  ・3,4
   RAモーター到着予告ステップ [HH00(H)] 16進4桁の上位2桁
  
  ・6,7
   DCモーター到着予告ステップ [hh00(H)] 16進4桁の上位2桁

$●到着予告ステップ数変更(Ver2.0より追加) PC -> A-ZEUS

  ※ このコマンドは、外部コントロール中には受信を拒否します。
  ※ このコマンドは、モータが停止中または恒星時駆動中のみ受信します。
  ※ 電源をOFFにしても、変更した周回ステップ数を記憶します。
  ※ デフォルト値 PA#00#00  -- 到着予告を発しない

  012345678
  ----------------------------------------
  PA#HH#hh
  
  ・01
   "PA"・・・周回ステップ数教示
  
  ・2,5
   "#"・・・区切り
  
  ・3,4
   RAモーター到着予告ステップ [HH00(H)] 16進4桁の上位2桁
  
  ・6,7
   DCモーター到着予告ステップ [hh00(H)] 16進4桁の上位2桁

  ■ACK PC <- A-ZEUS
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK


◆不明なコマンド  PC <- A-ZEUS
  不明なコマンドを受信した場合の返信

  0
  ----------------------
  ?

  ・0
   "?"・・・不明なコマンド


◆エラー送信  PC <- A-ZEUS
  PCへBOXから返事を返す時に不具合が発生したときに返す
  
  0123
  ----------------------
  !          : エラーコードなし
  !nn      : エラーコード付き
  
  ・0
   "!"・・・エラー
  ・1,2
   "nn"・・・エラーコード(コード分類は今後の課題)
         80番以降は「警告」

  **** エラーコード ****
  !01 :外部コントロール中にDVコマンドを受信した。

  !02 :方位モーターが「低速」または「中速」または「高速」
        で移動中に、数値付DVRAコマンド を受信した。
        高度モーターが「低速」または「中速」または「高速」
        で移動中に、数値付DVDCコマンド を受信した。

  !03 :数値付DVコマンド実行中(=目的値に達する前)に、
        数値なしDVコマンドを受信した。

  !0A :外部コントロール中か、方位高度のどちらかのモータが
        動作中にモータ周回ステップ数変更(RD#HHHHHHHH#hhhhhhhh)
        または、到着予告ステップ数変更(PA#HH#hh)を受信した。

  **** 警告コード ****
  !80 :方位モーターが「低速」または「中速」または「高速」
        で移動中に、反対の方向の「低速」または「中速」または
        「高速」命令を受信した。
        高度モーターが「低速」または「中速」または「高速」で
        移動中に、反対の方向の「低速」または「中速」または
        「高速」命令を受信した。
$      (処置)方位,高度とも速度を「1」(恒星追尾)に置き換えて実行。