国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

提高工控應(yīng)用軟件可靠性的探索—單片機(jī)及PLC應(yīng)用軟件的設(shè)計(jì)實(shí)踐

2015-04-17 07:26:28洪光
關(guān)鍵詞:工控模擬量字節(jié)

洪光

(大連冷星企業(yè)有限公司,遼寧 大連 116021)

提高工控應(yīng)用軟件可靠性的探索—單片機(jī)及PLC應(yīng)用軟件的設(shè)計(jì)實(shí)踐

洪光

(大連冷星企業(yè)有限公司,遼寧 大連 116021)

論文圍繞工控軟件可靠性設(shè)計(jì)、評(píng)判方法,提出了一套行之有效的可靠性設(shè)計(jì)方案。

單片機(jī);PLC;可靠性

0 引言

工控軟件開(kāi)發(fā)平臺(tái),經(jīng)歷了機(jī)器碼語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言的發(fā)展過(guò)程,使編程越來(lái)越方便、功能越來(lái)越強(qiáng)——可以通過(guò)工控軟件完成較完善的設(shè)計(jì)方案。若在此基礎(chǔ)上,繼續(xù)對(duì)機(jī)器碼及其存儲(chǔ)方式、指令運(yùn)行的時(shí)序進(jìn)行研究;同時(shí),在抗干擾硬件設(shè)計(jì)方面,改變關(guān)注功率容量的冗余較多,而對(duì)模塊的軟硬件時(shí)序配合關(guān)注不夠、對(duì)布線工藝的關(guān)注更是缺失的現(xiàn)狀,能夠顯著提高工控應(yīng)用軟件的可靠性質(zhì)量。

1 工控軟件可靠性的設(shè)計(jì)理念

項(xiàng)目的成敗關(guān)鍵取決于可靠性。軟件設(shè)計(jì)的可靠性是建立在硬件設(shè)計(jì)可靠性之上的。討論工控軟件的可靠性是以硬件可靠性無(wú)大礙為前提的。

1.1工控軟件可靠性設(shè)計(jì)的概念

軟件的可靠性是設(shè)計(jì)出來(lái)的。工控軟件的可靠性,表現(xiàn)在運(yùn)行中抗干擾的能力上。事實(shí)上,軟件的可靠性是依靠設(shè)計(jì)實(shí)現(xiàn)的。正確的工控軟件設(shè)計(jì)方法是:功能設(shè)計(jì)同可靠性設(shè)計(jì)同步,當(dāng)滿意的設(shè)計(jì)方案確定后,才開(kāi)始著手編碼設(shè)計(jì)。然后經(jīng)過(guò)多次測(cè)試運(yùn)行、修正編碼設(shè)計(jì),直至達(dá)到可靠性要求。

1.2工控軟件可靠性設(shè)計(jì)的原則

(1)重視“電磁輻射”和“過(guò)渡過(guò)程”等高頻電子特性。通過(guò)軟件的智能,避開(kāi)輻射和功率信號(hào)造成的電源浪涌和信號(hào)的抖動(dòng)。

(2)重視軟件運(yùn)行的“因果”時(shí)序關(guān)系。在PLC軟件系統(tǒng)中,各語(yǔ)句都掛在同一母線上,這種“多頭(條)”語(yǔ)句按順序執(zhí)行,每一“頭(條)”語(yǔ)句按條件執(zhí)行到“尾”的組合,比單片機(jī)一條思路追蹤“因果”關(guān)系要復(fù)雜。PLC應(yīng)用軟件要十分注意語(yǔ)句的因果時(shí)序問(wèn)題:不要認(rèn)為程序是循環(huán)執(zhí)行的,一條語(yǔ)句雖然第一次循環(huán)時(shí)因條件不具備不能執(zhí)行到底,下一次循環(huán)時(shí)條件具備了,可以執(zhí)行到底了,就是正確的。其實(shí)兩條語(yǔ)句因果倒置的錯(cuò)誤邏輯,使程序存在失效的風(fēng)險(xiǎn)。

(3)十分關(guān)注“標(biāo)志位”的“建立(置位)”和“解除(復(fù)位)”過(guò)程。軟件臭蟲(錯(cuò)誤的漏洞)多發(fā)生在忽略了標(biāo)志位的發(fā)生和解除的歷史過(guò)程。標(biāo)志位必須是在可靠性設(shè)計(jì)階段就做出規(guī)劃——建立的條件和解除的時(shí)機(jī),以及標(biāo)志位的容錯(cuò)方案。

