| 注冊(cè)| 產(chǎn)品展廳| 收藏該商鋪

行業(yè)產(chǎn)品

當(dāng)前位置:
上海邑斯自動(dòng)化科技有限公司>>技術(shù)文章>>S7-200SMART 圓形軌跡的算法

S7-200SMART 圓形軌跡的算法

閱讀:828        發(fā)布時(shí)間:2022-11-30
圖片
(一)電氣設(shè)備

(1)原理圖:Q0.0為X軸脈沖,Q0.2X軸方向;Q0.1為y軸脈沖,Q0.7y軸方向

圖片

(2)實(shí)物圖:三個(gè)步進(jìn)驅(qū)動(dòng)器,三套電機(jī)配合絲桿,定義往電機(jī)方向移動(dòng)為正方向,絲桿的邏輯為4mm,步進(jìn)驅(qū)動(dòng)的細(xì)分設(shè)置為3200個(gè)脈沖一轉(zhuǎn)。如下圖所示:

圖片



圖片
(二)走圓軌跡算法


西門子S7-200SMART系列PLC不支持圓弧插補(bǔ)功能,所以需要自己根據(jù)算法進(jìn)行計(jì)算后分別驅(qū)動(dòng)X軸和Y軸的移動(dòng)從而來(lái)實(shí)現(xiàn)畫圓功能,要驅(qū)動(dòng)XY軸畫圓,可采用極限逼近法,把畫圓弧變成畫線段,如下圖所示左側(cè)為六等分,角度a=30°,右側(cè)為十二等分,角度a=15°。


圖片


從上圖中可以看出,當(dāng)?shù)冗叾噙呅蔚倪呍蕉鄷r(shí),則多邊形的軌跡就越和圓相近,所以當(dāng)角度a足夠小時(shí),則得到的多邊形軌跡就越與圓接近。根據(jù)以上分析需要完成畫圓功能,我們需要知道“圓心坐標(biāo)值"、“圓的半徑"、“畫圓的速度",然后根據(jù)分為三部分來(lái)實(shí)現(xiàn):

1、畫筆移動(dòng)到圓上

把XY軸分別回原點(diǎn),回原點(diǎn)后的位置默認(rèn)為XY平面坐標(biāo)的原點(diǎn),然后由原點(diǎn)移動(dòng)到圓心坐標(biāo),如下圖所示1#點(diǎn)為圓心,2#點(diǎn)為圓上點(diǎn)。


圖片


假設(shè)1#點(diǎn)的坐標(biāo)為(X1,Y1),速度為V,則X軸移動(dòng)的距離為X1Y軸移動(dòng)的距離為Y1。根據(jù)勾股定理可計(jì)算出原點(diǎn)到圓心的距離“Y(01)"、X軸移動(dòng)速度“VXaxis"和Y軸移動(dòng)速度“VYaxis" ,計(jì)算公式如下所示:


圖片


當(dāng)畫筆到達(dá)1#點(diǎn)后,然后Y軸不動(dòng),X軸以V的速度移動(dòng)半徑R的距離到達(dá)圓上2#點(diǎn)位置,假2#點(diǎn)的坐標(biāo)為(X2,Y2

2、畫筆開始畫圓

畫筆從2#點(diǎn)位置開始移動(dòng)畫圓,假設(shè)下個(gè)圓上的點(diǎn)為3#點(diǎn),坐標(biāo)為(X3,Y3,從圓心到3#點(diǎn)和從圓心到2#點(diǎn)的角度為a,如下圖所示:


圖片


根據(jù)三角函數(shù)可計(jì)算出3#點(diǎn)的坐標(biāo)(X3,Y3)的值分別為:

