国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ARM的嵌入式PLC直線插補(bǔ)運(yùn)動(dòng)控制方法及指令實(shí)現(xiàn)

2023-02-13 09:27:48劉青林王庭有
化工自動(dòng)化及儀表 2023年1期
關(guān)鍵詞:動(dòng)點(diǎn)象限嵌入式

劉青林 王庭有

(昆明理工大學(xué)機(jī)電工程學(xué)院)

PLC在運(yùn)動(dòng)控制系統(tǒng)中, 脈沖信號(hào)的輸出方法主要有以下兩種[1]:

a.脈沖輸出功能集成在PLC中,這是目前大部分PLC采用的方式,例如三菱FX3U系列PLC、西門子S7-1200系列PLC等。此類PLC自帶高速脈沖輸出功能,但與單獨(dú)的運(yùn)動(dòng)控制模塊相比速度較慢。

b.添加脈沖輸出模塊。 這種模塊能夠?qū)崿F(xiàn)較簡單的運(yùn)動(dòng)控制,但脈沖輸出的速度很高,適合在對(duì)速度和精度有較高要求的場合使用。

在定位控制中,一路脈沖信號(hào)只能控制一臺(tái)步進(jìn)電機(jī)的運(yùn)動(dòng),一個(gè)單軸的運(yùn)動(dòng)軌跡只能是直線運(yùn)動(dòng)或者圓周運(yùn)動(dòng)。 但有時(shí)在工業(yè)控制中,又必須實(shí)現(xiàn)多個(gè)軸的相互聯(lián)動(dòng)運(yùn)動(dòng)。 例如在數(shù)控機(jī)床的加工過程中,在理論上刀具必須非常精確地沿著被加工工件的輪廓運(yùn)動(dòng),同時(shí)滿足對(duì)加工對(duì)象的精度要求[2]。 但是真正加工的工件輪廓可能是各種形狀,有一些是簡單的曲線,如直線段和圓弧,還有一些是復(fù)雜曲線。 直接生成復(fù)雜曲線的運(yùn)動(dòng)軌跡會(huì)耗費(fèi)大量的計(jì)算資源,因此在實(shí)際應(yīng)用中通常使用簡單的線型去擬合復(fù)雜曲線,同時(shí)采用一系列微小的直線段去逼近直線或圓弧,以滿足對(duì)控制精度的要求。 直線插補(bǔ)算法可根據(jù)加工速度的要求, 在給定的數(shù)據(jù)點(diǎn)坐標(biāo)之間,連續(xù)計(jì)算出若干中間點(diǎn)的坐標(biāo)值,從而擬合出預(yù)設(shè)的曲線。

1 直線插補(bǔ)算法

筆者主要利用逐點(diǎn)比較法實(shí)現(xiàn)插補(bǔ)算法控制。 逐點(diǎn)比較法的基本原理為:在被控對(duì)象(被控工件)運(yùn)動(dòng)過程中,不斷地使被控對(duì)象與插補(bǔ)直線進(jìn)行相對(duì)位置比較,并依據(jù)結(jié)果使被控對(duì)象沿著運(yùn)動(dòng)誤差逐漸縮小的方向, 做平行于x軸或y軸方向的階梯式直線運(yùn)動(dòng),直到到達(dá)直線運(yùn)動(dòng)的終點(diǎn)為止[3~5]。逐點(diǎn)比較法的直線插補(bǔ)過程示意圖如圖1所示。

圖1 逐點(diǎn)比較法的直線插補(bǔ)過程示意圖

以直線插補(bǔ)算法的第一象限(圖2)為例。

圖2 第一象限直線插補(bǔ)偏差位置判斷

設(shè)第一象限的運(yùn)動(dòng)軌跡為直線oN,終點(diǎn)坐標(biāo)N(XN,YN),動(dòng)點(diǎn)的位置有3種情況:位于點(diǎn)A、B或C。 設(shè)動(dòng)點(diǎn)P從o點(diǎn)開始通過直線插補(bǔ)的方式最后到達(dá)N點(diǎn),完成oN的位移。首先需要判斷動(dòng)點(diǎn)的位置,假設(shè)動(dòng)點(diǎn)坐標(biāo)為B(X,Y),位于oN下方,此時(shí)oB的斜率tan θB小于oN的斜率tan θN,整理得:

