西門子S7-1200 PLC基于三軸設(shè)備畫正方形程序案例詳解
王曾
發(fā)布于2023-05-04 15:50
203
4
標(biāo)簽:西門子S7-1200 PLC,西門子PLC,PLC案例
? 在這個(gè)案例中,主要讓大家學(xué)習(xí)1200PLC的運(yùn)動控制功能,我們借助這個(gè)三軸設(shè)備(如圖1所示)實(shí)現(xiàn)長寬為50mm的正方形的繪制。
? 在HMI上(如圖2所示)可以手動實(shí)現(xiàn)軸使能、手動X軸正負(fù)方向運(yùn)行;手動Y軸正負(fù)方向運(yùn)行;手動Z軸正負(fù)方向運(yùn)行、示教基準(zhǔn)位置點(diǎn)等。自動時(shí),按下“啟動”按鈕即自動繪制長寬為50mm的正方形。
圖1
圖2
1.程序設(shè)計(jì)思路:
1)可以設(shè)置一個(gè)基準(zhǔn)點(diǎn)(如圖3),然后依次算出其他的位置點(diǎn)。
2)使用絕對定位指令,到達(dá)相關(guān)位置點(diǎn)。
圖3
2.程序設(shè)計(jì):
1)創(chuàng)建工藝對象:創(chuàng)建X軸的工藝對象(如圖4至圖10所示)。Y軸和Z軸的工藝對象類似,在此不贅述。
圖4
圖5
圖6
圖7
圖8
圖9
圖10
2)因?yàn)槲覀冊O(shè)備上有X、Y、Z三軸軸,每個(gè)軸都有位置值,所以可以建立 “UDT數(shù)據(jù)類型”,用于存儲三個(gè)軸的位置值。UDT的數(shù)據(jù)類型名稱為“Pos”,如圖11及圖12所示.

3)手動控制程序(FC1),如圖13至16所示,主要實(shí)現(xiàn)的功能是軸使能,三個(gè)軸的點(diǎn)動控制、三個(gè)軸的回原點(diǎn)、三個(gè)軸的故障復(fù)位等。
圖13
圖14
圖15
圖16
4)位置計(jì)算(FC2),要計(jì)算zheng方形的4個(gè)位置點(diǎn),可以使用SCL語言編寫。當(dāng)“"inst_Pos".HMI_SetBase”的值(來源于HMI上的按鈕)為1時(shí)計(jì)算4個(gè)位置點(diǎn)。如圖17及18所示,
圖17
圖18
計(jì)算出來的位置值存儲在數(shù)組變量中,如圖19所示。四個(gè)點(diǎn)的坐標(biāo)值對應(yīng)圖3的四個(gè)位置值。
圖19
3)主程序
①程序段1主要是調(diào)用手動控制程序。并且如何按下了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)畫一個(gè)正方形。由于計(jì)算出來的位置值的第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á)不同的位置