計測器コマンド応答(シリアル)

serial-instrument/serial-instrument.commsim は、シリアル(RS-232C / USB-シリアル)で通信する計測器・機器の相手役(スタブ)を CommSim で再現するサンプルです。題材は SCPI 風の ASCII コマンド-レスポンス(*IDN? / MEAS? / RST)。応答はオートメーション(パケット一致トリガー)で返します。

Serial COM119600 8-N-1ASCII コマンド要 仮想 COM ペア
計測器コマンド応答(シリアル)サンプルの接続タブ:プロトコル Serial・COM ポート・9600・8-N-1
接続タブ:プロトコル Serial・9600・8-N-1・フロー制御なし。COM ポート名は環境によって異なります(サンプルの既定は COM11、画面は検証環境の仮想ペア COM4)。自分の環境のポート名をコンボから選び直してください。
事前準備が要ります:TCP/UDP と違い、シリアルには localhost がありません。テスト対象アプリの接続先を CommSim にするため、仮想 COM ペア(com0com 等)を先に作ってください。詳しくは シリアル通信 を参照。

試し方

ターミナル/アプリCOM10 を開く
仮想COMペアcom0com
CommSimCOM11・計測器スタブ
  1. com0com 等で仮想ペア COM10 ⇄ COM11 を作成する。
  2. CommSim で serial-instrument.commsim を開く(プロトコル=Serial・COM11・9600・8/None/1・フロー制御なしが設定済み)。自分のペアと COM 名が違う場合は「接続」タブで変更する。
  3. セッションを起動する(COM11 を開いて待受)。
  4. ターミナル等で COM10 を開き、下表のコマンドを送ると応答が返る。
要求(→ COM10)応答(COM11 →)
*IDN?\r\nCommSim,MODEL-100,SN12345,1.0\r\n(機種名・S/N・バージョン)
MEAS?\r\nMEAS 23.5 degC\r\n(測定値・50ms 遅延)
RST\r\nOK\r\n

ポイント

  • 既存資産がそのまま効く:応答はオートメーション(パケット一致 Contains)で返しています。障害注入・録画リプレイ・構造体応答も同じくシリアルで使えます。
  • 失敗診断:COM が見つからない/使用中/設定不一致(文字化け)は、CommSim がログに原因を示します(受信バイトは HEX 表示)。
  • 中継(プロキシ):接続設定で上流プロトコルを Serial にすると、下流=仮想ペア ⇄ CommSim ⇄ 上流=実機 COM の記録もできます。

次に読む