目的:在自動化控制的項目中,常常需要進行收放卷的控制,在拉料軸線速度是恒定的情況下,放卷的過程中,由于卷的半徑在不斷減小,為了保持線速度的恒定,需要進行對電機進行變速控制,而變速控制的核心是要求出卷的實時半徑變化。放卷控制常與張力控制結合,在自動化控制項目中是難點。
本案例以國産信捷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,一個自動化專業即将畢業的學生。關注我,分享更多自動化内容。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!