余璐,姚成
(安徽財貿(mào)職業(yè)學院,安徽 合肥 230601)
交通燈控制實訓是電子信息類課程實訓中經(jīng)常使用的案例之一。本文通過國家、公安部對交通燈控制時間和倒計時顯示要求,利用Forcecontrol V7.1 設計圖形界面,使用不同的方法編寫腳本,以實現(xiàn)可以實時設置倒計時時間、動態(tài)顯示交通燈的效果,使實訓者加深了對交通燈控制的認識和腳本代碼編寫方法的掌握,為后續(xù)連接PLC 或者單片機,實現(xiàn)實際控制奠定基礎。
在電子信息控制類課程的教學中,有基于PLC、單片機、FPGA等的交通信號燈實訓設計,通過實訓加深了對這些技術的理解,提高編程能力,提高學習興趣。因此,開發(fā)基于力控組態(tài)軟件的交通燈控制實訓具有實用價值。利用力控組態(tài)軟件設計界面,通過窗口動作、后臺組件定時器和累計器屬性變化動作等三種不同事件過程的腳本編寫,實現(xiàn)相同的功能,并比較各自優(yōu)缺點,從而掌握這些對象的使用和提高編程技巧。
依據(jù)《道路交通信號燈設置與安裝規(guī)范》(GB 14886-2016)[1]和《道路交通信號倒計時顯示器》(GA/T 508-2014)[2]利用力控ForceControl V7.1模擬交通燈控制,其中轉(zhuǎn)換示意圖如圖1所示,采用雙位倒計時器。紅燈時長一般不超過90秒,利用RSZ中間整型變量設置,例如設置為30秒;綠燈時長一般為30秒及以上,利用GSZ 中間整型變量設置,例如設置為27 秒,其中連續(xù)24秒、閃爍3秒;黃燈時長3~5秒,設置為3秒,一次循環(huán)RSZ+GSZ+3秒,例如60秒。時序圖如圖2所示。
圖1 機動車信號燈燈色轉(zhuǎn)換示意圖
圖2 交通燈控制南北方向時序圖
界面設計采用力控Forcecontrol V7.1 組態(tài)軟件實現(xiàn),通過新建工程,進入開發(fā)系統(tǒng),建立窗口界面,從工具箱拖拽基本圖元并置于窗口適當位置,搭建好組態(tài)畫面如圖3所示。其中紅綠燈效果實現(xiàn)使用了圖庫里的紅綠燈和橢圓的組合功能,利用橢圓遮罩的顯示和隱藏來顯現(xiàn)紅、黃、綠燈。然后從文本控件TexRSZ、TexGSZ 錄入紅燈、綠燈定時時間,在開始按鈕的左鍵動作中設置開關控制信號,在停止的左鍵動作中設置中止信號。運行效果見圖4。對象屬性設置如表1所示。
表1 交通燈力控組態(tài)界面屬性設置表
圖3 交通燈力控組態(tài)界面
圖4 運行效果
首先如圖5 新建5 個中間變量,利用文本控件TexRSZ(其模擬輸入輸出變量為RSZ) 和TexGSZ(其模擬輸入輸出變量為GSZ) 設置紅燈、綠燈定時時間,利用遮罩的顯示和隱藏來顯示紅、黃、綠燈,在開始按鈕的左鍵動作中置KZ 變量為1,開始計數(shù),在停止按鈕的左鍵動作中置KZ 變量為0,停止計數(shù)。循環(huán)執(zhí)行。根據(jù)時序圖編寫腳本,具體操作步驟:執(zhí)行菜單“功能”→“動作”→“窗口動作”菜單命令,打開腳本編輯器,編寫相關腳本如下。
圖5 定義中間變量
圖6 定時器后臺組件
界面設計和新建中間變量與方法一相同。其他操作步驟:從“工程”窗口,雙擊“項目”→“后臺組件”打開后臺組件窗口,雙擊“定時器”。
右邊“后臺組件”窗口,此時已經(jīng)添加了定時器模塊[4],用同樣方法添加另外兩個定時器,并命名為TimerR、TimerG和TimerY。分別單擊“屬性列表”中的RunTime和Status屬性,打開“變量屬性設置”窗口,如圖7所示。在紅燈定時器的Status“屬性變化腳本”中編寫代碼,用于判斷其是否定時時間到,如果到了,關閉紅燈定時器,打開綠燈定時器,以此類推,循環(huán)執(zhí)行。在RunTime“屬性變化腳本”中編寫功能代碼,這樣就可以利用三個定時器完成相互配合實現(xiàn)三色燈的切換功能。相關腳本如下:
圖7 定時器和關聯(lián)屬性的調(diào)出
首先需要在方法二的變量基礎上新建一個實型的數(shù)據(jù)庫變量KG.PV(開關),連接GroJTD交通信號倒計時燈智能單元和開始停止按鈕。接著調(diào)出后臺組件通用控件中的累計器組件[5]。因為累計器都是以秒為單位的,所以,還需要添加定時器解決綠燈3秒長度的0.5秒閃爍。相關腳本如下:
本文重點探討了力控組態(tài)交通燈控制實訓方案設計,敘述了界面設計過程、窗口動作和對象屬性變化的觸發(fā)條件以及腳本的編寫方法。其中腳本設計采用了三種不同的方案,方法一利用窗口動作實現(xiàn)紅綠燈控制,雖然該方法容易理解,但是必須將窗體運行掃描時間設為500毫秒,這樣會影響其他對象的需求,例如影響Modbus 通訊的速度。方法二利用定時器實現(xiàn)交通燈控制,該方法將控制過程分散到各個定時器的屬性變化腳本中,雖然代碼不集中,但是不影響其他對象的需求。方法三利用累計器實現(xiàn)交通燈控制,同樣也是分散到屬性變化腳本中,由于累計器的時間為1秒,要實現(xiàn)綠燈0.5秒閃爍,還是要利用定時器。因此,筆者認為三種方法中,以第二種方法為最佳。
在實訓過程中通過引導實訓者自行嘗試、實踐試錯、修正解決等方式一步步完成實訓任務。從而提高學習興趣和動手操作能力。該實訓設計靈活開拓了相同效果的不同實現(xiàn)方式,既達到了學習力控組態(tài)設計方法,又開拓了發(fā)散思維能力。最后,如果增加東西方向紅綠燈控制,以及通過IO設備和數(shù)據(jù)庫組態(tài)實現(xiàn)力控與PLC等連接,便可實現(xiàn)交通燈實際控制。如果利用傳感器采集路口交通信息,通過大數(shù)據(jù)分析處理后,實時改變時間控制變量,將更加具有實際工程應用價值。該實訓方案設計可用于相關專業(yè)學生的課程設計、畢業(yè)設計。