2022.6.4
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第7回]



●データロガーとしての使い方(WOPEN、WDATA、CLOSE)

PIC−USBIO用BASICはZB3BASICに近い機能にしたいと考えています。
ただし今のところは整数型BASICとして考えています。
実数計算機能はありません。
このあたりについてはひょっとすると将来変更することになるかもしれません。
逆にZB3BASICにはなくてPIC−USBIO用BASICに付加した機能があります。
PIC−USBIO用BASICの主役はその名の通りPIC−USBIOです。
USBを通してI/Oを制御するためのBASICです。
I/Oということになりますと欠かせない命令はOUTとIN(こちらは関数ですが)です。
とくにIN関数についてはPIC−USBIOから一定の間隔で連続してデータを読み込むというような使い方が考えられます。
データーロガーとしての使い方です。
その読み込んだデータ列をPRINT文で画面に表示するのが一番簡単な使い方です。
画面の表示はデータが多くなればスクロールして画面から外に消えてしまいますがログ機能がありますから後でログを確認することでとりあえずはデータロガーとしての機能を果たすことができると思います。
もっともそこまではZB3BASICでも同じ使い方ができます。
しかしデータロガーとしてただ単にデータの記録を残すというだけではなくて、そのデータをもとに解析をしたり、あるいはグラフ表示をしたりするような使い方まで考えると、ただ単に画面に表示してそれをログとして残すだけでは機能としてはいささか力不足です。
そこでPIC−USBIO用BASICではZB3BASICに無い機能を新たに付加しました。
それが今回説明するWOPEN、WDATA、CLOSEの各命令です。
データファイルを作成するための命令です。

使用例を見ながら使い方を説明するとわかりやすいと思います。


WOPEN #n,ファイル名

WOPENはデータを書き込むファイルを新規オープンする命令です。
nは1〜4の範囲の整数です。
ファイルをオープンする命令はWOPENのほかにROPENがあります。
WOPENはWrite data file openです。
ROPENはRead data file openです。
ROPENはデータを読み出すファイルをOPENする命令です。
WOPENの#nは#1〜#4ですがROPENの#nは#5〜#8です。
ROPENについてはまた先で説明しますのでここではファイルの新規作成について説明します。
WOPEN命令でファイル名をつけて新規ファイルをオープンします。
上の例では”test3.csv”というファイルを新規にオープンしています。
csvはComma Separated Valueの頭文字から取った名称で「値をカンマで区切る」ことから来ています。
その実体はテキストファイルですからメモ帳やTeraPadなどで開くことができます。
拡張子を「csv」にすることは必須ではありません。
「txt」でもよいですし拡張子なしでも構いません。
作成されるファイルは拡張子の指定に関わらず中身はcsvファイルとして作成されます。
しかし拡張子をcsvにしたほうがアプリケーションから開きやすくなりますからとくに理由がない限り「csv」にしたほうがよいでしょう。
WOPENでオープンしていることを示すためにファイル番号#1〜#4で示します。
このファイル番号はデータを書き込むための命令WDATAと最後にファイルをクローズする命令CLOSEで使われます。

WDATA #n[,データ1,データ2…,]

#n(n=1〜4)で指定するファイルにデータを書き込みます。
#nは省略できませんがその後ろは省略可能です。
データは複数個記述することができます。
データを記述するときは#nとデータとの間およびデータ間を,(カンマ)で区切ります。
最後に , をつけない場合はそこに改行コード(0D0A)が書き込まれます(上記例行番号70)。
最後を , で終るとそこに ,(コード2C)が書き込まれて終ります(上記例行番号30)。
データを記述しないでWDATA #nだけの命令文を書くとそこに改行コード(0D0A)が書き込まれます(上記例行番号50)。
これらの違いはのちほど実例で説明します。

CLOSE #n

ファイルをクローズするための命令です。
オープンしたファイルは最後にクローズして終る必要があります。
CLOSE命令を実行しないでプログラムを終了するとオープンしているファイルは破棄されてしまいます。
BASICを/EXITかまたは[Ctrl]+[C]で終了するとそのときオープンしているファイルに対しては強制的にCLOSE命令が実行されます。

上記テストプログラムの実行によって作成されたファイルをアプリケーションで開いてみました。
TeraPadで開いきました。

前記のプログラム実行例で行番号20〜40のFOR NEXT文によって0〜5の値が , で区切られています。
最後にも , が置かれてFOR NEXTが終了したあとで行番号50が実行されたためそこで改行が行なわれています。
改行コードは↓で示されています。
次の行番号60〜80のFOR NEXTの中のWDATA文(行番号70)では値に , をつけないで終っているために各値の後ろが全て改行されています。

今度はExcelで開いてみました。

CSVファイルはExcelでも開くことができます。
データを , か改行コードで区切ることで各値をセルに書き込むことができます。
 , で区切ったときと改行コードで区切ったときの違いを上の例で確認してください。
このようにPIC−USBIOから読み込まれた値はCSVファイルに記録することができ、それはExcelなどで開くことができますから、たとえばExcelでデータ解析をするなどの応用が可能になります。

PIC−USBIO using BASIC[第7回]
2022.6.4upload

前へ
次へ
ホームページトップへ戻る