当前位置:自动化网>欧姆龙自动化(中国)有限公司门户>应用案例>SYSMAC NJ系列新一代PLC在16轴直线灌装机上的应用

SYSMAC NJ系列新一代PLC在16轴直线灌装机上的应用

发布时间:2012-08-27 15:25   类型:应用案例   人浏览

直线饮料灌装机主要用于灌装各种各样的瓶装饮料,适合于大中型饮料生产厂家。直线饮料灌装机主要包括进瓶、抓瓶、灌装、拧盖、抓瓶、出瓶等几个步骤,在进瓶阶段,通过带有10个固定夹的皮带一次带入10个瓶,在第一个抓瓶阶段,10个抓手同时把10个瓶抓入输送链,在灌装阶段,2组10根罐装管分2次向10个瓶中罐液体,在拧盖阶段,一个伺服带动10个拧盖机构进行拧盖,在第二个抓瓶阶段,把装满的10个瓶从输送链中抓出,送上输出皮带,在出瓶阶段,输出皮带送出已罐瓶,直线饮料灌装机的系统框图如图1所示。

 

图1 直线饮料灌装机的系统框图

 

客户原先用传统的PLC开发过直线灌装机,各轴伺服通过运动控制模块进行控制。各轴的动作时序采用位置判断,然后分别以一定的速度和位置启动各个轴的方式来完成。在过去3年中卖出过5、6套设备,运行效果不好,发生异常停机的频率很高,而且没有暂停功能,每次停机都要全部重新寻原点,生产效率比较低。采用欧姆龙SYSMAC NJ系列新一代PLC进行改造之后,用电子凸轮功能来替代以往的普通运动指令,故障率低,并且很容易完成“暂停”功能。

 

2系统工作原理及控制需求

 

饮料灌装机主要包括三大部分:恒压储液罐、夹瓶及灌装头部分、变频调速传送带部分,系统控制功能结构如图2所示。主机的上部是恒压储液罐,里面有上限位和下限位液位传感器,液面低于下限位时恒压储液罐为空,饮料通过进液电磁阀流入恒压储液罐,液面达到上限位时进液电磁阀断电关闭,使液位保持稳定。

 

图2 系统控制功能结构图

 

恒压储液罐下面是夹瓶及装瓶头部分,共有20个灌装头。夹瓶装置由气压缸驱动下降,下降到位后,夹瓶装置由另一组气缸夹紧定位,下降及夹紧由行程开关控制位置。夹紧定位后,灌装头由第三组气缸驱动下降,到位后灌装头电磁阀打开,开始灌液,延时后电磁阀关闭,通过控制电磁阀的开启时间达到灌装容量控制。放瓶动作流程如图3所示。

 

图3 放瓶动作流程

 

传送带电动机由变频器控制,实现无级变速,达到系统经济运行的目的。电机启动1s后,进瓶气缸缩回、开始进瓶,3s后出瓶处气缸伸出挡住空料瓶。进瓶处设置光电开关检测进瓶个数,当达到相应数量后传送带电动机停止。灌装头下降到瓶口,由通过触摸屏输入的时间,使PLC控制灌装头的开启时间。灌装结束后,灌装头上升,夹瓶装置放松、上升。出瓶处气缸缩回,传送电动机又开始转动,1s后进瓶处气缸缩回,光电开关又开始检测进瓶个数。出瓶动作流程如图4所示。

 

图4 出瓶动作流程

 

在本项目中,需要研究的重点课题有以下几点:(1)电子凸轮代替时序控制;(2)暂停功能;(3)工位判断;(4)回零停止;(5)急停保护;(6)曲柄的线性处理;(7)凸轮表的变换。其中,暂停功能和曲柄的线性处理是客户以往旧设备未能实现的功能。

 

3系统解决方案

 

3.1方案配置(见表1)

表1 系统方案配置表

NJ-PA3001 1

NJ501-1400 1

R88D-KN10H-ECT-Z 3

R88M-K1K020T-BS2-Z 3

R88D-KN15H-ECT-Z 4

R88M-K1K520T-S2-Z 4

R88D-KN20H-ECT-Z 4

R88M-K2K020T-BS2-Z 4

R88D-KN30H-ECT-Z 2

R88M-K3K020T-S2-Z 2

R88D-KN50H-ECT-Z 1

R88M-K4K020T-S2-Z 1

R88D-KN50H-ECT-Z 2

R88M-K5K020T-BS2-Z 2

 

3.2系统功能实现

 

(1)电子凸轮代替时序控制

 

以“进瓶水平”(MC_BottleInHorizontal)为例,主轴为虚轴,从轴为实轴。时序图如图5所示。

 

图5 时序控制图

 

