DDEダイナミック データ エクスチェンジ

SpectraPLUS-SCはMS-Windowsが提供するDDE(Data Dynamic Exchange)機能に対応しています

備考: この機能にアクセスするには「Automation Tools」オプション(Opt/10)の搭載が必須です。

概要
DDE Commands
Data Request
サンプル


13-1 概要

Dynamic Data Exchange (DDE)は、他のアプリケーションがSpectraPLUS-SCアプリケーションと"talk"することを可能にし、コマンドをアナライザーに送ってデータを要求することができます。この強力な機能はカスタム信号処理システム/自動測定環境の構築を容易にします。


DDE機能は主なスプレッドシート、データベースソフトやプログラム開発言語が対応しています。マイクロソフト社が提供しているVBA(Visual Basic for Applications) を使うことをお勧めします。このマクロ言語は非常に柔軟性があります。


DDEはコマンドとデータリクエストの主要な2つのオペレーションをサポートします。

DDEホットリンクの自動確立


新しいデータを処理している時に、SpectraPLUS-SCが"advise"メッセージを送る先との"hot link"のセットアップが可能です。カスタムアプリケーションがアドバイスを受け取ると対応するデータを要求します。外部のアプリケーションの<Paste Special><Paste><Link>を使ってホットリンクを確立できます。例えば、Excelとのホットリンクを確立するには以下のステップを実行します。

DDEホットリンクの手動確立:


SpectraPLUS-SCにアプリケーションが"talk"する前に、まず"DDEコンバージョン"初期化をします。この時プログラムはDDEサーバの名前とトピックを知らなければなりません。データをリクエストする時は項目の名前が分かっていなければなりません。SpectraPLUS-SCの有効な名前は次の通りです。


13-2 DDE Commands

SpectraPLUS-SCに提供されている制御命令、データ要求コマンド・ストリングスは次の通りです。

 

DDE Commands 一覧表:

例:"[Run]" ... ストリングスはダブルクォーティーションで囲みます(以下略)。

