はじめに
Sequence MakerはExcelから測定器を制御可能にするアドインです。Sequence MakerはExcelのシートにコマンドを書くだけで良いのですが、書き方にちょっとしたコツがあります。この記事では送信と受信をうまくコントロールする方法を解説します。Sequence Makerについての詳細は以下の記事を参照ください。
お断り
本記事の内容はSequence Maker開発元の公式見解ではなく、あくまでも個人が趣味の範囲内で執筆しているものです。記事の内容について開発元へ問い合わせることはお控えください。ご質問・要望などは各記事のコメント欄へお願いいたします。
コマンドの基本的な書き方
測定器の設定など送信だけするコマンド
送信だけをする場合は、そのコマンドをExcelのシートに書くだけでOKです。例えば周波数を1kHzに設定するようなコマンドは、
のように書きます。電圧を123Vに設定するようなコマンドは、
のように書きます。なお、コマンド名は測定器によって異なりますので、制御したい測定器の通信コマンド取説などを参照しましょう。
測定器から測定値を取得するなど送信と受信をするコマンド(クエリー)
送信と受信したい場合も、Excelのシートに書くだけでOKです。多くの測定器では、データを受信するコマンドは「?」が付いています。Sequence Makerでは「?」が含まれていると、自動的に受信もしてくれるので、そのまま書けば良いというわけです。例えば、測定値を受信するコマンドは、
のように書けば「MEAS?」というコマンドを測定器に送った後、測定器からのデータを受信し、結果を右側のセルに表示します。上記の例では「123456」という値が返ってきたことになります。
コマンドの応用的な書き方
多くの場合は上記の「基本的な書き方」で良いのですが、測定器によってはちょっと工夫が必要な場合があります。例えば…
- 通信コマンドの先頭に「#」が含まれている(Sequence Makerのコメントになってしまう)
- 設定コマンドを送った後、測定器から「OK」や「NG」などの応答が返ってくる(?が無いのに受信動作が必要)
- *TRGというコマンドを送った後に、受信動作が必要(?が無いのに受信動作が必要)
- READ?と送った後に、*TRGを送ってから受信する必要がある(送信の後、受信動作をせずに次のコマンドを送る)
- コマンドを送らずに、受信だけしたい(測定器が測定値を勝手に出力してくる)
こういったケースに対応するには、Sequence Makerの専用コマンドを使用する必要があります。コマンドの送受信に使うのは以下の専用コマンドです。
コマンド | 内容 |
---|---|
#SEND(コマンド) | 指定されたコマンドを送信します。 コマンドに?が含まれている時は受信動作を行い、受信したデータをコマンドの右側に出力します。 Excelのセルに直接コマンドを書いたときと同じ動作をしますが、#で始まるコマンドも送信することができます。 |
#QUERY(コマンド) | 指定されたコマンドを送信した後、受信動作を行い、受信したデータをコマンドの右側に出力します。 コマンドに?が含まれていないコマンドでデータを受信したいときに使用します。 #で始まるコマンドも送信することができます。 |
#WRITE(コマンド) | 指定されたコマンドの送信のみ行います。コマンドに?が含まれていても受信動作を行いません。 送信のみ行いたいときに使用します。 #で始まるコマンドも送信することができます。 |
#READ? | 受信動作のみ行います。 通常はコマンドに?が含まれていると自動的に受信を行いますが、?が含まれていなくても応答を返すようなコマンドを送った後に、#READ?と書くことで強制的に受信できます。 コマンドを送らずに受信のみ行いたい時にも使用できます。 |
(https://sequencemaker.hioki.com/manual/ja/#command より引用)
先ほどのケースに対応するために、専用コマンドを組み合わせて書くと以下のようになります。
まとめ
この記事ではSequence Makerでのコマンドの書き方のコツを解説しました。ちょっと特殊なコマンドの場合でも、専用コマンドと組み合わせることで、多くのケースに対応できるかと思います。