看了你的程序我說(shuō)說(shuō)個(gè)人觀點(diǎn),盡供參考。
因?yàn)槲疫@里現(xiàn)在沒(méi)有實(shí)體進(jìn)行測(cè)試,可能程序還存在一些問(wèn)題,望見(jiàn)諒!
1) 子程序結(jié)構(gòu)不夠嚴(yán)緊,同樣的功能占用字節(jié)稍稍偏大(可能是編程習(xí)慣問(wèn)題)。相同的功能用這樣調(diào)用子程序做法是可行的。程序盡量采用指令方式編寫(xiě)。直接能夠使用輸出條件的網(wǎng)絡(luò)段程序盡量少用(寄存)跳轉(zhuǎn)等方法,這樣對(duì)于程序的閱讀有幫助。手/自動(dòng)轉(zhuǎn)換條件功能最好不要寫(xiě)到子程序的調(diào)用中。
2) 主程序(OB1)中功能的啟動(dòng)條件既然用上升沿脈沖控制位,則子程序中應(yīng)該用相應(yīng)的置/復(fù)位指令。我是沿用你的主程序編法進(jìn)行。特別是一些手動(dòng)操作時(shí)正反轉(zhuǎn)頻繁的場(chǎng)所,需要解決置位后的復(fù)位問(wèn)題。同時(shí)可能會(huì)造成調(diào)用自動(dòng)操作時(shí),相關(guān)的輸出位不能有效復(fù)位。補(bǔ)救措施見(jiàn)第4項(xiàng)內(nèi)容。啟動(dòng)信號(hào)條件最好用變址方式,把必要的程序邏輯關(guān)系做在一起,緊湊程序。
3) 急停按鈕必須使用B接點(diǎn)(常閉接點(diǎn),這樣可以在平時(shí)建立一個(gè)檢測(cè)急;芈氛Ec否的功能)。
4) 按我個(gè)人觀點(diǎn)在調(diào)用自動(dòng)操作功能時(shí),必須先復(fù)位手動(dòng)操作時(shí)的有關(guān)輸出點(diǎn)(按工藝要求選擇)。然后再作相關(guān)的自動(dòng)功能操作。反之也然。如在調(diào)用自動(dòng)時(shí)首先實(shí)現(xiàn):
LD SM0.0
A I3.3 //手/自動(dòng)的選擇
CALL SBR_1 //自動(dòng)子程序調(diào)用
R Q0.0,7 //意思是復(fù)位Q0.0 ~ Q0.7功能。當(dāng)然也可以根據(jù)實(shí)際情況選擇復(fù)位位數(shù)內(nèi)容。
5) 對(duì)于報(bào)警信息(故障內(nèi)容)比較多的最好在專(zhuān)門(mén)的子程序或者在主程序(OB1)中進(jìn)行編寫(xiě)。統(tǒng)一在一起編寫(xiě)報(bào)警信息,提高效率,減少遺漏。
科行改進(jìn)程序.zip (10 K) 下载次数:343