InBCD函數
本函數用於將輸入連接埠作為每8位元的群組,並以BCD傳回輸入連接埠狀態的函數。
格式
InBCD (連接埠編號)
參數
- 連接埠編號
- 指定I/O的輸入位元組。
傳回值
以BCD(0~9)傳回輸入連接埠(0~99)的狀態。
說明
在InBCD中,以BCD同時讀取8個輸入線路。使用InBCD命令的參數「連接埠編號」指定要讀取狀態的位元群組。例如,連接埠編號 = 0時,讀取輸入位元0~7的狀態;連接埠編號 = 1時,讀取輸入位元8~15的狀態。
用BCD傳回8個輸入位元的狀態。傳回值為0~99的1或2位數值。第1位數(10的位數)與以連接埠編號指定的8個輸出位元當中的高階4位元對應。第2位數(1的位數)與以連接埠編號指定的8個輸出位元當中的低階4位元對應。
各位數的BCD有效值為0~99,因此無法實現所有I/O組合。下表所示為,連接埠編號為0時可實現的I/O狀態之部分組合和傳回值。
輸入設定(輸入編號)
傳回值 | 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 | On | Off | Off | Off | Off |
11 | Off | Off | Off | On | Off | Off | Off | On |
99 | On | Off | Off | On | On | Off | Off | On |
BCD只能用於指定十進位。這表示特定連接埠的所有輸入位元同時為ON時,無法以使用BCD的InBCD命令求出有效值。InBCD的最大傳回值為「99」。從上表可知,傳回值為「99」時,所有輸入不會變為ON。當傳回值為「99」時,ON的輸入位元為0、3、4、7,其它位元皆為OFF。
注意
InBCD和In的差異
在SPEL+中,InBCD和In命令有幾個重要之處並不相同,以下將說明其差異。
在InBCD命令中,以BCD指定8個輸入位元的傳回值。而BCD則不可使用&HA、&HB、&HC、&HD、&HE、&HF等的值,因此無法實現8個輸入位元的所有組合。
In命令的功能非常類似於InBCD命令,但可傳回8個輸入位元的所有傳回值。(In命令的傳回值為0~255;InBCD的傳回值為0~99。)因此,可實現1群組8個輸入位元的所有組合。
參照
In、MemOff、MemOn、MemOut、MemSw、Off、On、OpBCD、Oport、Out、Sw、Wait
InBCD範例
這是命令視窗中的簡易操作範例。
假定輸入位元0、4、10、16、17、18為ON,其它輸入位元為OFF。
> Print InBCD(0)
11
> Print InBCD(1)
04
> Print InBCD(2)
07
>