主轴以360为一个周期,进行循环速度控制。主轴、从轴都在零位。从轴开始的时候并不启动,而是在主轴位置到达285时开始启动,当主轴位置到达360时,从轴停止。在下一个周期,主轴到达120的时候,从轴开始返回(反转),主轴位置到达220的时候,从轴停止(回零位)。进瓶水平轴与主轴构成的电子凸轮表如图6所示。

 

图6 进瓶水平轴与主轴构成的电子凸轮表

 

从图6可以看到,主轴为0的时候,从轴也是0,而根据时序图的要求,从轴的“0”应该在主轴的“285”。显然这样的动作是不正确的。这样编制凸轮表的原因在于,NJ的电子凸轮表的起始点必须为两个“0”,即主轴、从轴都从0开始,如图7所示。

 

图7 NJ电子凸轮表

 

解决这个问题的办法是对编制好的凸轮表进行“偏移”,偏移的程序如图8所示。

 

图8 偏移程序

 

通过MasterOffset将主轴向后偏移280,这时的动作时序和凸轮形状就与工艺要求相符了,但要注意的是,这时的从轴起始位置不为0,会造成起始速度“无穷大”,从而引发伺服报警。将MasterScaling设置为280,就可以将从轴的起始点推迟到“主轴280”的位置,当主轴启动时,从轴并不启动,而是等到主轴到达280位置时再启动,这样就可以实现客户的工艺要求了。

 

(2)暂停功能

 

这套系统相比以前用CS、CJ来做的系统而言,一个很重要的亮点就是可以很容易的实现“暂停功能”,具体程序如图9所示。

 

图9 暂停功能程序1

 

虚轴的启动采用速度控制指令,以360为周期循环运动,见图10。

 

图10 暂停功能程序2

 

当需要暂停设备时,只需执行MC_Stop指令即可。当再次启动时,只需再次执行MC_Velocity指令,设备会从当前停止的位置继续运行。暂停的好处是,当操作人员需要暂时停止设备,做简单处理,后面又需要快速恢复生产状态时,不需要重新寻原点。对生产效率的提高帮助很大。

 

(3)工位判断

 

每排模板上应该夹住10个瓶子进行灌装、加盖、整盖、拧盖、判断缺盖等工序,但由于各种客观情况(风道等问题),并不能保证每次都夹满10个瓶子。当少于10个瓶子的时候,整排都不能进行任何操作,否则设备会产生严重故障(比如无瓶加盖会卡住模板)。解决这个问题的办法是,采用位移指令进行工位判断,具体程序如图11所示。

 

图11 工位判断程序

 

(4)回零停止

 

当按下停止按钮后,各轴的最终停止位置必须是自己的“原点”,这样,在下一次启动时,就不需要重新全体寻原点了(全体回零时间较长)。另外一方面,如果各轴都在原点的话,绝对不会出现“撞车”的现象,否则如果其中一根轴不在原点就停止动作,其它的轴在回零过程中很容易撞上它。回零停止的方法采用Cam_Out指令,程序如图12所示。

 

图12 回零停止程序

 

如图12程序所示,当需要停止主拖动轴时,必须要等待主拖动当前动作完成后。根据虚轴的位置判断,当虚轴处于90到140之间时,主拖动处于停止状态,这时执行MC_CamOut指令,就可以将这个从轴顺利脱出凸轮表。

 

在启动和停止过程中,必须特别注意一个问题,那就是回零停止和启动过程一样,必须要按照严格的顺序来执行。例如,停止时,“出瓶”早于“主拖动”,“主拖动”早于“进瓶”,而进瓶时刚好相反。这样才能保证在下次启动时,出瓶工位的瓶子刚好被抓出,而进瓶工位则是空的,刚好可以开始放瓶。如果不按照顺序启动,则会使进瓶工位“有瓶”状态下打开模板,导致瓶子掉落;或者出瓶工位“有瓶”,但不抓瓶,导致瓶子转到机器底下。这些都是不允许的。

 

(5)急停保护

 

对于“撞车”的保护,是整个系统设计中非常重要的一部分。如果所有轴都能够严格按照自己凸轮曲线进行运动,并且没有挂进凸轮的轴也能够正常动作的话,“撞车”原则上是不会发生的。但由于伺服故障、气缸故障等诸多因素的产生,会使得“撞车”发生的概率增加。

 

“撞车”的情况可以分为两大类,一类是“凸轮动作”内部碰撞,另一类是凸轮动作与非凸轮动作之间的碰撞。例如:进瓶抓瓶机构与进瓶皮带之间,由于进瓶抓瓶的原点位于进瓶皮带上方,下移放瓶时需要水平和垂直两根轴同时动作,才能绕过皮带。如果此时进瓶水平轴由于种种原因没有动作,只有垂直轴在动作,气爪将直接砸在皮带上,造成设备严重的损坏。这属于凸轮动作内部撞车。再例如:当拧盖机构进行拧盖时,拧盖爪抓在瓶子上,如果此时拖板提前开始动作,则会将瓶子拉坏,甚至将模板掀翻。这属于凸轮轴与非凸轮轴之间的碰撞。为避免这些问题的产生,编写了一系列程序,部分程序如图13所示。

 