コマンド 機  能
アナライザー制御  
[Run] アナラザーをスタートします
[Run ##] アナライザーをスタートし、FFT ##回実行後停止します
[Single Step] FFT1回(single)実行し停止します
[Go To ##] WAVファイルの##秒位置に進みます
[Stop] アナライザーを停止します
[Rewind] WAVファイルを頭まで巻き戻します
[Fast Forward] WAVファイルの最終位置にジャンプします
[Record] 現在の位置にWAVデータをレコードします
[Pause Record] レコードをポーズしますが、アナライザーは継続してランします
[Resume Record] ポーズを解除し、レコードを再開します
[Play] 現在の位置からWAVファイルを再生します
[Play Segment # &] WAVファイルの指定時間位置を再生します(#=start time in seconds, &=stop time in seconds)
[Apply Filter # &] WAVファイルの指定時間位置をフィルタ処理します (#=start time in seconds, &=stop time in seconds)
動作モード
[Mode Real Time] Real Timeモードに設定します
[Mode Recorder] Recorderモードに設定します
[Mode Post Processing] Post Processingモードに設定します
ファイル操作
[File Open FILENAME.WAV] WAVファイル"FILENAME.WAV"を開きます
[File Open FILENAME.CFG] 定義ファイル"FILENAME.CFG"を開きます
[File Open FILENAME.CAL] 校正ファイル"FILENAME.CAL"を開きます
[File Open FILENAME.MAC] 指定したマクロファイルを開き、ランします
[File Open FILENAME.RVB] 指定したリバーブ(残響)ファイルを開きます
[File Open FILENAME.THD] 指定したTHD vs Freq.ファイルを開きます
[File Open FILENAME.FLT] 指定したフィルタレスポンスファイルをセットします
[File Save FILENAME.WAV] 現在のWAVファイルを"FILENAME.WAV"の名前で保存します
[File Decimate FILENAME.WAV ratio] 指定したデシメーションratio値とFILENAMEWAVファイルを保存します
[File Merge LEFT.WAV RIGHT.WAV] 2つのモノWAVファイルをマージし、ステレオWAVファイルにします
[File Close] WAVファイルを閉じます
[File Delete #] 指定したWAVファイルを削除します
[Set Mic Compensation File #] 指定したマイク特性補正ファイルを両チャンネルにセットします
[Set Left Mic Compensation File #] 指定したマイク特性補正ファイルを左チャンネルにセットします
[Set Right Mic Compensation File #] 指定したマイク特性補正ファイルを右チャンネルにセットします
[Enable Mic Compensation] マイク特性補正機能を有効にします
[Enable Left Mic Compensation] 左チャンネルのマイク特性補正機能を有効にします
[Enable Right Mic Compensation] 右チャンネルのマイク特性補正機能を有効にします
[Disable Mic Compensation] マイク特性補正機能を無効にします
[Disable Left Mic Compensation] 左チャンネルのマイク特性補正機能を無効にします
[Disable Right Mic Compensation] 右チャンネルのマイク特性補正機能を無効にします
クリップボード操作
[Cut Time Segment # &] カットした時間セグメントをクリップボードにコピーします(#=start time in seconds, &=stop time in seconds)
[Copy Time Segment # &] 選択した時間セグメントをクリップボードにコピーします(#=start time in seconds, &=stop time in seconds)
[Paste Time Segment #] クリップボードから選択した時間セグメントをペーストします (#=paste time in seconds)
[Mute Time Segment # &] 指定した時間セグメントをミュートします(#=start time in seconds, &=stop time in seconds)
パラメータ設定  
[Set Sampling Rate ##] サンプリングレートを指定値##に設定します
[Set FFT Size ##] FFTサイズを##に設定します(アナライザーは初期化します)
[Set Decimation Ratio #] デシメーションレシオをセットします
[Set Channel #] チャンネルをセットします。「#」は次のいずれかのパラメタです
 Left, Right, Both, Average, Coherence, Transfer LR, Transfer RL, Transfer LR+C, Transfer RL+C
[Set Delay #] クロスチャンネルディレーをセットします。「#」は millisecondsでのディレー時間値です
[Window #] Smoothing Window(窓関数)を設定します。(#=窓関数名、例:Blackman, Flat Top)
[Set Average Mode #] アベレージングモードをセットします。「#」はBlocksかMeterです
[Set Average Type #] アベレージングタイプをセットします。「#」はExponential, LinearかVectorです
[Set Average Size ##] アベレージングブロックサイズかスピードをセットします。ブロックモードでは, 「##」は1...1000; 1001 = Infinite。メータモードでは「##」は0=Off, 1=Fast, 2=Medium, 3=Slow, 4=Foreverです
[Reset Average] ランニングアベレージをリセットします
[Reset Overload] オーバーロード検知機能をリセットします
[Set Peak Hold #] ピークホールドタイプをセットします。「# 」は 0=Off, 1=Fast, 2=Medium, 3=Slow, 4=Foreverです
[Set FFT Overlap ##] FFT オーバーラップパーセンテージをセットします(## = 0...99)。Post Processモードのみ有効です
グラフ軸スケール設定  
[Set Amplitude Scaling Type #] グラフY軸(アンプリチュード)のスケールタイプをセットします。「#」はLinearかLogです
[Set Left Amplitude Scaling Type #] 左チャンネルのグラフY軸(アンプリチュード)のスケールタイプをセットします。「#」はLinearかLogです(independent channel scalingのみ有効)
[Set Right Amplitude Scaling Type #] 右チャンネルのグラフY軸(アンプリチュード)のスケールタイプをセットします。「#」はLinearかLogです(independent channel scalingのみ有効)
[Set Frequency Scaling Type #] グラフX軸(周波数)のスケールタイプをセットします。「#」はLinearかOctaveです
[Set Left Frequency Scaling Type #] 左チャンネルのグラフX軸(周波数)のスケールタイプをセットします。「#」はLinearかOctaveです(independent channel scalingのみ)
[Set Right Frequency Scaling Type #] 右チャンネルのグラフX軸(周波数)のスケールタイプをセットします。「#」はLinearかOctaveです(independent channel scalingのみ)
[Set Octave #] オクターブバンドタイプをセットします。「#」は1, 3, 6, 9, 12 etc.です
[Set Left Octave #] 左チャンネルのオクターブバンドタイプをセットします。「#」は1, 3, 6, 9, 12 etc.です
[Set Right Octave #] 右チャンネルのオクターブバンドタイプをセットします。「#」は1, 3, 6, 9, 12 etc.です
[Set Spectrum Weighting #] Spectrumの聴感補正カーブ/Weightingをセットします。「#」はFlat, A, BかCです
[Set Left Spectrum Weighting #] 左チャンネルのSpectrumの聴感補正カーブ/Weightingをセットします。「#」はFlat, A, BかCです
[Set Right Spectrum Weighting #] 右チャンネルのSpectrumの聴感補正カーブ/Weightingをセットします。「#」はFlat, A, BかCです
[Set Total Power Weighting #] Total Powerの聴感補正カーブ/Weightingをセットします。「#」はFlat, A, BかCです
[Set Left Total Power Weighting #] 左チャンネルのTotal Powerの聴感補正カーブ/Weightingをセットします。「#」はFlat, A, BかCです
[Set Right Total Power Weighting #] 右チャンネルのTotal Powerの聴感補正カーブ/Weightingをセットします。「#」はFlat, A, BかCです
[Set PSD Type #] PSDタイプをセットします。「#」は0か1です。0units^2/Hz1units/sqrt(Hz)です
[Set Left PSD Type #] 左チャンネルの PSDタイプをセットします。「#」は0か1です(independent channel scaling only)0units^2/Hz1units/sqrt(Hz)です
[Set Right PSD Type #] 右チャンネルの PSDタイプをセットします。「#」は0か1です(independent channel scaling only)0units^2/Hz1units/sqrt(Hz)です
[Enable PSD] PSDを有効にします
[Enable Left PSD] 左チャンネルの PSDを有効にします(independent channel scaling時のみ)
[Enable Right PSD] 右チャンネルの PSDを有効にします(independent channel scaling時のみ)
[Disable PSD] PSDを無効にします
[Disable Left PSD] 左チャンネルのPSDを無効にします(independent channel scaling時のみ)
[Disable Right PSD] 右チャンネルのPSDを無効にします(independent channel scaling時のみ)
シグナルジェネレータ  
[Open Generator] シグナルジェネレータを起動します
[Close Generator] シグナルジェネレータを閉じます
[Start Generator] ジェネレータをスタートします
[Stop Generator] ジェネレータを停止します
[Set Generator Type Left #] 左チャンネルのシグナルジェネレータの出力信号波形を設定します。「#」は信号タイプ名です(例:[Set Generator Type Left Pink Noise])
[Set Generator Type Right #] 右チャンネルのシグナルジェネレータの出力信号波形を設定します。「#」は信号タイプ名です(例:[Set Generator Type Left Pink Noise])
[Set Generator Tone Left Freq AmpDB] 左チャンネルのシグナルジェネレータに「multiple tones」を設定し、信号の周波数と相対レベルをセットします。レベルは0.0から-96 (dB)です(例:[Set Generator Tone Left 1500 -24])
[Set Generator Tone Right Freq AmpDB] 右チャンネルのシグナルジェネレータに「multiple tones」を設定し、信号の周波数と相対レベルをセットします。レベルは0.0から-96 (dB)です(例:[Set Generator Tone Left 1500 -24])
[Set Generator Wave File Left #] 左チャンネルのシグナルジェネレータを「User Defined」にセットし、WAVファイルを設定します。「#」はファイルネームです
[Set Generator Wave File Right #] 右チャンネルのシグナルジェネレータを「User Defined」にセットし、WAVファイルを設定します。「#」はファイルネームです
[Set Generator Level Left &] 左チャンネルのシグナルジェネレータ出力レベルをセットします。「&」はレベル値です
[Set Generator Level Right &] 右チャンネルのシグナルジェネレータ出力レベルをセットします。「&」はレベル値です
トリガー  
[Trigger] トリガーを準備します
[Trigger On] トリガーを有効にします
[Trigger Off] トリガーを無効にします
[Trigger ReArm On] トリガー設定後のReArmを有効にします
[Trigger ReArm Off] トリガー設定後のReArmを無効にします
データマーカ  
[Set Marker # xxx] マーカ周波数をセットします。「#」はHz単位です
[Show Marker #] 「#」番のマーカを表示します
[Hide Marker #] 「#」番のマーカを無効化します
オーバーレイ  
[Set Overlay #] マーカー6xxxHzに設定します
[Set Left Overlay #] オーバーロードをリセットします
[Set Right Overlay #] 右チャンネルのアクティブSpectrumデータを「Overlays」メモリにストレージします。「#」はオーバーレイ番号(1-7)です
[Set Overlay From Peak Hold #] 左右両チャンネルのピークSpectrumデータを「Overlays」メモリにストレージします。「#」はオーバーレイ番号(1-7)です
[Set Left Overlay From Peak Hold #] 左チャンネルのピークSpectrumデータを「Overlays」メモリにストレージします。「#」はオーバーレイ番号(1-7)です
[Set Right Overlay From Peak Hold #] 右チャンネルのピークSpectrumデータを「Overlays」メモリにストレージします。「#」はオーバーレイ番号(1-7)です
[Show Overlay #] 左右両チャンネルの「Overlays」データを表示します。「#」はオーバーレイ番号(1-7)です
[Show Left Overlay #] 左チャンネルの「Overlays」データを表示します。「#」はオーバーレイ番号(1-7)です
[Show Right Overlay #] 右チャンネルの「Overlays」データを表示します。「#」はオーバーレイ番号(1-7)です
[Hide Overlay #] 左右両チャンネルの「Overlays」データを非表示化します。「#」はオーバーレイ番号(1-7)です
[Hide Left Overlay #] 左チャンネルの「Overlays」データを非表示化します。「#」はオーバーレイ番号(1-7)です
[Hide Right Overlay #] 右チャンネルの「Overlays」データを非表示化します。「#」はオーバーレイ番号(1-7)です
[Set Overlay Offset # &] 左右両チャンネルの「Offset 」をセットします。「#」はオーバーレイ番号(1-7)です。「&」はdB単位のオフセット値です
[Set Left Overlay Offset # &] 左チャンネルの「Offset 」をセットします。「#」はオーバーレイ番号(1-7)です。「&」はdB単位のオフセット値です
[Set Right Overlay Offset # &] 右チャンネルの「Offset 」をセットします。「#」はオーバーレイ番号(1-7)です。「&」はdB単位のオフセット値です
[Set Overlay Legend # &] 左右両チャンネルの「ラベル名文字列」をセットします。「#」はオーバーレイ番号(1-7)です。「&」はテキスト文字列です
[Set Left Overlay Legend # &] 左チャンネルの「ラベル名文字列」をセットします。「#」はオーバーレイ番号(1-7)です。「&」はテキスト文字列です
[Set Right Overlay Legend # &] 右チャンネルの「ラベル名文字列」をセットします。「#」はオーバーレイ番号(1-7)です。「&」はテキスト文字列です
[Setup Composite Overlay # &] 左右両チャンネルの「Composite Overlay」をセットします。「#」はコンポジットタイプAVG(平均)かSUB(減算)です。AVGの場合は処理対象オーバーレイ番号を次の様に指定します(例:[Setup Composite Overlay AVG 1 0 01 0 0]。これは1番と4番が対象の意です)。
[Setup Left Composite Overlay # &] 前項と同様ですが、左チャンネルにのみ適用されます
[Setup Right Composite Overlay # &] 前項と同様ですが、右チャンネルにのみ適用されます
[Save Left Overlay File # &] 左チャンネルの「Overlay」データを保存します。「#」はオーバーレイ番号、「&」はファイルネームです
[Save Right Overlay File # &] 右チャンネルの「Overlay」データを保存します。「#」はオーバーレイ番号、「&」はファイルネームです
[Load Left Overlay File # &] 指定したファイルネームのデータを左チャンネルの「Overlay」にロードします。「#」はオーバーレイ番号、「&」はファイルネームです
[Load Right Overlay File # &] 指定したファイルネームのデータを右チャンネルの「Overlay」にロードします。「#」はオーバーレイ番号、「&」はファイルネームです
[Compare Left Spectrum To Overlay 1] 左チャンネルのSpectrumデータと「Overlays 1」データを比較します。後述の戻り値を返します(*
[Compare Left Spectrum To Overlay 2] 左チャンネルのSpectrumデータと「Overlays 2」データを比較します。後述の戻り値を返します(*
[Compare Left Spectrum To Overlay 3] 左チャンネルのSpectrumデータと「Overlays 3」データを比較します。後述の戻り値を返します(*
[Compare Left Spectrum To Overlay 4] 左チャンネルのSpectrumデータと「Overlays 4」データを比較します。後述の戻り値を返します(*
[Compare Left Peak Hold To Overlay 1] 左チャンネルのSpectrumピークデータと「Overlays 1」データを比較します。後述の戻り値を返します(*
[Compare Left Peak Hold To Overlay 2] 左チャンネルのSpectrumピークデータと「Overlays 2」データを比較します。後述の戻り値を返します(*
[Compare Left Peak Hold To Overlay 3] 左チャンネルのSpectrumピークデータと「Overlays 3」データを比較します。後述の戻り値を返します(*
[Compare Left Peak Hold To Overlay 4] 左チャンネルのSpectrumピークデータと「Overlays 4」データを比較します。後述の戻り値を返します(*
[Compare Right Spectrum To Overlay 1] 右チャンネルのSpectrumデータと「Overlays 1」データを比較します。後述の戻り値を返します(*
[Compare Right Spectrum To Overlay 2] 右チャンネルのSpectrumデータと「Overlays 2」データを比較します。後述の戻り値を返します(*
[Compare Right Spectrum To Overlay 3] 右チャンネルのSpectrumデータと「Overlays 3」データを比較します。後述の戻り値を返します(*
[Compare Right Spectrum To Overlay 4] 右チャンネルのSpectrumデータと「Overlays 4」データを比較します。後述の戻り値を返します(*
[Compare Right Peak Hold To Overlay 1] 右チャンネルのSpectrumピークデータと「Overlays 1」データを比較します。後述の戻り値を返します(*
[Compare Right Peak Hold To Overlay 2] 右チャンネルのSpectrumピークデータと「Overlays 2」データを比較します。後述の戻り値を返します(*
[Compare Right Peak Hold To Overlay 3] 右チャンネルのSpectrumピークデータと「Overlays 3」データを比較します。後述の戻り値を返します(*
[Compare Right Peak Hold To Overlay 4] 右チャンネルのSpectrumピークデータと「Overlays 4」データを比較します。後述の戻り値を返します(*
(*
戻り値   適    用
-2 = データは無効です
-1 = データは無効です
0 = Overlaysデータを完全に上回ります
1 = Overlaysデータを完全に下回ります
2 = Overlaysデータを部分的に上回ります
定義ファイル  
[Save Config #] 定義パラメータを、指定したファイルネーム「#」で保存します
[Load Config #] 指定したファイルネーム「#」の定義パラメータをロードします
レベル校正(Calibration)  
[Calibrate] 設定された校正パラメータを使い、入力信号でアナライザーを校正します
[Save Calibration #] 指定したファイルネーム「#」で校正パラメータを保存します
[Load Calibration #] 指定したファイルネーム「#」で校正パラメータをロードします
[Enable Calibration] 校正値を有効化します
[Disable Calibration] 校正値を無効化します
デバイス設定  
[Set Input Device #] 入力側に使用するサウンドカード/デバイスをセットします。「#」はデバイスリストに表示される順番号もしくは、デバイス名です。デバイスリストは<Option><Device>メニューで表示します
[Set Output Device #] 出力側に使用するサウンドカード/デバイスをセットします。「#」はデバイスリストに表示される順番号もしくは、デバイス名です。デバイスリストは<Option><Device>メニューで表示します
表示項目/ Plot  
[Open Time Series] Time Seriesビューを開きます
[Close Time Series] Time Seriesビューを閉じます
[Maximize Time Series] Time Seriesビューを最大化します
[Restore Time Series] Time Seriesビューをノーマルサイズにします
[Set Time Segment # ##] Time Seriesビューを表示する時間レンジをセットします。「#」が開始時間、「##」が停止時間(秒単位)です
[Set Time Series Plot Top #] Time Series グラフの「Plot Top」、Y軸最大値をセットします
[Set Time Series Plot Range #] Time Series グラフY軸のレンジ幅をセットします
[Autoscale Time Series] Time Series グラフY軸のスケールを最適化します
[Open Spectrum] Spectrumビューを開きます
[Close Spectrum] Spectrumビューを閉じます
[Clear Spectrum] Spectrumビューをクリアします
[Clear Peak Hold] ピークデータをクリアします
[Maximize Spectrum] Spectrumビューを最大化します
[Restore Spectrum] Spectrumビューをノーマルサイズにします
[Spectrum Freq Span # ##] Spectrumグラフの周波数(X軸)レンジ幅をセットします。「#」は下限、「##」は上限周波数(Hz)です
[Set Spectrum Plot Top #] Spectrumグラフの「Plot Top」、Y軸最大値をセットします
[Set Spectrum Plot Range #] SpectrumグラフY軸のレンジ幅をセットします
[Autoscale Spectrum] SpectrumグラフY軸のスケールを最適化します
[Set Spectrum Bar Graph] Spectrumビュー をバーグラフ表示モードにセットします
[Set Spectrum Line Graph] Spectrumビュー を折れ線グラフ表示モードにセットします
[Compute Average Spectrum # ##] 指定した時間セグメントのアベレージスペクトラムを表示します。「#」は開始時間、「##」は停止時間(秒単位)です
[Compute Reverb # ##] 指定した時間セグメントの残響時間(RT60)を表示します。「#」は開始時間、「##」は停止時間(秒単位)です
[Open Phase] Phaseビューを開きます
[Close Phase] Phaseビューを閉じます
[Maximize Phase] Phaseビューを最大化します
[Restore Phase] Phaseビューをノーマルサイズにします
[Phase Freq Span # ##] Phaseグラフの周波数(X軸)レンジ幅をセットします。「#」は下限、「##」は上限周波数(Hz)です
[Open Surface] 3-D Surfaceビューを開きます
[Close Surface] 3-D Surfaceビューを閉じます
[Maximize Surface] 3-D Surfaceビューを最大化します
[Restore Surface] 3-D Surfaceビューをノーマルサイズにします
[Surface Freq Span # ##] 3-D Surfaceグラフの周波数(X軸)レンジ幅をセットします。「#」は下限、「##」は上限周波数(Hz)です
[Build Surface # ##] 指定した時間セグメントのスペクトラムを3-D Surfaceグラフに展開します。「#」は開始時間、「##」は停止時間(秒単位)です
[Open Spectrogram] Spectrogram ビューを開きます
[Close Spectrogram] Spectrogram ビューを閉じます
[Maximize Spectrogram] Spectrogram ビューを最大化します
[Restore Spectrogram] Spectrogram ビューをノーマルサイズにします
[Spectrogram Freq Span # ##] Spectrogramグラフの周波数(X軸)レンジ幅をセットします。「#」は下限、「##」は上限周波数(Hz)です
[Build Spectrogram # ##] 指定した時間セグメントのスペクトラムをSpectrogram グラフに展開します。「#」は開始時間、「##」は停止時間(秒単位)です
[Copy to Clipboard as Bitmap] アクティブ状態のビューの表示内容を、ビットマップフォームでクリップボードにコピーします
Utilities項目の制御  
[Open Peak Freq Utility] Peak Frequency表示窓を開きます
[Close Peak Freq Utility] Peak Frequency表示窓を閉じます
[Open Peak Amp Utility] Peak Amplitude表示窓を開きます
[Close Peak Amp Utility] Peak Amplitude表示窓を閉じます
[Open Total Power Utility] Total Power表示窓を開きます
[Close Total Power Utility] Total Power表示窓を閉じます
[Open THD Utility] THD 表示窓を開きます
[Close THD Utility] THD 表示窓を閉じます
[Open THD_N Utility] THD+N表示窓を開きます
[Close THD_N Utility] THD+N表示窓を閉じます
[Open THDvsFreq] THD+N vs Freq表示窓を開きます
[Close THDvsFreq] THD+N vs Freq表示窓を閉じます
[Start THDvsFreq] THD+N vs Freq測定を開始します
[Save THDvsFreq #] THD+N vs Freq測定値を、指定したファイルネーム「#」で保存します
[Print THDvsFreq] THD+N vs Freqグラフをプリント/印刷します
[Open IMD Utility] IMD表示窓を開きます
[Close IMD Utility] IMD表示窓を閉じます
[Open SNR Utility] SNR表示窓を開きます
[Close SNR Utility] SNR表示窓を閉じます
[Open DelayFinder] Delay Finder表示窓を開きます
[Close DelayFinder] Delay Finder表示窓を閉じます
[Apply DelayFinder] 表示されているDelay Finder値を適用して処理します
[Open PhaseScope] Phase Scope表示窓を開きます
[Close PhaseScope] Phase Scope表示窓を閉じます
[Open Macro] マクロコマンドプロセッサを開きます
[Close Macro] マクロコマンドプロセッサを閉じます
[Open Macro File #] 指定したファイル名のマクロを開きます
[Start Macro] セットされているマクロをランします
[Stop Macro] マクロを停止します
[Open Reverb] リバーブ/残響測定機能を開きます
[Close Reverb] リバーブ機能を閉じます
[Start Reverb] リバーブ測定を開始します
[Save Reverb #] リバーブ測定結果を保存します。「#」はファイルネームです
[Set Reverb View Time] 「Reverb Times 」グラフを表示します
[Set Reverb View Decay] 「Reverb Decay」グラフを表示します
[Set Reverb View Surface] 「3-D Surface」グラフを表示します
[Enable DataLogging] データロギング機能を有効にします
[Disable DataLogging] データロギング機能を無効にします
[Set DataLogging File #] データロギング出力ファイルの名前をセットします
プリント/印刷  
[Set Annotation Line1 XYZ] データシートのヘッドライン1行目に印字される文字/メモをセットします
[Set Annotation Line2 XYZ] データシートのヘッドライン2行目に印字される文字/メモをセットします
[Enable Comment Block] セットしたコメントの印字を有効にします
[Disable Comment Block] セットしたコメントの印字を無効にします
[Set Comment Line1 abc] コメント1行目の文字/メモをセットします
[Set Comment Line2 abc] 同様に2行目をセットします
同様にn行目をセットします
[Set Comment Line10 abc] 同様に10行目をセットします
[Print Time Series] Time Seriesグラフを印刷します
[Print Spectrum] Spectrumグラフを印刷します
[Print Phase] Phaseグラフを印刷します
[Print Spectrogram] Spectrogram グラフを印刷します
[Print 3D Surface] 3D Surfaceグラフを印刷します
[Print THDvsFreq] THD vs Freqグラフを印刷します
Window操作  
[Minimize Window] ウィンドウをアイコン化します
[Restore Window] ウィンドウを元に戻します
[Maximize Window] ウィンドウを最大化します
[Cascade Windows] 全てのビューを重ね表示します
[Tile Windows Vertical] 全てのビューを縦配列で表示します
[Tile Windows Horizontal] 全てのビューを横配列で表示します
[Hide Window] アプリケーション表示を無効化します
[Show Window] アプリケーションを表示します
[Hide Menu] メインメニューを無効化します
[Show Menu] メインメニューを表示します
[Hide Toolbar] メインツールバーを無効化します
[Show Toolbar] メインツールバーを表示します
[Hide Toolbar2] セカンドツールバーを無効化します
[Show Toolbar2] セカンドツールバーを表示します
[Hide Statusbar] ステータスバーを無効化します
[Show Statusbar] ステータスバーを表示します
[Hide Plot Toolbars] 開いているビューのツールバーを無効化します
[Show Plot Toolbars] 開いているビューのツールバーを表示します
[Exit Application] アプリケーションを終了します
その他  
[Ambient Compensate] 最後秒のデータからAmbientLeft.micとAmbientRight.micファイルを作成し、マイク特性補正ファイルとして使用します
[Ambient Compensate Enable] マイク特性補正機能を有効にします
[Ambient Compensate Disable] マイク特性補正機能を無効にします
[Set Peak Search Bandwidth # &] ピーク周波数、ピークアンプリチュードデータ取得のための周波数バンドをセットします。「#」は開始周波数、「&」は停止周波数です


DDE Data Request データ要求メッセージ一覧表:

例:"Mode" ... ストリングスはダブルクォーティーションで囲みます(以下略)。

コマンド 機  能
設定情報  
Mode セットされている動作モードを返します(1=Real time, 2=Post Processing, 3=Recorder)
FFT Size セットされているFFT sizeを返します
Sampling Rate セットされているサンプリングレートを返します
FFT Overlap セットされているオーバーラップパーセンテージを返します(0...99)
Decimation Ratio セットされているデシメーションレシオを返します
Average Mode セットされているアベレージングモードを返します(0=Free Run (blocks), 1=Sound Level Meter (SLM))
Average Type セットされているアベレージングタイプを返します(0=Exponential, 1=Linear, 2=Vector)
Average Size セットされているアベレージングブロックサイズ/スピードを返します((1...1000; 1001 if infinite) / (0=off, 1=Fast, 2=Med, 3=Slow, 4=Forever))
Peak Hold セットされているピークホールドタイプを返します(0=off, 1=Fast, 2=Med, 3=Slow, 4=Forever)
Smoothing Window セットされている窓関数/Smoothing windowを返します
状態情報  
Current Time WAVファイル上の現在時間位置を秒で返します
Total Time WAVファイルの時間サイズを秒で返します
Overload Status 入力のオーバーロード状態を返します(1=true, 0=false)
Overload Count オーバーロード発生回数を返します
FFT Count FFT実行回数を返します
Logging Status ロギング状態を返します1=enabled, 0=otherwise)
Last Logging Time 最後のロギング実行時間を返します。N/Aは「off.」を意味します
Macro Status マクロコマンドプロセッサの状態を返します(0=stopped, 1=running. -1=utility is not open.)
Signal Generator Type Left ジェネレータにセットされている左チャンネルの信号タイプを返します
Signal Generator Type Right ジェネレータにセットされている右チャンネルの信号タイプを返します
スケール関連  
Amplitude Axis Scaling Left 左チャンネルのグラフアンプリチュード軸のスケールタイプを返します(0=Linear, 1=Logarithmic)
Amplitude Axis Scaling Right 右チャンネルのグラフアンプリチュード軸のスケールタイプを返します(0=Linear, 1=Logarithmic)
Frequency Axis Scaling Left 左チャンネルのグラフ周波数軸のスケールタイプを返します(0=Linear, 1=Logarithmic, 3=Octave)
Frequency Axis Scaling Right 右チャンネルのグラフ周波数軸のスケールタイプを返します(0=Linear, 1=Logarithmic, 3=Octave)
Spectrum Weighting Left Spectrum測定左チャンネルの聴感補正/Weightingのフィルタタイプを返します(0=Flat, 1=A, 2=B, 3=C)
Spectrum Weighting Right Spectrum測定右チャンネルの聴感補正/Weightingのフィルタタイプを返します(0=Flat, 1=A, 2=B, 3=C)
Total Power Weighting Left Total Power測定左チャンネルの聴感補正/Weightingのフィルタタイプを返します(0=Flat, 1=A, 2=B, 3=C)
Total Power Weighting Right Total Power測定右チャンネルの聴感補正/Weightingのフィルタタイプを返します(0=Flat, 1=A, 2=B, 3=C)
PSD Left 左チャンネルのPSDの状態を返します(0=off, 1=on)
PSD Right 右チャンネルのPSDの状態を返します(0=off, 1=on)
PSD Type Left 左チャンネルのPSDタイプを返します (0=units^2/Hz, 1=units/sqrt(Hz))
PSD Type Right 右チャンネルのPSDタイプを返します (0=units^2/Hz, 1=units/sqrt(Hz))
Mic Compensation Left 左チャンネルのマイク補正状態を返します(0=off, 1=on)
Mic Compensation Right 右チャンネルのマイク補正状態を返します(0=off, 1=on)
Mic Compensation File Left 左チャンネルにセットされているマイク補正ファイルネームを返します
Mic Compensation File Right 右チャンネルセットされているマイク補正ファイルネームを返します
ピーク周波数  
Peak Frequency ピーク周波数を返します(下記"Peak1 Frequency"同)
Peak1 Frequency 1番大きいピーク周波数を返します
Peak2 Frequency 2番目に番大きいピーク周波数を返します
Peak3 Frequency 3番目に番大きいピーク周波数を返します
Peak4 Frequency 4番目に番大きいピーク周波数を返します
Peak5 Frequency 5番目に番大きいピーク周波数を返します
Peak6 Frequency 6番目に番大きいピーク周波数を返します
Marked Peak Frequency マーカ1と2の間のピーク周波数を返します
ピークレベル  
Peak Amplitude ピークアンプリチュードを返します(下記"Peak1 Amplitude"同)
Peak1 Amplitude 1番大きいピークアンプリチュードを返します
Peak2 Amplitude 2番目に番大きいピークアンプリチュードを返します
Peak3 Amplitude 3番目に番大きいピークアンプリチュードを返します
Peak4 Amplitude 4番目に番大きいピークアンプリチュードを返します
Peak5 Amplitude 5番目に番大きいピークアンプリチュードを返します
Peak6 Amplitude 6番目に番大きいピークアンプリチュードを返します
Marked Peak Amplitude マーカ1と2の間のピークアンプリチュードを返します
データマーカ  
Marker1 Amplitude マーカ1のアンプリチュードを返します
Marker2 Amplitude マーカ2のアンプリチュードを返します
Marker3 Amplitude マーカ3のアンプリチュードを返します
Marker4 Amplitude マーカ4のアンプリチュードを返します
Marker5 Amplitude マーカ5のアンプリチュードを返します
Marker6 Amplitude マーカ6のアンプリチュードを返します
Marker7 Amplitude マーカ7のアンプリチュードを返します
トータルパワー  
Total Power 既定ウェイティングでのトータルパワーを返します
Total Power A Aウェイティングでのトータルパワーを返します
Total Power B Bウェイティングでのトータルパワーを返します
Total Power C Cウェイティングでのトータルパワーを返します
Total Power Flat ウェイティング無しのトータルパワーを返します
Marked Total Power マーカ1と2の間の、既定ウェイティングでのトータルパワーを返します
Marked Total Power A マーカ1と2の間の、Aウェイティングでのトータルパワーを返します
Marked Total Power B マーカ1と2の間の、Bウェイティングでのトータルパワーを返します
Marked Total Power C マーカ1と2の間の、Cウェイティングでのトータルパワーを返します
Marked Total Power Flat マーカ1と2の間の、ウェイティング無しのトータルパワーを返します
ひずみ等  
THD THD値を返します
THD+N THD+N値を返します
IMD IMD値を返します
SNR SNR値を返します
SINAD SINAD値を返します
NF Noise Figure (NF値)を返します
Delay Finder ディレイファインダのDelay値を返します
THD vs Frequency THD+N vs Frequencyをデータ列で返します**
Compare Left THD vs Freq to Limits リミットデータが有効でなければ「-2」、THDデータが有効でなければ「-1」。THDがリミット以内なら「0」、超えていれば「1」
Compare Right THD vs Freq to Limits リミットデータが有効でなければ「-2」、THDデータが有効でなければ「-1」。THDがリミット以内なら「0」、超えていれば「1」
Spectrum データ  
Spectrum スペクトラムデータ列を返します**
Spectrum Left 左チャンネルのスペクトラムデータ列を返します**
Spectrum Right 右チャンネルのスペクトラムデータ列を返します**
Zoomed Spectrum ズームイン/アウトされたスペクトラムビューのレンジを返します**
Zoomed Spectrum Left 左チャンネルのズームイン/アウトされたスペクトラムビューのレンジを返します**
Zoomed Spectrum Right 右チャンネルのズームイン/アウトされたスペクトラムビューのレンジを返します**
Marked Spectrum スペクトラムビューのマーカ1と2の間のレンジを返します**
Marked Spectrum Left 左チャンネルのスペクトラムビューのマーカ1と2の間のレンジを返します**
Marked Spectrum Right 右チャンネルのスペクトラムビューのマーカ1と2の間のレンジを返します**
Peak Hold Spectrum ピークホールドスペクトラムデータ列を返します**
Peak Hold Spectrum Left 左チャンネルのピークホールドスペクトラムデータ列を返します**
Peak Hold Spectrum Right 右チャンネルのピークホールドスペクトラムデータ列を返します**
Zoomed Peak Hold Spectrum ズームイン/アウトされたピークホールドスペクトラムビューのレンジを返します**
Zoomed Peak Hold Spectrum Left 左チャンネルのズームイン/アウトされたピークホールドスペクトラムビューのレンジを返します**
Zoomed Peak Hold Spectrum Right 右チャンネルのズームイン/アウトされたピークホールドスペクトラムビューのレンジを返します**
Marked Peak Hold Spectrum マーカ1と2の間のピークホールドスペクトラムビューのレンジを返します**
Marked Peak Hold Spectrum Left 左チャンネルのマーカ1と2の間のピークホールドスペクトラムビューのレンジを返します**
Marked Peak Hold Spectrum Right 右チャンネルのマーカ1と2の間のピークホールドスペクトラムビューのレンジを返します**
Phase データ  
Phase フェーズデータ列を返します**
Phase Left 左チャンネルのフェーズデータ列を返します**
Phase Right 右チャンネルのフェーズデータ列を返します**
Zoomed Phase ズームイン/アウトされたフェーズビューのレンジを返します**
Zoomed Phase Left 左チャンネルのズームイン/アウトされたフェーズビューのレンジを返します**
Zoomed Phase Right 右チャンネルのズームイン/アウトされたフェーズビューのレンジを返します**
Marked Phase マーカ1と2の間のフェーズムビューのレンジを返します**
Marked Phase Left 左チャンネルのマーカ1と2の間のフェーズムビューのレンジを返します**
Marked Phase Right 右チャンネルのマーカ1と2の間のフェーズムビューのレンジを返します**
Time Series データ  
Time Series タイムシリーズデータ列を返します**
Time Series Left 左チャンネルのタイムシリーズデータ列を返します**
Time Series Right 右チャンネルのタイムシリーズデータ列を返します**
Zoomed Time Series ズームイン/アウトされたタイムシリーズデータ列を返します**
Zoomed Time Series Left 左チャンネルのズームイン/アウトされたタイムシリーズデータ列を返します**
Zoomed Time Series Right 右チャンネルのズームイン/アウトされたタイムシリーズデータ列を返します**
Wave Segment [Set Time Segment # ##]コマンドに対応したウェーブデータを返します**
Wave Segment Left [Set Time Segment # ##]コマンドに対応した左チャンネルのウェーブデータを返します**
Wave Segment Right [Set Time Segment # ##]コマンドに対応した右チャンネルのウェーブデータを返します**

** データ列仕様

データはクリップボードで使われるフォーマットと同一です。

Spectrum
1st column =
周波数(Hz)
2nd column =
アムプリチュ−ド(画面表示と同一単位)

Phase
1st column =
周波数(Hz)
2nd column =
位相(Deg)

Time Series
1st column =
時間(Sec)
2nd column =
アムプリチュ−ド画面表示と同一単位)



13-3 DDE サンプル


マイクロソフトのエクセルを使用する場合のサンプルを2例記述します。

Microsoft Excel 7.0 DDE module Example:


THD測定のリミットテスト(No/Go判定):

Sub LimitTest( )

    'SpectraPLUS-SCのDDEのスタート
    ch = DDEInitiate("Specplus","Data")

    'プログラムを開いておかなければなりません
    DDEExecute ch,"[File Open c:\softest\config\thd_test.cfg]"

    'アナライザーのスタート
    DDEExecute ch,"[Run]"

    '10 Sec.ウェイティング
    newHour = Hour(Now())
    newMinute = Minute(Now())
    newSecond = Second(Now()) + 10
    newTime = TimeSerial(newHour,newMinute,newSecond)
    Application.Wait newTime

    'アナアライザーの停止
    DDEExecute ch,"[Stop]"

    'アナライザーからのデータの受信
    Data = DDERequest(ch,"THD")
    thd_value = Data(1)

    'データの照合とジャッジ
    If thd_value<0.05 Then
      MsgBox("Test PASSED")

    Else
      MsgBox("Test FAILED")

    End If

    DDETerminate ch

End Sub


1/3 Oct.のアベレージングデータ取得:

Sub ThirdOctaveTest( )

    'SpectraPLUS-SCのDDEのスタート
    ch = DDEInitiate("Specplus","Data")

    MaxAverages = 20
    AverageTimeMinutes = 1
    CurrentAverage = 0

    Do

        'アナライザーのスタート
        DDEExecute ch,"[Run]"

        'N分のウェイティング
        newHour = Hour(Now())
        newMinute = Minute(Now())
        newSecond = Second(Now()) + N
        newTime = TimeSerial(newHour,newMinute,newSecond)
        Application.Wait newTime

        'アナアライザーの停止
        DDEExecute ch,"[Stop]"

        'アナライザーからのデータの受信
        DataArray = DDERequest(ch,"Spectrum")

        'スペクトラムバンド総数の検出
        num_band = UBound(DataArray)

        'ワークシートにスペクトラデータを置く
        Worksheets("Sheet1").Range(Cells(2,MaxAverages-CurrentAverag e),Cell(1 + num_band, MaxAverages - CurrentAverage + 1)).For mula = DataArrey

        CurrentAverage = CurrentAverage + 1

        If CurrentAverage >= MaxAverages Then Exit Do

    Loop

    DDEExecute ch,"[Stop]"

    DDETerminate ch

End Sub




*)Visual Basic その他のサンプルソース(ZIPファイルのダウンロード、約230kB)