久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4797|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

簡單的交通燈:PLC-SCL語言程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
本帖最后由 12131213 于 2020-7-15 12:32 編輯

       看了網(wǎng)上的交通燈程序似乎都沒有SCL版本的,就把自己 寫的SCL版本分享一下吧。
控制要求:
       首先,南北方向紅燈亮25秒,與此同時,東西方向綠燈先亮20秒,然后閃3秒,接著東西方向黃燈閃2秒;接下來,東西方向紅燈亮30秒,南北方向綠燈先亮25秒,然后,南北綠燈閃3秒,南北黃燈閃2秒。
程序設(shè)計思路:
       程序分為單定時器和雙定時器兩個版本,但思路是一樣的,都是根據(jù)在不同的時間點(diǎn),控制不同的燈亮。因?yàn)榭偟臅r長為55秒,然后東西方向通行時間為25秒,南北方向通行時間為30秒,整個程序流程如下:


       然后簡單說一下單定時器和雙定時器的區(qū)別,他們的功能是一樣的,只不過雙定時器可以任意修改閃爍頻率,而單定時器版本的只能使用系統(tǒng)設(shè)定好的幾個頻率。因?yàn)閱味〞r器版本用的是PLC自帶的系統(tǒng)時鐘,使用方法是打開”設(shè)備組態(tài)”,在“常規(guī)”里面找到“系統(tǒng)和時鐘存儲器”,勾選“時鐘存儲器位”就行了,然后就可以在PLC變量表里面看到相應(yīng)的變量了。圖片如下:


程序如下:
單定時器版本:
  1. //交通燈:單定時器版本
  2. IF "啟動" AND "停止" = 0 THEN
  3.     "數(shù)據(jù)塊_1".啟動值 := 1;
  4.     "數(shù)據(jù)塊_1".停止值 := 0;
  5. ELSIF "停止" THEN
  6.     "數(shù)據(jù)塊_1".啟動值 := 0;
  7.     "數(shù)據(jù)塊_1".停止值 := 1;
  8.     "東西紅" := 0;
  9.     "東西黃" := 0;
  10.     "東西綠" := 0;
  11.     "南北紅" := 0;
  12.     "南北黃" := 0;
  13.     "南北綠" := 0;
  14. END_IF;
  15. IF "數(shù)據(jù)塊_1".啟動值 THEN
  16.     "數(shù)據(jù)塊_1".定時器.IN := 1;
  17.     "數(shù)據(jù)塊_1".定時器.PT := T#55s;
  18.     "IEC_Timer_0_DB_2".TON(IN := "數(shù)據(jù)塊_1".定時器.IN,
  19.                            PT := "數(shù)據(jù)塊_1".定時器.PT,
  20.                            ET => "數(shù)據(jù)塊_1".定時器輸出時間);
  21.     IF "數(shù)據(jù)塊_1".定時器輸出時間>=T#0s AND "數(shù)據(jù)塊_1".定時器輸出時間<=T#20s THEN
  22.         "東西綠" := 1;
  23.         "南北紅" := 1;
  24.         ELSIF "數(shù)據(jù)塊_1".定時器輸出時間>T#20s AND  "數(shù)據(jù)塊_1".定時器輸出時間<=T#23s THEN
  25.             "東西綠" :="Clock_2Hz" ;
  26.         ELSIF "數(shù)據(jù)塊_1".定時器輸出時間>T#23s AND  "數(shù)據(jù)塊_1".定時器輸出時間<=T#25s THEN
  27.             "東西綠" := 0;
  28.             "東西黃" := "Clock_2Hz";
  29.     ELSIF "數(shù)據(jù)塊_1".定時器輸出時間>T#25s AND "數(shù)據(jù)塊_1".定時器輸出時間<=T#50s THEN
  30.         "東西紅" := 1;
  31.         "南北綠" := 1;
  32.         "東西黃" := 0;
  33.         "南北紅" := 0;
  34.     ELSIF "數(shù)據(jù)塊_1".定時器輸出時間>T#50s AND "數(shù)據(jù)塊_1".定時器輸出時間<=T#53s THEN
  35.         "南北綠" := "Clock_2Hz";
  36.     ELSIF "數(shù)據(jù)塊_1".定時器輸出時間>T#53s AND "數(shù)據(jù)塊_1".定時器輸出時間<=T#55s THEN
  37.         "南北黃" :="Clock_2Hz" ;
  38.         "南北綠" := 0;
  39.     END_IF;
  40.     IF "數(shù)據(jù)塊_1".定時器輸出時間 =T#55s THEN
  41.         RESET_TIMER("IEC_Timer_0_DB_2");
  42.         "東西紅" := 0;
  43.         "東西黃" := 0;
  44.         "東西綠" := 0;
  45.         "南北紅" := 0;
  46.         "南北黃" := 0;
  47.         "南北綠" := 0;
  48.     END_IF;
  49. END_IF;
