在這個(gè)案例中,主要讓大家學(xué)習(xí)1200PLC的運(yùn)動(dòng)控制功能,我們借助這個(gè)三軸設(shè)備(如圖1所示)實(shí)現(xiàn)長(zhǎng)寬為50mm的正方形的繪制。
在HMI上(如圖2所示)可以手動(dòng)實(shí)現(xiàn)軸使能、手動(dòng)X軸正負(fù)方向運(yùn)行;手動(dòng)Y軸正負(fù)方向運(yùn)行;手動(dòng)Z軸正負(fù)方向運(yùn)行、示教基準(zhǔn)位置點(diǎn)等。自動(dòng)時(shí),按下“啟動(dòng)”按鈕即自動(dòng)繪制長(zhǎng)寬為50mm的正方形。

圖1

圖2
1
程序設(shè)計(jì)思路
1)可以設(shè)置一個(gè)基準(zhǔn)點(diǎn)(如圖3),然后依次算出其他的位置點(diǎn)。
2)使用絕對(duì)定位指令,到達(dá)相關(guān)位置點(diǎn)。

圖3
2
程序設(shè)計(jì)
1)創(chuàng)建工藝對(duì)象:創(chuàng)建X軸的工藝對(duì)象(如圖4至圖10所示)。Y軸和Z軸的工藝對(duì)象類(lèi)似,在此不贅述。

圖4

圖5

圖6

圖7

圖8

圖9

圖10
2)因?yàn)槲覀冊(cè)O(shè)備上有X、Y、Z三軸軸,每個(gè)軸都有位置值,所以可以建立 “UDT數(shù)據(jù)類(lèi)型”,用于存儲(chǔ)三個(gè)軸的位置值。UDT的數(shù)據(jù)類(lèi)型名稱(chēng)為“Pos”,如圖11及圖12所示.


圖12 圖11
3)手動(dòng)控制程序(FC1),如圖13至16所示,主要實(shí)現(xiàn)的功能是軸使能,三個(gè)軸的點(diǎn)動(dòng)控制、三個(gè)軸的回原點(diǎn)、三個(gè)軸的故障復(fù)位等。

圖13

圖14

圖15

圖16
4)位置計(jì)算(FC2),要計(jì)算zheng方形的4個(gè)位置點(diǎn),可以使用SCL語(yǔ)言編寫(xiě)。當(dāng)“"inst_Pos".HMI_SetBase”的值(來(lái)源于HMI上的按鈕)為1時(shí)計(jì)算4個(gè)位置點(diǎn)。如圖17及18所示,

圖17

圖18
計(jì)算出來(lái)的位置值存儲(chǔ)在數(shù)組變量中,如圖19所示。四個(gè)點(diǎn)的坐標(biāo)值對(duì)應(yīng)圖3的四個(gè)位置值。

圖19
3)主程序
①程序段1主要是調(diào)用手動(dòng)控制程序。并且如何按下了HMI上的“"inst_Pos".HMI_Start”這個(gè)按鈕之后把狀態(tài)步MW36設(shè)置為1。

②“"inst_Pos".HMI_SetBase”為觸摸屏上設(shè)置基準(zhǔn)點(diǎn)按鈕,當(dāng)按下這個(gè)按鈕則可以設(shè)置1個(gè)基準(zhǔn)點(diǎn),依次基準(zhǔn)點(diǎn)畫(huà)一個(gè)正方形。由于計(jì)算出來(lái)的位置值的第3個(gè)點(diǎn)和第4個(gè)位置點(diǎn)是相反的,所以地址中的值做個(gè)交換。"inst_Pos".Pos[1]給到"inst_Pos".FinalPos[1],"inst_Pos".Pos[2]給到"inst_Pos".FinalPos[2],"inst_Pos".Pos[3]給到"inst_Pos".FinalPos[4],"inst_Pos".Pos[4]給到"inst_Pos".FinalPos[3],起始點(diǎn)和結(jié)束點(diǎn)是同一個(gè)點(diǎn),所以"inst_Pos".Pos[1]給到"inst_Pos".FinalPos[5]。其中"inst_Pos".FinalPos變量如圖20


圖20
③調(diào)用位置計(jì)算程序

④軸的當(dāng)前位置

⑤狀態(tài)步判斷,然后到達(dá)不同的位置







-
plc
+關(guān)注
關(guān)注
5051文章
14594瀏覽量
486894 -
運(yùn)動(dòng)控制
+關(guān)注
關(guān)注
5文章
821瀏覽量
34536 -
三軸
+關(guān)注
關(guān)注
0文章
5瀏覽量
1626
原文標(biāo)題:案例分享 | 基于三軸設(shè)備畫(huà)正方形程序設(shè)計(jì)
文章出處:【微信號(hào):跟我學(xué)PLC,微信公眾號(hào):跟我學(xué)PLC吧】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
找正方形的代碼我把roi刪除過(guò)后能識(shí)別到正方形,加上roi后就識(shí)別不出來(lái),為什么?
救命!本人有個(gè)考試2個(gè)程序,有請(qǐng)各位大蝦幫助做一下
請(qǐng)問(wèn)怎么用labview畫(huà)出幾何圖形,比如正方形,三角形
為什么我用ad10自己畫(huà)的封裝和用封裝向?qū)?b class='flag-5'>畫(huà)的封裝不一樣?
如圖區(qū)域利用labview在正方形區(qū)域內(nèi)按x,y方向步長(zhǎng)分別為△x,△y取盡可能多點(diǎn)的方法
畫(huà)PCB只要其他元件出現(xiàn)在正方形陰影內(nèi)就會(huì)報(bào)錯(cuò)
如何在鋪銅和畫(huà)線(xiàn)時(shí)快速定位直角畫(huà)成正方形?
精準(zhǔn)估算壓縮性穩(wěn)態(tài)斯托克斯方程于2D單位正方形程序圖形示意
針對(duì)非正方形圖像置亂的算法
C語(yǔ)言教程之計(jì)算正方形的周長(zhǎng)
C語(yǔ)言教程之輸出一個(gè)正方形
科普:CPU為什么不是圓形而是正方形?
基于三軸設(shè)備畫(huà)正方形程序設(shè)計(jì)
評(píng)論