1. 通信プロトコル(装置との対話ルール)
Portmonのログ解析により、PCと装置(DAU)がどのような条件で話しているかが確定しました。
物理設定: RS-232C シリアル通信
速度: 9600 bps
データ: 8 bit / パリティ: なし / ストップビット: 1 bit
基本コマンド形式: ASCIIテキスト+末尾に
\r\n(0x0D 0x0A)。主なコマンドの意味:
JOB: 通信開始の「握手」。装置はERR1と返せば準備OK。JOB1: スキャン設計図の送信(開始電圧、ステップ数、Dwell Timeを含む)。JOB2: 動作モードの切り替え(2,9が測定モードへの移行)。JOB7: パスエネルギー(PE)の選択。CNT3: 計測実行のトリガー(引き金)。JOB5: 測定データの一括要求。DD: 装置からのデータ返信(16進数形式のカウント値列)。
2. レンズパラメータとエネルギー制御(計算式)
最も大きな収穫は、結合エネルギー(eV)を装置が理解するデジタル値(DAC値)に変換する法則を見つけたことです。
16bit制御: 装置内部のDAC(D/Aコンバータ)は 0〜65535 の範囲で動作。
変換比率: 1 eV = 64 ステップ。
計算式:
DAC値 = 64501 - (結合エネルギー[eV] × 64)この「64501」という基準値は、
spec_xps.ini内のOffset=4075によって個体調整されている可能性があります。
自動スイープ: PCが1点ずつ電圧を指令するのではなく、
JOB1で範囲を伝え、CNT3を送るたびに装置が内部で自動的に電圧を1ステップ(64単位)ずつ引き下げていく仕組みです。
3. ハードウェアとシステム構造
回路図と .ini ファイルから、装置の物理的な仕組みが裏付けられました。
16bit DACの存在: 回路図に描かれた16bit DACが、上記の「64単位ステップ」という高精度な電圧制御を物理的に支えています。
16bitアプリの動作:
SpecXPS.exeは Windows 3.1 時代の16bitアプリであり、XP上ではntvdm.exeという仮想マシン経由で動いています。このため、現代の32bitプログラム(BCC55等)から直接WriteFile等のAPIでCOMポートを叩けば、古いアプリの制限を受けずに制御可能です。安全装置: ソフトを閉じるとX線が落ちるのは、終了シーケンス(
JOB5やCLEANUP)が送られるためです。X線を手動モードにすることで、この制約を回避し、自作ソフトからの自由な制御が可能になりました。
0 件のコメント:
コメントを投稿