1硬件说明
这是我们的培训时候学习使用的OEM设备,主要就是收放卷运动,涉及实时同步运行,张力控制等基本工艺。
硬件说明如下:
下面2个变频器控制的电机-左右收放卷
上面2个伺服控制的电机-上面左右两个牵引伺服轴
中间2个伺服控制的电机-张力控制摆杆轴
下面一个是凸轮同步轴,主要用途就是让这个电机上方的纸带静止,拍照。
这里控制器使用的是汇川AM600中型PLC,编程语言为ST文本高级编程语言。平台是codesys平台
左右还有2台纠偏仪。
2 张力控制
张力控制是收放卷相关项目中比较重要的工艺点。需要设置多轴同步运行。下面为大家介绍一下,张力控制中细分出来的工艺点。
1.实时卷径计算
要实现张力恒定的第一步就是,两个收放卷轴和两个牵引伺服轴的线速度相等。
伺服的运行直接使用的是codesys平台下的速度运行指令MC_MoveVelocity,通过程序设置,使得伺服牵引轴以一定的速度运行。但是下面的收放卷轴使用的是变频器控制,而变频器的速度实际上是通过频率设置的。当然我们的后台经过配置,AM600使用canopen总线与变频器通信,通信细节我们的软件平台已经完成好了。我们只要设置频率一定,那么变频器的转速就能固定。
这里由于收放卷轴上的物料厚度不同(半径不同),如果两个轴的转速如果一样,就会出现多卷,少卷的情况。这里需要根据实时的卷径更新我们的变频器频率即可。
实时卷径计算的2种方法:
1.线速度相等法
适用情况:(伺服收放卷+伺服牵引轴)或者(收放卷变频器轴+伺服牵引轴)
线速度相等:V线收放卷 = V线牵引,这里设 V线收放卷 = V1, V线牵引 = V2;也就是V1=V2 = V
收放卷线速度:
V1 = W1R1,R1 = V / W1
W1 = 2πn,又电机的n = 60f/p.
这里我们知道电机额定频率200HZ对应的电机转速是3000转,那么我们就能算出电机的P极对数为4,将上面几个公式化简一下,就能算到实时卷径R,但是这里注意,这是没有减速机减速比的情况,如果有减速机,还需要乘以减速比系数。
这里代码考虑了收放卷正反转反馈频率的±问题,这里进行了判断处理。同时反馈的频率通过trace追踪功能发现波形比较抖动不平稳,这里我们采用滤波操作。这里使用的是最简单的一阶低通滤波器。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// r = v/w n = 60f/p 额定转速3000 额定频率200HZ 则p = 4 i_收放卷FeedBackFreq := UINT_TO_INT(ui_收放卷FeedBackFreq); IF i_收放卷FeedBackFreq > 0 THEN f_收放卷FeedBackFreq := INT_TO_REAL(i_收放卷FeedBackFreq) / 100.0; //对频率 进行一阶低通滤波 f_AfterFliterFeedBackFreq := 0.99 * f_AfterFliterFeedBackFreq + f_收放卷FeedBackFreq * 0.01; f_收放卷_R := (f_DecScale * f_HMI_Speed )/(2* f_PI * (60 * f_AfterFliterFeedBackFreq / f_P)); b_顺时针旋转Flag := FALSE; ELSIF i_收放卷FeedBackFreq < 0 THEN f_收放卷FeedBackFreq := INT_TO_REAL(- i_收放卷FeedBackFreq) / 100.0 ; f_AfterFliterFeedBackFreq := 0.99 * f_AfterFliterFeedBackFreq + f_收放卷FeedBackFreq * 0.01; f_收放卷_R := (f_DecScale * f_HMI_Speed )/(2* f_PI * (60 * f_AfterFliterFeedBackFreq / f_P)); b_顺时针旋转Flag := TRUE; END_IF f_Freq := f_收放卷FeedBackFreq; f_AfterFliterFreq := f_AfterFliterFeedBackFreq; IF f_收放卷_R < f_收放卷_Min THEN f_收放卷_R := f_收放卷_Min; //需要设置停止保护了 END_IF |
2.线长相等法
适用情况:伺服收放卷+伺服牵引轴
这个方法必须使用的是伺服,因为伺服可以反馈准确的位置信息。这个方法,牵引轴伺服每转动一定的距离,就算一次当前的卷径。牵引轴伺服走过的距离是,L1,下面的收放卷轴的伺服也走过L1,这个可以通过程序获得收放卷轴走过的距离。然后记录下此时收放卷轴伺服的旋转角度信息,这里我们根据以下公式计算:
L1 = L2 = L
L1 = S*x 其中S代表收放卷的周长
x代表收放卷轴走过L1长度时的旋转多少圈。度数/360 圈。S=2πR,可以算出实时的卷径数据,这里也要注意是否需要考虑电机减速度比影响。
2.力的给定
首先应该设置伺服输出为力矩模式,默认情况下伺服是跑位置模式的。设置好模式之后,就设置输出力矩的大小即可,我们输出恒定的力矩即可。SMC_SetTorque这个功能块中 fTorque这个参数,范围是0到1000代表的是输出额定频率的0到百分之一百。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
SMC_SetControllerMode_摆杆左( Axis:= Axis4_摆杆左, bExecute:= TRUE, nControllerMode:= SMC_Torque, bDone=> , bBusy=> , bError=> , nErrorID=> ); SMC_SetControllerMode_摆杆右( Axis:= Axis5_摆杆右, bExecute:= TRUE, nControllerMode:= SMC_Torque, bDone=> , bBusy=> , bError=> , nErrorID=> ); IF SMC_SetControllerMode_摆杆左.bDone = TRUE AND SMC_SetControllerMode_摆杆右.bDone = TRUE THEN IF Axis4_摆杆左.byControllerMode = 1 AND Axis5_摆杆右.byControllerMode = 1 THEN SMC_SetTorque_摆杆左( Axis:= Axis4_摆杆左, bEnable:= TRUE, fTorque:= 400, bBusy=> , bError=> , nErrorID=> ); SMC_SetTorque_摆杆右( Axis:= Axis5_摆杆右, bEnable:= TRUE, fTorque:= -300, bBusy=> , bError=> , nErrorID=> ); bTorqueSetOkFlag := TRUE; END_IF END_IF |
3.PID控制
这里主要是摆杆轴控制,左右两个摆杆轴,平衡位置是一个在-90度一个在90度(通过软件后台,设置伺服转动一周后的数据为360度)然后我们目标位置就是-90度和90度。实时数据是靠摆杆伺服轴反馈的数据。
运行PID控制功能块,将PID的输出值映射到 收放卷轴的变频器上(PID输出值 映射为 频率)叠加到变频器主频率源上。
变频器实时频率 = 主频率 + 辅频率
其中主频率为根据实时卷径计算出来的变频器频率,辅频率是根据PID控制器计算后的输出频率。这里需要考虑PID参数方向问题,本篇不多赘述,关于PID详细介绍请参见:PID控制器从入门到精通详细教程版
3 凸轮同步
这里是AM600自带的电子凸轮功能,codesys平台对凸轮指令也进行了封装MC_CamTableSelect和MC_CamIn、MC_CamOut指令,这里不多加赘述,请大家自己看手册
转载请注明:燕骏博客 » 间歇式工作台运转收放卷张力控制工艺介绍-OEM设备学习笔记
赞赏作者微信赞赏支付宝赞赏