朱啟文
(南京信息職業(yè)技術學院,江蘇南京 210003)
定時控制在工業(yè)控制、農業(yè)生產、交通疏導以及人們的日常生活等方面都有廣泛的應用。目前,各種可編程時序控制器應用較廣,市場上的產品種類也很多,主要是采用PLC作為控制器件。但在控制較復雜的時序過程時,有一些缺點,比如,程序設置是根據不同的工作要求,由用戶通過觸摸鍵盤對運行時間、輸出繼電器狀態(tài)等參數進行設定,使控制系統(tǒng)按預先設定的步序進行自動連續(xù)運行控制。這些現有時序系統(tǒng)使用很不方便,更新程序過程時間較長;一些采用有線或無線聯(lián)機控制的場合,布線和接口的成本又比較高。
本文提出一種可編程的時序控制系統(tǒng),采用可伸縮的網狀構架,針對各種有復雜時序要求的信息應用,利用了計算機軟件系統(tǒng)的資源優(yōu)勢,將對控制對象的控制程序轉變成代表事件序列的時序信息程序,下載到控制器的非易失存儲器中,由控制器獨立、離線、按程序運行。
對于不同的定時控制裝置或系統(tǒng),其控制特征與即時時刻(T)、控制輸出狀態(tài)(S)以及控制時間的精度/誤差(Δt)總是密切相關。
如果i控制條件的控制特征用作業(yè)(Hi)來定義,
換言之,一個定時控制裝置或系統(tǒng)的一個控制口總是可以通過在Ci1條件下,T±Δt時刻,輸出S狀態(tài)來實現。
由于該序列H規(guī)范了某條件下,任意時刻的輸出狀態(tài)。于是可以通過一組由以上三個信息構成的隊列(/序列)元(Hi)構成的控制隊列(/序列)(H)來實現一個定時控制裝置。
但從序列中,不難看出其給出的控制條件信息冗余度很大。對于大多數場合而言,輸出狀態(tài)很長一段時間是保持不變的。于是可以通過輸出差分信息ΔS來表示,
從而大大壓縮了這個定時控制器的作業(yè)序列長度。
舉例來說:一個教學工作日的打鈴控制由每秒的輸出控制序列,可以轉換成狀態(tài)跳變控制序列,如{……、(8:00:00,打開,normal)、(8:00:05,關閉,normal)、(8:45:00,打開,normal)、(8:45:05,關閉,normal)、……}。
所有的定時控制器的輸出要求,我們總是能夠轉換成某一時刻執(zhí)行一次輸出狀態(tài)的改變。對于前面的基本輸出模型Hi1=O(T±Δt,S,Ci1)。i1表示某次作業(yè)的輸入條件序號。Ci1可以是確定的條件,如前面的例子,可以描述出一個正常教學工作日(條件為Ci1)下的輸出序列表。
而對于節(jié)假日或一學年的特殊教學活動安排來說,這個輸出序列就不適用了。為此可以對條件進行編碼。將若干條件(j)的不同序列(i)用條件Cij表示。
上面的基本輸出模型可以描述為:
作為中國最大的化肥分銷企業(yè)和鉀肥進口企業(yè),中農控股自2013年起與BHP在鉀肥業(yè)務方面開始溝通,經過5年的磨合與熟悉,雙方在鉀肥業(yè)務上建立了高度的共識和默契。在此基礎上,中農控股成為BHP鉀肥進入中國市場的首個合作伙伴。
根據上面時序控制系統(tǒng)的分析可以構架控制系統(tǒng)的構架,如圖1所示:
圖1 控制系統(tǒng)總體構架
考慮到方案應當具備一定的通用性,因此抽象出一個方案知識庫,用戶在應用場景中可以從方案知識庫中提取所需方案,然后在此方案的基礎上進行修改,用戶也可以自己定義方案,然后將自定義方案添加到知識庫中。這樣控制器就是一個帶有操作系統(tǒng)的硬件環(huán)境,用戶可以在計算機部分進行一定的設置,這些設置最后就形成了一個應用程序下載到這個操作系統(tǒng)中,控制器就可以直接運行這個應用程序,這樣當用戶需求發(fā)生變化時只需要更新相應的應用程序。
時序控制信息的存儲方式決定了時序控制策略的可行性,因此時序控制信息的數據結構非常重要,本系統(tǒng)采用了可伸縮方式的時序控制結構,利用網狀數據結構模型構架時序控制信息結構如圖2所示。
圖2 時序控制信息數據結構圖
時序控制電路中的單片機每秒讀取時序控制設備的時鐘芯片中的即時時間,然后將即時時間和時序信息數據結構中各個時間進行比較,首先進行年節(jié)點的判斷。其中,首字節(jié)代表下面有多少時序信息有效,例如:月份中的首字節(jié)為3,代表月份中有3個月是含有時序事件的,每個月占兩個字節(jié),第一個字節(jié)代表是哪一個月,第二個字節(jié)代表偏移量。其中年和月的偏移量為一個字節(jié),其他從天開始偏移量為2個或2個以上的字節(jié)(為了以后的擴展)。
月判斷流程和年判斷流程一樣,小時、分鐘和秒判斷時步長要加3,其他都相同。如有周循環(huán)進入周區(qū)域進行判斷,判斷方法和年、月判斷方法相同,然后進入時區(qū)域進行判斷,依次到秒區(qū)域。秒節(jié)點后的偏移量就指向一個帶有事件的區(qū)域。如果該事件是帶條件的,就去讀取輸入口的狀態(tài)值和條件值相比較,如果輸入口狀態(tài)值和條件值相匹配就執(zhí)行相應條件下的動作,如果該事件是不帶事件的,則直接執(zhí)行該事件。
可編程時序控制系統(tǒng)硬件部分由幾大模塊組成,如圖3所示。
圖3 控制系統(tǒng)硬件設計
核心主控模塊采用低成本51單片機進行時序控制策略的調度[1],其中時鐘模塊選用DS1307作為時鐘芯片;非易失性存儲器存放的是時序控制信息,這些時序信息是通信上位機設定好后下載到非易失性存儲器中;電源模塊負責給整個控制電路供電,該電源模塊帶有后備電池,能在斷電的情況下給時鐘供電多年;監(jiān)控模塊主要是防止系統(tǒng)出現異常時自動復位,加強系統(tǒng)的穩(wěn)定性;通信模塊可以是一個備用模塊,主要負責和上位機之間的通信,用戶通過上位機設定的時序信息通過串口下載到控制電路中[2]。
為了用戶可以很方便配置各種時序控制策略,軟件采用方案庫設定的方式進行操作。用戶可以設置方案,設置完成后,會將該用戶設置的方案、用戶名和設置日期一起存入數據庫中。當用戶將方案設置完畢后將用戶的設置轉換成控制指令的數據集合,然后通過串口下載到控制系統(tǒng)的硬件板上??刂葡到y(tǒng)的主界面如圖4所示。
圖4 控制系統(tǒng)軟件主界面
用戶通過控制系統(tǒng)軟件將時序控制方案設定完成后通過串口將這些時序控制信息下載到時序控制板中,其中的通信流程如圖5所示。
如圖5所示,通信開始是首先發(fā)送通信開始幀,時序控制電路收到后會發(fā)送確認幀。若收到上次通信事件失敗幀,則控制軟件將進行一定的處理,通知用戶上次通信失敗,讓用戶進行選擇。如果需要恢復上次的通信事件,則抽取該幀中的事件ID號到數據庫中查詢相應的事件隊列,然后再開始發(fā)送通信開始幀;如果要寫入一個新的事件,則直接將新的事件寫入時序控制電路。每發(fā)送一幀數據幀都進行等待確認幀,若通信中斷則從頭開始重傳。含有時間信息的數據幀都發(fā)送完畢后,發(fā)送通信結束幀,通信結束
圖5 通信流程
本系統(tǒng)的主要優(yōu)勢在于其通用性、實用性以及易用性。該系統(tǒng)可以實現復雜信息場合下的時序控制設備的應用,用戶只需在計算機的時序控制設備進行編程的軟件程序中錄入簡單的時間信息和特殊事件,即可完成。
利用本系統(tǒng)所采用的這種新的技術策略,用戶可以很方便地進行一些設置。根據各種不同需求建立所需的方案序列。采用非易失存儲器作為程序傳輸的介質,避免了傳統(tǒng)方法通過無/有線傳輸的空間、成本等的限制,可以使時序控制設備離線工作,實現時序控制系統(tǒng)設置簡便、靈活,而且采用低成本51單片機作為控制器件,節(jié)約了成本,更具有人性化[3]。
[1]趙亮,侯國瑞.單片機C語言編程與實例[M].北京:人民郵電出版社,2003:307-311.
[2]王幸之.單片機原理與接口技術[M].北京:北京航空航天大學出版社,2000:45-49.
[3]張毅剛.新編MCS-51單片機應用設計[M].哈爾濱:哈爾濱工業(yè)大學出版社,2006:55-78.