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
>