S7-200的子程序SUB,一旦寫好,用在程序中之后, 是不可以修改其輸入輸出管腳的。 因為你一旦動了管腳接口,調(diào)用這個子程序的地方,就會報錯。
報錯以后還沒法和STEP7一樣可以通過更新只更新改動部分。正常處理的只有把原本的調(diào)用刪掉,從頭重新調(diào)用,并為每個接口逐個分配變量。
這相當(dāng)討厭。
比方說我一個底層的設(shè)備,如果調(diào)試中發(fā)現(xiàn)需要增加些功能,實在不可避免決定要增加接口。而我主程序中已經(jīng)對這個設(shè)備調(diào)用了幾十次,那就必須幾十個實例都重來一遍。
而這還不算完。
誰敢保證這一次接口的變更就是最后一次了呢?下一次如果還需要修改,就需要原樣再來一次。
估計換誰,都受不了這種折騰。
而這也是標(biāo)準(zhǔn)化編程的大忌。
貌似許多人對標(biāo)準(zhǔn)二字有誤解,看到我提出的標(biāo)準(zhǔn)化,就有些不服氣。你萬某有何德何能提出標(biāo)準(zhǔn),俺們智力才藝都不比你差,憑什么要遵循你提出的標(biāo)準(zhǔn),憑什么用你的標(biāo)準(zhǔn)而不是我自己的標(biāo)準(zhǔn)?我們國家歷史上因為技術(shù)標(biāo)準(zhǔn)落后一步而受制于人,吃的虧大了去了。可不能重蹈這樣的覆轍!
而另外有一些人,則強(qiáng)調(diào)沒有辦法做到整齊劃一的標(biāo)準(zhǔn)。理由是設(shè)備配置千差萬別,沒有一模一樣的設(shè)備,所以做不到標(biāo)準(zhǔn)化。
錯啦!都是屬于對標(biāo)準(zhǔn)化的誤解。我們追求的標(biāo)準(zhǔn)化,是把系統(tǒng)做成搭積木一樣的標(biāo)準(zhǔn)模塊,每個模塊自成體系,邏輯互不干擾。通過接口與其他系統(tǒng)模塊對接,不同的系統(tǒng)設(shè)計,在接口不變的情況下,只需要更換相應(yīng)的模塊,即可以實現(xiàn)快速組裝。
而接口,也不是一塵不變的,可以根據(jù)需要隨時改進(jìn),而在接口改動的時候,也只是對接的模塊之間局部變更,不要影響到整個系統(tǒng)。不會因為接口的改動,而需要系統(tǒng)重新調(diào)試。
甚至,我現(xiàn)在推廣了二期標(biāo)準(zhǔn)化示例項目之后,下一步的計劃就是對接口的優(yōu)化升級。過去,我在開發(fā)階段,采用的接口只是借用的別人以前做的,現(xiàn)在終于有精力,騰出手來,把接口改造為我滿意的樣子。
而我和我的團(tuán)隊成員,絲毫不需要擔(dān)心接口的更改會導(dǎo)致影響到已有邏輯模塊的運行,甚至帶來bug。
這就是標(biāo)準(zhǔn)化設(shè)計的優(yōu)勢。心不累。不需要和以前一樣,程序中改動一點點就緊張萬分,就擔(dān)心把整個系統(tǒng)原本正常運行的功能搞崩潰。
所以,我在開發(fā)SMART 200標(biāo)準(zhǔn)化架構(gòu)的時候,首先就意識到子程序(庫函數(shù))接口不能更改的這個問題很嚴(yán)重。并認(rèn)為有可能是眾多人都不愿意投入精力在SMART 200系統(tǒng)做標(biāo)準(zhǔn)化的主要原因。
所以首當(dāng)其沖必須解決這個問題。
而實現(xiàn)方法,其實很簡單。
即利用程序塊的導(dǎo)出功能,把調(diào)用被改動的子程序?qū)С鰹锳WL的文本文件:
然后在文本文件的調(diào)用中,修改到符合新版本的函數(shù)的語法,再重新導(dǎo)入即可。
這里存在的問題是,不管是導(dǎo)入還是導(dǎo)出,操作之前軟件都會自動編譯,編譯通過后才可以進(jìn)行。所以導(dǎo)出必須在修改接口之前,而在修改接口之后,導(dǎo)入之前,需要把相應(yīng)的SUB內(nèi)發(fā)紅的段落先刪除。
因而實時的存盤備份非常重要。千萬不能上來就改接口改子程序的邏輯,改過之后發(fā)現(xiàn)既不能導(dǎo)出又不能導(dǎo)入,那就尷尬了。
由于AWL文件中是絕對值尋址的,所以界面非常不夠友好。我通常是在文本修改階段,只管語法正確,比如增加的數(shù)值變量,就先填上AC0,如果是離散變量,則暫時輸入L0.0,等導(dǎo)入成功之后,在梯形圖界面下,根據(jù)實際需求,更改為正確的變量。
當(dāng)然啦,如果有可能,盡量直接用搜索替換比如把原有的”AC0”替換為“AC0,AC0”。速度會快很多。
所以,在使用標(biāo)準(zhǔn)規(guī)范中也包含了同一個類型的設(shè)備對象,盡量在同一個SUB中調(diào)用。這樣導(dǎo)出修改接口的時候只搞這一個文件即可。而不必在整個程序范圍去找,去把整個程序的SUB都導(dǎo)出來手工修改。
那樣兒,仍然會很累。
-
plc
+關(guān)注
關(guān)注
5008文章
13167瀏覽量
462188 -
接口
+關(guān)注
關(guān)注
33文章
8526瀏覽量
150862 -
S7-200
+關(guān)注
關(guān)注
13文章
407瀏覽量
50335
原文標(biāo)題:【萬泉河】S7-200 SMART 子程序修改技巧
文章出處:【微信號:gongkongBBS,微信公眾號:工控網(wǎng)智造工程師】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論