復(fù)制代碼



雙定時器版本:
  1. //交通燈:兩個定時器版本
  2. IF "啟動" AND "停止" = 0 THEN
  3.     "數(shù)據(jù)塊_1".啟動值 := 1;
  4.     "數(shù)據(jù)塊_1".停止值 := 0;
  5. ELSIF "停止" THEN
  6.     "數(shù)據(jù)塊_1".啟動值 := 0;
  7.     "數(shù)據(jù)塊_1".停止值 := 1;
  8.     "東西紅" := 0;
  9.     "東西黃" := 0;
  10.     "東西綠" := 0;
  11.     "南北紅" := 0;
  12.     "南北黃" := 0;
  13.     "南北綠" := 0;
  14. END_IF;
  15. IF "數(shù)據(jù)塊_1".啟動值 THEN
  16.     "數(shù)據(jù)塊_1".定時器.IN := 1;
  17.     "數(shù)據(jù)塊_1".定時器.PT := T#55s;
  18.     "數(shù)據(jù)塊_1".定時器1.PT := T#0.5s;
  19.     //總定時;55s
  20.     "IEC_Timer_0_DB_2".TON(IN := "數(shù)據(jù)塊_1".定時器.IN,
  21.                            PT := "數(shù)據(jù)塊_1".定時器.PT,
  22.                            ET => "數(shù)據(jù)塊_1".定時器輸出時間);
  23.     //0~20s;南北紅燈,東西綠燈
  24.     IF "數(shù)據(jù)塊_1".定時器輸出時間>=T#0s AND "數(shù)據(jù)塊_1".定時器輸出時間<=T#20s THEN
  25.         "東西綠" := 1;
  26.         "南北紅" := 1;
  27.    //東西綠燈閃3s
  28.     ELSIF "數(shù)據(jù)塊_1".定時器輸出時間>T#20s AND "數(shù)據(jù)塊_1".定時器輸出時間<=T#23s THEN
  29.         "數(shù)據(jù)塊_1".定時器1.IN := 1;
  30.         "數(shù)據(jù)塊_1".定時器1.PT := T#500ms;
  31.         "IEC_Timer_0_DB".TON(IN := "數(shù)據(jù)塊_1".定時器1.IN,
  32.                              PT := "數(shù)據(jù)塊_1".定時器1.PT,
  33.                              Q => "數(shù)據(jù)塊_1".定時器輸出2);
  34.         IF "數(shù)據(jù)塊_1".定時器輸出2 THEN
  35.             "東西綠" := NOT "東西綠";
  36.             RESET_TIMER("IEC_Timer_0_DB");
  37.         END_IF;
  38.         //東西黃燈閃2s
  39.         ELSIF "數(shù)據(jù)塊_1".定時器輸出時間>T#23s AND"數(shù)據(jù)塊_1".定時器輸出時間<=T#25s THEN
  40.             "東西綠" := 0;
  41.             "數(shù)據(jù)塊_1".定時器1.IN := 1;
  42.             "數(shù)據(jù)塊_1".定時器1.PT := T#500ms;
  43.             "IEC_Timer_0_DB".TON(IN := "數(shù)據(jù)塊_1".定時器1.IN,
  44.                                  PT := "數(shù)據(jù)塊_1".定時器1.PT,
  45.                                  Q => "數(shù)據(jù)塊_1".定時器輸出2);
  46.             IF "數(shù)據(jù)塊_1".定時器輸出2 THEN
  47.                 "東西黃" := NOT "東西黃";
  48.                 RESET_TIMER("IEC_Timer_0_DB");
  49.             END_IF;
  50. //東西紅燈,南北綠燈亮25S
  51.     ELSIF "數(shù)據(jù)塊_1".定時器輸出時間>T#25s AND "數(shù)據(jù)塊_1".定時器輸出時間<=T#50s THEN
  52.         "東西紅" := 1;
  53.         "南北綠" := 1;
  54.         "東西黃" := 0;
  55.         "南北紅" := 0;
  56.      //南北綠燈閃3s   
  57.     ELSIF "數(shù)據(jù)塊_1".定時器輸出時間>T#50s AND "數(shù)據(jù)塊_1".定時器輸出時間<=T#53s THEN
  58.         "數(shù)據(jù)塊_1".定時器1.IN := 1;
  59.         "數(shù)據(jù)塊_1".定時器1.PT := T#500ms;
  60.         "IEC_Timer_0_DB".TON(IN := "數(shù)據(jù)塊_1".定時器1.IN,
  61.                              PT := "數(shù)據(jù)塊_1".定時器1.PT,
  62.                              Q => "數(shù)據(jù)塊_1".定時器輸出2);
  63.         IF "數(shù)據(jù)塊_1".定時器輸出2 THEN
  64.             "南北綠" := NOT "南北綠";
  65.             RESET_TIMER("IEC_Timer_0_DB");
  66.         END_IF;;
  67.      //南北黃閃2s   
  68.     ELSIF "數(shù)據(jù)塊_1".定時器輸出時間>T#53s AND  "數(shù)據(jù)塊_1".定時器輸出時間<=T#55s THEN
  69.         "南北綠" := 0;
  70.         "數(shù)據(jù)塊_1".定時器1.IN := 1;
  71.         "數(shù)據(jù)塊_1".定時器1.PT := T#500ms;
  72.         "IEC_Timer_0_DB".TON(IN := "數(shù)據(jù)塊_1".定時器1.IN,
  73.                              PT := "數(shù)據(jù)塊_1".定時器1.PT,
  74.                              Q => "數(shù)據(jù)塊_1".定時器輸出2);
  75.         IF "數(shù)據(jù)塊_1".定時器輸出2 THEN
  76.             "南北黃" := NOT "南北黃";
  77.             RESET_TIMER("IEC_Timer_0_DB");
  78.         END_IF;
  79.     END_IF;
  80.     //全部初始化
  81.     IF "數(shù)據(jù)塊_1".定時器輸出時間 >=T#55s THEN
  82.         RESET_TIMER("IEC_Timer_0_DB_2");
  83.         "東西紅" := 0;
  84.         "東西黃" := 0;
  85.         "東西綠" := 0;
  86.         "南北紅" := 0;
  87.         "南北黃" := 0;
  88.         "南北綠" := 0;
  89.     END_IF;
  90. END_IF;