(4)盡量用順序程序,少用中斷和子程序;成熟的軟件應(yīng)盡量“模塊化”,必要時(shí)(多次使用時(shí))才做子程序調(diào)用。減少中斷和子程序,可減少程序地址指針跑偏的可能。

2 工控軟件的可靠性定義

可靠性定義——在“任務(wù)書”指定條件下使用時(shí),軟件產(chǎn)品維持規(guī)定的性能級(jí)別的能力。在不同階段,可靠性的表達(dá)形式分為:①內(nèi)部可靠性:在設(shè)計(jì)規(guī)劃和編碼組合層面上的可靠性度量。規(guī)范了軟件執(zhí)行之前的可靠性規(guī)劃設(shè)計(jì)和評(píng)判原則,可以通過(guò)“分析”做出改進(jìn);②外部可靠性:通過(guò)測(cè)試、運(yùn)行觀察可執(zhí)行的軟件及系統(tǒng)。由軟件所在系統(tǒng)的行為(調(diào)試或試運(yùn)行過(guò)程),測(cè)試或?qū)С鲕浖目煽啃浴_@個(gè)環(huán)節(jié)提供可靠性設(shè)計(jì)執(zhí)行效果,是進(jìn)一步修改的依據(jù);③使用可靠性:在“任務(wù)書”特定的使用周境下,滿足特定用戶達(dá)到特定目標(biāo)所要求的有效性、生產(chǎn)率、安全性和滿意度的程度。

使用可靠性是內(nèi)部可靠性和外部可靠性的最終結(jié)果,是“目標(biāo)管理”系統(tǒng)的終極目標(biāo)。

3 幾種軟件可靠性設(shè)計(jì)方案剖析

3.1機(jī)器碼程序設(shè)計(jì)方案

單片機(jī)(以8031為例)有單字節(jié)、雙字節(jié)、三字節(jié)指令。單字節(jié)指令直接包含了指令碼和操作數(shù);雙字節(jié)、三字節(jié)指令的第一字節(jié)是指令碼,后面的字節(jié)是操作數(shù)。如果全部指令都是單字節(jié),那么每一次讀取的指令都是唯一的。由于有其他形式的指令存在,程序地址指針讀取的既有指令碼,也有操作數(shù)。如果把操作數(shù)當(dāng)做指令碼,后面程序按照這個(gè)“偽指令碼”的操作數(shù)執(zhí)行,這個(gè)程序就亂了。所以單片機(jī)軟件的設(shè)計(jì)原則之一:盡量使用單字節(jié)指令,其次是使用雙字節(jié)指令,不得已才使用三字節(jié)指令。

由于最多有三字節(jié)指令,所以在每條語(yǔ)句后面設(shè)置兩條“空操作”語(yǔ)句。假如錯(cuò)誤地將三字節(jié)指令的最后一字節(jié)操作數(shù)當(dāng)成了指令碼,那么這個(gè)指令碼后面是兩字節(jié)的空操作的“操作數(shù)”(空操作的指令碼是00H),相當(dāng)于是操作數(shù)=00H的立即數(shù)。如果程序地址指針將三字節(jié)指令的第二字節(jié)當(dāng)做指令碼,最多也是三字節(jié)指令的指令碼。那么這個(gè)“偽指令碼”的第二個(gè)操作數(shù)=00H的立即數(shù),下一個(gè)指針讀出的就是正確的指令碼了。

以上分析得出:一條指令發(fā)生錯(cuò)誤時(shí),執(zhí)行了一個(gè)或兩個(gè)立即數(shù)=00H的操作后,就回到正常取址周期了——錯(cuò)誤范圍比較小。在程序循環(huán)執(zhí)行條件下,下一個(gè)循環(huán)周期就會(huì)改正把空操作指令當(dāng)立即數(shù)執(zhí)行的錯(cuò)誤。

同時(shí)在中斷矢量入口、中斷程序入口、子程序入口、跳轉(zhuǎn)程序入口等處設(shè)置空操作指令,并在這些入口的上、下兩字節(jié)都設(shè)置空操作指令(共5個(gè)空操作指令),跳轉(zhuǎn)指令更容易進(jìn)入指定入口。

以上應(yīng)該是單片機(jī)軟件的規(guī)范模式。匯編語(yǔ)言及高級(jí)語(yǔ)言的編譯程序,如果能自動(dòng)按此“語(yǔ)句孤島”方式存放機(jī)器碼,那么工控軟件的抗干擾能力會(huì)有及大地提高。