同樣,也可以得到動(dòng)點(diǎn)位于A點(diǎn)、C點(diǎn)時(shí)的公式:

a.動(dòng)點(diǎn)位于A點(diǎn)時(shí),YXN-YNX=0;

b.動(dòng)點(diǎn)位于C點(diǎn)時(shí),YXN-YNX>0。

設(shè)判斷公式F=YXN-YNX,則有:

a. 當(dāng)F=0時(shí),工件可以向x軸或y軸移動(dòng),但通常規(guī)定向x軸方向移動(dòng);

b.當(dāng)F<0時(shí),工件向y軸方向移動(dòng);

c.當(dāng)F>0時(shí),工件向x軸方向移動(dòng)。

工件每移動(dòng)一步后都需要進(jìn)行判定,確定下一步的運(yùn)行方向,如此反復(fù),直到到達(dá)終點(diǎn)N。

(3)效益估算。①節(jié)水效益本項(xiàng)目總干渠節(jié)水量Q計(jì)算見(3-1),控制灌溉面積57.92萬畝,得出共節(jié)水1185.51萬m3,按照當(dāng)?shù)爻杀舅畠r(jià)0.10元/m3計(jì)算,年節(jié)水金額為118.55萬元。

由于計(jì)算過程中需要用到乘法,會(huì)直接影響嵌入式PLC的運(yùn)算速度, 因此為了簡化算法進(jìn)行以下變換:

a. 當(dāng)F≥0時(shí), 動(dòng)點(diǎn)向x軸方向運(yùn)動(dòng)一步到達(dá)點(diǎn)(X+1,Y),令新的偏差值為F′,代入判斷公式并整理得F′=F-YN;

b. 當(dāng)F<0時(shí),動(dòng)點(diǎn)向y軸方向運(yùn)動(dòng)一步到達(dá)點(diǎn)(X,Y+1),代入判斷公式并整理得F′=F+XN。

工件到達(dá)曲線終點(diǎn)時(shí)必須自動(dòng)停止運(yùn)行,需要一個(gè)計(jì)數(shù)器統(tǒng)計(jì)運(yùn)行的步數(shù),并且在每一步后進(jìn)行終點(diǎn)判斷,當(dāng)計(jì)數(shù)值為0時(shí),表示工件已經(jīng)到達(dá)終點(diǎn),停止運(yùn)動(dòng)。

2 脈沖信號(hào)輸出端硬件設(shè)計(jì)

嵌入式PLC的脈沖輸出硬件電路如圖3所示。該電路通過高速光電耦合器6N137將PLC內(nèi)外進(jìn)行電氣隔離,該光耦的最大傳輸速度可以達(dá)到10 Mbit/s, 并采用PNP三極管2SA954對(duì)外部設(shè)備進(jìn)行驅(qū)動(dòng)。OUT0和OUT1連接STM32單片機(jī)的PE9和PE10 引 腳, 與 單 片 機(jī) 內(nèi) 部 的TIM8_CH1 和TIM8_CH2相匹配,Q0和Q1接外部負(fù)載,COM_Q0和COM_Q1為Q0、Q1的公共端。

圖3 嵌入式PLC的脈沖輸出硬件電路

3 STM32單片機(jī)脈沖輸出方式

嵌入式PLC的硬件平臺(tái)采用STM32單片機(jī)作為中央處理器, 該單片機(jī)輸出脈沖的方法有很多,包括PWM輸出、強(qiáng)制輸出、電平翻轉(zhuǎn)輸出及單脈沖輸出等[6]。

本系統(tǒng)中嵌入式PLC選擇定時(shí)器的PWM輸出作為運(yùn)動(dòng)控制指令脈沖信號(hào)的輸出方法。 運(yùn)動(dòng)控制指令需要輸出指定數(shù)量的脈沖,其控制方法是使用STM32單片機(jī)中的定時(shí)器主從模式, 其結(jié)構(gòu)示意圖如圖4所示。

