ファイルリード、ファイルライト関数実行時にデバイスアドレスに書き込む場合や、読み出す場合に、書き込む(読み出す)格納順序を設定します。
LS9130にデータ格納モードを設定することで格納順序を変更することが可能です。モードは0, 1, 2, 3 の4 通りがあります。
LS9130を参照するのは以下の機能です。
ファイルライト : _CF_write()、_SD_write()、_USB_write()
ファイルリード : _CF_read()、_SD_read()、_USB_read()
CSVファイルリード : _CF_read_csv()、_SD_read_csv()、_USB_read_csv()
プリンタ操作の送信 : IO_WRITE([p:PRN],...)
以下の機能は、デバイスアドレスに書き込む場合や読み出す場合に、LS9130の格納モードを参照せず、システム設定[接続機器設定]の[文字列データモード]で設定された文字列データモードを参照します。
ファイルリスト出力 : _CF_dir()、_SD_dir()、_USB_dir()
モード0
例 : ファイルリード関数を使用してデバイスアドレスに文字列ABCDEFG が書き込まれた場合
[w:[#INTERNAL]LS9130] = 0
_CF_read ("\DATA", "DATA0001.BIN", [w:[#INTERNAL]LS0100], 0, 7)
デバイスアドレスが16 ビット長の場合
デバイスアドレスが32 ビット長の場合
モード1
例 : ファイルリード関数を使用してデバイスアドレスに文字列ABCDEFG を書き込む場合
[w:[#INTERNAL]LS9130] = 1
_CF_read ("\DATA", "DATA0001.BIN", [w:[#INTERNAL]LS0100], 0, 7)
デバイスアドレスが16 ビット長の場合
デバイスアドレスが32 ビット長の場合
モード2
例 : ファイルリード関数を使用してデバイスアドレスに文字列ABCDEFG を書き込む場合
[w:[#INTERNAL]LS9130] = 2
_CF_read ("\DATA", "DATA0001.BIN", [w:[#INTERNAL]LS0100], 0, 7)
デバイスアドレスが16 ビット長の場合
デバイスアドレスが32ビット長の場合
モード3
例 : ファイルリード関数を使用してデバイスアドレスに文字列ABCDEFGを書き込む場合
[w:[#INTERNAL]LS9130] = 3
_CF_read ("\DATA", "DATA0001.BIN", [w:[#INTERNAL]LS0100], 0, 7)
デバイスアドレスが16ビット長の場合
デバイスアドレスが32ビット長の場合
スクリプトのデータ格納モードとシステム設定[接続機器設定]にある文字列データモードとは一致していません。データ格納モードと文字列データモードの対比は以下のようになります。
データのデバイス格納順序 |
ワード内のバイトLH/HL格納順序 |
ダブルワード内のバイトLH/HL格納順序 |
Dスクリプトデータ格納モード |
文字列データモード |
---|---|---|---|---|
先頭データから格納 |
HL順 |
HL順 |
0 |
1 |
LH順 |
1 |
2 |
||
HL順 |
LH順 |
2 |
5 |
|
LH順 |
3 |
4 |
||
最終データから格納 |
HL順 |
HL順 |
— |
3 |
LH順 |
— |
7 |
||
HL順 |
LH順 |
— |
8 |
|
LH順 |
— |
6 |