图13 进、出瓶模板的空间保护程序

 

图13所示两段程序是对进、出瓶模板的空间保护,当模板被气缸顶起时,模板绝对不能拖动,否则会被掀翻。这里依旧采取通过对主轴位置的判断,来判断从轴。当主轴位置处于320和360之间时,模板被气缸顶起,同时由模板开合轴将模板分开。如果此时气缸突然下降,模板将来不及合拢,而被掀翻。此时可通过MC_ImmediateStop指令完成急停操作。

 

(6)曲柄的线性处理

 

整套设备采用了多个曲柄机构,比如灌装、拧盖升降等等。根据曲柄机构的特性,当伺服匀速旋转时,曲柄机构的垂直速度并不是匀速的,并且垂直位置也不是线性变化的。而灌装机构需要一个相对稳定的速度(主要是防止液体飞溅),和一个线性的标定(可以通过对伺服位置的设定,直接标定灌装量)。解决速度基本恒定的方式如下:

 

IF 30>=MC_Fill1.Act.Pos OR (180>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>150) THEN

Fill1_Velocity_Out:=LREAL#1*灌装1速度HMI;

ELSIF (60>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>30) OR (150>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>120) THEN

Fill1_Velocity_Out:=LREAL#0.8*灌装1速度HMI;

ELSIF (80>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>60) OR (120>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>100) THEN

Fill1_Velocity_Out:=LREAL#0.5*灌装1速度HMI;

ELSIF 100>=MC_Fill1.Act.Pos AND MC_Fill1.Act.Pos>80 THEN

Fill1_Velocity_Out:=LREAL#0.3*灌装1速度HMI;

END_IF;

 

 

用以上公式,可以在灌装伺服到达各个位置时,给予不同的速度,通过对角速度赋予“多段速”来实现垂直速度的基本恒定。再通过每10ms写入一次速度的方式,来实现速度的变换。解决位置可标定的方法如下:

 

纠偏角度转弧度:=DegToRad(REAL#15);

Fill1_Feed_rad:=ACOS(临时数字1);

Fill1_Feed:=RadToDeg(Fill1_Feed_rad)-REAL#15;

临时数字:=REAL#3.14*REAL#16*REAL#7.5;

临时数字1:=COS(纠偏角度转弧度)-HMI气缸1进给量/临时数字;

通过平面解析几何和三角函数运算,求得伺服角位置和曲柄垂直位置之间的线性关系。

最终实现,触摸屏上面可以直接设定以“毫升”为单位的灌装量值。

 

(7)凸轮表的变换

 

凸轮表编制好以后,每根轴都会按照自己的凸轮表数据进行重复运动。但是,如果更换了产品(主要是瓶子大小有变化),个别轴的动作就要发生变化。例如:把220mm高的瓶子换成了300mm,那么出瓶放瓶时,气爪距离传送带的高度就要增加,这就要求凸轮表可以通过程序进行变换,程序如下:

 

FOR IndexOutUp := UINT#10#0 TO UINT#10#360 DO

IF IndexOutUp<=UINT#10#70 THEN

Cam_BottleOutUp[IndexOutUp].Distance:= Cam_BottleOutUp00[IndexOutUp].Distance*2*BottleOutUpFeed1;

ELSIF IndexOutUp>UINT#10#70  and IndexOutUp<=UINT#10#85 THEN

Cam_BottleOutUp[IndexOutUp].Distance:= (Cam_BottleOutUp00[IndexOutUp].Distance-0.5)*2*(BottleOutUpFeed2 - BottleOutUpFeed1)+BottleOutUpFeed1;

ELSE 

Cam_BottleOutUp[IndexOutUp].Distance:= Cam_BottleOutUp00[IndexOutUp].Distance * BottleOutUpFeed2;

END_IF;

END_FOR;

 

在上述程序中,Cam_BottleOutUp00[IndexOutUp].Distance是出瓶顶升凸轮表的点,IndexOutUp是FOR循环语句的循环变量,通过FOR循环语句,将凸轮表内的若干个点依次更改,再通过如下指令进行保存,这样,这根从轴就会按照新的凸轮表来进行运动了。

 

 

4结束语

 

通过系统现场调试及客户的试生产,所有控制要求的解决方案都得以验证,满足客户的改造需求,并且效果良好。

本文地址:http://ca800.com/apply/d_1nrutga2l29uq_1.html

拷贝地址

版权声明:版权归中国自动化网所有,转载请注明出处!

留言反馈
  • 评价:

  • 关于:

  • 联系人:

  • 联系电话:

  • 联系邮箱:

  • 需求意向:

  • 验证码:

    看不清楚?

  • 在线咨询