何淼
(陕西国防工业职业技术学院,陕西 西安 710300)
西门子S7—1200有着很多强大的功能,配有PROFINET集成接口、灵活的扩展能力以及具有集成工艺特点,能够提供简易的通信和行之有效的解决方案,供多种工艺任务的需求,特别是能够提供多种应用所需的特性各异的自动化需求。其中,计数器是S7—1200提供的一种用来累计输入脉冲个数的编程元件,在实际应用中用于对产品进行计数或完成复杂逻辑控制任务。
在S7—1200的PLC中,可以使用计数器指令对内部程序事件和外部过程事件进行计数。每个计数器都使用数据块中存储的结构来保存计数器数据。用户在编辑器中放置计数器指令时分配相应的数据块。
S7—1200PLC有3种计数器:加计数器CTU、减计数器CTD、加减计数器CTUD。在调用指令时,系统会自动生成保持计数器数据的背景数据块。这些指令属于软件计数器,其最大计数速率受其所在的OB的执行速率限制。如果需要速率更高的计数器,可以使用CPU内置的高数计数器。选用西门子S7—1200加计数器CTU,在完成CTU用法探讨后,通过分析自动线上产品数量检测装置的控制要求,分配其I/O,设计其梯形图,最终完成自动生产线上产品数量检测的PLC控制。
本文选用CPU为1214C DC/DC/DC的西门子S7—1200PLC,编程软件用博途V15。在博途V15环境下添加计数器时,先在项目树中,打开OB1,然后在指令树中,拖拽CTU计数器指令到程序段中,系统自动打开背景数据块选择对话框,单击确认按钮,采用默认设置,系统就会给计数器自动分配背景数据块,如图1所示。
图1 CTU计数器
在图1中,%DB1“IEC_Counter_0_DB”为计数器背景数据块,由系统自动生成;单击“Int”可以选择计数器的数据类型(Int、SInt、DInt、UInt、USInt、UDInt等),计数器的计数范围取决于所选的数据类型;CU为计数器的脉冲输入端,即启动计数器的条件;PV为计数器的预设值;R为计数器的复位端;CV为存储计数器当前值的地址;Q为计数器的输出值。
S7—1200计数器使用一个存储在数据块中的结构来保持计数器数据。在工作区中,放置定期器指令时要求分配该数据块,也就是说使用计数器时,要为其分配背景数据块。下面利用时序图2,说明接通计数器的工作过程。
图2 计数器的时序图
图2是计数值为无符号整数的CTU时序图(其中预设值PV=3),每当计数器的脉冲输入端CU的值从0变为1时,加计数器的当前值CV=CV+1。当CV≥PV时,计数器的输出端被置为1。这时若再加计数器脉冲,计数器的当前值仍然不断增加,直到所选计数器数据类型的范围限值。当复位端R的值从0变为1,计数值的当前值和输出状态就重置为0。
自动生产线上产品数量检测装置控制要求如下。启动按钮、停止按钮控制电机的运动,电机拖动传送带运转,以驱动传送带传输工件,光电传感器检测通过产品的数量,每凑够3个产品,机械手动作1次,进行包装,机械手动作后延时2s,把机械手电磁铁切断。
根据自动生产线上产品数量检测装置的控制要求可知,有启动按钮、停止按钮、光电传感器共计3个数字量输入,有电机、机械手共计2个数字量输出,因此本文选择的CPU为1214C DC/DC/DC的西门子S7—1200PLC可以满足其硬件要求,表1是产品数量检测的I/O分配表。
表1 产品数量检测的I/O分配表
在设计产品数量检测的梯形图时,先借助辅助继电器M,利用“启保停”编程方法,实现M0.0的启动和停止;然后用M0.0启动电机运动;用M0.0与光电传感器I0.2作为计数器CTU的脉冲输入端,而计数器CTU的复位端则用定时器TON的常闭触点或M0.0接通一次的信号;再用计数器的常开触点使机械手Q0.1得电,并且同时驱动5s开始计时TON;最后用TON的常闭触点断开Q0.1,使机械手停止运动。
打开博途V15编程软件,首先创建新项目,在“设备组态”中,选择控制器的PLC类型、CPU型号、CPU订货号和PLC版本号,然后完成以太网地址的设置,再在“程序块—Main—OB1”中,输入图3设计的梯形图,最后再分别将项目树中的“设备组态”和“OBI梯形图”下载到PLC中。此时,只需根据产品数量检测的I/O分配,完成其PLC的外部接线后,按下启动按钮I0.0闭合,M0.0线圈得电并自锁,其常开触点闭合,Q0.0线圈得电,传送带电机运转;随着传送带的运动,光电传感器每检到一个工件都会给计数器CTU脉冲,当脉冲数为3时,CTU输出状态置位为1,其常开触点闭合,O0.1得电,机械手把货物抓走,与此同时,定时器TON开始计时,5秒后O0.1断开,机械手复位。当按下停止按钮时,电机停止运转。
图3 梯形图
本文在检测自动线上产品的数量时,采用S7—1200的CTU计数器,从CTU计数器的使用、程序设计和系统调试3个方面进行分析、设计和论证,从而证明采用CTU计数器设计的控制自动生产线产品数量检测的PLC程序,不但满足了控制要求。实现产品数量检测的目的,而且系统精确度高、修改和监视也方便。