檢測(cè)存儲(chǔ)區(qū)的填充量示例:
檢測(cè)存儲(chǔ)區(qū)的填充量
下圖顯示的系統(tǒng)中包含兩條傳送帶和一個(gè)臨時(shí)存儲(chǔ)區(qū),臨時(shí)存儲(chǔ)區(qū)位于兩條傳送帶之間。傳送帶 1 將包裹傳送到該存儲(chǔ)區(qū)。傳送帶 1 末端靠近存儲(chǔ)區(qū)的光電屏蔽,負(fù)責(zé)檢測(cè)傳送到存儲(chǔ)區(qū)的包裹數(shù)量。傳送帶 2 將包裹從臨時(shí)存儲(chǔ)區(qū)域傳輸?shù)窖b載臺(tái),包裹將在此裝載到卡車(chē)上。存儲(chǔ)區(qū)出口處的光電屏蔽,負(fù)責(zé)檢測(cè)離開(kāi)存儲(chǔ)區(qū)傳入裝載臺(tái)的包裹數(shù)量。五個(gè)指示燈用于指示臨時(shí)存儲(chǔ)區(qū)的容量。
以下 STL 程序說(shuō)明了如何實(shí)現(xiàn)此示例:
當(dāng)一個(gè)包裹傳送到存儲(chǔ)區(qū)時(shí),“PEB1”處的信號(hào)狀態(tài)從“0”變?yōu)椤?”(信號(hào)上升沿)?!癙EB1”在信號(hào)上升沿時(shí),將啟用“加計(jì)數(shù)”計(jì)數(shù)器,同時(shí)“PACKAGECOUNT”的當(dāng)前計(jì)數(shù)值遞增 1。
當(dāng)一個(gè)包裹從存儲(chǔ)區(qū)傳送到裝載臺(tái),“PEB2”處的信號(hào)狀態(tài)從“0”變?yōu)椤?”(信號(hào)上升沿)?!癙EB2”在信號(hào)上升沿時(shí),將啟用“減計(jì)數(shù)”計(jì)數(shù)器,同時(shí)“PACKAGECOUNT”的當(dāng)前計(jì)數(shù)值遞減 1。
只要存儲(chǔ)區(qū)中沒(méi)有包裹(“PACKAGECOUNT”=“0”),則“STOR_EMPTY”變量的信號(hào)狀態(tài)置位為“1”同時(shí)點(diǎn)亮“存儲(chǔ)區(qū)為空”指示燈。
“RESET”變量的信號(hào)狀態(tài)置位為“1”時(shí),會(huì)將當(dāng)前計(jì)數(shù)值復(fù)位為“0”。
如果“LOAD”變量的信號(hào)狀態(tài)設(shè)置為“1”,則會(huì)將當(dāng)前計(jì)數(shù)值設(shè)置為“MAX STORAGE AREA FILL AMOUNT”變量的值。如果當(dāng)前計(jì)數(shù)值大于或等于“MAX STORAGE AREA FILL AMOUNT”變量的值,則“STOCK_PACKAGES”變量的信號(hào)狀態(tài)為“1”。
SCL:
"VOLUME_50" := 5; // 為比較值預(yù)先賦值 50 個(gè)包裹(對(duì)于測(cè)試僅使用 5 個(gè)包裹)
"VOLUME_90" := 9; // 為比較值預(yù)先賦值 90 個(gè)包裹(對(duì)于測(cè)試僅使用 9 個(gè)包裹)
"VOLUME_100" := 10; // 為比較值預(yù)先賦值 100 個(gè)包裹(對(duì)于測(cè)試僅使用 10 個(gè)包裹)
"MAX STORAGE AREA FILL AMOUNT" := 10; // 為存儲(chǔ)區(qū)中的最大數(shù)量預(yù)先賦值 100 個(gè)包裹(對(duì)于測(cè)試僅使用 10 個(gè)包裹)
"IEC_Counter_0_DB".CTUD(CU := "PEB1",
CD:= "PEB2",
R:= "RESET",
LD:= "LOAD",
PV:= "MAX STORAGE AREA FILL AMOUNT",
QU=> "STOCK_PACKAGES",
QD=> "STOR_EMPTY",
CV=> "PACKAGECOUNT");
只要存儲(chǔ)區(qū)中有包裹,“存儲(chǔ)區(qū)非空”指示燈就會(huì)點(diǎn)亮。
SCL:
"STOR_NOT_EMPTY" := NOT "STOR_EMPTY"
如果存儲(chǔ)區(qū)中的包裹數(shù)低于 50%,“存儲(chǔ)區(qū)已用 50 %”、“存儲(chǔ)區(qū)已用 90 %”和“存儲(chǔ)區(qū)已滿”報(bào)警指示燈就會(huì)熄滅。
SCL:
IF "PACKAGECOUNT" < "VOLUME_50" THEN
"STOR_50%_FULL" := 0;
"STOR_90%_FULL" := 0;
"STOR_FULL" := 0;
END_IF;
如果存儲(chǔ)區(qū)中的包裹數(shù)大于或等于 50 %,則“存儲(chǔ)區(qū)已用 50 %”指示燈將點(diǎn)亮。
SCL:
IF "PACKAGECOUNT" >= "VOLUME_50" AND "PACKAGECOUNT <= "VOLUME_90" THEN
"STOR_50%_FULL" := 1;
"STOR_90%_FULL" := 0;
"STOR_FULL" := 0;
END_IF;
如果存儲(chǔ)區(qū)中的包裹數(shù)大于或等于 90 %,則“存儲(chǔ)區(qū)已用 90 %”指示燈將點(diǎn)亮?!按鎯?chǔ)區(qū)已用 50 %”的指示燈仍然點(diǎn)亮。
SCL:
IF "PACKAGECOUNT" >= "VOLUME_90" AND "PACKAGECOUNT < "VOLUME_100" THEN
"STOR_50%_FULL" := 1;
"STOR_90%_FULL" := 1;
"STOR_FULL" := 0;
END_IF;
如果存儲(chǔ)區(qū)中的包裹數(shù)達(dá)到 100 %,則“存儲(chǔ)區(qū)已滿”消息指示燈將點(diǎn)亮?!按鎯?chǔ)區(qū)已用 50 %”和“存儲(chǔ)區(qū)已用 90 %”的指示燈仍然點(diǎn)亮。
SCL:
IF "PACKAGECOUNT" >= "VOLUME_100" THEN
"STOR_50%_FULL" := 1;
"STOR_90%_FULL" := 1;
"STOR_FULL" := 1;
END_IF;
-
存儲(chǔ)
+關(guān)注
關(guān)注
13文章
4337瀏覽量
85994 -
計(jì)數(shù)器
+關(guān)注
關(guān)注
32文章
2259瀏覽量
94804 -
STL
+關(guān)注
關(guān)注
0文章
86瀏覽量
18342
原文標(biāo)題:S7博途V16 - SCL檢測(cè)存儲(chǔ)區(qū)的填充量示例
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論