
私たちの研究所は、とりわけ、さまざまなサンプルの電気抵抗の測定に取り組んでいます。 当社の測定システムの主な主力製品は、34401Aなどのアメリカ企業Agilentのデジタルマルチメータです。
さらに、長い間、いくつかの古いが動作しているV7-28電圧計(写真の1つ)は使用されていませんでした。 ただし、この電圧計は精度と速度は「アメリカ人」に劣りますが、依然として非常に優れています:最大5桁の10進数の精度、許容ノイズ、シールド入力、そして最も重要なこと-PC(現在はPCと呼ばれる)でリモート制御する機能
次の理由で使用できませんでした。
- 非標準のハードウェアインターフェース:背面パネルには56と22の接点を持つ2つのコネクタがあり、B7-28はそれを介してコマンドを受信し、測定結果を返します。 電圧計をPCに直接接続することは不可能です。
- ソフトウェアインターフェイスの欠如、つまり、ある種の制御コマンドシステム。 DC電圧測定モードをオンにする必要があります-必要に応じて、デジタルレベルの適切な組み合わせを制御コネクタに適用します。 読み取り値を読み取る必要があります-サービスでは、CPUコネクタに21のデジタル信号があります。
同時に、記述およびデバッグされた測定セットアップソフトウェアは、 SCPIコマンドを使用して電圧計を制御し、標準外のインターフェイスのサポートを追加するのは非常に困難です。
したがって、問題は2つのポイントに削減されました。
- B7-28に最新のハードウェアインターフェイスを装備して、PCに直接接続します。
- 高レベルのソフトウェアに触れないようにSCPIコマンドを理解するように彼に「教える」。
Arduino Megaを選ぶ理由
マイクロコントローラボードを開発してはんだ付けできる専任の電子エンジニアがいないため、準備が整ったものを選択する必要があり、Arduinoが必要なものであることが判明しました。 私は彼女の既知の利点をリストしませんが、彼女は、はんだ付けの量を最小限に抑え、特別なプログラマーなしで済ませることができるという事実を思いつきました。
「arduino」ファミリ全体の中で、Arduino Mega 2560のみが登場しました。それは、十分な数のデジタル入出力を備えていただけです。 料金は非常に高く、ロシアのオンラインストアでは、イタリアの元のコストは約4000ルーブルです(執筆時点)。 幸いなことに、多くの中国のカウンターパートは10ドル以下で販売されています。
ArduinoのPCとの通信はUSBインターフェイスを介して行われ、これにより問題番号1が解決されました。 SCPIコマンドのサブセットを実装し、B7-28の制御信号に変換するファームウェアを開発することは残っています。
ファームウェアの実装
出発点として、チェコ共和国の同僚によって親切に書かれた素晴らしい
scpi-parser
ライブラリを使用しました。 このライブラリは、SCPIコマンドの解析に関連するすべての「汚い作業」を引き受け、最大6人月を節約しました。
ファームウェアの中心は
scpi-multimeter
。これは、SCPIコマンドのロジックと、非同期読み取りと電圧計読み取りの処理を行う有限状態マシンを実装しています。 ライブラリはハードウェアから抽象化し、入力/出力ポートの処理を外部に委任し、特定の抽象プログラミングインターフェイスを使用します。 これにより、ほとんどすべてのタイプのマイクロプロセッサまたは電圧計でライブラリを使用できます。
そして最後に、ファームウェア自体は
v7-28-arduino
です。 これは、
scpi-multimeter
の抽象インターフェイスを実装する小さなプロジェクションコードです。つまり、実際にはマイクロコントローラボード上のデジタルポートとシリアルポートに対して書き込みと読み取りを行います。
はんだ付けケース

もちろん、はんだ付けを完全に省くことができませんでしたが、作業範囲はかなり狭いことが判明しました。
- コンタクトホールの位置については、Arduino Megaと互換性のある取り付けプレートを使用してください。
- マイクロコントローラボードに取り付けるための回路基板上のはんだピンコネクタ。
- 回路基板をコネクタB7-28に接続するための2本の30線ケーブル。
- 最後に、回路基板をマイクロコントローラに接続します。ピン接点が多数あるため、それほど簡単ではありません。

結果は写真で見ることができます。 はんだ付けを機械的損傷と「ゆるみ」から保護するために、「ブランド」ボックスに回路基板を取り付けたマイクロコントローラーを配置しました。 その結果、私たちのアダプターは、工場ではないにしても、かなりまともな外観を獲得しました。
アダプタチェック
ファームウェアのテストとデバッグの長いプロセスの説明は省略します。 最後に、すべてが終わったときに、B7-28とAgilent 34401Aを1つの測定ユニットに接続することにしました。 前述のように、高レベルのソフトウェアはSCPIコマンドを介して電圧計を制御します。 プログラムの設定で、マイクロコントローラーに対応する仮想COMポートを指定しました。

プログラムが獲得しました! 電圧計が増え、同時により多くのサンプルを測定できるようになりました。 利益!
おわりに
私たち以外に、誰がこの作品に興味があるのでしょうか?
第一に、これらはもちろん、B7-28の誇り高い所有者であり、電圧計に中程度の手段のためのアダプターを供給することができたため、現代の同等品として簡単に使用できます。 現在、どのPCにもUSBインターフェースが装備されており、LabVIEWおよび同様の開発ツールはSCPIコマンド言語を「そのまま」理解しています。
第二に、前述のように、ライブラリの大部分は特定のブランドの電圧計やマイクロコントローラに依存しません。 たとえば、B7-34Aなどの他のタイプの電圧計をサポートするようにファームウェアを変更するのは簡単です。
すべての利害関係者をソーステキストと共にプロジェクトページに招待します。完成したバイナリアセンブリおよびドキュメントへのリンクもあります。
ご清聴ありがとうございました!