隨著工業(yè)自動化程度的不斷提高,可編程序控制器(PLC)正在走入工礦企業(yè)的每一個角落,只要有控制要求的場合,就有PLC的應(yīng)用。PLC常被稱為全能“工業(yè)電腦”,用它可以方便地對工業(yè)現(xiàn)場進行實時控制。在工業(yè)電氣控制系統(tǒng)中,經(jīng)常遇到控制常數(shù)設(shè)定和修改的問題,例如:某加熱控制系統(tǒng)加熱時間常數(shù)的設(shè)定和改變問題。PLC改變控制常數(shù)的常用方法有兩種,其一,通過上位計算機對原程序中控制數(shù)據(jù)進行修改;其二,利用外部裝置輸入數(shù)據(jù),控制系統(tǒng)運行。即由外設(shè)將數(shù)據(jù)送入PLC,進行數(shù)據(jù)處理,然后對PLC內(nèi)部參數(shù)進行修改,實現(xiàn)對工業(yè)設(shè)備的實時控制。第二鐘數(shù)據(jù)輸入方法,具有不修改原程序,數(shù)據(jù)輸入方法簡單、操作方便,能實現(xiàn)實時控制等優(yōu)點,不僅適用于計算機設(shè)計人員使用,而且還適用于普通操作人員。在電氣控制設(shè)備上,有著非常廣泛的應(yīng)用,并且許多廠家PLC產(chǎn)品都具有外部數(shù)據(jù)輸入功能。所以,利用PLC控制技術(shù)對外部BCD碼數(shù)據(jù)進行輸入,充分發(fā)揮工業(yè)控制計算機—PLC數(shù)值計算和處理能力的編程、控制方法,具有實際應(yīng)用的推廣意義。這里,以SIEMENS公司PLC構(gòu)成的某加熱系統(tǒng)為例,詳細(xì)、具體地對加熱時間常數(shù)外部數(shù)據(jù)輸入方法及用戶處理程序作以介紹。
1 BCD碼數(shù)據(jù)外部輸入應(yīng)用設(shè)計舉例
1.1 設(shè)計思路
首先介紹SIEMENS(西門子)公司PLC S7—200的物理存儲區(qū)結(jié)構(gòu),一般情況下,物理存儲區(qū)是以字節(jié)為單位的,所以存儲單元為字節(jié)單元,操作數(shù)長度是字或雙字時,標(biāo)識符后給出的存儲單元參數(shù)是字或雙字內(nèi)的最低字節(jié)單元號。圖1(a)給出了字節(jié)、字、雙字的相互關(guān)系及表示方法。當(dāng)使用數(shù)據(jù)寬度為字或雙字時,應(yīng)保證沒有生成任何重疊的存儲器字節(jié)分配,例如,字地址編碼應(yīng)采用MW10、MW12、MW14······等偶數(shù)字地址或MW11、MW13、MW15·······等奇數(shù)字地址,由于存儲器字MW10占用MB10、MB11兩個字節(jié),而MW11則要占用MB11、MB12兩字節(jié),存在字節(jié)地址重疊單元MB11,所以字地址編碼時奇偶不能兼用,以免造成數(shù)據(jù)讀寫錯誤。圖1(b)給出數(shù)據(jù)存儲結(jié)構(gòu),數(shù)據(jù)的高位用MSB表示,低位用LSB表示。
圖1(a) 以字節(jié)單元為基準(zhǔn)標(biāo)記存儲器單元 圖1(b) 存儲器中字節(jié)、字、雙字之間的關(guān)系
其次,以德國SIEMENS(西門子)公司的S7—200 PLC為例。構(gòu)成加熱控制系統(tǒng),加熱時間采用三位十進制數(shù)的BCD碼撥盤從PLC外部輸入。PLC輸入/輸出接點分配如下表所示:
附表:PLC輸入/輸出接點地址分配
加熱系統(tǒng)的加熱元件用PLC輸出點Q0.0控制,系統(tǒng)起動按鈕由I1.4輸入,復(fù)位按鈕由I1.5輸入。

