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

只能用10进制数指定BCD。这意味着在特定端口将所有输入位同时打开时,使用BCD的InBCD命令无法计算有效值。InBCD的最大返回值是“99”。通过上表可以看出,返回值是“99”时,不是所有输入都是ON。返回值是“99”时,输入位0、3、4、7为ON,而其他位全部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
>