Hands-On Introduction to LabVIEW for Scientists and Engineers (Oxford University Press)
制御器、表示器のラベルは実行中は変化させることができないので、ラベル表示をオフにしてキャプション表示をオンにしたうえでキャプションのテキストをプロパティノードで設定する。 Temperature_Scale_Converter_Runtime_Captioning.vi - Google ドライブ
Simple_Calculator.vi - Google ドライブ
ケースストラクチャ / ステートマシン / オシロの実行中にサンプリングの設定が変更できるようにする -の改造 DigitalOscilloscope_StateMachine_SpreadSheet.vi - Google ドライブ Read DataステートとStopステートとの間にStore Dataステートを挟み込む。
Multiples_of_3_4_5.vi - Google ドライブ
ケースストラクチャの課題であるがケースストラクチャを使う必要はないようである。 Seven_Segment_Counter.vi - Google ドライブ
条件: 5つのLEDを順番に0.2秒ずつ点灯する。 停止ボタンを押したら、5つ目のLEDまで点灯したところでVIが停止する。 ステートマシンを使う。 例1: Five_Blinking_Lights.vi - Google ドライブ 例2: Five_Blinking_Lights2.vi - Google ドライブ
DigitalOscilloscope_StateMachine.vi - Google ドライブ
GuessingGame.vi - Google ドライブ ―――――――――――――――――――――――――― Pythonで同じことをしてみる。 import random GenerateInteger, EnterGuess, CheckGuess, GiveHint, ReportSuccess = range(5) answer, guess, state = None, None, None def handle_Generate…
状態遷移はシフトレジスタで行う。 ケースごとに処理を記述する。 複数あるステート名には列挙体を使うのが便利。
if文とswitch文とを兼ねたようなストラクチャである。 ここでは下のケースストラクチャを試す。 セレクターにブール制御器を配線したケースストラクチャ。VIの実行中に波形チャートをクリアする。True時の処理とFalse時の処理とをひとつずつ記述する。 セレ…
正弦波をいくつか合成して矩形波を近似する -では第3項まで合成したが、今回は任意の項まで合成できるようにする。 Sum_of_Sines.vi - Google ドライブ ここまででChapter 8 Shift Registersがおおむね終わり。
シフトレジスタを使う / 現在も含めて過去9回分の移動平均を計算する -では事前に決めておいた回数だけ移動平均を計算したが今度は任意の回数だけ移動平均が計算できるようにする。 移動平均の回数を過去1回から過去144回までの間で変化させているようすを示…
Moving_Average_9_traces.vi - Google ドライブ このVIは9回分の平均をとるので、純粋な信号成分は9倍されたのちに9で割られ、純粋なノイズ成分はsqrt(9)倍されたのちに9で割られる。結局SN比は元の3倍になる。 今、元の信号のSN比は1であり、その信号の9回…
NoisySine_UnitySNR.vi - Google ドライブ あとでサブVIとして使うのでコネクターを割り当てておく。 [Sine Pattern.vi]、[Gaussian White Noise.vi]の[サンプル]はサンプル数のこと。 [Std Deviation and Variance.vi]の[加重 (サンプル)]はいわゆる「n-1法…
shift_register_ex.vi - Google ドライブ ループするたびに右の▲の値が左の▼へ渡される。 下の「フィボナッチ数」の例のように左の▼を複数設けた場合は上から順番に値が降りてゆく。 ▼: 現在の値 ▼: 1つ前の値 ▼: 2つ前の値 ▼: 3つ前の値 ......
文字列から数字を抜き出して数値に変換する / [パターンで一致]函数(Match Pattern)と[小数/指数文字列を数値に変換]函数(Fract/Exp String To Number)とを使う
ParseAndConvertMultimeterString.vi - Google ドライブ これでChapter 7 Data Files and Character Stringsまでがだいたい終わり。
[バイナリファイルから読み取る]函数(Read From Binary File)を使ってバイナリファイルを読み取る。 ReadBinary.vi - Google ドライブ
BinaryStorage.vi - Google ドライブ [バイナリファイルに書き込む]函数(Write to Binary File)を使って何かをバイナリファイルに書き込んでみる。 先頭に行数、列数(ここでは2行3列)が記録される。
multiTextFiles.vi - Google ドライブ [パス作成]函数(Build Path)を使ってパスを組み立てる。 ここではテキストを組み立てるのに[文字列にフォーマット]函数(Format Into String)を使ったが[文字列連結]函数(Concatenate Strings)、[テキスト作成.vi]も同じ…
ReadSpreadsheetByteStream.vi - Google ドライブ [テキストファイルから読み取る]函数(Read From Text File)を使う。 [テキストファイルから読み取る]函数を右クリックして[EOLを変換]を解除したのでEOLが\n (LF)ではなく \r\n (CR+LF)になっている。
RuntimeSpreadsheetStorage3.vi - Google ドライブ [ファイル位置を設定]函数(Set File Position)を使って、取得したデータを取得したそばからファイルへ(ここではファイルの末尾へ)書き込んでみる。 この方法だと途中でシステムがクラッシュしてもその時点…
今度は[スプレッドシートファイルから読み込む.vi] (Read From Spreadsheet File.vi)を使って.csvファイルを読み込んでみる。 ReadSpreadsheet.vi - Google ドライブ
SpreadsheetStorage_6.vi - Google ドライブ 文字列の入力にはエスケープシーケンスも使える。 EOLに関してはCR (\r)もLF (\n)もエスケープシーケンスで入力できるがWindows以外のプラットフォームで利用する場合を考慮して[復帰改行定数] (\r\n)を指定した…
[文字列連結]函数(Concatenate Strings)を使う。 SpreadsheetStorage_5.vi - Google ドライブ
今度は、[スプレッドシートファイルに書き込む.vi] (Write To Spreadsheet File.vi)は使わずに個々の函数を使って同じようなことをしてみる。 基本は「ファイルを開いて」→「ファイルに書き込んで」→「ファイルを閉じる」という3つのステップである。 Spread…
2つの1次元排列を[配列連結追加]で1つの2次元排列にまとめる。 SpreadsheetStorage_3.vi - Google ドライブ [配列連結追加]の原文は[Build Array]
今度はExcelで扱いやすいよう行と列とを転置してみる。 SpreadsheetStorage_2.vi - Google ドライブ
SpreadsheetStorage.vi - Google ドライブ カンマを区切り文字(デフォルトはタブ区切り)に設定して.csvに出力してみる。このviを実行するとファイル保存用のダイアログボックスが表示されるのでそこでファイル名や保存先を指定する。
Chapter 6、Problem 4、p.249 周波数範囲10~2010 Hz、25 Hz刻みで振幅の周波数特性を描く。 動かない、わからない。ひとまず断念する。 Bode_Magnitude_Plot.vi - Google ドライブ [信号シミュレーション]のプロパティ: [Analog Output]のプロパティ: [Anal…
myDAQのAout 0から正弦波を出力する。周波数は遅延函数とサンプルレートとで決まる。 SinWaveGenerator_Software_Timed.vi - Google ドライブ 1周期を10分割しかしていないので粗い。1刻みが10 ms、それが1周期に10回繰り返されるので1周期は10 ms × 10 = 10…