圖2(a) 主程序流程

圖2(b) 子程序流程
這里選擇兩個字節(jié)的PLC輸入映象寄存器IB0和IB1作為外部數(shù)據(jù)輸入端,利用三個BCD碼撥盤將外部數(shù)據(jù)分別置入IB0、IB1兩個字節(jié)中。每個BCD碼撥盤需用四位PLC輸入點,如個位BCD碼8421端分別接至PLC的I0.3、I0.2、I0.1、I0.0輸入接點,分配PLC的輸入接點IB0的低4位為BCD碼的個位數(shù)、高4位為BCD碼的十位數(shù)、IB1的低4位為BCD碼的百位數(shù)、高4位為無效位。利用傳送指令分別將個、十、百位數(shù)送入三個內(nèi)部標(biāo)志寄存器(或內(nèi)部變量寄存器)保存,并將送入的十位、百位數(shù)分別乘以權(quán)10和權(quán)100,最后將處理好的個位、十位、百位數(shù)相加,運算結(jié)果作為加熱器的加熱時間常數(shù),PLC在用戶程序初始化時,將其送入加熱時間定時器中,對加熱器加熱時間進行實時控制,PLC在每次運行開始初始化程序中讀取BCD碼撥盤數(shù)據(jù)。這樣采用改變外部撥盤的數(shù)據(jù)。即可以靈活地改變加熱時間。
最后,在圖2程序流程中,介紹了外部數(shù)據(jù)輸入處理過程的基本思路。
1.2用戶處理程序
用戶程序由主程序和初始化子程序組成,根據(jù)特殊標(biāo)志位SMO.1在程序首次掃描時給出的脈沖信號,調(diào)用初始化子程序,實現(xiàn)BCD碼的數(shù)據(jù)輸入。這樣,在其后的掃描周期中不再會調(diào)用該程序,這減少了掃描時間且程序更結(jié)構(gòu)化。用戶程序說明:(1)程序段一實現(xiàn)子程序調(diào)用功能;(2)段二和段三實現(xiàn)加熱器加熱控制功能,輸出繼電器Q0.0由I1.4置位、定時器T37或I1.5復(fù)位,定時器T37的計時常數(shù)由內(nèi)部標(biāo)志寄存器MW8置入;(3)段5—段9為BCD碼數(shù)據(jù)輸入、處理子程序。段六、七分別將個位、十位、百位送MW2、6和VW2保存。段八實現(xiàn)十位乘10,百位乘100,運算結(jié)果分別送入VD4和VD8功能,并且將個位、十位、百位數(shù)求和運算結(jié)果送入MW8作為加熱器加熱時間。(4)段九為子程序返回。PLC S7-200梯形圖程序如圖3所示。

圖3(a)主程序


圖3(b) 子程序
2 設(shè)計關(guān)鍵技巧和注意事項
設(shè)計技巧:是用BCD碼撥盤,把加熱器的加熱時間值置成BCD碼數(shù),并用PLC的數(shù)據(jù)傳送指令讀入輸入映象寄存器,進行運算后,作為控制加熱定時器的預(yù)置值,從而達(dá)到實時控制。
注意事項:首先是應(yīng)特別熟悉PLC物理寄存器內(nèi)部結(jié)構(gòu),以便正確地確定BCD碼數(shù)據(jù)輸入位與PLC輸入接點的關(guān)系,使之與定時器的時間常數(shù)相對應(yīng)。其次,本參考程序在PLC由STOP狀態(tài)進入RUN狀態(tài)時讀入外部數(shù)據(jù),故只能在STOP狀態(tài)修改BCD撥盤數(shù)據(jù)。若需在程序運行其間更改數(shù)據(jù)時,只要將子程序調(diào)用條件稍加改動即可。










