はじめに
Sequence MakerはExcelから測定器を制御可能にするアドインです。Sequence MakerはRS-232Cと呼ばれるシリアル通信に対応しています。COMポートを指定してデータを送信したり、受信したりすることが可能です。通常はシリアルポートを搭載している測定器との通信を行うのですが、今回はちょっと変わった使い方としてcom0comでデータを送る実験をしてみます。なお、Sequence Makerについての詳細は以下の記事を参照ください。
お断り
本記事の内容はSequence Maker開発元の公式見解ではなく、あくまでも個人が趣味の範囲内で執筆しているものです。記事の内容について開発元へ問い合わせることはお控えください。ご質問・要望などは各記事のコメント欄へお願いいたします。
ところでcom0comって何だ?
com0comはPC内に仮想的な(ソフトウェア的な)シリアルポートを作ることができ、またそのシリアルポート同士を内部で接続することができる(怪しい)ソフトウェアです。ハード的にイメージするなら、PCにRS232C-USB変換器を2つ接続し、シリアルポート同士をクロスケーブルで接続しているような状態をソフトで作れます。Qiitaにもいくつか記事があるので参考にしてみてください。
何に使うの?
怪しいことに使います。 例えば、シリアル通信で何かしらの測定器を制御するような便利なPCアプリがあったとします。最近はPCにシリアルポートが無いので、RS232C-USB変換器を使用して測定器と接続し、アプリではCOMポートの番号(COM1とかCOM2とか)を指定して通信を行います。通常はこれで事が済むのですが、ちょっといろいろな事情で、測定器の実機では無く、その測定器に成りすまして(オレオレ測定器になって)制御アプリと通信したいような場合があります。そんな時にcom0comを使うと、2つのシリアルポートがつながっている状態が作れるので、1つめのCOMポートにアプリを接続し、もう一つのCOMポートにTera Termなんかで接続すれば、アプリとTera Term間で任意のデータをやりとりすることができるようになります!!
また、別の用途としては、GPSレシーバーと接続して使用する地図アプリなんかに、同じようにcom0comを使って接続し、GPSレシーバーの代わりにダミーのGPSデータを送りつければ、位置情報を偽装エミュレートするなんてこともできます。
com0comのインストール
怪しい便利なソフトなのですが、シリアルポートというコアな部分の仮想化をするため、インストールに若干クセがあります。一発でうまくいかない場合もあります。筆者はWindows11の23H2にて動作確認をしています。まずはダウンロードですが、現在の最新版はV3.0.0.0ですが、ちょとこのバージョンではうまくいかない場合があります。
たぶん、こんな感じに失敗します。黄色のビックリマークが付いているのでダメです。
オススメはV2.2.2.0です。
以下からダウンロードできます。
「com0com-2.2.2.0-x64-fre-signed.zip」というのをダウンロードして、インストールしてください。
インストールしたら、デバイスマネージャーを確認します。「com0com - serial port emulators」というのが追加されて、仮想的なポートがいくつか追加されています。
最初の設定
スタートメニューのプログラムにもcom0comが追加されています。Setupを起動します。
ここで、ポート名が「CNCA0」と「CNCB0」となっていますが、「COM50」と「COM60」などの適当なCOM番号に変更し「Apply」を押して反映します。
↓
デバイスマネージャーで確認するとCOM50とCOM60が接続されていることが確認できます。
ためしにTera Termで見てみると、ちゃんとCOM50とCOM60が認識されています。
Tera TermのV5系統ではcom0comの仮想COMポートがリストに表示されませんでした。V4系統を使いましょう。今回はV4.108を使用しています。
とりあえずここまでできたら準備完了!
実際に通信してみる
Tera Termを2つ起動して、それぞれCOM50とCOM60に接続します。そして、片方から何かデータを送ると・・・
ほら、反対側にデータが届いた!相互にデータの送受信が可能です。
Sequence Makerで通信してみよう
COMポートの準備もできたところで、Sequence Makerからデータを送ってみたいと思います。
Excelを起動して、インターフェイス#1で「RS-232C/USB」を選択してみると・・・
ポートが「 見 つ か り ま せ ん」
なんと!Sequence Makerはcom0comの仮想COMポートを検出できないのです!
これでは困ります。
せっかく怪しい便利なcom0comをインストールしたのに・・・
安心してくださいVISAなら通信できる!
Sequence MakerはVISAでの通信にも対応しています。VISAはVISAアドレスさえ指定すれば、シリアル通信でもLAN通信でもGPIB通信でも何でも通信できてしまう優れものです。
VISAのインストールがまだの方はKeysight IOライブラリ・スイートあたりを入れてください。
またはNI-VISAとかでも良いです。
ではVISAの準備ができたら、早速COM50に接続するために、I.F.で「VISA」を選び、アドレスに「ASRL50::INSTR」と入れてみます。アドレスの数字の部分がCOM番号です。アドレスはテキストボックスなので、好きな番号を入力できるのです。VISA万歳!
これで、COM60の方はTera Termで接続状態にしておきます。
Excelのセルに適当な文字を入力し「コマンド送受信」ボタンを押します。
すると・・・
Tera Term側にデータがキターーーーーーーーーーーーーーーーーーーーーーーーーーー
もちろんSequence Makerだけでも通信できる
インターフェイス#1に「ASRL50::INSTR」、インターフェイス#2に「ASRL60::INSTR」を指定すれば、Sequence Maker内で通信できます。これでしりとりもできますね!
他にも・・・
いろいろとできそう。
今日は力尽きたのでここまで。
まとめ
Sequence Makerとcom0comを組み合わせて、シリアル通信を自由自在に扱えることがわかりました。
VISAを使うのがポイントです!!ぜひ面白い使い方を考えてみてください。