基于海为PLC的8路竞赛抢答器系统
一、海为PLC——实现8路竞赛抢答器:
完全用程序判断各个选手按键抢答的先后,从实现上没有什么问题,但由于PLC是循环扫描运行,它会一次性读入X0-X7的所有输入状态,然后再执行程序,最后将结果输出。如果在一个扫描周期有一个以上选手同时按键抢答即有多个X输入为ON,这时必然是依靠人为的程序去评判先后顺序,这会产生本质上的不公平。如何避免这种情况的发生,最好的方法是使用“开关量输入上升沿捕捉”功能,以硬件中断产生的先后来判断选手按键的先后。
完全用程序判断各个选手按键抢答的先后,从实现上没有什么问题,但由于PLC是循环扫描运行,它会一次性读入X0-X7的所有输入状态,然后再执行程序,最后将结果输出。如果在一个扫描周期有一个以上选手同时按键抢答即有多个X输入为ON,这时必然是依靠人为的程序去评判先后顺序,这会产生本质上的不公平。如何避免这种情况的发生,最好的方法是使用“开关量输入上升沿捕捉”功能,以硬件中断产生的先后来判断选手按键的先后。
假如对X
输入和Y
输出定义如下:
X0
:选手1
抢答按键
X1
:选手2
抢答按键
X2
:选手3
抢答按键
X3
:选手4
抢答按键
X4
:选手5
抢答按键
X5
:选手6
抢答按键
X6
:选手7
抢答按键
X7
:选手8
抢答按键
Y0
:选手1
抢答成功
Y1
:选手2
抢答成功
Y2
:选手3
抢答成功
Y3
:选手4
抢答成功
Y4
:选手5
抢答成功
Y5
:选手6
抢答成功
Y6
:选手7
抢答成功
Y7
:选手8
抢答成功
在“PLC
硬件配置”窗口选择X0-X7
的“上升沿捕捉”,打开X0-X7
的中断捕捉功能。如下图:
二、主程序——
实现中断绑定和自动复位:
评论