X3=Cos(a*R+X1,Y3=Sin(a*R+Y1

根據(jù)勾股定理可計(jì)算出XY軸要移動(dòng)的距離 “Y(2→3)"的值。X軸移動(dòng)速度“VXaxis"和Y軸移動(dòng)速度“VYaxis" ,計(jì)算公式如下所示:


圖片


注:此時(shí)X2和Y2為X軸和Y軸的當(dāng)前位置,X3和Y3為X軸和Y軸要移動(dòng)的目標(biāo)位置,速度需要取絕對(duì)值。

同理:當(dāng)畫筆到達(dá)3#點(diǎn)后,角度變?yōu)?span style="margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; font-family: Calibri;">2a,則對(duì)應(yīng)的圓上點(diǎn)為4#點(diǎn),坐標(biāo)為(X4Y4),如下圖所示:


圖片


根據(jù)三角函數(shù)可計(jì)算出4#點(diǎn)的坐標(biāo)(X4,Y4)的值分別為:

X4=Cos(2a*R+X1,Y4=Sin(2a*R+Y1

根據(jù)勾股定理可計(jì)算出XY軸要移動(dòng)的距離 “Y(34)"的值。X軸移動(dòng)速度“VXaxis"和Y軸移動(dòng)速度“VYaxis" ,計(jì)算公式如下所示:


圖片


注:此時(shí)X3和Y3為X軸和Y軸的當(dāng)前位置,X4和Y4為X軸和Y軸要移動(dòng)的目標(biāo)位置,速度需要取絕對(duì)值。

依次下去,每走完一次后,角度自加一次,當(dāng)角度值大于360°時(shí),則認(rèn)為畫圓完成。



圖片
(三)PLC程序



根據(jù)分析,對(duì)于S7-200SMART系列PLC的程序設(shè)計(jì)主要分為“運(yùn)動(dòng)向?qū)У慕M態(tài)配置"、“初始與會(huì)原點(diǎn)程序"、“速度計(jì)算程序"、“開始畫圓程序"



(1)初始化和回原點(diǎn)


圖片

圖片


2速度換算程序


圖片


(3)畫圓程序


圖片



圖片
子程序結(jié)構(gòu)




圖片

圖片

圖片




圖片
程序運(yùn)行



圖片

圖片

【延伸閱讀】S7-200 SMART 運(yùn)動(dòng)控制指令詳解                 


S7-200 smart 運(yùn)動(dòng)控制指令由編程軟件向?qū)?,運(yùn)動(dòng)控制指令有很多條構(gòu)成,且每條指令都帶有很多接口參數(shù),想要使用這些指令,要先知道接口是什么意思,雖然幫助文章都有解釋,但讀懂幫助文件也很費(fèi)勁,今天就詳細(xì)給大家介紹運(yùn)動(dòng)指令的使用。

S7-200 SMRAT 運(yùn)動(dòng)控制指令如下圖生成:

1、選擇"運(yùn)動(dòng)"右鍵打開。

圖片

2、本次就以"軸0"為例。

圖片

3、命個(gè)名字。

圖片

4、數(shù)字1位選擇工程單位,可以使工程單位,也可以使用脈沖。

數(shù)字2是電機(jī)旋轉(zhuǎn)一圈的脈沖量,我目前步進(jìn)撥碼設(shè)定是10000個(gè)脈沖旋轉(zhuǎn)一周

數(shù)字3是單位,根據(jù)自己需要設(shè)定

數(shù)字4是電機(jī)旋轉(zhuǎn)一圈的工程量,我設(shè)定的是360度,也就是說(shuō)10000個(gè)脈沖對(duì)應(yīng)360度。

圖片

5、方向控制,我是用的脈沖加方向,所以選擇單項(xiàng)2軸。

圖片

6、正負(fù)極限根據(jù)需要設(shè)定,我這個(gè)沒(méi)有正負(fù)極限就沒(méi)有選擇。

圖片

圖片

7、零電位使用,走絕對(duì)位置和相對(duì)位置之前一定要定義好原點(diǎn),否則絕對(duì)位置和相對(duì)位置不運(yùn)行。

圖片

8、0脈沖位置,也可以使用此點(diǎn)定義0點(diǎn)。

圖片

9、停止根據(jù)需要選擇,通過(guò)閱讀STP就能理解什么意思。

圖片

10、停止根據(jù)需要選擇,通過(guò)閱讀TRIG就能理解什么意思。

圖片

11、禁用根據(jù)需要選擇,通過(guò)閱讀DIS就能理解什么意思。

圖片

12、最大速度和最小速度根據(jù)現(xiàn)場(chǎng)情況設(shè)定,我設(shè)定最大速度為360度/秒。

圖片

13、JOG命令也就是手動(dòng)運(yùn)行,根據(jù)需要設(shè)定速度,建議設(shè)定小一些,看看運(yùn)行速度再調(diào)整。

圖片

14、此處設(shè)定加減速時(shí)間,也就是脈沖輸出的加減速時(shí)間,根據(jù)現(xiàn)場(chǎng)情況設(shè)定。

圖片

15、急停補(bǔ)償。

圖片

16、反沖補(bǔ)償,也就是校準(zhǔn)絲杠間隙。

圖片

17、參考點(diǎn)設(shè)定

圖片

18、找零點(diǎn)時(shí)速度和方向設(shè)定。

圖片

19、偏移量設(shè)定

圖片

20、搜索參考點(diǎn)方式選擇

圖片

21、從驅(qū)動(dòng)器中讀取絕對(duì)位置

圖片

22、曲線設(shè)定,我這里沒(méi)用曲線,沒(méi)有生成曲線。

圖片

23、點(diǎn)"建議"自動(dòng)分配地址。

圖片

24、組件

圖片

25、映射顯示

圖片

26、完成,點(diǎn)擊生成就完成了。

圖片

1.啟用并初始化軸

AXISx_CTRL子程序(控制)啟用和初始化運(yùn)動(dòng)軸,方法是自動(dòng)命令運(yùn)動(dòng)軸每CPU更改為RUN模式時(shí)加載組態(tài)/曲線表。在項(xiàng)目中只對(duì)每條運(yùn)動(dòng)軸使用此子程序一次,并確保程序會(huì)在每次掃描時(shí)調(diào)用此子程序。使用SM0.0(始終開啟)作為EN參數(shù)的輸入。

圖片

管腳含義:

MODE:?jiǎn)⒂媚K。1=可發(fā)送命令;0=中止進(jìn)行中的任何命令

Done:完成標(biāo)志位

Error:錯(cuò)誤代碼(字節(jié))

C_Pos:軸的當(dāng)前位置(絕對(duì)定位或者相對(duì)定位),工程單位:Real型數(shù)據(jù);相對(duì)脈沖:DINT型數(shù)據(jù)

C_Speed:軸的當(dāng)前速度,Real型數(shù)據(jù)

C_Dir:軸的當(dāng)前方向(1=反向,0=正向)

2.手動(dòng)控制軸

AXISx_MAN子例程(手動(dòng)模式)將運(yùn)動(dòng)軸置為手動(dòng)模式。這允許電機(jī)按不同的速度運(yùn)行,或沿正向或負(fù)向慢進(jìn)。在同一時(shí)間僅能啟用RUN、JOG_P或JOG_N輸入之一。

圖片

管腳含義:

RUN:1=軸手動(dòng)運(yùn)行(速度和方向分別由Speed和Dir管腳控制)0=停止手動(dòng)控制

JOG_P:1=正轉(zhuǎn)點(diǎn)動(dòng)控制

JOG_N:1=反轉(zhuǎn)點(diǎn)動(dòng)控制

Speed:RUN運(yùn)行時(shí)的目標(biāo)速度,Real型數(shù)據(jù)

Dir:RUN運(yùn)行時(shí)的方向

Error:錯(cuò)誤代碼(字節(jié))

C_Pos:軸當(dāng)前位置(絕對(duì)定位或者相對(duì)定位),工程單位:Real型數(shù)據(jù);相對(duì)脈沖:DINT型數(shù)據(jù)

C_Speed:軸當(dāng)前速度,Real型數(shù)據(jù)

C_Dir:軸的當(dāng)前方向(1=反向,0=正向)

3、查找參考點(diǎn)

走絕對(duì)位置和相對(duì)位置前需要找到真實(shí)的零點(diǎn),絕對(duì)位置和相對(duì)位置才能根據(jù)零點(diǎn)運(yùn)行。

AXISx_RSEEK子程序(搜索參考點(diǎn)位置)使用組態(tài)/曲線表中的搜索方法啟動(dòng)參考點(diǎn)搜索操作。運(yùn)動(dòng)軸找到參考點(diǎn)且運(yùn)動(dòng)停止后,運(yùn)動(dòng)軸將RP_OFFSET參數(shù)值載入當(dāng)前位置。

圖片

管腳含義:

START:每接通一個(gè)掃描周期,就執(zhí)行一次查找參考點(diǎn)(參考點(diǎn)查找方式由軸組態(tài)確定)

Done:完成標(biāo)志位

Error:錯(cuò)誤代碼(字節(jié))

4.絕對(duì)或者相對(duì)定位

AXISx_GOTO子程序命令運(yùn)動(dòng)軸轉(zhuǎn)到所需位置。

圖片

管腳含義:

START:每接通一個(gè)掃描周期,就執(zhí)行一次定位

Pos:目標(biāo)位置(絕對(duì)定位為坐標(biāo)點(diǎn),相對(duì)定位為兩點(diǎn)間距離),工程單位:Real型數(shù)據(jù);相對(duì)脈沖:DINT型數(shù)據(jù)

Speed:目標(biāo)速度,Real型數(shù)據(jù)

MODE:移動(dòng)模式0:絕對(duì)位置 1:相對(duì)位置 2:?jiǎn)嗡龠B續(xù) 正向旋轉(zhuǎn) 3:?jiǎn)嗡龠B續(xù)反向旋轉(zhuǎn)

Abort:停止正在執(zhí)行的運(yùn)動(dòng)

Done:完成標(biāo)志位

Error:錯(cuò)誤代碼(字節(jié))

C_Pos:軸當(dāng)前位置(絕對(duì)定位或者相對(duì)定位),工程單位:Real型數(shù)據(jù);相對(duì)脈沖:DINT型數(shù)據(jù)

C_Speed:軸當(dāng)前速度,Real型數(shù)據(jù)


收藏該商鋪

請(qǐng) 登錄 后再收藏

提示

您的留言已提交成功!我們將在第一時(shí)間回復(fù)您~
二維碼