整套设备采用了多个曲柄机构,比如灌装、拧盖升降等等。根据曲柄机构的特性,当伺服匀速旋转时,曲柄机构的垂直速度并不是匀速的,并且垂直位置也不是线性变化的。而灌装机构需要一个相对稳定的速度(主要是防止液体飞溅),和一个线性的标定(可以通过对伺服位置的设定,直接标定灌装量)。解决速度基本恒定的方式如下:
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;
图14 解决速度基本恒定的方式
用以上公式,可以在灌装伺服到达各个位置时,给予不同的速度,通过对角速度赋予“多段速”来实现垂直速度的基本恒定。再通过每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循环语句,将凸轮表内的若干个点依次更改,再通过如下指令进行保存,这样,这根从轴就会按照新的凸轮表来进行运动了。
图15 按照新的凸轮表进行运动
4结束语
通过系统现场调试及客户的试生产,所有控制要求的解决方案都得以验证,满足客户的改造需求,并且效果良好。
台达DOP-W系列提供10.4”/12”/15&rdqu…
JetNet 3005G · 5口全千兆RJ-45交换机 …
显示规格 一般规格 环境规格 结构规格 外形…
功能规格 …
功能规格 …
西门子SIMATIC S7-400PLC的主要特色为:极高的处理…