王景辉
(中兴利联国际贸易(上海)有限公司,上海 201611)
单片机ATMEGA16应用案例
王景辉
(中兴利联国际贸易(上海)有限公司,上海 201611)
本文介绍AVR单片机ATmega16设备改造中的一个应用案例。根据客户要求,描述设计过程和原理,涉及到外部中断INT0、INT1、INT2以及中断定时器time0的应用。利用外部中断引脚监测打印信号、编码器信号以及剔除工位的瓶触发信号等,应用移位指令对运动中的产品进行跟踪控制。软件采用ICCV7 for AVR,对程序中主要控制语句进行说明。
ATmega16 外部中断 定时中断 移位指令
CVC302贴标机上,原有的剔除方式是把剔除装置与前端贴标装置进行分别计数。机器运行之前,先要把输送带上的产品清空,然后在操作界面上执行产品平衡计数清零,使得两个计数器都从零开始计数。贴标装置部分有一个计数器,剔除部分有一个计数器。每当有一个产品过来时,在贴标装置计数器加1计数。如果这个被贴标产品需剔除,程序会把这个数值标记为剔除。经过剔除位置的产品也会被剔除计数器进行加1计数。当其数值与之前标记的数相等时,对此产品执行剔除。不过,当其中一个计数器产生计数错误时,会出现剔除错位,且不易被操作人员发觉。比如,中间被人为拿走一个产品、计数传感器信号不稳定等,都可能导致计数出现问题。一旦错位,如果不处理,它会一直错位下去,直到停机清空产品,重新平衡计数再启动机器,才能恢复正常,这对生产厂商来说不可接受。印有问题的产品进入下游生产线,是严重的质量问题。因此,改造该设备,刻不容缓。
1.1 项目要求
项目名称是《CVC302贴标机CCD像机印字检测不合格及漏贴标产品剔除》。客户要求:对标签上的印字进行照像检测;对于缺字、印字偏斜过大、偏移过大进行检测;检测不合格,要可靠剔除。另外,对瓶表面进行标签检测,没有帖上标签的产品剔除。
1.2 贴标机相关部分介绍
直线式圆瓶贴标机CVC302,对不合格品的剔除不如星轮转接方式的贴标机实现剔除那么可靠。因为星轮转接的贴标机把产品限位在星轮齿槽里,通过专门的计数方式容易跟踪。而直线式贴标机对一个产品进行贴标时,出完标签,瓶子在输送带上运送时,产品没有被限位,在滚贴过程中或输送过程中都存在一定的偏移或滑动,难以进行准确定位。
2.1 相机安装与控制(电路图参见图1-1)
图1为其电路图。做可调三维固定架,把像机固定于打印机左测,用像机对印字进行检测。对于文字偏移过大、文字重叠、缺字、断字等情况进行检测。像机照在距出标剥离板的第五张标签上,像机触发由CVC302贴标机PLC的打印输出点上升沿信号给出(如电路图到J14插座),经过控制电路的光耦,把信号传到单片机的PD2引脚。通过中断引脚由单片机中断程序进行处理后,由PC0引脚把触发信号经光耦传到J13-3即CCD-TRIG端发给像机。像机拍照后,把不合格信号发到J13-4即CCD1(合格品信号为0,不合品信号为24V),进入单片机的PD6引脚,让单片机程序处理信号。
图1 电路图
2.2 控制逻辑
通过软件形成两个软件队列:一个是标签队列,另一个是输送队列。标签队列:贴标机每送出一张标签打印一次,标签队列每送出一张标签(电路中取的打印信号)移动一位,同时像机拍照一次,并存储像机拍照结果(结果为1是不合格品,为0是合格品)。这个结果在移送到出标工位时,会传送到输送队列。输送队列:输送带主轴上有一个1000P/R编码器,编码器每过67个脉冲产生一次移位。通过编码进行位置控制,当不合格品移送到达剔除位时,会由电磁阀产生准确的剔除动作。
2.3 硬件选型
(1)像机选用邦纳BANNAR A4 130万像素相机,光源选红光,镜头焦距16mm,做可调固定支架,国产工业平板电脑。
(2)标签有荧光,漏标检测传感器选两只SICK SU620荧光检测传感器,测瓶传感器选SENSERDATA的FB20小光点激光,根据剔除位置做传感器固定支架,剔除出料口。
(3)剔除吹气嘴定做,做固定支架。
(4)控制电路采用AVR单片机控制,型号ATMEGA16,绘制线路图,生成PCB板,接口部分的部分电路如图1所示。
(5)电磁阀:二位五通电磁阀SMC SY5120-5g-01。(6)电磁阀采且NPN三极管C1815驱动,输出端并接二极管保护。
(7)CCD像机接口J13:本例只用了DC24V电源信号,触发信号CCD-TRIG及结果输出信号CCD1。像机的触发信号由单片机经光耦与PNP晶体管结合产生PNP信号触发像机拍照。
3.1 中断程序INT0(参见图2-2移位说明)
中断程序INT0,见图2移位说明。
图2 中断程序INT0的移位说明
标签队列:用一个无符号型字符变量,程序里定义为label_queue,有八个位,对应实物贴标头上剥离板前的六张标签。当CCD检测位有不合格品时,就把第七位置1,每贴一张标签(电路里取的是打印信号)变量中的8位会右移一次。第4位对应马上要往瓶上贴的那张标签。从检测到不合格标签开始,要移5个位才贴到瓶子上。
对应程序段说明:
打印信号触发进入中断INT0
3.3 外部中断程序INT2
输送带队列:用一个无符号长整型变量,程序中定义为convey_queue,共有32个位。对实物输送带的32块链板,它会跟随输送带轴编码器脉冲移动。67个脉冲会移动一次,可以设想它是间歇式移动,实物每移过一个链板,变量右移一次。
当贴标队列的出标位label_queue第四位为1时,向瓶上贴标签时会把数值0x3E存入到输送带队列的第三字节。如图2的当前状态,它同时置位了5个工位,给了被剔除产品足够的冗余量,即在这五块链板上的瓶子都会被剔除,这样能可靠地把不合格的一瓶剔除出来。当生产速度很快时,瓶间距很密集的情况下可能会有两到三瓶被剔除。这一点客户也认可,因为这个剔除量概率比较小,剔除品会由人工进行再检查。
程序说明:
编码器:
3.4 外部中断程序INT1
图3为外部中断程序INT1示意图。
剔除工位:在变量第byte0的第三个位为1时,对于这个链板上的西林瓶施行剔除。当漏标检测传感器检测瓶到位,测到瓶到时进入中断程序,通过剔除电磁阀对吹气嘴产生动作。只要这个工位为1,只要过来一个瓶子就会检测瓶子执行剔除,这是CCD检测不合格产生的剔除。另外,它还通过两个荧光传感器对瓶身进行照射检测。瓶到位时,采样两个荧光传感器的状态,当两个荧光传感器此刻都没检测到荧光,说明标签没有贴在瓶上,剔除电磁阀执行剔除动作,把瓶子吹掉。
图3 外部中断程序INT1示意图
当瓶到达瓶触发传感器时,触发INT1中断:
3.5 关于程序的其他部分
关于程序的其他部分:初始化及变量定义,中断初使化等。
本文主要介绍项目过程的控制原理及程序分析,本例已在客户现场使用两年,反馈一切正常,客户很满意。从应用角度来说,不论是采用单片机还是采用PLC,在机电设备控制中用移位方式处理一些实际问题都比较方便,尤其与编码器结合后,能够实现较为复杂的应用。采用单片机处理问题,便于定制,PCB板体积小,接线集成方便,速度快功能专一,安装灵活,非常适合一些对于空间有限的场合。
MCU ATMEGA16 Application Case
WANG Jinghui
(Zhongxing Lilian International Trading (Shanghai) Co., Ltd., Shanghai 201611)
This paper introduces the ATmega16 microcontroller AVR used in a modification of a CVC302 labeller, According to customer requirements, describes the design process and principles; related to the external interrupt INT1, INT2, INT0, and the application of interrupt timer time0. Using external interrupt pin to monitor the print signal, encoder signal and bottle trigger signal in rejection station, the application of the shift instruction on the motion of the product tracking control. Software using for AVR ICCV7, the statement of the main program instructions.
ATmega16, external interrupt, timing interrupt, shift instruction