SCL 編程語言
SCL(Structured Control Language,結構化控制語言)是一種基于 PASCAL 的高級編程語言。這種語言基于標準 DIN EN 61131-3(國際標準為 IEC 1131-3)。
根據該標準,可對用于可編程邏輯控制器的編程語言進行標準化。SCL 編程語言實現了該標準中定義的 ST 語言 (結構化文本) 的 PLCopen 初級水平。
① 側欄 在側欄中可以設置書簽和斷點。
② 行號 行號顯示在程序代碼的左側。
③ 輪廓視圖 輪廓視圖中將突出顯示相應的代碼部分。
④ 代碼區 在代碼區域,可對 SCL 程序進行編輯。
⑤ 絕對操作數的顯示 在此表格中列出了賦值給絕對地址的符號操作數。
SCL 編程示例: 控制傳送帶
下圖顯示了以電氣方式激活的傳送帶。在傳送帶的開始端有兩個按鈕:S1 用于啟動,S2 用于停止。在傳送帶的末端也有兩個按鈕:S3 用于啟動,S4 用于停止。從任何一端都可啟動或停止傳送帶。
Input
StartPushbutton_Left (S1) BOOL 位于傳送帶左側的啟動按鈕
StopPushbutton_Left (S2) BOOL 位于傳送帶左側的停止按鈕
StartPushbutton_Right (S3) BOOL 位于傳送帶右側的啟動按鈕
StopPushbutton_Right (S4) BOOL 位于傳送帶右側的停止按鈕
Output:
MOTOR_ON BOOL 啟動傳送帶電機
MOTOR_OFF BOOL 停止傳送帶電機
SCL
IF "StartPushbutton_Left_S1" OR "StartPushbutton_Right_S3" THEN
"MOTOR_ON" := 1;
"MOTOR_OFF" := 0;
END_IF;
IF "StopPushbutton_Left_S2" OR "StopPushbutton_Right_S4" THEN
"MOTOR_ON" := 0;
"MOTOR_OFF" := 1;
END_IF;
按下啟動按鈕“StartPushbutton_Left_S1”或“StartPushbutton_Right_S3”時,將啟動傳送帶電機。按下停止按鈕“StopPushbutton_Left_S2”或“StopPushbutton_Right_S4”時,將停止傳送帶電機。
檢測傳送帶的傳送方向:
檢測到的傳送帶傳送方向用右箭頭或左箭頭指示。如果傳送的其它物料正在從右邊接近 PEB1 或從左邊接近 PEB2,顯示的箭頭最初會關閉,直至兩個光電屏蔽均通過后,才能重新檢測到傳送方向并顯示相應的箭頭。任務解決方案需要雙沿存儲器位來檢測兩個光電屏蔽上從“0”到“1”的信號變化。
Input
光電屏蔽 PEB1 BOOL 光電屏蔽 1
光電屏蔽 PEB2 BOOL 光電屏蔽 2
輔助標記 PEB1 BOOL 沿位存儲器 1
輔助標記 PEB2 BOOL 沿位存儲器 2
Output
RIGHT BOOL 表示向右傳送
LEFT BOOL 表示向左傳送
// 向左傳送的程序代碼
IF "Photolelectric barrier PEB1" = 1 AND "Auxiliary flag PEB2" = 0 THEN
"Auxiliaryflag PEB1" := 1; // 為 PEB1 設置輔助標記
"LEFT":= 0; // 關閉向左箭頭
"RIGHT":= 0; // 關閉向右左箭頭
END_IF;
IF "Auxiliary flag PEB1" = 1 AND "Photoelectric barrier PEB2" = 1 THEN // 傳送帶向左傳送
"LEFT"= 1;
"RIGHT":= 0;
END_IF;
IF "LINKS" = 1 AND "Photoelectric barrier PEB2" = 0 THEN // 復位 PEB1 的輔助標記
"Auxiliaryflag PEB1" = 0
END_IF;
// 向右傳送的程序代碼
IF "Photolelectric barrier PEB2" = 1 AND "Auxiliary flag PEB1" = 0 THEN
"Auxiliaryflag PEB2" := 1; // 為 PEB2 設置輔助標記
"LEFT":= 0; // 關閉向左箭頭
"RIGHT":= 0; // 關閉向右左箭頭
END_IF;
IF "Auxiliary flag PEB2" = 1 AND "Photoelectric barrier PEB1" = 1 THEN // 傳送帶向右傳送
"LEFT"= 0;
"RIGHT":= 1;
END_IF;
IF "RIGHT" = 1 AND "Photoelectric barrier PEB1" = 0 THEN // 復位 PEB2 的輔助標記
"Auxiliaryflag PEB2" := 0;
END_IF;
如果光電屏蔽“PEB1”的信號狀態為“1”同時光電屏蔽“PEB2”的信號狀態為“0”,則傳送帶上的包裹向左移動。如果光電屏蔽“PEB2”的信號狀態為“1”同時光電屏蔽“PEB1”的信號狀態為“0”,則傳送帶上的包裹向右移動。//當兩個光電屏蔽的信號狀態均為“0”時,則向左或向右傳送的指示燈將熄滅。
審核編輯:劉清
-
存儲器
+關注
關注
38文章
7455瀏覽量
163624 -
編程語言
+關注
關注
10文章
1939瀏覽量
34609 -
SCL
+關注
關注
1文章
239瀏覽量
17040
原文標題:SCL 編程示例
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論