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
>