外部インタフェース/API | ![]() ![]() |
例題: テキストデータの書き出しと読み込み
この例題は、テキストデータを書き出しおよび読み込むことによって、シリアルポートの機器との通信の方法を説明します。
機器は、シリアルポートCOM1に接続されているTektronix TDS 210 two-channel oscilloscopeです。そのため、下記のコマンドの多くはこの機器に固有です。正弦波がオシロスコープのチャンネル2の入力であり、行うべきことは入力信号のピーク間電圧を測定することです。
1. シリアルポートオブジェクトを作成します。- シリアルポートCOM1に対応するシリアルポートオブジェクトs
を作成します。
s = serial('COM1');
2. デバイスを接続します。 - s
をオシロスコープに接続します。ReadAsyncMode
プロパティに対するデフォルト値はcontinuous
なので、データは機器から利用可能になるとすぐに入力バッファに非同期的に出力されます。
fopen(s)
3. データの書き出しと読み込み - fprintf
を使って*IDN?
コマンドを機器に書き出し、fscanf
を使ってコマンドの結果を読み込みます。
fprintf(s,'*IDN?') idn = fscanf(s) idn = TEKTRONIX,TDS 210,0,CF:91.1CT FV:v1.16 TDS2CM:CMV:v1.04
測定のソースを決定する必要があります。可能な測定ソースには、オシロスコープのchannel 1とchannel 2が含まれます。
fprintf(s,'MEASUREMENT:IMMED:SOURCE?') source = fscanf(s) source = CH1
チャンネル1からの測定結果を出力する範囲が設定されます。入力信号はチャンネル2に接続されるので、このチャンネルからの測定結果を出力する機器を設定しなければなりません。
fprintf(s,'MEASUREMENT:IMMED:SOURCE CH2') fprintf(s,'MEASUREMENT:IMMED:SOURCE?') source = fscanf(s) source = CH2
ピーク間電圧を出力する範囲を設定し、この測定結果の値を要求するように設定します。
fprintf(s,'MEASUREMENT:MEAS1:TYPE PK2PK') fprintf(s,'MEASUREMENT:MEAS1:VALUE?')
fscanf
を使って入力バッファからMATLABにデータを送信します。
ptop = fscanf(s,'%g') ptop = 2.0199999809E0
4. 切断とクリーンアップ - s
が必要なくなったときは、機器から切断し、メモリおよびMATLABワークスペースから削除します。
fclose(s) delete(s) clear s
![]() | データの読み込み | 例題: strreadを使ったデータのフォーマット | ![]() |