編寫步進順序程序
下圖顯示了一個站,用于將玻璃容器從托盤上移走。傳送帶再將托盤傳送到站。
當載有玻璃容器的托盤到達站時,傳送帶將停止運動,一個夾持器將從其基準位置 (P0) 移動到托盤上方的位置 (P2)。
當夾持器移動到托盤上方時,夾鉗會打開,同時下降夾持器。
傳感器將檢測夾持器的實際位置和夾鉗的狀態。
在本示例中,夾持器的運動順序由一個步進順序程序進行控制。
當然,也可以編寫更多的步驟,拿走這些瓶子,并在另一條傳送帶上傳送。
實施
下表列出了 PLC 變量表中所用操作數的聲明:
名稱 | 數據類型 | 備注 |
---|---|---|
NUMBER | INT | 步進編號 |
Tag_Error | BOOL | 當步進編號大于 3 或其中一個步驟未執行時,將置位該操作數。 |
下表列出了代碼塊的塊接口中所用操作數的聲明:
名稱 | 聲明 | 數據類型 | 備注 |
---|---|---|---|
POS_0 | Input | BOOL | 夾持器位于基準位置 (P0) |
POS_1 | Input | BOOL | 夾持器位于位置 1 (P1) |
POS_2 | Input | BOOL | 夾持器位于位置 2 (P2) |
GRIPPER_OPEN | Input | BOOL | 夾鉗打開 |
OUT_POS_1 | Output | BOOL | 夾持器移動到位置 1 |
OUT_POS_2 | Output | BOOL | 夾持器移動到位置 2 |
OUT_GRIPPER | Output | BOOL | 打開夾鉗 |
OUT_POS_3 | Output | BOOL | 夾持器移動到位置 3 |
以下 STL 程序說明了如何實現此示例:
STL | 說明 |
---|---|
L "NUMBER" | //將步進編號加載到累加器 1 中。 |
JL END | //跳轉列表開始 |
JU POSITION_0 | //累加器 1 的值為“0”時,將跳轉到跳轉標簽“POSITION_0”處。 |
JU POSITION_1 | //累加器 1 的值為“1”時,將跳轉到跳轉標簽“POSITION_1”處。 |
JU POSITION_2 | //累加器 1 的值為“2”時,將跳轉到跳轉標簽“POSITION_2”處。 |
JU POSITION_3 | //累加器 1 的值為“3”時,將跳轉到跳轉標簽“POSITION_3”處。 |
END: JU ERROR |
//跳轉列表結束 //步進編號大于 3 時,將跳轉到跳轉標簽“ERROR”處。 |
POSITION_0: A #POS_0 |
//跳轉標簽“POSITION_0” //掃描檢查夾持器是否位于基準位置 (P0)。 |
= #OUT_POS_1 | //如果是,則置位輸出“OUT_POS_1”并將夾持器移動至位置 1 (P1)。 |
JCN ERROR | //RLO 為“0”時,將跳轉到跳轉標簽“ERROR”處。 |
JC NEXT | //RLO 為“1”時,將跳轉到跳轉標簽“NEXT”處。 |
POSITION_1: A #POS_1 |
//跳轉標簽“POSITION_1” //掃描檢查夾持器是否位于位置 1 (P1)。 |
= #OUT_POS_2 | //如果是,則置位輸出“OUT_POS_2”并將夾持器移動至位置 2 (P2)。 |
JCN ERROR | //RLO 為“0”時,將跳轉到跳轉標簽“ERROR”處。 |
JC NEXT | //RLO 為“1”時,將跳轉到跳轉標簽“NEXT”處。 |
POSITION_2: A #POS_2 |
//跳轉標簽“POSITION_2” //掃描檢查夾持器是否位于位置 2 (P2)。 |
= #OUT_GRIPPER | //如果是,則復位輸出“OUT_GRIPPER”并打開夾鉗。 |
JCN ERROR | //RLO 為“0”時,將跳轉到跳轉標簽“ERROR”處。 |
JC NEXT | //RLO 為“1”時,將跳轉到跳轉標簽“NEXT”處。 |
POSITION_3: A #POS_2 |
//跳轉標簽“POSITION_3” //掃描檢查夾持器是否位于位置 2 (P2)。 |
A #GRIPPER_OPEN | //掃描檢查夾鉗是否打開 |
= #OUT_POS_3 | //如果是,則置位輸出“OUT_POS_3”并將夾持器移動至位置 3 (P3) |
JCN ERROR | //RLO 為“0”時,將跳轉到跳轉標簽“ERROR”處。 |
JC NEXT | //RLO 為“1”時,將跳轉到跳轉標簽“NEXT”處。 |
NEXT: INC 1 |
//跳轉標簽“NEXT” //將累加器 1 中的步進編號加 1。 |
T "NUMBER" | //將步進編號傳送到操作數“NUMBER”中。 |
L 3 |
//將當前的步進編號移送到累加器 2 中。 //將值 3 加載到累加器 1 中。 |
>I | //掃描檢查當前的步進編號是否大于 3。 |
JC RESET_NUMBER | //如果掃描結果為“1”,則跳轉至跳轉標簽“RESET_NUMBER”處并繼續進行程序處理 |
BEU | //塊結束 |
RESET_NUMBER: L 0 |
//跳轉標簽“RESET_NUMBER” //將值“0”加載到累加器 1 中。 |
T "NUMBER" | //將值“0”分配給操作數“NUMBER”(步進編號)。 |
BEU | //塊結束 |
ERROR: NOT | //跳轉標簽“ERROR” |
= "Tag_Error" | //將 RLO 取反后分配給操作數“Tag_Error”。 |
BEU | //塊結束 |
審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
傳感器
+關注
關注
2548文章
50678瀏覽量
751997 -
plc
+關注
關注
5008文章
13151瀏覽量
462067 -
STL
+關注
關注
0文章
85瀏覽量
18300 -
步進控制
+關注
關注
0文章
11瀏覽量
7472 -
累加器
+關注
關注
0文章
50瀏覽量
9440
原文標題:西門子博途:STL 步進順序程序的示例
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
三菱脈沖指令被停止后異常,無法正常啟動,注意STL和DPLSR脈沖指令的沖突 相關資料分享
硬件:三菱FX1s-20MT-001軟件:GX Developer8.52E程序:開平功能:按下“自動”進入STL自動循環,按下“停止”按鈕置所有S狀態為0,脈沖發送也會被終止,送料也會被停止
發表于 07-05 06:29
步進電機的五根線有什么順序嗎?
80c52和ULN2003控制步進電機轉動這里只做最簡單的敘述。步進電機的五根線的順序應該為:紅色和藍色位于兩端。只需要這兩個標識就足夠。將紅色接**+5V**。然后查板子的線路圖,我查我的板子得到
發表于 07-08 07:12
請問大佬有沒有arduino AccelStepper庫控制步進電機的示例程序?求分享
請問大佬有沒有arduino AccelStepper庫控制步進電機的示例程序?求分享
發表于 10-13 09:04
PLC控制系統設計教程: 加熱爐送料系統——仿STL指令的編程方式梯形圖舉例
對于沒有STL指令的PLC,也可以仿照STL指令的設計思路來設計順序控制梯形圖,這就是下面要介紹的仿STL指令的編程方式。
發表于 07-28 16:03
?2687次閱讀
如何顯示STL程序的程序狀態呢?
在表中循環更新并顯示程序的狀態。執行 STL 程序后立即顯示這些表格。并讀取程序每一行的執行狀態。顯示內容取決于所用的 CPU(S7-300、S7-400 或 S7-1500)。
如何在STL中的EN/ENO機制仿真示例呢?
從 STL 程序塊調用的程序塊不提供 EN 和 ENO 參數。無論創建程序塊時采用何種編程語言,都可通過狀態字的 BR 位將錯誤語句傳送到 STL
C++中STL容器中的常見容器及基本操作
一、什么是容器? 所謂容器,就是可以承載,包含元素的一個器件,它是STL六大組件之一,是容器、算法、迭代器中最重要也是最核心的一部分。 二、STL中各大容器的結構與分類 2.1 順序性容器
STL內容介紹
1 什么是STL? STL(Standard Template Library),即標準模板庫,是一個具有工業強度的,高效的C++程序庫。它被容納于C++標準程序庫(C++ Stand
評論