In函数

以字节为单位返回指定输入端口的状态。字节端口由8个输入位构成。

格式
In (字节端口编号)

参数

字节端口编号
指定I/O的字节端口。

返回值
返回0~255的整数。返回值为8位,各个位分别对应于1个输入位。

说明
在In中可以同时看见8个输入位的值。In命令通过将8个I/O位的状态保存为1个变量值或与Wait命令一起使用,可以实现“在2个以上I/O位的状态符合特定条件之前,使程序保持待机状态”的使用方法。

由于1次可以检查8个输入位,因此,返回值的范围为0~255。有关各整数返回值与各输入位的对应关系,请参照下表。

输入位表(使用字节端口0时)

返回值 7 6 5 4 3 2 1 0
1 Off Off Off Off Off Off Off On
5 Off Off Off Off Off On Off On
15 Off Off Off Off On On On On
255 On On On On On On On On

输入位表(使用字节端口2时)

返回值 23 22 21 20 19 18 17 16
3 Off Off Off Off Off Off On On
7 Off Off Off Off Off On On On
32 Off Off On Off Off Off Off Off
255 On On On On On On On On

参阅
InBCD、MemIn、MemOff、MemOn、MemSw、Off、On、OpBCD、Oport、Out、Sw、Wait

In函数使用示例
下述程序例基于输入位20、21、22、23已连接传感器设备并且在各自返回表示“准备OK”的打开信号后启动应用程序这一假定进行记述。在该程序例中获取字节端口2的8个输入位的状态,并在确认输入位20、21、22、23全部打开后进入以下步骤。如有任一输入位不是ON(任一输入位返回“1”),将显示错误信息并停止任务。

在这种情况下,In(2)的返回值必须大于240,以全部打开输入位20、21、22、23。为确认其值而将变量“var1”与数值239进行比较。(这里不识别输入位16、17、18、19,只要返回值是240~255内的值,将继续执行程序。)

Function main
    Integer var1
    var1 = In(2)  '获取字节端口2的8个输入位的状态
    If var1 > 239 Then
        Go P1
        Go P2
        '在此处执行其它动作命令
        '.
        '.
    Else
        Print "Error in initialization!"
        Print "Sensory Inputs not ready for cycle start"
        Print "Please check inputs 20,21,22 and 23 for"
        Print "proper state for cycle start and then"
        Print "start program again"
    EndIf
Fend

虽然无法从命令窗口设置输入,但是可以进行确认。下例以打开输入位1、5、15为前提。将其他输入全部关闭。

> print In(0)
34
> print In(1)
128
> print In(2)
0