Out
8個の出力ビットを同時に設定 (出力)します。
書式
Out ポート番号, 出力データ [, Forced]
パラメーター
- ポート番号
- I/O出力バイトを指定します。指定数値は、下記のように出力ビットに対応します。
ポート番号 出力ビット 0 0-7 1 8-15 ... ... - 出力データ
- ポート番号で指定した出力グループの出力パターンを、0~255の整数値で指定します。16進数で表示された場合は、&H0から&HFFが範囲になります。下位桁は、下位ビット (または最初の4出力ビット)を、上位桁は、上位ビット (または次の4出力ビット)を表わします。
- Forced
- 省略可能です。通常は省略します。
解説
Outは、ポート番号と出力データの組み合わせで8個の出力ビットを同時に設定します。ポート番号パラメーターで、どのグループ (どの8個の出力ビット)を使うか指定します。例えば、ポート番号= 0 のとき出力ビット0~7、ポート番号 = 1のとき出力ビット8~15を指定します。
まずポート番号で8個の出力ビットを指定したのち、出力データパラメーターで特定の出力パターンを指定します。出力データパラメーターがとる値は0~255で、16進数あるいは10進数の整数で指定します。(&H0~&HFF、または0~255)
下記表は、I/Oの組み合わせ例の一部を、それに対応する出力データ値とともに、ポート番号が"0"および"1"のときに分けて示したものです。
ポート番号=0 の時の出力設定 (出力ビット番号)
| 出力データ値 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 01 | Off | Off | Off | Off | Off | Off | Off | On |
| 02 | Off | Off | Off | Off | Off | Off | On | Off |
| 03 | Off | Off | Off | Off | Off | Off | On | On |
| 08 | Off | Off | Off | Off | On | Off | Off | Off |
| 09 | Off | Off | Off | Off | On | Off | Off | On |
| 10 | Off | Off | Off | Off | On | Off | On | Off |
| 11 | Off | Off | Off | Off | On | Off | On | On |
| 99 | Off | On | On | Off | Off | Off | On | On |
| 255 | On | On | On | On | On | On | On | On |
ポート番号=1 の時の出力設定 (出力ビット番号)
| 出力データ値 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
|---|---|---|---|---|---|---|---|---|
| 01 | Off | Off | Off | Off | Off | Off | Off | On |
| 02 | Off | Off | Off | Off | Off | Off | On | Off |
| 03 | Off | Off | Off | Off | Off | Off | On | On |
| 08 | Off | Off | Off | Off | On | Off | Off | Off |
| 09 | Off | Off | Off | Off | On | Off | Off | On |
| 10 | Off | Off | Off | Off | On | Off | On | Off |
| 11 | Off | Off | Off | Off | On | Off | On | On |
| 99 | Off | On | On | Off | Off | Off | On | On |
| 255 | On | On | On | On | On | On | On | On |
注意
OpBCDとOutの違い
SPEL+のOutとOpBCDは、下記の2つの点で大きく異なります。
- OpBCD命令は、オン、またはオフする8個の出力ビットを指定するのに2進化10進 (BCD)フォーマットを使います。2進化10進フォーマットでは、&HA, &HB, &HC, &HD, &HE そして&HF などの値は使えないので、8個の出力ビットの組み合わせすべてを満たすことができません
- Out命令は、出力をオン、またはオフする8ビットの値に0~255の値を使います (OpBCDでは0~99です)。これにより、8ビット出力グループの可能な組み合わせすべてを満たせることになり、ユーザーの仕様に合わせて指定することができます。
Forcedフラグ
NoPauseタスク, NoEmgAbortタスク (Xqt時に、NoPauseやNoEmgAbortを指定して開始された特別なタスク)、およびバックグラウンドタスクから、非常停止中や安全扉開時にI/O出力のオンを行う場合にこのフラグを指定します。
非常停止中や安全扉開時にI/O出力が変化するのでシステム設計上の注意が必要です。
参照
In関数, InBCD関数, MemOff, MemOn, MemOut, MemSw関数, Off, On, Oport関数, Sw関数, Wait
Out使用例
下記は、メインタスクが"iotask"という名前のタスクを起動するプログラムです。"iotask"は、出力ビット0~3をオンオフする簡単なタスクです。Out命令を使うと、出力ビットを個々にオンオフせず、1つのコマンドでそれを行うことができます。
Function main
Xqt iotask
Do
Go P1
Go P2
Loop
Fend
Function iotask
Do
Out 0, &H0F
Out 0, &H00
Wait 10
Loop
Fend
コマンドウィンドウからの簡単な操作例です。
> Out 1,6 '出力9と10をオン
> Out 2,1 '出力8をオン
> Out 3,91 '出力24, 25, 27, 28, 30をオン