1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Sequence Makerとcom0comを使ってシリアルポートに好きなデータを送る

Posted at

はじめに

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ですが、ちょとこのバージョンではうまくいかない場合があります。

たぶん、こんな感じに失敗します。黄色のビックリマークが付いているのでダメです。

image.png

オススメはV2.2.2.0です。
以下からダウンロードできます。

「com0com-2.2.2.0-x64-fre-signed.zip」というのをダウンロードして、インストールしてください。

image.png

インストールしたら、デバイスマネージャーを確認します。「com0com - serial port emulators」というのが追加されて、仮想的なポートがいくつか追加されています。

image.png

最初の設定

スタートメニューのプログラムにもcom0comが追加されています。Setupを起動します。

image.png

ここで、ポート名が「CNCA0」と「CNCB0」となっていますが、「COM50」と「COM60」などの適当なCOM番号に変更し「Apply」を押して反映します。

image.png

image.png

デバイスマネージャーで確認するとCOM50とCOM60が接続されていることが確認できます。

image.png

ためしにTera Termで見てみると、ちゃんとCOM50とCOM60が認識されています。

image.png

Tera TermのV5系統ではcom0comの仮想COMポートがリストに表示されませんでした。V4系統を使いましょう。今回はV4.108を使用しています。

とりあえずここまでできたら準備完了!

実際に通信してみる

Tera Termを2つ起動して、それぞれCOM50とCOM60に接続します。そして、片方から何かデータを送ると・・・
ほら、反対側にデータが届いた!相互にデータの送受信が可能です。

image.png

Sequence Makerで通信してみよう

COMポートの準備もできたところで、Sequence Makerからデータを送ってみたいと思います。
Excelを起動して、インターフェイス#1で「RS-232C/USB」を選択してみると・・・

image.png

ポートが「 見 つ か り ま せ ん:frowning2:

なんと!Sequence Makerはcom0comの仮想COMポートを検出できないのです!

これでは困ります。

せっかく怪しい便利なcom0comをインストールしたのに・・・:scream:

安心してください:blush:VISAなら通信できる!

Sequence MakerはVISAでの通信にも対応しています。VISAはVISAアドレスさえ指定すれば、シリアル通信でもLAN通信でもGPIB通信でも何でも通信できてしまう優れものです。

VISAのインストールがまだの方はKeysight IOライブラリ・スイートあたりを入れてください。

またはNI-VISAとかでも良いです。

ではVISAの準備ができたら、早速COM50に接続するために、I.F.で「VISA」を選び、アドレスに「ASRL50::INSTR」と入れてみます。アドレスの数字の部分がCOM番号です。アドレスはテキストボックスなので、好きな番号を入力できるのです。VISA万歳!

image.png

これで、COM60の方はTera Termで接続状態にしておきます。

Excelのセルに適当な文字を入力し「コマンド送受信」ボタンを押します。

image.png

すると・・・

image.png

Tera Term側にデータがキターーーーーーーーーーーーーーーーーーーーーーーーーーー

もちろんSequence Makerだけでも通信できる

インターフェイス#1に「ASRL50::INSTR」、インターフェイス#2に「ASRL60::INSTR」を指定すれば、Sequence Maker内で通信できます。これでしりとりもできますね!

レコーディング 2024-12-20 000746.gif

他にも・・・

いろいろとできそう。
今日は力尽きたのでここまで。

まとめ

Sequence Makerとcom0comを組み合わせて、シリアル通信を自由自在に扱えることがわかりました。
VISAを使うのがポイントです!!ぜひ面白い使い方を考えてみてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?