圖4 定時(shí)器主從模式結(jié)構(gòu)示意圖

4 直線插補(bǔ)指令實(shí)現(xiàn)

直線插補(bǔ)指令的作用是讓兩個(gè)軸的聯(lián)動(dòng)沿著一條直線軌跡運(yùn)動(dòng)。 在直線插補(bǔ)指令中,一般起點(diǎn)為兩軸當(dāng)前所在位置,而終點(diǎn)需要在指令中進(jìn)行設(shè)置,分別是x軸和y軸的增量值。 直線插補(bǔ)運(yùn)動(dòng)指令梯形圖如圖5所示。 其中,IN1為脈沖頻率,IN2為直線插補(bǔ)的步長,IN3為x軸終點(diǎn)坐標(biāo),IN4為y軸終點(diǎn)坐標(biāo),OUT1為x軸輸出端口,OUT2為y軸輸出端口。

圖5 直線插補(bǔ)運(yùn)動(dòng)指令梯形圖

直線插補(bǔ)程序流程如圖6所示。

圖6 直線插補(bǔ)程序流程

直線插補(bǔ)指令執(zhí)行步驟如下:

a. 開始直線插補(bǔ)指令后,首先對(duì)運(yùn)動(dòng)進(jìn)行規(guī)劃,將需要的參數(shù)進(jìn)行初始化,計(jì)算出插補(bǔ)的總步數(shù),確定直線插補(bǔ)的象限,并將直線插補(bǔ)指令的標(biāo)志位置1;

b. 判斷軸所在的象限,并根據(jù)其位置進(jìn)行插補(bǔ);

c. 根據(jù)步驟b計(jì)算出的輸出軸、脈沖數(shù)量、運(yùn)動(dòng)方向調(diào)用脈沖輸出程序,進(jìn)行脈沖輸出;

d. 判斷是否已經(jīng)抵達(dá)曲線的終點(diǎn),若還沒抵達(dá)曲線的終點(diǎn)則重復(fù)執(zhí)行步驟b,若已完成,則跳出程序。

5 結(jié)束語

筆者分析了直線插補(bǔ)算法的原理,依托于嵌入式PLC硬件平臺(tái),設(shè)計(jì)并實(shí)現(xiàn)了直線插補(bǔ)指令,使PLC可以進(jìn)行雙軸運(yùn)動(dòng)控制。 筆者設(shè)計(jì)的基于ARM的嵌入式PLC直線插補(bǔ)運(yùn)動(dòng)控制方法, 通過擬合預(yù)設(shè)曲線,在滿足加工速度要求的同時(shí)可以滿足對(duì)控制精度的要求。

猜你喜歡
動(dòng)點(diǎn)象限嵌入式
復(fù)數(shù)知識(shí)核心考點(diǎn)綜合演練
函數(shù)中的動(dòng)點(diǎn)問題解答策略
基于四象限零電壓轉(zhuǎn)換PWM軟開關(guān)斬波器的磁懸浮列車
電子測試(2018年11期)2018-06-26 05:56:04
搭建基于Qt的嵌入式開發(fā)平臺(tái)
分類討論化解動(dòng)點(diǎn)型題
平面直角坐標(biāo)系典例分析
動(dòng)點(diǎn)軌跡方程的解法探討
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
創(chuàng)新思維竟賽
“以不變應(yīng)萬變”,求動(dòng)點(diǎn)的路徑長度
井研县| 平舆县| 通榆县| 遂昌县| 林口县| 舒兰市| 鄂托克前旗| 沁源县| 青海省| 桃江县| 洞头县| 天峨县| 榆中县| 伊春市| 常宁市| 商南县| 东光县| 锡林浩特市| 新密市| 娱乐| 镇巴县| 塔城市| 黄龙县| 紫云| 乐山市| 英山县| 双鸭山市| 望城县| 铜陵市| 抚顺市| 城步| 罗甸县| 枞阳县| 阿勒泰市| 彭州市| 永清县| 福安市| 汶上县| 八宿县| 柞水县| 尼木县|