プログラミングコース P04 パルス発生器・オシロスコープ計測 オシロスコープを使用した 計測プログラミングを学ぶ (RS-232C & USB Interface) 株式会社ペリテック
本コースで習得すべき内容 ① パルス発生器の出力波形をオシロスコープで計測して計測波形をグラフに表示す るLabVIEWプログラムが作成できるようになること。 ② パルス発生器のLabVIEWドライバ入手方法を学ぶこと。入手後、ドライバを作成し てパルス発生器を制御するLabVIEWプログラムが作成できるようになること。 ③ オシロスコープのLabVIEWドライバ入手方法を学ぶこと。入手後、ドライバを作成 してオシロスコープを制御するLabVIEWプログラムが作成できるようになること。 ④ NIが推奨しているキューメッセージハンドラ(生産者/消費者デザインパターン)を 使用してLabVIEWプログラムが作成できるようになること。 ⑤ 表制御器、波形グラフを使用して計測データの数値表示・グラフ表示を行う LabVIEWプログラムが作成できるようになること。 ⑥ 計測結果のファイル保存、ファイル読込みのLabVIEWプログラムが作成できるよ うになること。 ※ NI=米国ナショナルインスツルメンツ社
本コースでプログラミングを学ぶシステム構成 オシロスコープ ノートPC USB-232 パルス発生器 USBケーブル
本コースで作成するプログラムの機能 • パルス発生器の出力波形をオシロスコープで計測して計測波形をグラフに表示するプログラムを作成する。 • キューメッセージハンドラ(生産者/消費者デザインパターン)を使用する。 • パルス発生器に、波形パターン(サイン波・三角波・矩形波)・周波数・振幅が設定できること。 • オシロスコープに、Timebase・Vertical Range・Trigger Levelの設定ができること。 • オシロスコープの計測波形を波形グラフに表示すること。 • オシロスコープの計測波形データを一覧表(Time:小数点4桁とWaveform:小数点4桁)に表示すること。 • 波形グラフに表示した波形の周波数(Hz)・振幅(Vp-p)を算出すること。 • 一覧表のデータがファイル保存(csvファイル形式:カンマ区切り)できること。 • 保存したファイルを読み込んで一覧表と波形グラフに表示できること。
本コースで配布するプログラムの画面設計
Step①パルス発生器ドライバVIを入手する。 ①メーカーのHPで”WF1974 ”を検索する。 ②LabVIEW Driverをダウン ロードする。
Step②サンプルVIでパルス発生器の動作を確認する。 ダウンロードしたDriverのVI Tree.viの中 にあるサンプルVIを選択して表示する。 VISA session確認後、動作確認する。 VI Tree.vi NF WF1973_74 sample output.vi
Step③パルス発生器ドライバVIを作成する。 WF1974 Driver.vi サンプルVIを改造してドライバVIを作成する。 列挙体をタイプ定義に指定して以下の処理に 分割する。(右図:ダイアグラム参照) 1.initialize 2.output start 3.close サンプルVIを分割してドライバVIを作成する理由: 毎回初期化 ~ クローズを実行しないようにして処理速度を速くするため。
Step④オシロスコープドライバVIを入手する。 ①(例)日本ナショナルインスツル メンツHPで”TPS2024B Driver”を 検索する。 ②LabVIEW Driverをダウン ロードする。
Step⑤サンプルVIで動作確認をする。 ダウンロードしたDriver VIのExamples フォルダの中にあるサンプルVIを選択し て表示する。 VISA resource name確認後、動作 確認する。 Tektronix TDS 200 1000 2000 Series Edge Triggered Acquisition.vi
Step⑥オシロスコープドライバVIを作成する。 TPS2024 Driver.vi サンプルVIを改造してドライバVIを作成する。 列挙体をタイプ定義に指定して以下の処理に 分割する。(右図:ダイアグラム参照) 1.initialize 2.setting 3.Input 4.close サンプルVIを分割してドライバVIを作成する理由: 毎回初期化 ~ クローズを実行しないようにして処理速度を速くするため。
Step⑦CSVファイル保存VIを作成する。 ファイルパスと計測結果(一覧表)を入力パラメータとし て、年月日_時分秒.csvというファイル名で保存するVI を作成する。 sub csv file save.vi
Step⑧CSVファイル読込VIを作成する。 ファイルパスを入力パラメータとして、計測結果 とグラフ表示データを読み込むVIを作成する。 sub csv file read.vi
Step⑨生産者/消費者デザインパターンでメインVIを作成する。
Step⑩キューで送信するメッセージを列挙定数で作成する。 配付するプログラムは、以下のように処理を分割し て作成しました。 ①Initialize 1:初期化処理① ②Initilalize 2:初期化処理② ③wait :idle loop ④csv save : 計測データ保存処理 ⑤csv read :計測データ読み込み処理 ⑥setting :VISA resource 再設定 ⑦output :波形発生処理 ⑧input :計測処理 ⑨stop :計測停止処理 ⑩exit : プログラム終了処理
Step⑪生産者ループのイベント処理を作成する。 配付するプログラムは、以下のように イベント処理を作成しました。 それぞれ列挙定数で作成した項目を選 択してキューに要素を追加します。 ①CSV保存ボタン:値変更 ②CSV読込ボタン:値変更 ③計測開始ボタン:値変更 ④停止ボタン:値変更 ⑤Exitボタン:値変更 ⑥setting:値変更
Step⑫消費者ループ:initialize 1を作成する。 スタックシーケンス0: プログラム終了時、ファイルに保存し た画面設定データを読み込んで再現 する処理を作成しています。 スタックシーケンス1: パルス発生器ドライバとオシロスコー プドライバの初期化処理を作成します。 正常に初期化できない場合はエラー メッセージを表示するようにしています。
Step⑬消費者ループ:initialize 2を作成する。 initialize 2:以下の初期化を行います。 計測結果一覧表、表示位置、波形グラフ、計測開始ランプ
Step⑭消費者ループ:csv_saveを作成する。 csv_save:sub csv file save.viを配置します。
Step⑮消費者ループ:csv_readを作成する。 csv_read:sub csv file read.viを配置します。 計測結果の表示位置、波形チャートを初期化してからデータを表示します。
Step⑮消費者ループ:csv_readを作成する。(つづき) csv_read:sub csv file read.viを配置します。 計測結果の表示位置、波形チャートを初期化してからデータを表示します。
Step⑯消費者ループ:outputを作成する。 output:パルス発生器の波形出力をスタートさせています。 次の処理(input)までの待ち時間を入れています。
Step⑰消費者ループ:inputを作成する。 input:オシロスコープの波形計測を実行しています。 計測した波形の振幅と周波数を算出しています。
Step⑱消費者ループ:stopを作成する。 stop:パルス発生器の波形出力を停止させています。 計測ランプと計測開始ボタンをoffし、exitボタンの表示を初期化しています。
Step⑲消費者ループ:exitを作成する。 exit:パルス発生器 Driver Closeとオシロスコープ Driver Closeを配置しています。 消費者ループを終了(While Loopの条件にTrueを接続)させています。
Step⑳消費者ループ:settingを作成する。 setting:パルス発生器 Driver initializeとオシロスコープ Driver initializeを配置して VISA resourceのシフトレジスタを初期化しています。
まとめとポイント ① RS-232C及びUSB接続の計測器 ① NI MAXでVISA resource name が確認できる。 ② ダウンロードした計測器ドライバ ① LabVIEWのInstr.libへ入れて、関数パレットに表示できる。 ③ ドライバVIの作り方 ① Initialize→Measure→Closeにcase分割すれば他の計測器及びNI製品でも同じ。 ② niScopeのドライバ作成については、【付録.1】を参照のこと。 ④ メインVIの作り方 ① キューメッセージハンドラ(生産者/消費者デザインパターン)を使用する。 ② キューで送信するメッセージは列挙定数をタイプ定義して作成する。 ⑤ CSVファイル保存 ① 2次元の文字配列に変換すれば簡単にWrite/Readできる。 ⑥ 画面の再現 ① デフォルトデータディレクトリを利用する。
付録.1 niScope サンプルVI 右図1~8の関数を Initialize→Measure→Close にcase分割してドライバVI を作成すれば、本コースのプログラムに 組込むことができます。 また、case分割せずにそのまま組込んでも問題 ありません。 niScope EX External Clocking.vi (While Loopを省略しています。)
付録.2 niFgen サンプルVI 右図1~7の関数を Initialize→Output→Close にcase分割してドライバVI を作成すれば、本コースのプログラムに 組込むことができます。 niFgen Basic Arb Waveform.vi (While Loopを省略しています。)