概要
COMポートに指定したバイト数分だけデータを出力します。システム設定のプリンタタイプの設定には依存せず、指定されたデータをそのまま出力します。
書式
IO_WRITE(プリンタポート、出力データ格納アドレス、出力バイト数)
パラメータ1 : [p:PRN]
パラメータ2 : 内部デバイス
パラメータ3 : 整数値、デバイスアドレス、テンポラリアドレス
パラメータ3に設定できる数値は最大1024までです。これ以上の数値を設定した場合は、送信データ数を1024にしてCOMポートから出力します。
記述例1
IO_WRITE ([p:PRN], [w:[#INTERNAL]LS1000], 10)
上記式を実行した場合には、LS1000から10バイト分のデータをCOMポートから出力します。
記述例2
IO_WRITE ([p:PRN], [w:[#INTERNAL]LS1000], [w:[#INTERNAL]LS0800])
上記式を実行した場合には、LS1000 からLS0800 に書き込まれたバイト数分のデータをCOMポートから出力します。
記述例3
IO_WRITE ([p:PRN], [w:[#INTERNAL]LS1000], [t:0010])
上記式を実行した場合には、LS1000からテンポラリ[t:0010]に書き込まれたバイト数分のデータをCOMポートから出力します。
データ格納モード
COMポート操作関数実行時に、デバイスアドレスから読み出す場合に、読み出す格納順序を設定します。
LS9130にデータ格納モードを設定することで格納順序を変更することが可能です。
モードは0, 1, 2, 3 の4通りがあります。
モード0
例 : COMポート操作関数を使用してデバイスアドレスから文字列ABCDEFGを読み込む場合
[w:[#INTERNAL]LS9130] = 0
IO_WRITE ([p:PRN], [w:[#INTERNAL]LS1000], 7)
デバイスアドレスが16 ビット長の場合
デバイスアドレスが32 ビット長の場合
モード1
例 : COMポート操作関数を使用してデバイスアドレスから文字列ABCDEFGを読み込む場合
[w:[#INTERNAL]LS9130] = 1
IO_WRITE ([p:PRN], [w:[#INTERNAL]LS1000], 7)
デバイスアドレスが16 ビット長の場合
デバイスアドレスが32 ビット長の場合
モード2
例 : COMポート操作関数を使用してデバイスアドレスから文字列ABCDEFGを読み込む場合
[w:[#INTERNAL]LS9130] = 2
IO_WRITE ([p:PRN], [w:[#INTERNAL]LS1000], 7)
デバイスアドレスが16 ビット長の場合
デバイスアドレスが32 ビット長の場合
モード3
例 : COMポート操作関数を使用してデバイスアドレスから文字列ABCDEFGを読み込む場合
[w:[#INTERNAL]LS9130] = 3
IO_WRITE ([p:PRN], [w:[#INTERNAL]LS1000], 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 |