1 引言
可编程逻辑控制器(ProgrammingLogicController,PLC)作为一台工业计算机,集数据的采集、处理、显示于一身,那么作为数据终端,数据的显示是完全必要的。虽然PLC本身有许多指示灯,可以观测到PLC的CPU单元、输入/输出单元及网络通信单元的运行工作状态,但无法显示PLC内部数据。计算机通过与PLC通信以及触摸屏都可以实现PLC内部数据显示,但价格昂贵,对一些小型不需要经常改动的系统来说更是浪费。本文采用拨码开关和数码管来显示PLC内部数据,操作简单、成本低廉,对实验教学和工程人员有参考价值。
(1)应用行业:机加工、过程控制等。
(2)使用产品:CJ1M(CPU22),CS1W-ID211,CS1W-OD261
(3)应用的主要工艺点及要解决的主要问题:内部数据的动态显示
(4)应用方案简介:用高频率晶体管输出单元,结合高速定时器指令TIMH实现内部数据的动态显示。
2 动态数据显示
2.1硬件系统设计
LED数码管有7段显示灯,可以用来显示0~9间的10个数字。CJ1M系列PLC内部通道数据一般都是四位,如果用借用每个输出点来控
制一个显示灯,那么一个数码管就需要7个输出点,这显然要占用大量的输出点,是不经济的。这里选用含有内置译码电路的数码管如CD4511,可以把8421码自动译成7段码。8421码或BCD码用4个接口加选通信号,就可以显示一个数据位。将四个8421输入线组合与某个输出通道的最低四位相连,每个选通信号的输入信号与通道中剩下的四位相对应连接,这样一个输出通道就能显示PLC四位(一个字)内部数据。
注意,这里的PLC输出模块应选用晶体管或者晶闸管输出单元,而不宜采用继电器输出单元。因为继电器输出单元为有触点开关,响应慢、速度低,不适用于高频率的通断,也不适用于动态数据显示[1>。故图1中采用OMRON公司CJ1W-OD261(64点)晶体管作为输出单元,其在本PLC机架上的IO地址分配为6.00~9.15,这里用0006通道作为内部数据的显示通道。6.00~6.03为CD4511的数据输入端A、B、C、D,其中A为最低位,D为最高位,为高电平时锁存数据,四位数据的端由PLC的6.04~6.07分别控制,4个数码管共占用8个输出点。
2.2选通信号的生成
由于4个数码管的线皆由一个I/O口控制,因此,在每一瞬间,4位LED会显示相同的字符。要想每位显示不同的字符,就必须采用扫描方式轮流点亮各位LED,即在每一瞬间只使某一位显示字符。使每位分时显示该位应显示字符,根据人眼视觉特性,当LED所加信号频率大于50Hz时,人眼不能感觉其变化,所以每位显示的间隔不能超过20ms,也就是说要在20ms之内分时的点亮所有LED,LED越多所分的时间越短,亮度就会不足;如果增加点亮时间,又会使扫描频率下降,有闪烁感容易造成人眼的彼劳,故常采用动态扫描方式[2>。
这种扫描方式仅适用于LED不超过10个时的场合,本例中只有4只LED数码管,故可以选用此方法。
CJ1M系列PLC有丰富的定时指令,其定时器类型有1ms、10ms和100ms,这里选用TIMH指令[3>,定时器的设定值为#1,这样选通信号的周期为10ms。
2.3同步化处理
PLC采用循环周期扫描工作方式,指令的执行由上至下,有左至右,前面的结果将影响后面;前一个周期的结果影响下一周期。PLC逻辑设计同步化就是设法实现:用脉冲信号控制输出及内部状态的转换,有脉冲作用的周期,执行指令才有效果;而且在脉冲信号起作用的这周期中,前面指令的执行结果,不改变后面指令的执行条件[4>。同步化处理的方法很多,在图2中是通过合理安排指令的先后顺序来实现同步的。
系统上电,高速定时器开始定时,10ms后,其常闭触点断开,即T0输出一个脉冲,宽度为一个扫描周期。第一个脉冲到了,6.04置位,成为前一行的指令执行条件,但这时它的指令已经执行完毕,故在此脉冲作用期间,也不会有什么变化。依此类推,第四个脉冲之后,6.07置位,6.06复位,成为工作寄存器W0.00输出的条件,第五个脉冲到来,6.07复位,梯形图又回到初始状态,如此反复,分时实现四位数据的端6.04~6.07轮流接通10ms。
2.4数据显示
采用MOVD指令,将要显示的内部数据如DM区、W区、T/C区等中的一个字通过通道6显示出来。如图3所示,本例中,依不同的选通信号,将D0中的数据通过选择不同的位进行显示。
3 功能扩展
3.1显示双字
在图1中,PLC输入端0.01接拨码开关SA,其作用根据其所在位置不同结合跳转指令(JMP/JME)来确定数据显示是哪个通道。如图4中,当SA为ON时,显示D0中的数据;当SA为OFF时,显示D1中的数据。
3.2硬件扩展
如果对4个选通输出点6.00~6.03采用一片4线-16线译码器(如SG74HC154)进行译码,可以扩展成16个循环的选通信号,就能显示4个通道的数据。如果结合开关SA,按图4中的方式,就可以显示8个通道的数据。
5 结束语
本文以CJ1M系列PLC为例,用9个I/O点(1个输入,8个输出)结合软件编程和硬件扩展来显示8个内部通道的数据(128位)。实践证明,该方法简易可靠、成本不高,适合实验教学和工程现场操作。