復(fù)制代碼


順便把歸檔文件也上傳一下,有需要的自取。
交通燈.zip (611.46 KB, 下載次數(shù): 47)



評分

參與人數(shù) 1黑幣 +80 收起 理由
admin + 80 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:613064 發(fā)表于 2020-7-30 17:06 | 只看該作者
為啥我開不開
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 97久久精品午夜一区二区 | 亚洲理论在线观看电影 | 99热免费在线 | 日日夜夜操天天干 | 久久久久久a | 一区二区三区在线观看视频 | 亚洲超碰在线观看 | 欧美日韩视频 | 日韩国产一区 | 久久精品色欧美aⅴ一区二区 | 欧美一区二区三区在线 | 祝你幸福电影在线观看 | 亚州毛片 | www国产成人免费观看视频 | 亚洲精品一区二区三区蜜桃久 | 国产毛片视频 | www国产精| 国产成视频在线观看 | 国产精品免费一区二区三区 | 亚洲精品久久久久久久久久久 | 久久新 | 手机av在线 | 亚洲精品久久久一区二区三区 | 丁香综合 | 丁香综合| 一级毛片播放 | 亚洲精品一区二区冲田杏梨 | 成人精品一区亚洲午夜久久久 | av一区二区三区四区 | 国产在视频一区二区三区吞精 | 日韩欧美视频网站 | 丝袜一区二区三区 | 日韩一区二区三区视频在线观看 | 亚洲福利 | 午夜资源 | 少妇一区在线观看 | 亚洲成人av | 成人免费在线观看 | 国产精品久久久久久久午夜片 | 亚洲一区二区三区桃乃木香奈 | 91免费观看 |