技術(shù)頻道

      西門子PCS7系統(tǒng)在控制器內(nèi)存容量不足時(shí)的處理方法

        一、項(xiàng)目簡(jiǎn)介

        上虞杭協(xié)聯(lián)電廠(見圖1)位于浙江省上虞市精細(xì)化工園區(qū)內(nèi),是杭州協(xié)聯(lián)熱電廠于2003年在上虞市投資創(chuàng)建的。一期項(xiàng)目總的裝機(jī)容量為27MW,3臺(tái)130t/h循環(huán)硫化床鍋爐,一臺(tái)12MW的凝汽式汽輪機(jī),一臺(tái)15MW的背壓式汽輪機(jī),年發(fā)電能力2億千瓦時(shí),供汽能力150萬噸。

        圖1 電場(chǎng)外景

        本項(xiàng)目采用西門子PCS7控制系統(tǒng),控制系統(tǒng)的設(shè)計(jì)上包括了三臺(tái)130t/h循環(huán)硫化床鍋爐,一臺(tái)12MW的凝汽式汽輪機(jī),一臺(tái)15MW的背壓式汽輪機(jī),及減溫減壓,化學(xué)水處理等輔機(jī)系統(tǒng)。其中主機(jī)部分采用了五套冗余的414-H控制器,三爐兩機(jī)各單獨(dú)使用一套控制器,輔機(jī)部分使用了一套非冗余的414控制器。

        本項(xiàng)目遇到了控制器內(nèi)存不足的情況,實(shí)施了一些特殊的處理方法,現(xiàn)記錄如下。

        二、CPU內(nèi)存的組成情況

        CPU的內(nèi)存組成情況如圖2所示。

        圖2 CPU內(nèi)存組成情況

        CPU的內(nèi)存由load memory和work memory兩部分組成。Load memory是可以通過外擴(kuò)存倒卡的方式擴(kuò)展,而work memory是集成在CPU內(nèi)部無法擴(kuò)展的,所以我們需要節(jié)省work memor的使用。Work memory包括code memory和data memory。對(duì)于PCS7項(xiàng)目,code memory的d用量要遠(yuǎn)遠(yuǎn)高于data memory的使用量i所以要節(jié)省CPU的內(nèi)存最終就是要節(jié)省work memory[}的code memory。

        code memory的使用分配包括了四部分,如圖3所示。

        圖3 code memory的使用分配

        用戶程序--block

        I/O過程映像區(qū)--input/output image

        診斷緩沖區(qū)--diagnose buffer

        通訊任務(wù)數(shù)量--communicate job

        所以我們就要通過節(jié)省以上四部分的使用來節(jié)省CPU的code memory。

        本項(xiàng)目中的CPU內(nèi)存不足出現(xiàn)在3個(gè)鍋爐系統(tǒng)對(duì)應(yīng)的3套414-H控制器,每個(gè)鍋爐的信號(hào)數(shù)量為550點(diǎn),其中Al信號(hào)為200點(diǎn),控制回路為23個(gè),414-H控制器的work memory為768K, code memory為384K,最初程序完成后,已超400K,無法下載程序,后進(jìn)行了以下處理。

        三、節(jié)省內(nèi)存的方法

        1.減少用戶程序

        由以上work memory的組成情況可以看出,用戶程序的使用情況決定了work memory余量的大小,所以我們要盡量減少用戶程序,方法如下:

        方法1,避免使用開關(guān)量信號(hào)的信號(hào)驅(qū)動(dòng)塊,即CH-DI、CH-DO塊。這兩種塊只有在我們調(diào)試程序時(shí)有一些作用,當(dāng)我們內(nèi)存不足時(shí),完全可以不使用這兩種驅(qū)動(dòng)塊,而直接使用地址來編程序。

        方法2,用用戶自定義的FB塊來替換模擬量信號(hào)驅(qū)動(dòng)塊CH-AI、CH-AO。首先對(duì)于PCS7項(xiàng)目,相同大小的FC塊的重復(fù)調(diào)用要比相同大小的FB塊的重復(fù)調(diào)用所占用的CPU的code memory大得多,而CH-AI、CH-AO塊是FC塊,且尺寸較大,所以我們要用用戶自定義的FB塊來代替CH-AI、 CH-AO塊;其次,CH-AI、CH-AO塊不僅在循環(huán)掃描周期中(如OB35)被調(diào)用,而且還在OB100中被調(diào)用,這就使這兩種塊占用CPU的內(nèi)存加倍,所以如果不需要在OB100中做特殊程序處理時(shí),我們自己創(chuàng)建FB塊只在循環(huán)掃描周期中(如OB35)被調(diào)用,來減少用戶程序。

        方法3,刪除系統(tǒng)生成的I/O模板的驅(qū)動(dòng)塊。在采用以上兩種方法,但CPU內(nèi)存還不能滿足要求時(shí),可以采取這種方法。當(dāng)我們編譯產(chǎn)生模板驅(qū)動(dòng)后,系統(tǒng)會(huì)自動(dòng)生成許多驅(qū)動(dòng)塊,其中包括I/O模板的驅(qū)動(dòng)塊、CPU的驅(qū)動(dòng)塊、冗余的驅(qū)動(dòng)塊、IM153的驅(qū)動(dòng)塊等,而其中I/O模板的驅(qū)動(dòng)塊占用了較多的程序。當(dāng)我們不使用信號(hào)驅(qū)動(dòng)塊時(shí),則可以刪除I/O模板的驅(qū)動(dòng)塊,但是我們將無法得到模板的運(yùn)行報(bào)警信息。

        2.減少診斷緩沖區(qū)

        CPU的診斷緩沖區(qū)存儲(chǔ)了系統(tǒng)的硬件診斷信息,利用診斷信息,工程師可以清楚地了解到CPU歷史及現(xiàn)在的運(yùn)行狀況和故障信息。如我們不需要保存太久的CPU診斷信息,我們可以減少診斷緩沖區(qū)的容量來節(jié)省內(nèi)存。PCS7 V6版本中CPU414-H的默認(rèn)緩沖區(qū)大小為3000條診斷信息,我們可以最低減少到100條診斷信息。

        3.減少I/O過程映像區(qū)

        通過減少過程映像區(qū)的大小,同樣可以節(jié)省CPU的code memory。對(duì)于PCS7系統(tǒng)組態(tài)硬件時(shí),模擬信號(hào)默認(rèn)的起始地址為IW512和QW512,這時(shí)我們就要調(diào)整相應(yīng)的起始地址,將其盡量減小。例如,開關(guān)量信號(hào)組態(tài)的最高地址如果是140.7和Q20.7,我們可以將模擬信號(hào)的起始地址設(shè)為IW50和QW30,以此可減少過程映像區(qū)的大小。

        4.減少CPU的通訊任務(wù)數(shù)量

        CPU的通訊任務(wù)占用了CPU大量的內(nèi)存,對(duì)CPU的code memory的影響很大,所以我們要盡量減少CPU的通訊任務(wù)數(shù)量,來節(jié)省大量的內(nèi)存空間。

        具有報(bào)警信息功能的FB塊的數(shù)量決定了通訊任務(wù)數(shù)量,這些FB塊包括CTRL-PID. MOTOR、 MEAS-MON. VAL-MOT. MOD1等,所以我們?cè)贑FC編程時(shí)要盡量減少這些塊的數(shù)量。

        方法1,不使用MEAS-MON塊。我們常用MEAS-MON塊來實(shí)現(xiàn)對(duì)采集的過程模擬信號(hào)進(jìn)行顯示及報(bào)警,但是由于它占用了CPU的通訊任務(wù),我們將不能使用它。對(duì)于模擬信號(hào)的顯示,我們可創(chuàng)建一個(gè)FB塊來實(shí)現(xiàn),對(duì)于模擬信號(hào)的高低限報(bào)警,我們可以使用ALARM-8P來實(shí)現(xiàn),這樣可以大大減少通訊任務(wù)數(shù)量。

        方法2,刪除系統(tǒng)生成的I/O模板的驅(qū)動(dòng)塊。I/O模板的驅(qū)動(dòng)塊同樣占用了CPU的通訊任務(wù),所以刪除系統(tǒng)生成的I/O模板的驅(qū)動(dòng)塊,同樣可以大大減少通訊任務(wù)數(shù)量,刪除方法上己闡述。

        四、內(nèi)存不足時(shí)程序的優(yōu)化

        CPU的內(nèi)存不足,將給我們帶來的主要問題是程序無法部分下裝,所以我們將針對(duì)這個(gè)問題進(jìn)行程序的優(yōu)化。

        方法1,建立多個(gè)運(yùn)行組,盡量減少每個(gè)運(yùn)行組內(nèi)所調(diào)用的程序塊的數(shù)量。每個(gè)運(yùn)行組內(nèi)所調(diào)用的程序塊的數(shù)量越多,則編譯后系統(tǒng)生成的FC塊的尺寸就越大,如果FC塊的尺寸太大,則程序?qū)o法部分下裝。

        方法2,CFC盡量按功能分,減少CFC程序之間的連接。一般情況下,我們編程時(shí)每個(gè)CFC都對(duì)應(yīng)一個(gè)運(yùn)行組,減少CFC程序之間的連接,則在修改程序后進(jìn)行部分編譯時(shí),所更改的程序就會(huì)相對(duì)減少,部分下裝的可行性就要大一些。

        五、小結(jié)

        通過以上方法基本解決了本項(xiàng)目中CPU內(nèi)存不足的問題,為杭州協(xié)聯(lián)熱電廠節(jié)省了大量的資金投入。現(xiàn)三爐兩機(jī)已全部投產(chǎn),一切運(yùn)行正常。

      文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

      主站蜘蛛池模板: 精品一区二区三区无码视频| 亚洲午夜精品一区二区麻豆 | 国产精品视频一区二区三区| 78成人精品电影在线播放日韩精品电影一区亚洲 | 亚洲一区二区三区首页| 精品人妻少妇一区二区三区不卡| 日韩精品人妻一区二区中文八零| 精品少妇人妻AV一区二区| 久久久久久免费一区二区三区| 无码AV一区二区三区无码| 亚洲Av无码国产一区二区| 日韩AV无码久久一区二区| 国产乱码伦精品一区二区三区麻豆| 国产av一区最新精品| 亚洲乱码av中文一区二区 | 久久久老熟女一区二区三区| 日韩精品人妻一区二区中文八零| 区三区激情福利综合中文字幕在线一区 | 国产香蕉一区二区在线网站| 久久人妻内射无码一区三区| 中文字幕一区二区人妻性色| 国产一区二区不卡在线播放| 亚洲Aⅴ无码一区二区二三区软件 亚洲AⅤ视频一区二区三区 | 国产成人AV区一区二区三| 激情无码亚洲一区二区三区| 亚洲AV网一区二区三区| 成人区人妻精品一区二区三区 | 久久综合亚洲色一区二区三区| 久久亚洲国产精品一区二区| 亚洲啪啪综合AV一区| 国产综合一区二区| 日本免费一区二区久久人人澡| 久久精品一区二区免费看| 无码人妻久久一区二区三区| 无码人妻一区二区三区在线| 中文字幕一区二区三区5566 | 极品少妇一区二区三区四区| 国产精品美女一区二区 | 91久久精品午夜一区二区| 亚洲AV无码一区二区三区性色| 韩国女主播一区二区|