在工控行业中,有时候会碰到因为可编程控制器(plc)输入点的不够,而导致需要更换设备,浪费资源。对此,当实时性不需要那么高时,我们可以编写一个键盘的扫描程序来扩展输入的点数。因为扫描的方式是循环扫描,所以在实时性方面会有一定的欠缺。
下面是用三菱plc编程软件编写的8乘6的48键扫描程序。需要用到8个输入点,6个输出点,硬件连接如下图所示:
注:当要求实现组合按键时上图的二极管必须加,反之二极管可加可不加。
扫描的点是令Y0~Y5循环输出,当有按钮按下时,就会做出相应的动作,例如:当按钮键0按下时,则X0接通,当程序扫描到Y0时,X0与Y0形成一个回路, 表示按键“0”按下。程序如下图所示:
结论:键盘是以循环扫描的方式来进行输入,而扫描的时间越短则实时性越好。但是当扫描时间过短时会因Y0~Y5输出结束时,X0仍未接通导致无法产生输出信号。或者当Y0输出结束,Y1也输出结束时,X0仍未断开,导致误判断。
经过测试可知每次循环扫描的时间T0不得低于20ms。建议可将滤波时间设得短一点,则可以缩短每次循环扫描的时间T0,例如:本例中将滤波时间设为0.8ms,则每次循环扫描的时间T0可以设到最短10ms。