E-ZEUS 通信コマンド一覧 Ver2.0


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

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

3. E-ZEUS は、PCのコマンドに対して必ず返答を行う。
    PCは E-ZEUS からの返答をもって、後続のコマンドを送信可能とする。
    原則として、E-ZEUS はコマンドを受信直後に返答を行うが、コマンドのバッファ
    が満杯の場合のみ、バッファの空きを待って返答する。(関連(4))

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

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

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

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

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

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

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

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

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

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

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

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

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

(処置)エラーコード「!80」とACK「#」を続けて返信。
   赤経は、速度を「1」(恒星時)に置き換えて実行する。
   赤緯は、速度を「0」(停止)に置き換えて実行する。

10. 数値付DVコマンド完了時の処置
  数値付DVコマンドで、モーターが目的値に達した後は、
   赤経は、速度を「1」(恒星時)を実行する。
   赤緯は、速度を「0」(停止)を実行する。

11. 外部コントロール終了後の処置
   赤経は、速度を「1」(恒星時)を実行する。
   赤緯は、速度を「0」(停止)を実行する。
  ....実際には、PIC は何らかの状態を示す必要があるので、外部コント
      ロールを認知したと同時に、上記の状態を作って待機する。

12. モータの回転方向の定義
  ・赤経モーターは日周運動方向を正転とする。
  ・赤緯モーターは東ポジションで南天を向いてるときの赤緯値+方向を正転と
   する。

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

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

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


●モーター制御コマンド PC -> E-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 <- E-ZEUS
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK  :コマンドのバッファが満杯でなければ直ぐに回答


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

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

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


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

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

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

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

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

●周回ステップ数変更 PC -> E-ZEUS

  ※ このコマンドは、外部コントロール中には受信を拒否します。
  ※ このコマンドは、モータが停止中または恒星時駆動中のみ受信します。
  ※ 周回ステップの変更を行うと、現在値のモータ位置をクリアします。
  ※ 電源をOFFにしても、変更した周回ステップ数を記憶します。
  ※ デフォルト値 RD#003F4800#003F4800  -- 昭和20E赤道儀向け

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

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


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

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

  ■モーター到着予告ステップ数 PC <- E-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 -> E-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 <- E-ZEUS
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK


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

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

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


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

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

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

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

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

  **** 警告コード ****
  !80 :赤経モーターが「低速」または「中速」または「高速」
        で移動中に、反対の方向の「低速」または「中速」または
        「高速」命令を受信した。
        赤緯モーターが「低速」または「中速」または「高速」で
        移動中に、反対の方向の「低速」または「中速」または
        「高速」命令を受信した。
       (処置)赤経は、速度を「1」(恒星時)に置き換えて実行。
           赤緯は、速度を「0」(停止)に置き換えて実行。