標題: 簡單的交通燈:PLC-SCL語言程序 [打印本頁]
作者: 12131213 時間: 2020-7-15 12:06
標題: 簡單的交通燈:PLC-SCL語言程序
本帖最后由 12131213 于 2020-7-15 12:32 編輯
看了網上的交通燈程序似乎都沒有SCL版本的,就把自己 寫的SCL版本分享一下吧。
控制要求:
首先,南北方向紅燈亮25秒,與此同時,東西方向綠燈先亮20秒,然后閃3秒,接著東西方向黃燈閃2秒;接下來,東西方向紅燈亮30秒,南北方向綠燈先亮25秒,然后,南北綠燈閃3秒,南北黃燈閃2秒。
程序設計思路:
程序分為單定時器和雙定時器兩個版本,但思路是一樣的,都是根據在不同的時間點,控制不同的燈亮。因為總的時長為55秒,然后東西方向通行時間為25秒,南北方向通行時間為30秒,整個程序流程如下:
無標題.png (15.75 KB, 下載次數: 49)
下載附件
2020-7-15 12:31 上傳
然后簡單說一下單定時器和雙定時器的區別,他們的功能是一樣的,只不過雙定時器可以任意修改閃爍頻率,而單定時器版本的只能使用系統設定好的幾個頻率。因為單定時器版本用的是PLC自帶的系統時鐘,使用方法是打開”設備組態”,在“常規”里面找到“系統和時鐘存儲器”,勾選“時鐘存儲器位”就行了,然后就可以在PLC變量表里面看到相應的變量了。圖片如下:
無標題1.png (159.16 KB, 下載次數: 57)
下載附件
2020-7-15 12:32 上傳
無標題2.png (165.24 KB, 下載次數: 66)
下載附件
2020-7-15 12:32 上傳
程序如下:
單定時器版本:
- //交通燈:單定時器版本
- IF "啟動" AND "停止" = 0 THEN
- "數據塊_1".啟動值 := 1;
- "數據塊_1".停止值 := 0;
- ELSIF "停止" THEN
- "數據塊_1".啟動值 := 0;
- "數據塊_1".停止值 := 1;
- "東西紅" := 0;
- "東西黃" := 0;
- "東西綠" := 0;
- "南北紅" := 0;
- "南北黃" := 0;
- "南北綠" := 0;
- END_IF;
- IF "數據塊_1".啟動值 THEN
- "數據塊_1".定時器.IN := 1;
- "數據塊_1".定時器.PT := T#55s;
- "IEC_Timer_0_DB_2".TON(IN := "數據塊_1".定時器.IN,
- PT := "數據塊_1".定時器.PT,
- ET => "數據塊_1".定時器輸出時間);
- IF "數據塊_1".定時器輸出時間>=T#0s AND "數據塊_1".定時器輸出時間<=T#20s THEN
- "東西綠" := 1;
- "南北紅" := 1;
- ELSIF "數據塊_1".定時器輸出時間>T#20s AND "數據塊_1".定時器輸出時間<=T#23s THEN
- "東西綠" :="Clock_2Hz" ;
- ELSIF "數據塊_1".定時器輸出時間>T#23s AND "數據塊_1".定時器輸出時間<=T#25s THEN
- "東西綠" := 0;
- "東西黃" := "Clock_2Hz";
- ELSIF "數據塊_1".定時器輸出時間>T#25s AND "數據塊_1".定時器輸出時間<=T#50s THEN
- "東西紅" := 1;
- "南北綠" := 1;
- "東西黃" := 0;
- "南北紅" := 0;
- ELSIF "數據塊_1".定時器輸出時間>T#50s AND "數據塊_1".定時器輸出時間<=T#53s THEN
- "南北綠" := "Clock_2Hz";
- ELSIF "數據塊_1".定時器輸出時間>T#53s AND "數據塊_1".定時器輸出時間<=T#55s THEN
- "南北黃" :="Clock_2Hz" ;
- "南北綠" := 0;
- END_IF;
- IF "數據塊_1".定時器輸出時間 =T#55s THEN
- RESET_TIMER("IEC_Timer_0_DB_2");
- "東西紅" := 0;
- "東西黃" := 0;
- "東西綠" := 0;
- "南北紅" := 0;
- "南北黃" := 0;
- "南北綠" := 0;
- END_IF;
- END_IF;
復制代碼
雙定時器版本:
- //交通燈:兩個定時器版本
- IF "啟動" AND "停止" = 0 THEN
- "數據塊_1".啟動值 := 1;
- "數據塊_1".停止值 := 0;
- ELSIF "停止" THEN
- "數據塊_1".啟動值 := 0;
- "數據塊_1".停止值 := 1;
- "東西紅" := 0;
- "東西黃" := 0;
- "東西綠" := 0;
- "南北紅" := 0;
- "南北黃" := 0;
- "南北綠" := 0;
- END_IF;
- IF "數據塊_1".啟動值 THEN
- "數據塊_1".定時器.IN := 1;
- "數據塊_1".定時器.PT := T#55s;
- "數據塊_1".定時器1.PT := T#0.5s;
- //總定時;55s
- "IEC_Timer_0_DB_2".TON(IN := "數據塊_1".定時器.IN,
- PT := "數據塊_1".定時器.PT,
- ET => "數據塊_1".定時器輸出時間);
- //0~20s;南北紅燈,東西綠燈
- IF "數據塊_1".定時器輸出時間>=T#0s AND "數據塊_1".定時器輸出時間<=T#20s THEN
- "東西綠" := 1;
- "南北紅" := 1;
- //東西綠燈閃3s
- ELSIF "數據塊_1".定時器輸出時間>T#20s AND "數據塊_1".定時器輸出時間<=T#23s THEN
- "數據塊_1".定時器1.IN := 1;
- "數據塊_1".定時器1.PT := T#500ms;
- "IEC_Timer_0_DB".TON(IN := "數據塊_1".定時器1.IN,
- PT := "數據塊_1".定時器1.PT,
- Q => "數據塊_1".定時器輸出2);
- IF "數據塊_1".定時器輸出2 THEN
- "東西綠" := NOT "東西綠";
- RESET_TIMER("IEC_Timer_0_DB");
- END_IF;
- //東西黃燈閃2s
- ELSIF "數據塊_1".定時器輸出時間>T#23s AND"數據塊_1".定時器輸出時間<=T#25s THEN
- "東西綠" := 0;
- "數據塊_1".定時器1.IN := 1;
- "數據塊_1".定時器1.PT := T#500ms;
- "IEC_Timer_0_DB".TON(IN := "數據塊_1".定時器1.IN,
- PT := "數據塊_1".定時器1.PT,
- Q => "數據塊_1".定時器輸出2);
- IF "數據塊_1".定時器輸出2 THEN
- "東西黃" := NOT "東西黃";
- RESET_TIMER("IEC_Timer_0_DB");
- END_IF;
- //東西紅燈,南北綠燈亮25S
- ELSIF "數據塊_1".定時器輸出時間>T#25s AND "數據塊_1".定時器輸出時間<=T#50s THEN
- "東西紅" := 1;
- "南北綠" := 1;
- "東西黃" := 0;
- "南北紅" := 0;
- //南北綠燈閃3s
- ELSIF "數據塊_1".定時器輸出時間>T#50s AND "數據塊_1".定時器輸出時間<=T#53s THEN
- "數據塊_1".定時器1.IN := 1;
- "數據塊_1".定時器1.PT := T#500ms;
- "IEC_Timer_0_DB".TON(IN := "數據塊_1".定時器1.IN,
- PT := "數據塊_1".定時器1.PT,
- Q => "數據塊_1".定時器輸出2);
- IF "數據塊_1".定時器輸出2 THEN
- "南北綠" := NOT "南北綠";
- RESET_TIMER("IEC_Timer_0_DB");
- END_IF;;
- //南北黃閃2s
- ELSIF "數據塊_1".定時器輸出時間>T#53s AND "數據塊_1".定時器輸出時間<=T#55s THEN
- "南北綠" := 0;
- "數據塊_1".定時器1.IN := 1;
- "數據塊_1".定時器1.PT := T#500ms;
- "IEC_Timer_0_DB".TON(IN := "數據塊_1".定時器1.IN,
- PT := "數據塊_1".定時器1.PT,
- Q => "數據塊_1".定時器輸出2);
- IF "數據塊_1".定時器輸出2 THEN
- "南北黃" := NOT "南北黃";
- RESET_TIMER("IEC_Timer_0_DB");
- END_IF;
- END_IF;
- //全部初始化
- IF "數據塊_1".定時器輸出時間 >=T#55s THEN
- RESET_TIMER("IEC_Timer_0_DB_2");
- "東西紅" := 0;
- "東西黃" := 0;
- "東西綠" := 0;
- "南北紅" := 0;
- "南北黃" := 0;
- "南北綠" := 0;
- END_IF;
- END_IF;
復制代碼
順便把歸檔文件也上傳一下,有需要的自取。
交通燈.zip
(611.46 KB, 下載次數: 47)
2020-7-15 12:03 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者: 事業小白 時間: 2020-7-30 17:06
為啥我開不開
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
黄片毛片免费观看
|
黄色在线免费看
|
丝袜美腿一区二区三区
|
免费在线观看成人
|
久久夜视频
|
久久手机在线视频
|
亚洲国产一区在线
|
狠狠狠干|
一道本不卡
|
欧美综合一区
|
亚洲成人在线免费
|
欧美乱大交xxxxx另类电影
|
国产精品国产三级国产播12软件
|
国产美女在线精品免费
|
97色免费视频
|
中文字幕国产精品视频
|
国产精品区二区三区日本
|
欧美日韩精品专区
|
国产精品不卡一区
|
91精品福利
|
国产一区免费视频
|
五月精品视频
|
中国一级特黄真人毛片免费观看
|
色桃网|
羞羞网站在线观看
|
春色av
|
一级毛毛片
|
国产亚洲精品久久久久动
|
国产成人精品免费视频大全最热
|
国产一区二区三区视频
|
综合久久综合久久
|
久草综合在线视频
|
国产精品女人久久久
|
在线中文字幕第一页
|
国产精品美女久久久久久免费
|
国产精品久久久一区二区三区
|
成人在线精品
|
欧美日韩精品一区二区
|
久久精品国产一区二区三区不卡
|
亚洲综合精品
|
久久久久久精
|