3.2數(shù)據(jù)冗余的容錯(cuò)設(shè)計(jì)方案

將運(yùn)算結(jié)果和標(biāo)志位分別存放在不同的內(nèi)存區(qū)域——數(shù)據(jù)冗余備份。在程序中不斷地對(duì)冗余數(shù)據(jù)進(jìn)行表決判斷,恢復(fù)被改寫的數(shù)據(jù)——數(shù)據(jù)容錯(cuò)。

該方案增加了許多同“功能性”不相關(guān)的“額外”程序段,但增加了軟件的可靠性。筆者在單片機(jī)和PLC程序中,都采用該方案(一個(gè)有效數(shù)據(jù)存放在在三個(gè)不同地址),所增加的“額外”工作量,被成熟的“三取二表決”等子程序緩解了。

3.3輸出口的容錯(cuò)設(shè)計(jì)方案

在對(duì)輸出狀態(tài)位循環(huán)容錯(cuò)維護(hù)條件下,對(duì)輸出口狀態(tài)的不斷刷新容(糾)錯(cuò)。這個(gè)“循環(huán)刷新輸出口”的設(shè)計(jì)思想已經(jīng)在PLC系統(tǒng)軟件中自動(dòng)實(shí)現(xiàn)了。但在單片機(jī)系統(tǒng)中,還是需要提出注意的——切不可在輸出狀態(tài)變化后才刷新一次輸出口(比如中斷一次才有輸出口的變化,然后刷新),要把輸出口的刷新放在主程序循環(huán)中——容許一次干擾改變了輸出口狀態(tài),重復(fù)刷新可糾正錯(cuò)誤。輸出口包含數(shù)據(jù)和狀態(tài)顯示。

輸出口的容錯(cuò)設(shè)計(jì)包括及時(shí)、準(zhǔn)確地發(fā)現(xiàn)錯(cuò)誤,做出必要的響應(yīng)——對(duì)一切輸出指令都盡可能建立反饋通道。

3.4開(kāi)關(guān)量輸入口的容錯(cuò)設(shè)計(jì)方案

首先是“邏輯容錯(cuò)”設(shè)計(jì)——針對(duì)誤操作的設(shè)計(jì)。軟件必須保證“邏輯性的錯(cuò)誤”操作,包括干擾形成的“操作”不被執(zhí)行。

開(kāi)關(guān)量輸入的抖動(dòng)(或連擊)也需要容錯(cuò)處理。最有效的方案是“RS鎖存器”以及動(dòng)作的“連續(xù)識(shí)別有效”處理。在硬件方面應(yīng)避免設(shè)計(jì)使用功能相反的“復(fù)用鍵”,比如在停機(jī)狀態(tài)作為啟動(dòng)鍵,在運(yùn)行狀態(tài)作為停機(jī)鍵,避免狀態(tài)震蕩(雖然軟件可以設(shè)計(jì)最高開(kāi)關(guān)頻率,但仍盡量不這樣設(shè)計(jì)“復(fù)用鍵”)。

3.5模擬量輸入信號(hào)的容錯(cuò)設(shè)計(jì)方案

PLC的系統(tǒng)軟件已經(jīng)對(duì)模擬量信號(hào)采集系統(tǒng)做了自動(dòng)處理。模擬量采集口的綜合設(shè)計(jì),是單片機(jī)系統(tǒng)開(kāi)發(fā)的重(難)點(diǎn)。

3.6可靠性之易恢復(fù)性設(shè)計(jì)方案

易恢復(fù)性——在失效發(fā)生的情況下,軟件重建規(guī)定的性能級(jí)別,并恢復(fù)受直接影響的數(shù)據(jù)的能力。

可靠性有兩個(gè)屬性:一種是平均無(wú)故障運(yùn)行時(shí)間,另一種是平均故障修復(fù)時(shí)間。在故障(失效)不可避免地發(fā)生后,迅速排除故障的能力,是軟件設(shè)計(jì)質(zhì)量水平的重要指標(biāo)。軟件中的各種容錯(cuò)和自恢復(fù)(軟件陷阱、看門狗定時(shí)等)是不需人工干預(yù)的易恢復(fù)性措施。另有:故障定位提示、故障歷史記錄等軟件設(shè)計(jì),也是“易恢復(fù)性”手段——必須盡可能多地提供運(yùn)行狀態(tài)信息。

4 模擬量采集口設(shè)計(jì)方案實(shí)例

