編寫步進(jìn)順序程序
下圖顯示了一個(gè)站,用于將玻璃容器從托盤上移走。傳送帶再將托盤傳送到站。
當(dāng)載有玻璃容器的托盤到達(dá)站時(shí),傳送帶將停止運(yùn)動(dòng),一個(gè)夾持器將從其基準(zhǔn)位置 (P0) 移動(dòng)到托盤上方的位置 (P2)。
當(dāng)夾持器移動(dòng)到托盤上方時(shí),夾鉗會(huì)打開,同時(shí)下降夾持器。
傳感器將檢測夾持器的實(shí)際位置和夾鉗的狀態(tài)。
在本示例中,夾持器的運(yùn)動(dòng)順序由一個(gè)步進(jìn)順序程序進(jìn)行控制。
當(dāng)然,也可以編寫更多的步驟,拿走這些瓶子,并在另一條傳送帶上傳送。
實(shí)施
下表列出了 PLC 變量表中所用操作數(shù)的聲明:
名稱 | 數(shù)據(jù)類型 | 備注 |
---|---|---|
NUMBER | INT | 步進(jìn)編號 |
Tag_Error | BOOL | 當(dāng)步進(jìn)編號大于 3 或其中一個(gè)步驟未執(zhí)行時(shí),將置位該操作數(shù)。 |
下表列出了代碼塊的塊接口中所用操作數(shù)的聲明:
名稱 | 聲明 | 數(shù)據(jù)類型 | 備注 |
---|---|---|---|
POS_0 | Input | BOOL | 夾持器位于基準(zhǔn)位置 (P0) |
POS_1 | Input | BOOL | 夾持器位于位置 1 (P1) |
POS_2 | Input | BOOL | 夾持器位于位置 2 (P2) |
GRIPPER_OPEN | Input | BOOL | 夾鉗打開 |
OUT_POS_1 | Output | BOOL | 夾持器移動(dòng)到位置 1 |
OUT_POS_2 | Output | BOOL | 夾持器移動(dòng)到位置 2 |
OUT_GRIPPER | Output | BOOL | 打開夾鉗 |
OUT_POS_3 | Output | BOOL | 夾持器移動(dòng)到位置 3 |
以下 STL 程序說明了如何實(shí)現(xiàn)此示例:
STL | 說明 |
---|---|
L "NUMBER" | //將步進(jìn)編號加載到累加器 1 中。 |
JL END | //跳轉(zhuǎn)列表開始 |
JU POSITION_0 | //累加器 1 的值為“0”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“POSITION_0”處。 |
JU POSITION_1 | //累加器 1 的值為“1”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“POSITION_1”處。 |
JU POSITION_2 | //累加器 1 的值為“2”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“POSITION_2”處。 |
JU POSITION_3 | //累加器 1 的值為“3”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“POSITION_3”處。 |
END: JU ERROR |
//跳轉(zhuǎn)列表結(jié)束 //步進(jìn)編號大于 3 時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“ERROR”處。 |
POSITION_0: A #POS_0 |
//跳轉(zhuǎn)標(biāo)簽“POSITION_0” //掃描檢查夾持器是否位于基準(zhǔn)位置 (P0)。 |
= #OUT_POS_1 | //如果是,則置位輸出“OUT_POS_1”并將夾持器移動(dòng)至位置 1 (P1)。 |
JCN ERROR | //RLO 為“0”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“ERROR”處。 |
JC NEXT | //RLO 為“1”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“NEXT”處。 |
POSITION_1: A #POS_1 |
//跳轉(zhuǎn)標(biāo)簽“POSITION_1” //掃描檢查夾持器是否位于位置 1 (P1)。 |
= #OUT_POS_2 | //如果是,則置位輸出“OUT_POS_2”并將夾持器移動(dòng)至位置 2 (P2)。 |
JCN ERROR | //RLO 為“0”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“ERROR”處。 |
JC NEXT | //RLO 為“1”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“NEXT”處。 |
POSITION_2: A #POS_2 |
//跳轉(zhuǎn)標(biāo)簽“POSITION_2” //掃描檢查夾持器是否位于位置 2 (P2)。 |
= #OUT_GRIPPER | //如果是,則復(fù)位輸出“OUT_GRIPPER”并打開夾鉗。 |
JCN ERROR | //RLO 為“0”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“ERROR”處。 |
JC NEXT | //RLO 為“1”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“NEXT”處。 |
POSITION_3: A #POS_2 |
//跳轉(zhuǎn)標(biāo)簽“POSITION_3” //掃描檢查夾持器是否位于位置 2 (P2)。 |
A #GRIPPER_OPEN | //掃描檢查夾鉗是否打開 |
= #OUT_POS_3 | //如果是,則置位輸出“OUT_POS_3”并將夾持器移動(dòng)至位置 3 (P3) |
JCN ERROR | //RLO 為“0”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“ERROR”處。 |
JC NEXT | //RLO 為“1”時(shí),將跳轉(zhuǎn)到跳轉(zhuǎn)標(biāo)簽“NEXT”處。 |
NEXT: INC 1 |
//跳轉(zhuǎn)標(biāo)簽“NEXT” //將累加器 1 中的步進(jìn)編號加 1。 |
T "NUMBER" | //將步進(jìn)編號傳送到操作數(shù)“NUMBER”中。 |
L 3 |
//將當(dāng)前的步進(jìn)編號移送到累加器 2 中。 //將值 3 加載到累加器 1 中。 |
>I | //掃描檢查當(dāng)前的步進(jìn)編號是否大于 3。 |
JC RESET_NUMBER | //如果掃描結(jié)果為“1”,則跳轉(zhuǎn)至跳轉(zhuǎn)標(biāo)簽“RESET_NUMBER”處并繼續(xù)進(jìn)行程序處理 |
BEU | //塊結(jié)束 |
RESET_NUMBER: L 0 |
//跳轉(zhuǎn)標(biāo)簽“RESET_NUMBER” //將值“0”加載到累加器 1 中。 |
T "NUMBER" | //將值“0”分配給操作數(shù)“NUMBER”(步進(jìn)編號)。 |
BEU | //塊結(jié)束 |
ERROR: NOT | //跳轉(zhuǎn)標(biāo)簽“ERROR” |
= "Tag_Error" | //將 RLO 取反后分配給操作數(shù)“Tag_Error”。 |
BEU | //塊結(jié)束 |
審核編輯:劉清
-
傳感器
+關(guān)注
關(guān)注
2551文章
51106瀏覽量
753653 -
plc
+關(guān)注
關(guān)注
5011文章
13299瀏覽量
463434 -
STL
+關(guān)注
關(guān)注
0文章
86瀏覽量
18327 -
步進(jìn)控制
+關(guān)注
關(guān)注
0文章
11瀏覽量
7476 -
累加器
+關(guān)注
關(guān)注
0文章
50瀏覽量
9458
原文標(biāo)題:西門子博途:STL 步進(jìn)順序程序的示例
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論