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