重點(diǎn)介紹數(shù)據(jù)容錯(cuò)設(shè)計(jì):?jiǎn)纹瑱C(jī)軟件采用上述的“指令孤島”方案。

(1)內(nèi)部可靠性設(shè)計(jì)——在單片機(jī)軟件中設(shè)置“軟件陷阱”和“看門狗”。“陷阱”設(shè)置在“不可能到達(dá)”的地址,如果進(jìn)入這些地址,程序進(jìn)入初始化復(fù)位過(guò)程。必須十分重視在循環(huán)指令中插入“喂狗”動(dòng)作。

為避免“有效數(shù)據(jù)”末尾頻繁抖動(dòng),對(duì)數(shù)據(jù)顯示和狀態(tài)的影響,設(shè)計(jì)數(shù)據(jù)采集以及數(shù)據(jù)標(biāo)度變換在定時(shí)中斷中進(jìn)行,必要時(shí)采用“中斷計(jì)數(shù)器”,延長(zhǎng)采樣間隔。為便于數(shù)據(jù)維護(hù)和狀態(tài)刷新,在主程序循環(huán)內(nèi)頻繁做模擬量顯示碼和模擬量決定的相關(guān)狀態(tài)位的刷新(容錯(cuò))處理。

確定出三個(gè)區(qū)域存放需維護(hù)的數(shù)據(jù)和標(biāo)志位字節(jié)。比如:20、30、40地址分別存放同一個(gè)數(shù)據(jù)等等。確定出足夠的標(biāo)志位字節(jié),集中管理標(biāo)志位。

確定模擬量數(shù)據(jù)的容錯(cuò)方案:①在定時(shí)中斷中,一次性對(duì)一個(gè)模擬量口重復(fù)讀入8次(獲得8組數(shù)據(jù))。對(duì)這8組數(shù)據(jù)做算術(shù)平均后,其結(jié)果送8級(jí)遞推隊(duì)列(先進(jìn)先出,出隊(duì)列無(wú)效)。于是,隊(duì)列中的8組數(shù)據(jù)(每組是8次采樣的平均值),是64組數(shù)據(jù)的處理結(jié)果;②將8級(jí)隊(duì)列分上下各4級(jí)。對(duì)兩個(gè)4級(jí)隊(duì)列數(shù)據(jù)做去最大值和最小值處理,余下兩組數(shù)做平均值——8組數(shù)據(jù)共剔除了4組(2組最大值、2組最小值),只有4組數(shù)據(jù)分別產(chǎn)生兩個(gè)平均值。兩個(gè)4組數(shù)據(jù)產(chǎn)生的平均值,再做一次平均值——獲得一個(gè)有效的采樣數(shù)據(jù);③對(duì)有效數(shù)據(jù)的處理也必須在本中斷完成——將處理結(jié)果送入不同區(qū)域的RAM位(同一數(shù)據(jù)或狀態(tài)分別存放在RAM中的3個(gè)不同的位置)后,才退出定時(shí)中斷;④在主循環(huán)程序中,僅是不斷地對(duì)存放在3個(gè)位置的數(shù)據(jù)做數(shù)據(jù)維護(hù)——隨時(shí)糾正可能的數(shù)據(jù)干擾。同時(shí)不斷地刷新同模擬量相關(guān)的顯示和狀態(tài)輸出口。

對(duì)每點(diǎn)2ms處理速度的PLC(OMRON CP1H)數(shù)據(jù)采集口,也做同樣處理,可靠性顯然增加許多。但對(duì)同一接口連續(xù)采樣8次的動(dòng)作,可以省略。

以上模擬量采集口的可靠性設(shè)計(jì)非常完善,已被無(wú)數(shù)工程案例證實(shí)。

(2)外部可靠性調(diào)試——確定調(diào)試方案并實(shí)施:在調(diào)試運(yùn)行狀態(tài)下制造干擾:手電鉆共電源及電磁、電焊機(jī)共電源及電磁、變頻器運(yùn)行、接觸器動(dòng)作火花、電源瞬間斷電、手持螺絲刀金屬柄撥動(dòng)模擬量輸入口(模擬天線)等。另外在容錯(cuò)內(nèi)存中制造錯(cuò)誤數(shù)據(jù),看運(yùn)行結(jié)果是否被糾正、制造“看門狗”和“軟件陷阱”程序運(yùn)行條件,看糾錯(cuò)效果。

