自動化対応測定プログラムKAME
Features
一般
マルチスレッド(同期に
ソフトウェアトランザクショナルメモリ使用)
OpenGLによる高速なグラフ描画
スカラ量(温度、電圧等)の組み合わせは任意にグラフ化可能
ほぼすべての設定等の保存/読み込みが可能
Rubyスクリプトによりほぼすべて制御可能
通信エラー等は例外捕捉により安全に処理
装置からの取得データを全記録/後日再解析可能
NMR部分
National Instruments社の
DAQ
デバイスをパルサー/オシロとすることができる
FFT/MUSIC/MEM等によるリアルタイムスペクトラム解析
緩和曲線(T1, T2, Tst.e.)もリアルタイムフィット
フーリエステップサムによる磁場/周波数スイープスペクトル測定
緩和・スペクトル測定において測定後でも窓関数(畳み込み)選択可能
ソースコード/バイナリ/マニュアル/API
-
ソースコード全体のダウンロードはこちら:kame-6.0.0.zip
(1.7MB, 2023/12/19)。
-
インストール法と使用法をマニュアル(6用)(2023/12/20更新))に書きました。English版(途中)。
-
ソースzip等はこちら。
GitレポジトリはこちらGitHub。
-
Windows用の64bit版バイナリ:6.0.0。
実行するには先にQtの6.5以降(MinGW64付)をQt5 compatibility付きでインストールして下さい。その後kame.batから起動して下さい。
複数バージョンのQtがあって起動に失敗する場合は、qtdir.txtの中で6.5以上の行のみを残して削除するか、パスを変更して下さい。
Windows用の32bit版バイナリ:5.8.5, 5.5.2。
実行するには先にQtの5.11以降(MinGW32付)をインストールして下さい。
その後kame.batから起動して下さい。
複数バージョンのQtがあって起動に失敗する場合は、qtdir.txtの中で5.11の行のみを残して削除するか、パスを変更して下さい。
ライセンスは
GPL(GNU
public licence) 2 or laterです。
最近の変更点抜粋
Tue Dec 19 2023 (6.0.0)
- Windows 64bit版のコンパイルに対応
- Windows版でメッセージウィンドウが表示されないバグの修正
- グラフでいくつかの計算ツールを使えるようにした
- Firewireデジタルカメラ(OSX)
Sun Jun 25 2023 (5.8.5)
- LXI 3390任意波形発生器
- 最近のMinGW32に対応
- 4端子測定のバグフィックス
- LibreVNAネットワークアナライザ
- AutoLCTuner: 機能追加
- 5.8.2でNI DAQパルサーに不具合が出たのを修正
Fri Dec 9 2022 (5.8.3)
- Signal Recovery 7260 lockin-in-amplifier
- 5.8.2でNI DAQパルサーに不具合が出たのを修正
Sun Nov 13 2022 (5.8.2)
- OceanOptics/Seabreeze HR2000+/4000 optical spectromters
- USB機器初期化の改善、ThamwayUSB機器のM1 macでの動作確認
- FlexARの停止に関するバグ修正
Mon Apr 18 2022 (5.5.2)
- Mingw32のコンパイルが通らなくなっていたのを修正
- PCIe-6374/6376の実験的サポート
Sun Feb 13 2022 (5.5.1)
- Mac apple siliconでのarm64/Universal Binaryビルドに対応。
- グラフ:右ボタンのクリックで3D視点をリセットできるようにした。
- Thamway: libusbの初期化のバグ修正
Sun Dec 19 2020 (5.3.2)
- NMRT1のFlatten GeneratorがP1Maxに達しないのを修正
- AutoLCTunerを収束しやすく
Sun Apr 26 2020 (5.3.1)
- Pfeiffer TPG361/362ゲージ制御器に対応
Sun Dec 1 2019 (5.3)
- NMRT1: Tikhonov正則化による密度マッピング
Fri Sep 6 2019 (5.2.2)
- NMRT1: CPMGでのT2測定
- NMREcho: 電圧リミットの警告、バックグラウンド警告のバグ訂正
- Thamway PROTで機器側のステータスをリアルタイムに反映
- Thamway DSO(USB3)のトリガ位置ずれ対策
- Mac版Qt OpenGLのメモリーリーク対策
Wed Jun 27 2018 (5.1.4)
- スクリプトでのファイル書き込み安定性の改善
- Qt 5.11でのコンパイル
- Thamway PROT3リアルタイム取り込みの改善
Wed Oct 16 2017 (5.1.3)
- OS X High Sierraに対応
- Agilent/HP4282A LCRメータ(experimental)
- PPMSのソフト磁場掃引の修正
Thu Jun 22 2017 (5.0)
- Rubyスクリプトの実行時に、スリープ時間の表示、ログファイルの作成を追加
- PPMSで遅い磁場掃引を追加
Sun Jan 22 2017 (4.2.8)
- Lakeshore 350に対応。
Fri Dec 9 2016 (4.2.7)
- Mac OS X版でAppNap等を停止。動作が概ね安定。
Thu Sep 1 2016 (4.2.2-1)
- Digilent Waveform Ainを使用したDSOドライバ
Wed Aug 27 2016 (4.2.0-1)
- 4.1.13-16でmingwのSSEバグでクラッシュする問題を修正
- とても長いT1に対応するため、NMR周波数掃引で"cyclic sweep mode"、緩和測定で"Tracks peak freq."を追加
Thu Jun 23 2016 (4.1.13-1)
- Quantum Design PPMSの温度・磁場・ポジション制御ドライバ及びNMR磁場掃引での対応
- Modbus RTUのエラー率低減
- Quantum Design PPMSのモニターに対応
Sun Feb 7 2016 (4.1.11-1)
- ウェーブ形式データの保存がタイミングによっては複数回掃き出されるバグの修正
- Modbus RTUのbaudrateを57600bpsに変更
- OMRON E5*C 調整器(MODBUS)に対応
- Quantum Design PPMSのモニターに対応
Mon May 18 2015 (4.1.0-1)
- NMR I=9/2緩和関数の間違いを修正
- SML SGの修正
- Cryogenic SMSのver7に対する対策
- Windows版でのシリアルポートの動作とDAQmxドライバ、Windowの振る舞いに対する修正
Thu Aug 28 2014 (4.0.10-1)
- 高速化
- T1のオートフェーズの改良
- NMR周波数掃引でステップ毎にチューニングを待つモードを追加
Thu Aug 20 2014 (4.0.8-1)
- Overpaintモードを標準にした。Linux版でもFTGL/mikachanfontはもう必要ない
- Thamway パルサー/AD変換/PROT/インピーダンスアナライザーに対応
Fri Aug 19 2014 (4.0.7-1)
- Windows版のTCP接続に対応
- Lecroy DSOの最近の機種に対応
Thu Aug 14 2014 (4.0.6-1)
- KAME4リリース版
- R&Sの信号発生器に対応
- --overpaintオプションでの起動によりグラフのフォントレンダリングにOpenGLを使わない
- WindowsでのGPIB関係のバグ修正
Sun Aug 3 2014 (4.0.1-1)
- β2版、ポップアップに代わってメッセージウィンドウを追加
- 多数のバグ修正。概ね常用可?
Fri Aug 1 2014 (4.0-1)
- β版、表示に若干の乱れ等。
- Windowsに対応
- Mac/Windows版からKDEとFTGLを外した。
全ての
ChangeLog
対応デバイス
()内は対応している通信手段。"(GPIB)"の場合は測定器のシリアルポートは未テスト・未調整。
DCソース
YOKOGAWA 7651 DC source (GPIB)
ADVANTEST TR6144/R6142/R6144 DC source (GPIB)
MICROTASK/Leiden Triple Current Source (GPIB)
デジタルマルチメータ(DMM)
Keithley 2000/2001 DMM (GPIB)
HP/Agilent 34420A nanovolt meter (GPIB)
HP/Agilent 3458A/3478A DMM
(GPIB)
Keithley 6482 picoammeter (GPIB)
SANWA PC500/510/520M/PC5000 DMM (IR SerialPort)
ファンクションジェネレータ
NF WAVE-FACTORY (GPIB)
液面計
Oxford ILM Helium levelmeter (GPIB, SerialPort)
Cryomagnetics LM-500 levelmeter (GPIB)
ロックインアンプ等
Stanford Resrearch SR830 lock-in amplifier (GPIB)
NF LI5640 lock-in amplifier (GPIB)
Andeen-Hagerling 2500A capacitance bridge (GPIB)
Signal Recovery lock-in amplifier 7265 (GPIB)
超伝導磁石用電源
Oxford PS/IPS-120 magnet power supply (GPIB, SerialPort)
Cryogenic SMS magnet power supply (USB serial port)
ネットワークアナライザ
HP/Agilent 8711/8712/8713/8714 network analyzer (GPIB)
Agilent
E5061/E5062 network analyzer (GPIB)
Copper Mountain TR1300/1,5048,4530 Network Analyzer (TCP/IP)
DG8SAQ VNWA3E network analyzer (TCP/IP)
LibreVNA network analyzer (TCP/IP)
Thamway T300-1049A Impedance Analyzer (SerialPort)
標準信号発生器
KENWOOD SG7130/SG7200 signal generator (GPIB)
HP/Agilent 8643/8644/8648/8664/8665 signal generator
(GPIB)
DSTech. DPL-3.2XGF (SerialPort)
Rhode-Schwartz SML-01/02/03/SMV-03 signal generator (GPIB, SerialPort)
Thamway NMR PROT built-in signal generator (USB,TCP/IP)
任意波形発生器
LXI 3390 (GPIB)
温度コントローラ
Cryocon M32/M62 temperature controller (GPIB)
LakeShore 340 temperature controller (GPIB)
LakeShore 355 temperature controller (GPIB)
LakeShore 370 temperature controller (GPIB)
Picowatt AVS-47 bridge (GPIB)
Oxford ITC-503 temperature controller (GPIB, SerialPort)
Neocera LTC-21 temperature controller (GPIB)
Keithley 2700 DMM w/ 7700 scanner as temperature controller (GPIB)
OMRON E5*C controller via modbus (SerialPort)
カウンター
Mutoh NPS counter (SerialPort)
流量制御弁
Fujikin FCST1000 Series Mass Flow Controllers (Serial Port 38400bps)
モーター制御
OrientalMotor FLEX CRK motor controller (Serial Port Modbus RTU 115200bps)
OrientalMotor FLEX AR/DG2 motor controller (Serial Port Modbus RTU 115200bps)
ターボ分子ポンプ制御
Pfeiffer Turbo molecular pump controller TC110 (Serial Port)
圧力ゲージ
Pfeiffer TPG361/362 Gauge Controller (Serial Port)
デジタルストレージオシロスコープ(DSO)
Tektronix DSO (GPIB)
Lecroy/Iwatsu DSO (GPIB)
DSO on NI-DAQ M,S series (NI-DAQmx)
Thamway A/D conversion DV14U25 (USB)
Digilent WaveForms AIN DSO (USB)
PPMS
Quantum Design PPMS low-level interface (GPIB, Serial Port 9600bps)
NMR用パルサー
NMR pulser on NI-DAQ M series (NI-DAQmx)
NMR handmade pulser on H8 (SerialPort)
NMR handmade pulser on SH2(SerialPort)
NMR pulser Thamway N210-1026 PG (USB,GPIB,TCP/IP)
光スペクトロメータ
OceanOptics/Seabreeze HR2000+/4000 (USB)
デジタルカメラ
Generic IIDC Camera (IEEE1394)
解析/制御ドライバ
電流反転抵抗測定
2軸回転制御
Gコード3軸制御
NMR FID/echo analyzer
NMR field-swept spectrum measurement
NMR frequency-swept spectrum measurement
NMR relaxation(T1/T2/Tst.e.) measurement
NMR LC circuit autotuner
実行環境
プログラムの実行には一般的な
Qt
アプリケーションとしての他に以下の外部ライブラリが必要です。詳しくはマニュアルを参照。
-
Ruby (スクリプト系のオブジェクト指向言語。測定の自動化と設定の保存/読み込みに使います。)
-
GSL (GNU
Scientific Library。非線形フィットと補完に使ってます。)
-
FFTW (ver.3系列。FFTライブラリ。)
-
ATLAS (LAPACK,
BLAS) (線形代数ライブラリ。固有値問題に使っています。)
-
Eigen (ver.3系列。線形代数ライブラリ。)
-
linux-gpib (GPIBを使用する場合に必要。RPMはこちら、SRPMはこちら。)
もしくはNational Instruments NI-488.2ドライバ。
-
National Instruments DAQmx (DAQデバイスを使用する場合のみ必要。)
-
zlib (Rawデータの圧縮用)
Linux/Mac版のコンパイル時には上記に加え以下が必要です。
-
libtool-ltdl (GNU libtool dynamic module loader。起動時にモジュールを読み込む為に必要。)
-
libdc1394 (Macのみ。Firewireデジタルカメラ用)
上記のライブラリのほとんどはパッケージシステム(MacPortsなど)で取ってこれると思います。
技術的特徴
リアルタイム性を確保するため、ロックフリー(lock-free)アルゴリズムに凝った作りになっています。
-
内部のオブジェクトはツリー状に管理。
Rubyスクリプトからのアクセスや測定の設定の読み込み/保存は全てオブジェクトツリーに対して行う。
-
オブジェクトベースのソフトウェアトランザクショナルメモリにより、オブジェクトツリーとデータをアクセスする。
ツリーへのオブジェクトの追加・削除はトランザクション中で行える。巡回参照でなければハードリンクも可能になっている。
-
測定装置のIO部分はSTMが使えないのでMutexによる排他制御を使っている。
-
スレッド構成は測定スレッド+GUI(メイン)スレッド+Rubyスレッド+Rawデータ読み込みスレッド。
GUIスレッドには関数オブジェクトとスナップショットをイベントとして渡してプールした後に遅延実行している。
-
ドライバは測定データを生成/保持する為のXPrimaryDriverを
継承するクラスと、解析専門のXSecondaryDriver
由来クラスの2種類。
測定データは一度保存に適した形(rawData)
にした後で、analyzeRaw関数内で処理される。XSecondaryDriverが
複数のドライバからのデータを処理する場合には、rawDataに
付けられたタイムスタンプで時間依存関係をチェックする。
-
グラフはOpen GLで描画。高速に半透明で描画できる。描画が追いつかない場合には古いイベントを捨てている。
その他
メッセージ(gettextの翻訳リソース)は関西弁やで。
参考文献