1 バッチファイルの文法 定数 例 1 2 1.0 3.17 0.2 変数 変数名の前後に$記号をつける。 例 $acc_v$ $Acc$ 演算子 +,-,*,/ 加減乗除 $a$ = $a$*1.2; 単項演算子は使用不可。 ラベル ラベル名の前後に”記号をつける。 例 "label_A" 注意 "label_1" "label2" など数字を含めてはいけません。 代入文 変数名 = 定数; 例 $Acc$ = 1.2; $Acc$ = $Acc1$; コメント文 !で始まる文はコメントとみなされる。 !文; if文 if 定数 > 変数 ラベル; 条件が成立したらラベルへジャンプする。 if 定数 < 変数 ラベル; 条件が成立したらラベルへジャンプする。 if 定数 > 変数 代入文; 条件が成立したら代入文を実行する。 if 定数 < 変数 代入文; 条件が成立したら代入文を実行する。 goto文 goto ラベル; 無条件でラベルへジャンプする。 例 goto "label_A" システム関数 clken クロックを有効にする clkds クロックを無効にする vaon 高圧電源をONする vaoff 高圧電源をOFFする filon フィラメントをONする filoff フィラメントをOFFする setfil フィラメント電流設定 setfil 目標値(A),レート(A/100ms) 例 setfil 2 , 0.1; setacc 加速電圧設定 setacc 目標値(KV),レート(KV/100ms) 例 setacc 20 , 0.1; setext 引き出し電圧設定 setext 目標値(KV),レート(KV/100ms) 例 setext 20 , 0.1; setsup サプレッサ電圧設定 setsup 目標値(KV),レート(KV/100ms) 例 setsup 20 , 0.1; setemi エミッション電流設定 setemi 目標値(uA),レート(uA/100ms) 例 setemi 20 , 0.1; gainl ゲイン低設定 gainm ゲイン中設定 gainh ゲイン高設定 mode_cv 引き出し、又はサプレッサ定電圧 mode_ci 引き出し、又はサプレッサ定電流 ierng_l エミッション電流レンジ低 ierng_h エミッション電流レンジ高 setwait 設定終了を待つ setwait EXT,EMI,FIL,ACC,SUP EXT,EMI,FIL,ACC,SUPはそれぞれ0又は1で、 1が指定された設定が全て終了するまで待つ。 例 setfil 2,0.1; setwait 0,0,1,0,0; wait 指定時間待つ wait 待ち時間(100ms) wait 10; # wait 1 sec miem エミッション電流500msの平均値 if文で直接使用できない。 (例) $mean$ = miem; if 100 < $mean$ then "next"; setmem 数値を記憶する。Max 60 setmem メモリ番号 , 数値 (例)引出電圧をメモリ番号0に記憶する。 $mem1$ = vext; setmem 0 , $mem1$ (注1)参照 getmem メモリした数値を読み込む。 getmem メモリ番号 (例) $mem1$ = getmem 0 siem エミッション電流積算値 sifil エミッション電流積算値からテーブルを使って 求めたフィラメント電流の値 cfil 補正したフィラメント電流の値 補正係数= 1.0 + (最大補正量 x csel)/1000 ここでcselは(−10〜+10) 例えばcsel=10で最大補正量が5%ならば 補正係数=1.05となる。 cfil= 補正係数 x sifil $filval$=cfil; setfil $filval$ , 0.1; とすればよい。 ccfil 変換したエミッション電流の積算値から計算した フィラメント電流の値。(V1.07より有効) ifil フィラメント電流モニタ値(A) iem エミッション電流モニタ値(A) iext 引き出し電流モニタ値(uA) iacc 加速電流モニタ値(uA) isup サプレッサ電流モニタ値(uA) vsup サプレッサ電圧モニタ値(kV) vext 引き出し電圧モニタ値(kV) vacc 加速電圧モニタ値(kV) vfil フィラメント電圧モニタ値(V) ibm イオンビーム電流モニタ値(uA) event イベントの送出。 event イベント番号。 例 event 10,0; シーケンスの途中又は終了時にイベントを 送出して、ホストにシーケンスの状態をしらせる ことができる。 但し連続して送信できない。1秒以上の待ち必要。 (注2)参照 errchk エラーのチェック errchk e1 , e2 , e3 , e4 , e5 , e6 , e7; e1:アラーム e2:加速電圧オーバ電流 e3:引き出し電圧オーバ電流 e4:サプレッサオーバ電流 e5:加速電圧オーバ電圧 e6:引き出し電圧オーバ電圧 e7:サプレッサオーバ電圧 e1..e7は上記のエラーをチェックするかどうか を指定する。1を指定するとチェックを行う。 1を設定したエラーのいずれか1つでもエラー状態 であれば本関数は0以外の値を返す。 例 $err$=errchk 1,0,0,0,0,0,0; if $err$>0 then "err"; emih_h エミッション累積時間。ヒーティング間隔用 (自動的にヒーティング動作をさせるため) emih_f エミッション累積時間。フラッシング2間隔用 (F2のWarning) emih_e エミッション累積時間。EXTAUTOの間隔用 (ExtAutoのWarning) vacuum イオン源室真空度(Pa) pastheat ヒーティングを実行してからの経過時間を得る。(単位秒) (10分間はヒーティングを実行させないためのタイマ) clrpheat ヒーティングを実行してからの経過時間を0にする。 以後10分以上経過するまでHeatingボタンは押せない。 (アプリ側でヒーティングボタンが押されたときは0クリアされる。) (注1) 以下のメモリ番号は特定の変数を格納する。 0から19番は自由に使用可。 20: 加速電圧目標値インデックス(10KV:0 15KV:1 ... 30KV:4) 仕様変更:加速電圧の値そのものに変更。但し互換性のため 10kVが0、30kVが4という対応は変更せず、 Acc= mem * 5 + 10 mem: 本メモリ値 の計算式で設定値が求まるような値を格納する。 21: エミッション目標値 22: 引き出し電圧目標値 23: 最大補正量(フィラメント電流) 24: 補正量インデックス(-10:0 -9:1 .... 0:10 .... +10:20) 25: フラッシングインデックス(flushing1:0 flushing2:1 flushing3:2) 26: エミッションエラーレベル 27: サプレッサエラーレベル 28: 前回のフロー測定結果(ヒーティングしたら0にする) バッチファイルの中で0にした場合には、イベント 10で0を送出する。 29: OFFタイマのタイプ 30: OFFタイマの値 31: フラッシング自動実行:1 ボタンで実行:0 32: フラッシング自動モードON:1 ラッシング自動モードOFF:0 33: 自動フラッシングインターバル 34: エミッション動作時間リミット(Heating用) 35: エミッション動作時間リミット(Flushing2用) 36: CL HV保持時間 37: ACC保持時間 49まで使用可能 (注2) イベント番号の意味 10: フローチェック値を送信。 送信データ:フローチェック値の表示値 ヒーティング終了時(0にする?)など、必要ならば シーケンス内でフローチェック値を変更すること。 11: EXT自動設定値の送信。 送信データ:EXTの値(kv) 12: オートフラッシングタイマクリア 20: Ion Err 4 Start エミッションしない。 21: Ion Err 5 Start チェックフローが正しく終了しない。 22: Ion 2 Check Flow 測定が正常終了しない。(LMIS2:startイベント) 23: Ion 3 Flushing 既定値のエミッション電流がとれない。 24: Ion 4 AutoExt 引出電圧が12KV以上の設定になってしまう。 25: ? SetEmission 指定したエミッション電流にならない。 26: ? Heating フィラメント電流が流れない。 27: Ion 1 Beam On エミッションしない。 28: Ion Err 6 Start 既定値のエミッション電流がとれない。 30: Ion 7 サプレッサ降下のエラー。(LMIS2:startイベント) 31: Ion 14 Please carry out Auto Ext. 表示。(LMIS2:startイベント) 110:パワーOFFリクエスト 120:CLの設定 CLを指定値に設定する。(kV) 121:CLの%設定 MAXを100、MINを-100として設定。 130:Startが正常に終了した。 バッチファイル(例) !BEAM ON; $criext$=8.4; vaoff; clkds; setext 0,1; setacc 0,1; setwait 1,0,0,1,0; gainh; ierng_l; mode_ci; setemi 153,5; setwait 0,1,0,0,0; clken; wait 10; vaon; wait 10; setacc 30,0.2; wait 10; setwait 0,0,0,1,0; setext $criext$,0.1; setwait 1,0,0,1,0; wait 10; "loop"; $criext$=0.01+$criext$; setext $criext$,0.1; wait 10; setwait 1,0,0,0,0; $criext$; $emival$=miem; $emival$; if $emival$ > 30 "set"; if $criext$>9.2 "end"; goto "loop"; "set"; setemi 5,0.5; "end"; 2 ボタンと実行されるバッチファイル名の対応 ON OFF -------------------------------------------------------------------------------- Start , BeamOn beamon.seq xbeamon.seq Heating heating.seq xheating.seq Flushing1 flushing1.seq xflushing1.seq Flushing2 flushing2.seq xflushing2.seq Flushing3 hardflush.seq xhardflush.seq CheckFlow flowimp.seq xflowimp.seq Auto(Ext Setting) extauto.seq xextauto.seq Off Timer TimeUP xofftimer1.seq Set Emission setemi.seq xsetemi.seq Test Sequence Timer tsttimer1.seq