采用以上抗干擾設(shè)計(jì)方案,并采用大容量(相對(duì)實(shí)際CPU供電需求的容量大一個(gè)數(shù)量級(jí))工業(yè)級(jí)品牌開(kāi)關(guān)電源(應(yīng)對(duì)供電抖動(dòng)),完全可以滿足以上測(cè)試。

(3)使用可靠性評(píng)估——現(xiàn)場(chǎng)試運(yùn)行:雖然在調(diào)試階段已經(jīng)通過(guò)了嚴(yán)格的抗干擾試驗(yàn),但作為新產(chǎn)品還是應(yīng)該做現(xiàn)場(chǎng)可靠性運(yùn)行評(píng)估——做好運(yùn)行記錄,聽(tīng)取用戶意見(jiàn),發(fā)現(xiàn)問(wèn)題解決問(wèn)題。

5 結(jié)束語(yǔ)

通過(guò)工控軟件可靠性理念的研究探索,加上工作實(shí)踐的驗(yàn)證,用這些方案設(shè)計(jì)的單片機(jī)或PLC軟件,在應(yīng)用中從來(lái)沒(méi)出現(xiàn)過(guò)失誤??梢?jiàn)上述提高工控軟件可靠性的方案是成熟和行之有效的。

[1]復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)系微機(jī)研究室.MCS-51單片微型計(jì)算機(jī)匯編手冊(cè)[M].上海嘉定智能儀表廠印,1988.

[2]復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)系微機(jī)研究室.MCS-51單片微型計(jì)算機(jī)用戶手冊(cè)[M].上海嘉定智能儀表廠印,1988.

[3]國(guó)家質(zhì)量監(jiān)督檢驗(yàn)檢疫局,中華人民共和國(guó)國(guó)家標(biāo)準(zhǔn)—軟件工程[M].2006.

[4]歐姆龍自動(dòng)化(中國(guó))有限公司,SYSMAC CP系列可編程控制器—編程手冊(cè)[M].2003.

[5]歐姆龍自動(dòng)化(中國(guó))有限公司,SYSMAC CP系列可編程控制器—操作手冊(cè)[M].2003.

[6]王海江,工業(yè)控制微機(jī)抗干擾技術(shù)措施的研究[J].中國(guó)化工設(shè)備,2005,1.

[7]鐘磊,盧文壯,等.C8051F單片機(jī)的IAP系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微處理機(jī),2009,6.

Exploration of Improving the Reliability of the Industrial Control Application Software——Design Practice of the MCU and PLC Application Software

HONG Guang
(Dalian Coldstar Enterprise Co.,Ltd.,Dalian Liaoning 116021,China)

This paper put forward a set of the effective and reliable design scheme around reliable design and evaluation method of the industrial control software.

single chip microcomputer(MCU);programmable logic controller(PLC);reliability

TP317

A

10.3969/j.issn.1002-6673.2015.02.038

1002-6673(2015)02-099-03

2014-12-28

洪光(1955-),男,浙江人,中級(jí)職稱(工程師)。研究方向:電子、自控技術(shù)研發(fā)。

猜你喜歡
工控模擬量字節(jié)
No.8 字節(jié)跳動(dòng)將推出獨(dú)立出口電商APP
No.10 “字節(jié)跳動(dòng)手機(jī)”要來(lái)了?
基于FPGA的多通道模擬量采集/輸出PCI板卡的研制
簡(jiǎn)談MC7字節(jié)碼
工控速派 一個(gè)工控技術(shù)服務(wù)的江湖
工控速?zèng)?一個(gè)工控技術(shù)服務(wù)的江湖
熱點(diǎn)追蹤 工控安全低調(diào)而不失重要
關(guān)于600MW火電機(jī)組模擬量控制系統(tǒng)設(shè)計(jì)和研究
電子制作(2016年21期)2016-05-17 03:53:12
基于攻擊圖的工控系統(tǒng)脆弱性量化方法
模擬量輸入式合并單元測(cè)試儀的研制
兰溪市| 聊城市| 上思县| 吉林省| 景洪市| 和龙市| 特克斯县| 青川县| 教育| 梅河口市| 新乡市| 比如县| 巫溪县| 兴宁市| 仙桃市| 襄城县| 东宁县| 扶余县| 尚义县| 太保市| 咸阳市| 那坡县| 卫辉市| 元氏县| 屏山县| 霸州市| 花莲县| 博爱县| 浮山县| 崇阳县| 潞西市| 乌兰县| 蒙阴县| 上思县| 江口县| 江油市| 西丰县| 芷江| 舟曲县| 桐梓县| 广水市|