GXWORKS3 - SP.FWRITE, SP.FREADなどのファイルアクセスについて

 三菱電機 FX5, IQ-Rにはログ出力機能があるが、制限が多いため"SP.FWITE"を使用することとした。

参考
FX-5 プログラミングマニュアル "jy997d54701w"


○概要
SDカードにcsvファイルを書き込み、または読み出しする方法
"SP.FWRITE", "SP.FREAD", "SP.FSTATUS"
*シミュレーションではエラーが出ます

ログを書き出す際は、以下の手順になると思います。
STATUSにてファイルの有無確認→無いならヘッダー書き込み→ログデータ書き込み


●書き込み "SP.FWRITE"  - ページ505


(U) = U1 ←基本U1、複数個使用しエラーが出たらU2, U3に
(s1) = K2 ←SDカードしか使えないため、SDカードの"2"固定
(d1)  ←ファイル設定。デバイスメモリを8個使用、例)D100-D107
 D100 文字列csv出力なら"0130H(K304)"指定
 D101 設定不要。書き込み結果が出力される。"0000H"で成功、その以外エラー
 D102 設定不要。書き込みデータ数が出力される。
 D103 基本"0"、文字を連続で同セルに書き込む場合のみ"1"
 D104 データ追加なら"FFFFH(K-1)"、ファイルの先頭からなら"0"
 D105 データ追加なら"FFFFH(K-1)"、ファイルの先頭からなら"0"
 D106 何列書き込んで改行するか。A-Cセルなら"K3".A-Gなら"K7"
 D107 csvは"K2"指定
(s2) ←ファイル名を格納。記述式 "\folder1\folder...\filename.csv" .csvは省略可。
  デバイスアドレス指定なら形式をUnicodeに変換する必要があり、1文字1ワード必要
  命令"SJIS2WS D1 D2"にてD1をUnicodeに変換し、D2に格納(下図)。
  *"SJIS2WSB"(バイトオーダー有り)を使用すると、最初にスペースが入る。

(s3)   書き込みデータ数 + 書き込むデータ
 D200 書き込みデータ数。6セルなら"K6"。文字数ではない。
 D201以降は書き込むデータ。ASCIIなら文字数(デバイスメモリ使用数)に注意。
 2 ASCII(偶数)文字で2ワード必要(2 byte + 終了記号 1byte)となる。
 3 ASCII(奇数)文字で2ワード必要(3 byte + 終了記号 1byte)となる。

(d2)  完了時に1スキャンのみONするデバイス。
       エラー時は "(d2) +1"がONする。

例)


●読み出し "SP.FREAD" -  ページ545
規格をExcelファイル管理できます。



(U), (s1), (s2)はWRITEとほぼ同様
(U) = U1 ←基本U1、複数個使用しエラーが出たらU2, U3に
(s1) = K2 ←SDカードしか使えないため、SDカードの"2"固定
(d1)  ←ファイル設定。デバイスメモリを8個使用、例)D100-D107
 D100 文字列csv出力なら"0130H(K304)"指定
 D101 設定不要。書き込み結果が出力される。"0000H"で成功、その以外エラー
 D102 設定不要。書き込みデータ数が出力される。
 D103 最大読み込みセル数。D102よりも大きくすること。D100"0130H"以外なら"0"固定
 D104 読み出し開始点。ファイルの先頭からなら"0"、C1からなら"K3"
 D105 読み出し開始点。ファイルの先頭からなら"0"、C1からなら"0"
 D106 何列読み込むか。A-Cセルなら"K3".A-Gなら"K7"
 D107 csvは"K2"指定
(s2) ←ファイル名を格納。記述式 "\folder1\folder...\filename.csv" .csvは省略可。
  デバイスアドレス指定なら形式をUnicodeに変換する必要があり、1文字1ワード必要
  命令"SJIS2WS D1 D2"にてD1をUnicodeに変換し、D2に格納(下図)。
  *"SJIS2WSB"(バイトオーダー有り)を使用すると、最初にスペースが入る。
(d2)  格納先メモリ指定。先頭はデータ数となります。
  (d2) + 1から格納開始。
(d3)  完了時に1スキャンのみONするデバイス。
       エラー時は "(d3) +1"がONする。

●ファイル確認 "SP.FSTATUS" - ページ562

(U) = U1 ←基本U1、複数個使用しエラーが出たらU2, U3に
(s1) = K2 ←SDカードしか使えないため、SDカードの"2"固定
(d1)  ←ファイル設定。デバイスメモリを2個使用、例)D100-D101
 D100 ファイル"0"、フォルダ"1"
 D101 書き込み結果が出力される。"0000H"で成功、その以外エラー
(s2) ←ファイル名を格納。記述式 "\folder1\folder...\filename.csv" .csvは省略可。
  デバイスアドレス指定なら形式をUnicodeに変換する必要があり、1文字1ワード必要
  命令"SJIS2WS D1 D2"にてD1をUnicodeに変換し、D2に格納(下図)。
  *"SJIS2WSB"(バイトオーダー有り)を使用すると、最初にスペースが入る。
(d2)


コメント

このブログの人気の投稿

三菱GOT - USBコードスキャナ使い方

プロトコル通信(EtherNET)(FX5-UJ内蔵型の例)