simulinkのモデルを(比較的)簡単にFPGA化してHILを実現する自社製品のPCアプリをテストするのにFPGA化したモデルに様々な信号を与えなければならなくて、それを手作業で何度もやりたくなかった。今後のリグレッションテストでも繰り返すことになるかと思うとうんざり。
用意するもの
作成
2023/12/06 追記
久々に上の紙を見てもすぐには読み方を思い出せなかったので表に書き直した。
GPIB信号名 | アンフェノール ピンNo. | arduino ピン名 | メモ |
---|---|---|---|
DIO1 | 1 | A0 | |
DIO2 | 2 | A1 | |
DIO3 | 3 | A2 | |
DIO4 | 4 | A3 | |
EOI(24) | 5 | 12 | |
DAV | 6 | 11 | |
NRFD | 7 | 10 | |
NDAC | 8 | 9 | |
IFC | 9 | 8 | |
SRQ | 10 | GND | |
ATN | 11 | 7 | |
shield | 12 | 未接続 | |
DIO5 | 13 | A4 | |
DIO6 | 14 | A5 | |
DIO7 | 15 | 4 | |
DIO8 | 16 | 5 | |
REN(24) | 17 | GND | |
GND(6) | 18 | GND | |
GND(7) | 19 | GND | |
GND(8) | 20 | GND | |
GND(9) | 21 | GND | |
GND(10) | 22 | GND | |
GND(11) | 23 | GND | |
GND Logic | 24 | GND |
動作確認
とりあえずteratermで。
ターミナルは改行をLF、ローカルエコー有効。
HP 3478A マルチメータ
HP 3325A シグナルジェネレータ
YOKOGAWA DL1200
HP 54602A オシロスコープ
2023/12/06追記
オシロの制御は初めてなので手探り状態。
■機器側(HP 54602A)のアドレスを調べる
print/utilityボタン→HP-IBの中の「address」がGPIBのアドレスで1だった。
■HP 54602Aのコマンド
keysightから「Agilent 54600-Series Oscilloscopes Programmer’s Guide」をダウンロードして、これを元にいろいろ試した。
■ardunoにアドレスをセット
> ++addr 1
1が返ってくる。
■トリガをかける
試しにマニュアルに書いてある「*TRG:RUN」を実行してみたら、オートトリガ状態になった。「:run」、「:RUN」でも同じ動きをする。
ちなみに「:AUT」を実行するとオートスケールが実行された。
今回は、シングルトリガで、トリガがかかったら波形をPCに取り込みたいので、シングルトリガを実行する方法を探ってみた。
トリガモードを「:TRIGger:MODE?」コマンドで調べてみると
> :TRIGger:MODE?
> ++read
AUTL
となり、オートトリガになってた。
トリガモードを「:TRIGger:MODE SINGle」コマンドでシングルにしてみた。
> :TRIGger:MODE SINGle
> :TRIGger:MODE?
> ++read
SING
シングルになったのでRUNしてみた。
> :run
一発トリガがかかったら止まった。うまくいったみたい。
■波形をPCに取り込む
マニュアルのP 2-7に載ってるExsample Programを元にしていろいろ試してみた。
結果的には、下記のコマンドで波形自体は取得できた。
:ACQUIRE:TYPE NORMAL
:ACQUIRE:COMPLETE 1
:WAVEFORM:SOURCE CHANNEL1 ←入力チャンネルを指定
:WAVEFORM:FORMAT ASC ←これは受信データの確認の手間削減の為にバイナリからアスキーに変更するために追加した。
:ACQUIRE:COUNT 1
:WAVEFORM:POINTS 2000
:DIGITIZE CHANNEL1
# 処理待ち
:WAVEFORM:DATA?
実行した時の様子はこんな感じ。
> :ACQUIRE:TYPE NORMAL
> :ACQUIRE:COMPLETE 1
> :WAVEFORM:SOURCE CHANNEL1
> :WAVEFORM:FORMAT ASC
> :ACQUIRE:COUNT 1
> :WAVEFORM:POINTS 2000
:DIGITIZE CHANNEL1
>
> :WAVEFORM:DATA?
> ++read
#80000800049,50,49,50,49,49,50,50,50,49,49,49,49,48,50,49,50,50,50,49,50,50,48,50,49,49,50,50,49,49,50,49,50,50,49,49,49,49,50,49,49,49,49,49,49,49,49,49,49,50,49,49,49,49,50,49,49,49,49,49,49,49,49,50,49,50,49,49,49,49,49,49,49,49,49,49,49,49,50,49,49,49,50,49,48,49,50,50,50,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,50,49,50,49,49,49,49,49,49,49,49,50,49,49,49,50,49,49,49,49,49,49,50,49,49,49,49,49,50,49,49,49,50,49,49,49,49,48,49,49,50,49,48,49,48,49,49,49,49,49,49,49,49,48,49,50,49,49,50,50,49,49,48,49,49,50,49,48,49,49,49,49,50,50,49,50,49,50,49,49,69,126,144,165,174,186,192,193,197,199,201,202,203,203,204,203,204,204,204,204,205,204,204,205,204,205,204,204,205,205,205,204,205,205,205,205,205,205,205,205,204,204,205,204,205,205,204,205,205,205,205,204,205,205,205,205,205,204,204,204,205,204,205,206,204,206,205,205,205,205,205,205,205,205,205,205,204,204,205,204,205,204,205,205,205,204,204,205,205,205,205,205,205,205,205,205,205,205,205,205,205,204,204,205,205,205,205,205,205,205,204,206,205,204,204,204,205,204,205,204,204,204,205,205,205,205,205,204,205,205,205,204,205,204,205,205,204,205,204,205,205,205,205,205,205,205,206,205,205,205,205,205,205,205,205,204,205,204,205,205,205,205,205,204,205,205,204,205,205,205,205,205,205,204,205,204,205,205,205,204,205,204,205,205,205,205,205,204,205,205,204,206,204,205,205,204,205,205,204,205,204,205,205,205,205,205,205,204,204,204,205,204,204,205,205,204,204,205,205,205,205,204,204,205,204,204,204,205,204,205,205,205,205,205,205,205,205,204,204,205,205,204,205,204,205,204,205,205,205,205,205,205,205,205,205,205,205,205,204,205,205,205,205,205,205,205,204,205,204,204,204,205,205,205,205,205,205,204,204,205,205,204,204,205,205,204,204,205,204,205,205,204,205,205,205,204,205,205,205,205,205,204,205,205,205,204,205,205,205,204,205,205,205,205,205,205,205,205,205,204,205,204,205,205,205,205,205,204,205,205,204,205,205,205,205,205,204,205,205,205,204,205,206,205,204,205,205,204,205,204,204,205,204,205,205,204,204,205,205,205,205,205,205,205,204,205,204,205,205,205,205,205,205,205,205,205,205,204,205,204,204,205,205,204,205,205,205,205,205,204,204,205,205,205,204,204,205,205,205,204,206,205,205,205,205,191,137,107,95,78,71,64,61,58,55,53,52,52,51,50,49,50,49,50,49,50,49,50,49,50,50,49,49,49,49,50,50,50,49,49,49,49,49,50,50,49,50,49,49,49,49,50,49,49,49,49,49,49,49,48,49,49,50,49,49,50,50,49,49,49,49,49,49,49,50,49,50,49,49,49,49,49,50,49,49,50,49,49,49,50,49,49,49,49,49,49,49,49,49,50,48,48,49,49,48,49,49,50,49,49,50,49,49,49,49,49,50,50,49,49,49,49,49,49,49,49,50,50,49,50,49,50,49,49,49,49,49,49,49,50,50,49,49,49,49,49,50,48,49,49,49,48,50,50,50,49,49,50,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,50,49,50,49,50,50,50,49,49,49,49,49,49,49,50,49,49,49,50,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,49,49,50,49,49,49,48,49,49,49,48,49,50,48,49,49,49,49,49,50,49,49,49,50,48,50,49,50,49,49,49,49,49,49,49,49,50,49,50,48,50,49,49,49,49,49,48,49,48,49,49,50,50,49,50,50,49,50,49,49,49,48,49,48,49,49,49,48,49,50,49,50,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,49,48,49,49,49,49,48,49,49,50,49,48,48,49,50,49,49,49,49,50,49,49,50,49,49,49,49,49,49,49,49,49,49,49,49,49,48,49,49,49,49,50,49,49,49,49,49,49,48,50,49,49,49,49,48,49,49,50,49,49,50,49,49,50,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,50,49,48,50,50,49,49,49,49,49,49,49,49,49,49,50,49,50,49,48,49,49,50,48,79,120,139,163,174,186,191,195,196,201,201,202,202,203,203,204,204,204,204,204,205,205,204,204,204,204,204,204,204,204,204,204,204,204,205,205,205,205,205,205,204,204,205,204,205,204,204,204,205,205,204,204,205,204,204,205,205,204,204,204,204,204,205,204,205,205,205,204,204,205,204,204,205,205,205,203,205,204,205,205,205,204,205,204,205,204,204,204,204,206,205,204,205,204,205,205,205,204,204,205,205,204,205,205,204,205,204,204,204,205,204,204,205,204,205,204,204,204,204,204,205,205,205,204,205,204,204,204,204,205,205,205,204,205,205,205,205,205,205,204,205,205,204,204,205,204,204,204,204,204,204,205,205,205,204,205,203,204,204,204,204,205,205,205,205,205,205,205,204,205,204,205,204,204,205,204,205,204,205,204,205,204,205,205,204,205,204,205,204,205,204,204,205,204,205,205,205,205,205,205,205,205,205,205,205,205,204,204,205,204,205,205,205,205,205,205,204,205,205,204,205,205,204,205,205,205,205,204,205,204,205,205,204,205,204,204,205,204,205,205,205,205,205,204,204,205,204,204,205,205,204,205,204,204,205,205,205,204,204,204,204,205,204,205,204,204,204,205,204,206,204,205,204,205,204,204,204,204,205,205,205,205,205,205,205,204,205,205,204,205,205,204,204,205,204,204,204,205,204,205,205,205,205,205,204,205,204,204,204,205,205,204,205,204,204,205,205,204,205,204,204,205,205,205,205,204,205,205,205,205,204,204,205,205,205,204,204,205,205,205,204,204,205,205,204,205,205,204,206,204,205,204,205,205,205,204,205,205,204,204,205,204,205,205,205,205,205,204,205,205,204,205,205,205,205,205,204,205,205,205,205,205,205,204,205,204,204,204,205,204,204,205,204,205,205,205,205,205,205,205,205,205,205,205,205,195,155,124,93,79,70,66,62,58,55,53,52,51,50,50,51,50,50,49,50,50,49,50,49,50,50,49,49,49,49,50,50,50,49,50,49,48,50,50,49,49,50,49,49,49,49,49,50,49,50,50,49,48,49,50,49,48,48,48,49,49,49,49,49,49,49,49,49,50,49,49,49,49,50,50,49,50,49,49,50,50,49,49,48,49,50,49,49,50,49,49,49,49,49,49,49,50,50,50,49,49,50,48,49,49,49,49,50,49,50,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,49,49,49,49,49,50,50,49,50,50,49,50,49,49,49,49,49,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,49,49,49,49,49,49,49,49,49,49,48,49,48,48,50,50,49,49,50,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,48,49,49,49,49,49,48,50,49,49,50,49,49,49,49,49,49,49,49,49,49,49,50,49,49,49,48,49,49,49,49,50,49,50,49,49,50,49,48,50,49,49,49,49,49,50,50,49,49,50,49,50,49,49,49,48,49,49,49,50,49,48,49,49,49,49,48,49,49,49,49,48,50,49,49,49,49,48,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,50,49,50,49,49,49,50,49,49,49,48,49,48,49,48,49,49,49,49,49,49,49,49,48,49,48,49,50,48,48,50,49,49,49,49,49,49,48,49,49,49,49,50,49,49,49,49,49,49,49,49,49,49,49,49,49,49,48,49,49,49,48,50,49,49,48,49,50,49,49,49,49,49,49,49,49,49,49,49,49,50,48,48,49,49,49,49,49,50,49,49,49,49,48,49,49,50,49,49,49,49,49,50,49,49,50,50,91,115,138,157,178,182,190,194,198,200,200,202,203,203,203,203,203,204,203,204,204,204,205,205,205,204,205,205,204,204,204,205,204,205,204,204,204,205,204,205,205,204,205,204,205,204,204,205,204,205,204,205,205,205,204,204,204,204,204,205,204,205,204,205,205,205,204,204,204,205,204,205,204,205,204,205,204,204,204,205,205,204,205,205,204,205,205,204,204,204,204,205,205,204,204,205,204,204,204,205,205,205,204,204,204,204,205,204,204,204,204,204,205,204,205,205,204,204,205,204,205,205,204,206,204,205,204,205,205,204,205,204,205,205,204,205,205,204,205,205,205,204,205,204,204,204,205,205,206,204,205,205,205,204,205,205,204,205,205,204,204,205,205,205,205,205,205,205,205,204,205,205,204,205,204,205,205,205,204,205,205,205,204,205,205,205,204,205,205,204
チャンネル1の波形のデータのみが取れた。この数値の羅列をレベルとしてグラフにすると波形になる。
取得した波形のスケールってどうなってるのかもう少し調べないといけないのと、画面のハードコピーも取りたいんだけど、時間切れで今日はここまで。P 8-6の「:DISPlay:DATA?」を使えばとれるかな?
pythonで制御
pythonをインストール
pyserialをインストール
import serialimport timeser = serial.Serial('COM35', 115200) # COMポート番号は環境に合わせて変更print(ser)time.sleep(3)print("send ++addr 17")ser.write(b'++addr 17\n')time.sleep(3)while True:print("send FU1")ser.write(b'FU1\n')time.sleep(3)print("send FU2")ser.write(b'FU2\n')time.sleep(3)ser.close()
OSError: screen grab failed