一、案例描述
有一批物料均勻的呈陣列排布在一個(gè)托盤上面,現(xiàn)在需要把物流均勻的搬運(yùn)到另外一個(gè)位置,通過一個(gè)3軸的龍門臺控制,需要搭配一個(gè)威綸通觸摸屏,要求寫出控制程序。
要求:
1.手動模式下,可手動控制平臺左右前后上下移動。
2.按下回原點(diǎn)按鈕,能夠自動回原點(diǎn),回完原點(diǎn)才可進(jìn)行自動
3.自動模式下,按下啟動按鈕,會將物流一個(gè)一個(gè)從第一個(gè)坐標(biāo)系一一搬運(yùn)到第二個(gè)坐標(biāo)系。
4.給定第一個(gè)坐標(biāo)系第一個(gè)坐標(biāo)點(diǎn)和給定第二個(gè)坐標(biāo)系第一個(gè)坐標(biāo)點(diǎn),其他點(diǎn)兩兩之間間隔是10mm,PLC需要自動計(jì)算出來。
5.按下急停按鈕按鈕,步進(jìn)電機(jī)立即停止運(yùn)行。需重新執(zhí)行一次原點(diǎn)回歸指令。
6.按下暫停按鈕時(shí),設(shè)備停止,重新按下啟動時(shí)設(shè)備繼續(xù)動作。
二、電氣元件選型
序號 | 元件 | 數(shù)量 |
1 | 空氣開關(guān) | 6個(gè) |
2 | FX3U-16MT plc | 1臺 |
3 | 威綸通觸摸屏TK8071IP | 1個(gè) |
4 | 3軸步進(jìn)電機(jī)滑臺 | 1套 |
5 | 24V開關(guān)電源(100W) | 1臺 |
三、I/O分配
輸入點(diǎn) | 標(biāo)簽 | 輸出點(diǎn) | 標(biāo)簽 |
X0 | Y負(fù)極限 | Y0 | Z脈沖 |
X1 | Y原點(diǎn) | Y1 | X脈沖 |
X2 | Y正極限 | Y2 | Y脈沖 |
X3 | X正極限 | Y3 | Y方向 |
X4 | X原點(diǎn) | Y4 | X方向 |
X5 | X負(fù)極限 | Y5 | Z方向 |
X6 | Z正極限 | Y6 | |
X7 | Z原點(diǎn) | Y7 |
觸摸屏的界面設(shè)置如上,下面把這些點(diǎn)位寫成表格,如下圖表:
點(diǎn)位 | 標(biāo)簽 | 點(diǎn)位 | 標(biāo)簽 |
M0 | 啟動 | M10 | 手自動 |
M1 | 停止 | M11 | 回原點(diǎn)開始 |
M2 | 急停 | M12 | 回原點(diǎn)中 |
M3 | X正轉(zhuǎn) | M13 | 回原點(diǎn)完成 |
M4 | X反轉(zhuǎn) | M14 | X軸回原完成 |
M5 | Y正轉(zhuǎn) | M15 | Y軸回原完成 |
M6 | Y反轉(zhuǎn) | M16 | Z軸回原完成 |
M7 | Z正轉(zhuǎn) | M17 | 確認(rèn)下降點(diǎn) |
坐標(biāo)系的地址如下,啟點(diǎn)的X坐標(biāo)使用D1000開始的連續(xù)25個(gè)雙字寄存器,起點(diǎn)的Y坐標(biāo)用D1100開始的連續(xù)25個(gè)雙字寄存器;
第一個(gè)坐標(biāo)系第一個(gè)點(diǎn)坐標(biāo)是(D1000,D1100),第2個(gè)點(diǎn)是(1002,1102)......
同樣的方法,終點(diǎn)的X坐標(biāo)用D1200開始的連續(xù)25個(gè)雙字寄存器,終點(diǎn)的Y坐標(biāo)用D1200開始的連續(xù)25個(gè)雙字寄存器;
后面計(jì)算就給這些地址賦值可以搭建好坐標(biāo)系。
四、程序編寫
1.原點(diǎn)回歸速度和爬行速度設(shè)置
為了縮短掃描周期,把回歸速度和爬行速度寫在子程序P0里面,設(shè)置回歸速度為2000,爬行速度為500。
2.數(shù)據(jù)計(jì)算
觸摸屏只需要給定起點(diǎn)坐標(biāo)(D1000,D1100),終點(diǎn)坐標(biāo)(D1200,D1300)其他地址坐標(biāo)就能自動計(jì)算出,這部分的程序比較多,可以寫成子程序,這里使用P1的子程序,需要調(diào)用的時(shí)候再調(diào)用。
首先,求出最下面一行,所有點(diǎn)的橫坐標(biāo),如下通過一段FOR循環(huán)和變址,后面的每一個(gè)點(diǎn)是前一個(gè)點(diǎn)坐標(biāo)加10mm,通過循環(huán)變址,循環(huán)4遍,就能求出第一行的10個(gè)數(shù)據(jù)橫坐標(biāo)。
根據(jù)第一行的數(shù)據(jù),后面每一行的橫坐標(biāo)都和第一行一樣,因此,使用8個(gè)批量測試指令,就能把后面8排地址的數(shù)據(jù)計(jì)算出來,這樣的話橫坐標(biāo)就都計(jì)算完畢。
接下來,求出第一列10個(gè)點(diǎn)的縱坐標(biāo),如下通過一段FOR循環(huán)和變址,后面的每一個(gè)點(diǎn)是前一個(gè)點(diǎn)坐標(biāo)加10mm,通過循環(huán)變址,循環(huán)4遍,就能求出第一行的10個(gè)數(shù)據(jù)縱坐標(biāo)。
然后就可以求出每一列所有點(diǎn)的縱坐標(biāo),通過批量傳送指令,前5行程序就把第一個(gè)坐標(biāo)系的Y點(diǎn)都計(jì)算出來,最后一行,終點(diǎn)坐標(biāo)也是一樣的計(jì)算方法,執(zhí)行完畢,子程序結(jié)束。
3.計(jì)算調(diào)用
上面計(jì)算的程序不是需要時(shí)時(shí)刻刻都執(zhí)行的,需要當(dāng)數(shù)據(jù)發(fā)生改變時(shí),再執(zhí)行一次改變。
起點(diǎn)X坐標(biāo)D1000的值通過demov指令不斷傳送給D2000,因此,它們是相等的,這比較指令,會讓M51導(dǎo)通(常閉觸點(diǎn)斷開),只有給了一個(gè)新的值給D1000,它們才會不相等,這時(shí),M51就會失點(diǎn)(常閉觸點(diǎn)會導(dǎo)通),觸發(fā)P1指令,執(zhí)行計(jì)算。
其他3個(gè)坐標(biāo)也是同樣的控制原理。
4.數(shù)據(jù)的調(diào)用
在自動控制時(shí),每抓取完一個(gè)物料每一遍動作,就導(dǎo)通M100的線圈(這部分的程序在后面),每次就讓D0加1,抓取25個(gè)點(diǎn)的物料,就會增加到25。每一次動作,調(diào)用的坐標(biāo)系點(diǎn)位不同,比如第一次啟動時(shí),下面就把D1000Z5(D1000),D1100Z5(D1100),D1200Z5(D1200),D1300Z5(D1300,)坐標(biāo)給到對應(yīng)控制的寄存器,執(zhí)行完畢,M100導(dǎo)通,D1加1,Z5=2;這里調(diào)用的坐標(biāo)是D1000Z5(D1002),D1100Z5(D1102), D1200Z5(D1202),D1300Z5(D1302)
每完成一次,使用的坐標(biāo)地址就偏移2位,這樣就可以切換坐標(biāo)位置上;
面計(jì)算出來的是浮點(diǎn)數(shù)的數(shù)據(jù),還需要這幾個(gè)數(shù)據(jù)轉(zhuǎn)化成脈沖數(shù)(已知,絲桿導(dǎo)程是4mm,步進(jìn)電機(jī)設(shè)置位800轉(zhuǎn)每圈),可以求出脈沖當(dāng)量=4mm/800=0.005mm
因此把之前求出的坐標(biāo)除以0.005得出實(shí)際控制脈沖,并把數(shù)據(jù)轉(zhuǎn)化成整數(shù);
5.正負(fù)極限設(shè)置
6.原點(diǎn)回歸控制
7.手動控制
8.啟??刂?/p>
9.順序控制
動作需要逆序?qū)?,第一步寫在最后,動作完成M8029會導(dǎo)通,使用INC讓D100加1,后面每一步都一樣;運(yùn)行到第5步,用M8029導(dǎo)通M10線圈,M10的常開寫在這一行程序上面,用MOV指令讓D100回到第1步,這樣寫是為了隔開一個(gè)掃描周期,讓第5步的動作和第一步的定位指令不在同一個(gè)掃描周期里面運(yùn)行。
10.升降點(diǎn)設(shè)置
11.位置顯示
審核編輯 :李倩
-
觸摸屏
+關(guān)注
關(guān)注
42文章
2309瀏覽量
116361 -
程序
+關(guān)注
關(guān)注
117文章
3791瀏覽量
81156
原文標(biāo)題:多圖預(yù)警!多點(diǎn)搬運(yùn)控制案例詳解(內(nèi)含源程序)
文章出處:【微信號:跟我學(xué)PLC,微信公眾號:跟我學(xué)PLC吧】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論