シミュレーション
Visual Basic

X-Streamのオシロスコープでは、Visual Basicのスクリプトを使用してユーザー独自の演算関数やパラメータ関数を作成することができます。VBscriptは、豊富なドキュメントが用意されているフルサポート付きのツールであり、アプリケーション・プログラム内の各種演算を自動化します。Microsoft社はVBscriptに関する広範なドキュメントとアプリケーション・ノートを発表しています。X-Streamオシロスコープでは、ユーザー独自の演算関数やパラメータ関数を作成するのにVBscriptとMATLAB、MathCadおよびEXCELの4つのツールを使用できます。

現在のところ、X-Streamオシロスコープは関数スクリプトとパラメータ・スクリプトの2種類のVBscriptアプリケーションをサポートしています。関数スクリプト(図1に示したMathセットアップ・メニューには‘wave scripts’と表示)は、データをトレースから取得し、ソース・トレースのデータを加工して新しい別個のトレースを作成します。パラメータ・スクリプトはソース・トレースのデータを使用して単一のパラメータ値を計算します。パラメータ・スクリプトはMeasureメニューに‘Param Script’として表示されています。

Visual Basic

図1:Mathセットアップメニューから呼び出したVBscript関数(Wave Script)

VBscriptの利点は、ユーザーの計算をオシロスコープの処理パスに組み込み、オシロスコープ本体のディスプレイに表示できることです。VBscriptは簡単に覚えられる一般的なプログラム言語です。コードに関する解説書も多く出版されています。VBscriptはユーザー独自の演算/パラメータ処理を実行してオシロスコープに完全統合できるため、X-Streamオシロスコープをさらにユニークな製品にしています。

Visual Basic

図2:VBscriptエディタに表示されたデフォルトのスクリプト

関数スクリプト(wave scripts)はMathセットアップメニューから内蔵のスクリプトエディタを起動してオシロスコープ単独で作成することができます(図2参照)。あるいは、テキストエディタを使用してオフラインで作成したスクリプトをスクリプトエディタにロードすることもできます(スクリプトエディタの‘Load’ボタンをクリック)。X-Streamオシロスコープに用意されているデフォルトのWaveスクリプトを図2に示します。このデフォルトのスクリプトを見れば、VBscriptがX-Streamオシロスコープでどのように動作するかが分かります。

図3はデフォルトのスクリプトの抜粋です。冒頭のステートメントの先頭に付いているシングルクォート(‘)は、このステートメントがコメントであることを示しています。クォートに続くテキストはVBインタプリタでは無視されます。

' TODO add your custom code here accessing OutResult and InResult objects
' Here's a small example that just inverts the waveform.
OutResult.Samples = InResult.Samples
startData = 0
endData = OutResult.Samples
newNumPoints = endData - startData
ReDim newDataArray (OutResult.Samples)
unscaledData = InResult.DataArray (False)
For i = 0 To endData - 1
NewDataArray (i) = - unscaledData (i) 	
Next
OutResult.DataArray (False) = newDataArray 	
'   only support raw data
図3:入力波形をインバートするデフォルトのWave Script 

VBscriptはオブジェクト指向のプログラミング言語です。オブジェクト指向のプログラムでは、Object.PropertyやObject.Methodといった表記が使われます。Propertyはオブジェクトの特性を定義します。例えば、FontSizeはオブジェクトのプロパティです。Methodは特定のアクションを指示します。

例えば、TurnBinary-IntoASCII(BinaryStuffln,ASCIIStuffOut)はメソッドです。デフォルトのスクリプトの場合、オブジェクトはInResultとOutResultです。そのプロパティはSamplesで、データ配列中のポイントの数を指定しています。サンプルの数を入力データから直接取得することにより、オシロスコープの時間分割やメモリ長の設定に依存することなくスクリプトを使用できます。InResult.Samplesの値はトレース内のデータ総数であり、画面に表示されている名目値より2つ大きくなっています。最初のポイントであるDataArray(0)は画面の左端に一致します。トレースの名目長が500の場合、画面の右端は501番目のポイントであるDataArray(500)に一致します。最後のポイント(502)は画面の右端から外れ、したがって画面には表示されません。スクリプトのループがendData − 1で終わっているのはこのためです。DataArrayプロパティは、オブジェクトのデータ値を定義しています。InResult.DataArrayに関連付けられているブール式は、データ配列がスケールされる(ブール値=True)か、またはスケールされないか(ブール値=False)を決定します。スケールされる場合、データは入力トレースの単位(例えばボルト)で読み取られます。スケールされない場合、データは+32,767から−32768までの範囲の符号付き整数値として読み取られます。

デフォルトのスクリプトは、ソーストレースからデータを読み取り、その値をインバートします。結果として生成されるデータ・オブジェクト(OutResult)はオシロスコープに返され、表示されます。

VBscriptはFor/Next、Do…Loop、If…Then、Selectなどの制御ステートメントをサポートしています。これらの制御ステートメントを使用して、デフォルトのスクリプトに示されているような反復処理を実行し、入力データの各値をインバートされた値で置き換えることができます。

問題やエラーは実行時にWave Scriptメニューに表示されます。エラー・メッセージには問題が発生した行の番号が示され、問題の内容が簡単に説明されます。パラメータ・スクリプトも同様のプログラミング・ツールです。

ページトップに戻る