目的:在自动化控制的项目中,常常需要进行收放卷的控制,在拉料轴线速度是恒定的情况下,放卷的过程中,由于卷的半径在不断减小,为了保持线速度的恒定,需要进行对电机进行变速控制,而变速控制的核心是要求出卷的实时半径变化。放卷控制常与张力控制结合,在自动化控制项目中是难点。
本案例以国产信捷PLC为例子,循序渐进,通俗易懂,通过本例子,将学到以下内容:
1、卷径的求解方法;
2、电机放卷的变速控制方法;
3、C语言结构体的使用;
4、体会到结构体与宏定义的优缺点。
一、案例引入、总体思路
在机械设备中,常常会见到各种卷,比如
包装用的薄膜
锂电池卷绕的极片
卷径随着使用越来越小,如果电机转速不变,那么线速度就会越来越小,显然是不符合控制要求的。如果需要达到恒定线速度,就需要对电机进行变速控制,总体思路如下图。
如图上所示,输入参数有3个:
外半径R,内半径r,料的厚度h。
通过以上3个参数,可以求得几个输出参数,其中剩余卷径surplus_R是最为核心的参数。下面将进行详细解释,以帮助大家理解。
由输入的3个参数可以求得料的层数n:
n = ( R - r ) / h(核心公式)
其中R为外半径,r为内半径,h为料的厚度(常见的比如0.07mm,7个丝)。
在编程的时候,每转一圈层数减1,可知剩余层数surplus_layer:
surplus_layer = n - 1
知道了料的剩余层数surplus_layer ,可以求得剩余半径surplus_R:
surplus_R = surplus_layer * h r(核心公式)
由微积分思想、卷的同心圆模型(不必纠结推导过程)可得以下公式
卷的总长度:
2πnr πn^2*h(核心公式)
其中n为圈数。
下面具体看c语言编程写法。
一、求卷径的函数编程
为了容易理解公式,先看简单的编程方法。
1.1 直接宏定义的写法
然而,图片中程序使用宏定义需要关联多个寄存器,为了提高程序的复用性,减少后续使用的修改,我们可以考虑把这个求卷径的c语言写为结构体指针的形式,这样在调用的时候就只需要修改首地址了,不用改c语言里面的程序。如下图所示。
1.2 使用结构体的写法
二、计算实际发脉冲的频率
前面计算的输出半径R,可以作为计算脉冲频率函数FREFUNC的输入。
为了方便理解后面的内容,先理解一下角速度。
2.1 理解角速度
伺服/步进电机要转动,可以通过PLC发脉冲的方式进行控制。
其中有2个核心参数,一是脉冲个数,二是脉冲频率。
其中脉冲个数代表着电机转动的角度(移动的距离),脉冲频率代表着电机转动的速度。
举例理解:
众所周知,一圈有360度,为了满足精度和速度要求,可以把每圈脉冲数PPR(Pulse Per Revolution)设为3600,即电机转动1圈需要3600个脉冲,转动1度需要10个脉冲。
把频率设为3600,那么在1s内发3600个脉冲就意味着电机1s转1圈。
把频率设为36000,那么在1s内发36000个脉冲就意味着电机1s转10圈。
2.2 频率公式推导
如图,频率3600对应的电机角速度为1转/s,对应的线速度也就是其周长2πR。
假如外半径R为120mm,拉料轴的线速度要求是800mm/s,则可算出对应的频率为3820。
由此可知频率的计算公式为:
频率=(每圈脉冲数*要求的线速度)/(2πR)
c语言编程写法为:
三、验证正确性
为了验证以上代码、公式的正确性,可以看如下2张图片
设定电机目标拉料线速度为800ms/s,当电机转速为1转/s,外半径为127.3mm时,线速度为800mm/s,验证正确。
设定电机目标拉料线速度为3200ms/s,当电机转速为10转/s,外半径为50.9mm时,线速度为3200mm/s,验证正确。
四、梯形图编程
好了,希望上述的知识分析大家能看懂、理解。我是何同学JoseHe,一个自动化专业即将毕业的学生。关注我,分享更多自动化内容。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved