052 オシロをコントロールする(その3)

2022/06/27

実機/オシロ

t f B! P L

前回の投稿に引き続き,横河社製オシロPyVISAパッケージを使ってコントロールする手順を紹介します.

オシロに値やモードを設定したり,設定されている値やモードを取得したりすることは,簡単にできました.
これは,エヌエフ回路設計社製ファンクション・ジェネレータのケースと,SCPIコマンドが異なるだけで,別段難しことはありません.

そこでいよいよ本命の,
 「オシロで取り込んでいる波形データをPCに転送する」
ためのPythonスクリプトを作成し,動作検証してみたところ,上手く波形データが取得できず,波形データのデータ数が0となってしまいます.

色々やってみても同じ結果だったので,オシロ側の設定が原因かもしれないと思いました.
横河社では,オシロをコントロールするDLLライブラリとサンプルプログラム(C言語,C#, VB, VBA)を提供しているので,とりあえず,PyVISAパッケージを使ったPythonスクリプトの代わりに,横河社の提供するDLLライブラリを使って,オシロで取り込んだ波形データPCに転送するC#プログラムを作成して,動作検証することにしました.

うまいことに,オシロで取り込んだ波形データPCASCIIデータとして転送するサンプルプログラムが提供されていたので,作成したC#プログラムは,このサンプルプログラムの該当する箇所を抜き出し,少しばかり変更するだけで作成することができました.

今までと同じく,ファンクション・ジェネレータから発生する波形データオシロに取り込み,作成したC#プログラムを実行したところ,結果は同じく,波形データのデータ数が0となって,波形データは上手く取得できません.

なおかつ,オシロの画面には,
 「応答の送信が中断されました云々」
というエラーメッセージが表示されるようになりました.

上記のエラーメッセージを素直に受け止めると,オシロ側から波形データを転送しようとしているにも関わらず,PC側が一方的に波形データの受け取りを終了しているように思えます.
上記のメッセージをそのまま信じて,色々試行錯誤したのですが,何ら効果を上げることができませんでした.

波形データの転送が上手くいかない問題は,諦めることなく試行錯誤を続けていくうちに解決策が見つかりました.
結論からいうと,上記のエラーメッセージは適切なものではありませんでした(かえって混乱する原因にもなりかねないものです).
長くなってきたので,原因は次の投稿で紹介します.

QooQ