E-ZEUS2 通信コマンド一覧 Ver1.0


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

2. E-ZEUS通信コマンド(旧バージョン) と上位互換

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

4. E-ZEUS は、PCのコマンドに対して必ず返答を行う。
    PCは E-ZEUS からの返答をもって、後続のコマンドを送信可能とする。
    原則として、E-ZEUS はコマンドを受信直後に返答を行う。

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

6. DVコマンドにより、低速,中速,高速 で稼動中にハンドコントローラー及び外部コ
   ントロールが操作された場合、モータを停止する。

7. ハンドコントローラー及び外部コントロールが発生した時は、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-ZEUS2
  0123456789
  ----------------------
  GP
  
  ・01
   "GP"・・・位置取得コマンド
  
  ○モーター位置 PC <- E-ZEUS2
  01234567891011121314151617181920
  ----------------------------------------
  GP#HHHHHHHH#hhhhhhhh
  
  ・01
   "GP"・・・位置返信
  
  ・2,11
   "#"・・・モーターの値であることを示す
  
  ・3-10
   RAモーターステップ16進8桁
  
  ・12-19
   DCモーターステップ16進8桁


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


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

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

  ○ACK PC <- E-ZEUS2
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK


●E-ZEUS状態コマンド PC -> E-ZEUS2
  0123456789
  ----------------------
  ST
 
  ・01
   "ST"・・・E-ZEUS状態要求コマンド
  
  
  ○E-ZEUS状態 PC <- E-ZEUS2
  
  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-ZEUS2

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

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

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

  ※ このコマンドは、外部コントロール中には受信を拒否します。
  ※ このコマンドは、モータが停止中または恒星時駆動中のみ受信します。
  ※ 周回ステップの変更を行うと、現在値のモータ位置をクリアします。
  ※ 電源を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-ZEUS2
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK


●到着予告ステップ数問い合わせ PC -> E-ZEUS2
  「到着予告」とは、数値付DVコマンドによりモータが高速で動作中、目的地に到着
する直前のスローダウンを開始するステップ数です。目的地までの残りステップ数で定
義。

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

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

●到着予告ステップ数変更 PC -> E-ZEUS2

  ※ このコマンドは、外部コントロール中には受信を拒否します。
  ※ このコマンドは、モータが停止中または恒星時駆動中のみ受信します。
  ※ 電源をOFFにしても、変更した到着予告ステップ数を記憶します。
  ※ デフォルト値は 21.3'角に相当するステップ数を周回パルス数から生成。

  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


(E-ZEUS2 から採用)
●HandBoxスローダウンステップ数問い合わせ PC -> E-ZEUS2
  「HandBoxスローダウン」とは、HandBoxの高速スイッチの押下によりモータが高速で
動作中、スイッチを解除した後にスローダウンのためにオーバランするステップ数です。

  012
  ---------
  SL
  
  ・01
   "SL"・・・HandBoxスローダウンステップ数問い合わせ

  ○HandBoxスローダウンステップ数 PC <- E-ZEUS2
  012345678
  ----------------------------------------
  SL#HH#hh
  
  ・01
   "SL"・・・HandBoxスローダウンステップ数返信
  
  ・2,5
   "#"・・・区切り
  
  ・3,4
   RAモーターHandBoxスローダウンステップ 
           [HH00(H)] 16進4桁の上位2桁
  
  ・6,7
   DCモーターHandBoxスローダウンステップ
           [hh00(H)] 16進4桁の上位2桁

(E-ZEUS2 から採用)
●HandBoxスローダウンステップ数変更 PC -> E-ZEUS2

  ※ このコマンドは、外部コントロール中には受信を拒否します。
  ※ このコマンドは、モータが停止中または恒星時駆動中のみ受信します。
  ※ 電源をOFFにしても、変更したHandBoxスローダウンステップ数を記憶します。
  ※ デフォルト値は 21.3'角に相当するステップ数を周回パルス数から生成。

  012345678
  ----------------------------------------
  SL#HH#hh
  
  ・01
   "SL"・・・HandBoxスローダウンステップ数教示
  
  ・2,5
   "#"・・・区切り
  
  ・3,4
   RAモーターHandBoxスローダウンステップ数
           [HH00(H)] 16進4桁の上位2桁
  
  ・6,7
   DCモーターHandBoxスローダウンステップ数
           [hh00(H)] 16進4桁の上位2桁

  ○ACK PC <- E-ZEUS2
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK


(E-ZEUS2 から採用)
●ギアバックラッシュステップ数問い合わせ PC -> E-ZEUS2
  「ギアバックラッシュ」を設定すると、設定された量のギアの遊びを想定して
  補償する動作をする。

  012
  ---------
  BL
  
  ・01
   "BL"・・・ギアバックラッシュステップ数問い合わせ

  ○ギアバックラッシュステップ数 PC <- E-ZEUS2
  0123456789101112131415161718192021
  ----------------------------------------
  BLx#HHHHHHHH#hhhhhhhh
  
  ・012
   "BLA"・・・ギアバックラッシュステップ数 アクティブ(有効)
   "BLN"・・・ギアバックラッシュステップ数 非アクティブ

  ・3,12
   "#"・・・区切り
  
  ・4-11
   RAモーターギアバックラッシュステップ数16進8桁
  
  ・13-20
   DCモーターギアバックラッシュステップ数16進8桁

(E-ZEUS2 から採用)
●ギアバックラッシュステップ数変更 PC -> E-ZEUS2
動作について、
*   1.バックラッシュのステップ数を通信で教示(この命令)
*   2.PC or Handbox で対象星まで移動し、E-ZEUS2 内のBLSW を押下。これで完了。
*     (1) 自動導入において
*        E-ZEUS2 側で数値付DVコマンドにより与えられた移動量を増減する。
*     (2) 外部入力(オートガイダー入力 または ハンドボックス)の低速指令時に
*        E-ZEUS2 側でギアバックラッシュステップ数*0.75 を中速で駆動する。
*     (1)(2)とも赤緯側のみの機能で、赤経は設定しても無意味
*   3.BLSW を2秒以上長押しするとバックラッシュルーチンを解除。
*      バックラッシュのステップ数は記憶したまま。

  ※ 周回パルス数の 1/32 よりも大きい場合には、異常として0にします。
  ※ このコマンドは、外部コントロール中には受信を拒否します。
  ※ このコマンドは、モータが停止中または恒星時駆動中のみ受信します。
  ※ 電源をOFFにしても、変更したHandBoxスローダウンステップ数を記憶します。
  ※ デフォルト値は 0(バックラッシュをなしとする)。

  01234567891011121314151617181920
  ----------------------------------------
  BL#HHHHHHHH#hhhhhhhh
  
  ・01
   "BL"・・・ギアバックラッシュステップ数教示
  
  ・2,11
   "#"・・・区切り
  
  ・3-10
   RAモーターギアバックラッシュステップ数16進8桁
         赤道儀においては無意味なので 0 でよい。
  
  ・12-19
   DCモーターギアバックラッシュステップ数16進8桁

  ○ACK PC <- E-ZEUS2
  0
  ----------------------------------------
  #
  
  ・0
   "#"・・・OK


(E-ZEUS2 から採用)
●バージョン情報問い合わせ PC -> E-ZEUS2
  E-ZEUS2 のファームウエアのバージョンを返信

  012
  ---------
  VR
  
  ・01
   "VR"・・・バージョン情報問い合わせ

  ○バージョン情報 PC <- E-ZEUS2
  01234567891011121314
  ----------------------------------------
  E−ZEUS2  Ver1.2
  

◆不明なコマンド  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)
             HandBoxスローダウンステップ数変更(SL#HH#hh)
                     ギアバックラッシュステップ数変更(BL#HHHHHHHH#hhhhhhhh)
                を受信した。

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

  !81 :大きすぎるギアバックラッシュステップ数変更が要求された。
                 バックラッシュの定義は周回パルス数の 1/32以下とする。
              (処置) 1/32 以上を受け付けた場合には、異常値として「0」
                     に置き換えて実行。