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