(1)原理圖:Q0.0為X軸脈沖,Q0.2為X軸方向;Q0.1為y軸脈沖,Q0.7為y軸方向
(2)實物圖:三個步進驅動器,三套電機配合絲桿,定義往電機方向移動為正方向,絲桿的邏輯為4mm,步進驅動的細分設置為3200個脈沖一轉。如下圖所示:
(二)走圓軌跡算法
西門子S7-200SMART系列PLC不支持圓弧插補功能,所以需要自己根據算法進行計算后分別驅動X軸和Y軸的移動從而來實現畫圓功能,要驅動XY軸畫圓,可采用極限逼近法,把畫圓弧變成畫線段,如下圖所示左側為六等分,角度a=30°,右側為十二等分,角度a=15°。
從上圖中可以看出,當等邊多邊形的邊越多時,則多邊形的軌跡就越和圓相近,所以當角度a足夠小時,則得到的多邊形軌跡就越與圓接近。根據以上分析需要完成畫圓功能,我們需要知道“圓心坐標值”、“圓的半徑”、“畫圓的速度”,然后根據分為三部分來實現:
1、畫筆移動到圓上
把XY軸分別回原點,回原點后的位置默認為XY平面坐標的原點,然后由原點移動到圓心坐標,如下圖所示1#點為圓心,2#點為圓上點。
假設1#點的坐標為(X1,Y1),速度為V,則X軸移動的距離為X1,Y軸移動的距離為Y1。根據勾股定理可計算出原點到圓心的距離“Y(0→1)”、X軸移動速度“VXaxis”和Y軸移動速度“VYaxis” ,計算公式如下所示:
當畫筆到達1#點后,然后Y軸不動,X軸以V的速度移動半徑R的距離到達圓上2#點位置,假2#點的坐標為(X2,Y2)
2、畫筆開始畫圓
畫筆從2#點位置開始移動畫圓,假設下個圓上的點為3#點,坐標為(X3,Y3),從圓心到3#點和從圓心到2#點的角度為a,如下圖所示:
根據三角函數可計算出3#點的坐標(X3,Y3)的值分別為:
X3=Cos(a)*R+X1,Y3=Sin(a)*R+Y1
根據勾股定理可計算出XY軸要移動的距離 “Y(2→3)”的值。X軸移動速度“VXaxis”和Y軸移動速度“VYaxis” ,計算公式如下所示:
注:此時X2和Y2為X軸和Y軸的當前位置,X3和Y3為X軸和Y軸要移動的目標位置,速度需要取絕對值。
同理:當畫筆到達3#點后,角度變為2a,則對應的圓上點為4#點,坐標為(X4,Y4),如下圖所示:
根據三角函數可計算出4#點的坐標(X4,Y4)的值分別為:
X4=Cos(2a)*R+X1,Y4=Sin(2a)*R+Y1
根據勾股定理可計算出XY軸要移動的距離 “Y(3→4)”的值。X軸移動速度“VXaxis”和Y軸移動速度“VYaxis” ,計算公式如下所示:
注:此時X3和Y3為X軸和Y軸的當前位置,X4和Y4為X軸和Y軸要移動的目標位置,速度需要取絕對值。
依次下去,每走完一次后,角度自加一次,當角度值大于360°時,則認為畫圓完成。
(三)PLC程序
根據分析,對于S7-200SMART系列PLC的程序設計主要分為“運動向導的組態配置”、“初始與會原點程序”、“速度計算程序”、“開始畫圓程序”
(1)初始化和回原點
(2)速度換算程序
(3)畫圓程序
子程序結構
程序運行
**【延伸閱讀】S7-200 SMART 運動控制指令詳解 **
S7-200 smart 運動控制指令由編程軟件向導生成,運動控制指令有很多條構成,且每條指令都帶有很多接口參數,想要使用這些指令,要先知道接口是什么意思,雖然幫助文章都有解釋,但讀懂幫助文件也很費勁,今天就詳細給大家介紹運動指令的使用。
S7-200 SMRAT 運動控制指令如下圖生成:
1、選擇"運動"右鍵打開。
2、本次就以"軸0"為例。
3、命個名字。
4、數字1位選擇工程單位,可以使工程單位,也可以使用脈沖。
數字2是電機旋轉一圈的脈沖量,我目前步進撥碼設定是10000個脈沖旋轉一周
數字3是單位,根據自己需要設定
數字4是電機旋轉一圈的工程量,我設定的是360度,也就是說10000個脈沖對應360度。
5、方向控制,我是用的脈沖加方向,所以選擇單項2軸。
6、正負極限根據需要設定,我這個沒有正負極限就沒有選擇。
7、零電位使用,走絕對位置和相對位置之前一定要定義好原點,否則絕對位置和相對位置不運行。
8、0脈沖位置,也可以使用此點定義0點。
9、停止根據需要選擇,通過閱讀STP就能理解什么意思。
10、停止根據需要選擇,通過閱讀TRIG就能理解什么意思。
11、禁用根據需要選擇,通過閱讀DIS就能理解什么意思。
12、最大速度和最小速度根據現場情況設定,我設定最大速度為360度/秒。
13、JOG命令也就是手動運行,根據需要設定速度,建議設定小一些,看看運行速度再調整。
14、此處設定加減速時間,也就是脈沖輸出的加減速時間,根據現場情況設定。
15、急停補償。
16、反沖補償,也就是校準絲杠間隙。
17、參考點設定
18、找零點時速度和方向設定。
19、偏移量設定
20、搜索參考點方式選擇
21、從驅動器中讀取絕對位置
22、曲線設定,我這里沒用曲線,沒有生成曲線。
23、點"建議"自動分配地址。
24、組件
25、映射顯示
26、完成,點擊生成就完成了。
1.啟用并初始化軸
AXISx_CTRL子程序(控制)啟用和初始化運動軸,方法是自動命令運動軸每CPU更改為RUN模式時加載組態/曲線表。在項目中只對每條運動軸使用此子程序一次,并確保程序會在每次掃描時調用此子程序。使用SM0.0(始終開啟)作為EN參數的輸入。
管腳含義:
MODE:啟用模塊。1=可發送命令;0=中止進行中的任何命令
Done:完成標志位
Error:錯誤代碼(字節)
C_Pos:軸的當前位置(絕對定位或者相對定位),工程單位:Real型數據;相對脈沖:DINT型數據
C_Speed:軸的當前速度,Real型數據
C_Dir:軸的當前方向(1=反向,0=正向)
2.手動控制軸
AXISx_MAN子例程(手動模式)將運動軸置為手動模式。這允許電機按不同的速度運行,或沿正向或負向慢進。在同一時間僅能啟用RUN、JOG_P或JOG_N輸入之一。
管腳含義:
RUN:1=軸手動運行(速度和方向分別由Speed和Dir管腳控制)0=停止手動控制
JOG_P:1=正轉點動控制
JOG_N:1=反轉點動控制
Speed:RUN運行時的目標速度,Real型數據
Dir:RUN運行時的方向
Error:錯誤代碼(字節)
C_Pos:軸當前位置(絕對定位或者相對定位),工程單位:Real型數據;相對脈沖:DINT型數據
C_Speed:軸當前速度,Real型數據
C_Dir:軸的當前方向(1=反向,0=正向)
3、查找參考點
走絕對位置和相對位置前需要找到真實的零點,絕對位置和相對位置才能根據零點運行。
AXISx_RSEEK子程序(搜索參考點位置)使用組態/曲線表中的搜索方法啟動參考點搜索操作。運動軸找到參考點且運動停止后,運動軸將RP_OFFSET參數值載入當前位置。
管腳含義:
START:每接通一個掃描周期,就執行一次查找參考點(參考點查找方式由軸組態確定)
Done:完成標志位
Error:錯誤代碼(字節)
4.絕對或者相對定位
AXISx_GOTO子程序命令運動軸轉到所需位置。
管腳含義:
START:每接通一個掃描周期,就執行一次定位
Pos:目標位置(絕對定位為坐標點,相對定位為兩點間距離),工程單位:Real型數據;相對脈沖:DINT型數據
Speed:目標速度,Real型數據
MODE:移動模式0:絕對位置 1:相對位置 2:單速連續 正向旋轉 3:單速連續反向旋轉
Abort:停止正在執行的運動
Done:完成標志位
Error:錯誤代碼(字節)
C_Pos:軸當前位置(絕對定位或者相對定位),工程單位:Real型數據;相對脈沖:DINT型數據
C_Speed:軸當前速度,Real型數據
審核編輯:湯梓紅
-
原理圖
+關注
關注
1297文章
6339瀏覽量
233852 -
驅動器
+關注
關注
52文章
8228瀏覽量
146271 -
plc
+關注
關注
5010文章
13277瀏覽量
463114 -
西門子
+關注
關注
94文章
3035瀏覽量
115799 -
程序
+關注
關注
117文章
3785瀏覽量
81009
原文標題:
文章出處:【微信號:電子技術控,微信公眾號:電子技術控】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論