標(biāo)題: 六層電梯程序,你想看嗎? [打印本頁(yè)]

作者: 彭金玉    時(shí)間: 2013-4-28 12:34
標(biāo)題: 六層電梯程序,你想看嗎?
我算是一個(gè)比較喜歡多樣化生活的人吧,有寫六層電梯程序這個(gè)想法的時(shí)候是在去年的暑假,那個(gè)時(shí)候,剛剛用PLC做了四層電梯,感覺(jué)很HIGH,手一癢癢就想試著寫六層電梯試試看,但是六層電梯終歸比四層電梯復(fù)雜,之前做個(gè)一個(gè)計(jì)算,貌似五層及其以上的電梯程序就會(huì)跟四層及其以下的電梯程序區(qū)分開來(lái)。因?yàn)榈搅宋鍖拥臅r(shí)候就會(huì)有優(yōu)先級(jí)判斷,電梯運(yùn)行過(guò)程中還需要自鎖和互鎖。那個(gè)時(shí)候用PLC,但是終歸因?yàn)樽约合胂罅Σ粔蚱孑舛鴳K敗。后又想,如果用C寫的話肯定會(huì)比PLC容易好多了。結(jié)果就沒(méi)再怎么想,一頭扎進(jìn)了單片機(jī)創(chuàng)作中。 自從用單片機(jī)寫六層電梯,也是寫了好多遍了。我剛開始的想法是用數(shù)組存儲(chǔ)數(shù)據(jù),附加判斷,然后對(duì)數(shù)組內(nèi)數(shù)據(jù)做處理,后來(lái)仔細(xì)想了一下,覺(jué)得這樣做對(duì)于單片機(jī)來(lái)說(shuō)工作量好大,仔細(xì)算下來(lái),單片機(jī)的大部分時(shí)間都是在處理數(shù)組內(nèi)的數(shù)據(jù),而且這樣也比較麻煩。后來(lái)就這事兒在吃飯的時(shí)候問(wèn)了毛毛,想讓他給提點(diǎn)兒什么比較好的建議。誰(shuí)知道那丫比我還奇葩,給我想出了一個(gè)循環(huán)優(yōu)先級(jí)的方法。這個(gè)方法在當(dāng)時(shí)看來(lái)確實(shí)是無(wú)可挑剔,剩下的時(shí)間我就開始做。剛開始在開發(fā)板上實(shí)驗(yàn),但是開發(fā)板上的固件都是死的,用著很不方便,不過(guò)還好,勉強(qiáng)把程序?qū)懗鰜?lái)了。后來(lái)又做了個(gè)protues仿真,發(fā)現(xiàn)顯示竟然有問(wèn)題。這個(gè)讓我很糾結(jié)。人家都說(shuō)軟件仿真有誤差,不管你們信不信,我是信了。 前段時(shí)間有了時(shí)間和心情,自己做了個(gè)電路板,可恨的是買了個(gè)ISP下載線竟然死活下不進(jìn)程序,白白花了20大洋么?我覺(jué)得不至于吧,應(yīng)該還是硬件有點(diǎn)兒?jiǎn)栴}的。這樣沒(méi)辦法就只能用開發(fā)板上的單片機(jī)咯,每次調(diào)試的時(shí)候都要來(lái)來(lái)回回的拔下、插上、拔下、插上······其實(shí)我倒是不怕麻煩,關(guān)鍵是單片機(jī)引腳來(lái)來(lái)回回折騰這么幾次,差不多都廢了············ 調(diào)試好了程序在電路板上實(shí)驗(yàn),這個(gè)時(shí)候才發(fā)現(xiàn)當(dāng)初毛毛給我說(shuō)的循環(huán)優(yōu)先級(jí)的方法有多大的問(wèn)題了,按照他的想法,順時(shí)針循環(huán),電梯在運(yùn)行的時(shí)候,總是會(huì)先執(zhí)行高樓層數(shù)據(jù),低樓層數(shù)據(jù)在高樓層數(shù)據(jù)沒(méi)有處理完的時(shí)候是不會(huì)執(zhí)行。這樣來(lái)說(shuō)問(wèn)題就很大了呀。更郁悶的是有的時(shí)候電梯竟然會(huì)卡死不動(dòng)?戳死习胩斐绦,也懶得找這方面原因了。 然后,我就想在這個(gè)程序基礎(chǔ)上做一些改變,試試看能不能行的通。也就是在今天,也就是在一個(gè)小時(shí)以前,測(cè)試結(jié)果讓我狂喜之后淋了一盆狗血。 程序中我加了互鎖,這樣避免了之前的卡死。但是因?yàn)檫是只是用了簡(jiǎn)單的優(yōu)先級(jí)判斷(我用這個(gè)方法就是想試試這個(gè)方法到底行不行得通),程序在執(zhí)行過(guò)程中因?yàn)槌绦虻那昂笪恢糜胁町,?huì)導(dǎo)致電梯在運(yùn)行過(guò)程中有一個(gè)優(yōu)先級(jí),這個(gè)是沒(méi)辦法避免的。記得之前用PLC做四層電梯和自動(dòng)洗衣機(jī)的時(shí)候也遇到過(guò)這種問(wèn)題。如果不牽涉數(shù)據(jù)重組,這個(gè)還是很容易處理。但是六層電梯數(shù)據(jù)繁多,靠條換程序的位置是沒(méi)辦法來(lái)解決這個(gè)問(wèn)題的。這個(gè)時(shí)候我的心情呢???唉~不知該怎么形容了。說(shuō)不高心,但是總算用親身經(jīng)歷證明了五層及其一以上的電梯都需要用數(shù)組的方法來(lái)做了,簡(jiǎn)單的與或非判斷行不通。但是你要說(shuō)我高興???我心里還真的猶如打碎了五味瓶。 我總是用失敗來(lái)詮釋真理,我覺(jué)得這樣會(huì)讓我受益終生吧。不過(guò)任何事物都是有代價(jià),還好這個(gè)代價(jià)不大。 同時(shí)呢,為了那些個(gè)看官們的方便,也為了讓你們看到我真正的親身的教訓(xùn),經(jīng)過(guò)前思后想,覺(jué)得還是把源程序附上得好。再次警告那些個(gè)孩紙們:老夫我用m+n次的失敗告訴了你們,簡(jiǎn)單的與或非優(yōu)先級(jí)判斷在六層電梯(抑或是五層及其以上電梯吧)上是行不通的。六層電梯還是需要數(shù)組存儲(chǔ)數(shù)據(jù)+判斷處理。如果孩紙你不信,那你也可以花上幾個(gè)小時(shí)或幾天或幾個(gè)月 來(lái)自己親身證實(shí)一下吧! 唉~撤了!! [upload=c,1-1.c]viewFile.asp?ID=1487[/upload]

作者: buaa一路向北    時(shí)間: 2014-10-14 23:21
最近正在學(xué)這個(gè),大神




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1