Top Menu > 技術情報INDEX

SpectraSoft

DDEDynamic Data Exchange

MACRO


*)モデルにより差異があります

DDEWindowsが提供するアプリケーションソフト間でデータ交換を提供する機能です。SpectraSoftはこのDDEを利用し、他のアプリケーションからSpectraSoftを制御して自動測定を行い、データの転送をしてアプリケーションに貼り付けてさまざまに応用できます(データベース化、数表化、グラフ化など)

DDEは次の機能を提供します。

Command SpectraSoftを制御するために"Run""Stop"のような命令を送り出すことができます。

Data Requests SpectraSoftが処理した測定結果(Data)の転送を要求することができます。

SpectraSoftMACROを使用してDDEを利用します。一種のプログラムであるMACROを作るには、アプリケーションソフトのマクロ生成機能を使用するのが常套手段ですが、その手法では応用性に限界があります。例えば、アプリケーションからSpectraSoftを制御することはできません。そこで一般的には、柔軟性のあるVBA(Visual Basic for Applications)を使用して作成します。VBAはマイクロソフト社のエクセル、ワードなどの代表的なアプリケーションが対応しています。

マクロ、DDEの詳細は別途関連文献に譲り、ここでは例を引用して、マクロ/VBAの実際に触れます。使用するアプリケーションは「MS-Excel v7.0」と「SpectraPLUS-SC」です。尚、ご使用のSpectraSoftモデルあるいはオプション仕様によっては機能しないことがありますのでご留意下さい。

 


DDEの詳細頁 | 例1:THDテストとデータの判定 |
例2:1/3 Oct.バンドのスペクトラム テストとデータの貼り付け |
例3:一歩進めたマクロ... メニューボタンとグラフ処理の追加

 

1. THDテストとデータの判定

概要: Excelから全高調波ひずみ(THD)テストの実行を命令し、測定結果を判定表示する。

注意:「ひずみ測定」オプションが必須です。体験版ライセンスは可能です。

手順:

Sub LimitTest()

'SpectraSoftDDEコネクションを行います
ch = DDEInitiate("Specplus", "Data")

'
定義ファイル"thd.cfg"を開きSpectraSoftを目的のモードに設定します
DDEExecute ch, "[File Open c:\spectraplus\config\samples/thd.cfg]"

'SpectraSoft
をスタートします
DDEExecute ch, "[Run]"

'
10秒間ウェイトします
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
newTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait newTime

'SpectraSoft
をストップします
DDEExecute ch, "[Stop]"

'SpectraSoft
THDデータの転送を要求します
Data = DDERequest(ch, "THD")
thd_value = Data(1)

'
THDデータを判定します
If thd_value < 0.05 Then
 'THD0.05%以下ならば"Test PASSED"を表示
 
MsgBox("Test PASSED")
Else
 'THD0.05%以下でなければ"Test FAILED"を表示
 
MsgBox("Test FAILED")
End If

'
DDEの終了
DDETerminate ch

End Sub


 

2. 1/3 Oct.バンドのスペクトラム テストとデータの貼り付け 

概要: Excelから1/3 Oct. Spectrumアベレージングテストをn回実行命令し、測定データをExcelシート上に貼り付ける。

手順:

Sub ThirdOctaveTest()

'SpectraSoftDDEコネクションを行います
ch = DDEInitiate("Specplus ", "Data")

'
エクセルのワークシートをアクティブにします
Worksheets("Sheet1").Activate

'定義ファイル"octavg_test.cfg"を開きSpectraSoftを目的のモードに設定します
DDEExecute ch, "[File Open c:\spectraplus\config\octavg_test.cfg]"

'
次の条件は適時変更可能です
MaxAverages = 20 '... 実行回数
AverageTimeMinutes = 1 '... アベレージング時間(分)
CurrentAverage = 0

Do

'SpectraSoftをスタートします
DDEExecute ch, "[Run]"

'
N分間ウェイトします
newHour = Hour(Now())
newMinute = Minute(Now()) + AverageTimeMinutes
newSecond = Second(Now())
newTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait newTime

' SpectraSoftをストップします
DDEExecute ch, "[Stop]"

'SpectraSoftSpectrumデータの転送を要求します
DataArray = DDERequest(ch, "Spectrum")

'
Spectrumデータの周波数バンド数を取得します
num_bands = UBound(DataArray)

'
ワークシート"Sheet1"上にn回分の「周波数」と「アベレージングスペクトラム」値を自動的に貼り付けます
Worksheets("Sheet1").Range(Cells(2, MaxAverages - CurrentAverage), Cells(1 + num_bands, MaxAverages - CurrentAverage + 1)).Formula = DataArray

'
指定回数分テストを繰り返します
CurrentAverage = CurrentAverage + 1
If CurrentAverage >= MaxAverages Then Exit Do

Loop

'SpectraSoftをストップします
DDEExecute ch, "[Stop]"

'DDEの終了
DDETerminate ch

End Sub


 

3. 一歩進めたマクロ... メニューボタンとグラフ処理の追加

マクロの操作インターフェースをボタン化し、測定操作を視覚化することも可能です。

  概要:
  • 測定操作をワークシート上に配置したメニューボタンで行います。
  • テスト結果を指定フォームで表示、印刷します。
  • テスト結果をファイル保存します。
  • 操作を全自動処理します。

 

更に、データを他のアプリケーションに貼り付けて指定仕様の試験成績書を作成することができます。

 


これらのソースは完成したプログラムではありません。実用化するには作表、グラフィック化などのコードソースが必要です。 コマンド一覧表
MS, Excel, Word, VBAは米国・マイクロソフト社の商標です

 


参考資料: