PLC在工作時(shí)采用順序循環(huán)掃描的工作方式來(lái)執(zhí)行081(包括子程序,如FC,F(xiàn)B等)中的用戶(hù)程序,在一個(gè)掃描周期的開(kāi)始CPU對(duì)所有的輸入端子上的信號(hào)進(jìn)行集中采集,BTB06-600S并將采集結(jié)果保存在過(guò)程映像輸入寄存器(I),在程序執(zhí)行期間不再考慮輸入端子上信號(hào)的變化,而程序執(zhí)行過(guò)程中所產(chǎn)生的中間結(jié)果則直接保存在存儲(chǔ)器(M)或過(guò)程映像輸出寄存器(Q)中,并不立即送到輸出端子,只有在當(dāng)前掃描周期結(jié)束前才將程序執(zhí)行的最終結(jié)果集中送到輸出端子,對(duì)輸出端子進(jìn)行刷新。如果對(duì)這種掃描方式理解不清楚,在編程時(shí)就會(huì)出現(xiàn)意想不到的結(jié)果。請(qǐng)看下面的分析:
根據(jù)本項(xiàng)目的要求,第1次按按鈕時(shí)只有第1臺(tái)電動(dòng)機(jī)工作,在這之前兩臺(tái)電動(dòng)機(jī)都處于停機(jī)狀態(tài),由此可編寫(xiě)出圖4-9中如Network 1所示的邏輯程序段;第2次按按鈕時(shí)第1臺(tái)電動(dòng)機(jī)停車(chē),第2臺(tái)電動(dòng)機(jī)工作,在這之前第1臺(tái)電動(dòng)機(jī)工作,第2臺(tái)電動(dòng)機(jī)停車(chē),由此可編寫(xiě)出圖4-9中如Network 2所示的邏輯程序段;第3次按按鈕時(shí)兩臺(tái)電動(dòng)機(jī)同時(shí)停車(chē),在這之前第1臺(tái)電動(dòng)機(jī)停車(chē),第2臺(tái)電動(dòng)機(jī)工作,由此可編寫(xiě)出圖4-9中如Network 3所示的邏輯程序段。
![](http://ce.eccn.com/uploads/article/201308/20130827203808438.jpg)
圖4-9所示的程序看起來(lái)邏輯關(guān)系非常清晰,應(yīng)該能夠?qū)崿F(xiàn)項(xiàng)目所要求的功能,但仔細(xì)分析后發(fā)現(xiàn):由于程序按編寫(xiě)順序進(jìn)行掃描工作,第1次操作按鈕后的一個(gè)掃描周期內(nèi),KM1和KM2的映像寄存器都為O(兩臺(tái)電動(dòng)機(jī)都處于停車(chē)狀態(tài)),MO.0、MO.1及MO.2都為1(SB1上升沿使MO.O,MO.1及MO.2保持一個(gè)周期的高電平)。CPU首先掃描第1個(gè)邏輯段(Network l),此時(shí)由于KM1和KM2的常閉觸點(diǎn)閉合(KM1和KM2的映像寄存器都為O),所以使KM1的映像寄存器為1;CPU掃描到第2個(gè)邏輯段(Network 2)時(shí),由于KM1的映像寄存器已經(jīng)變?yōu)?(其常開(kāi)觸點(diǎn)閉合),而KM2的常閉觸點(diǎn)還處于閉合狀態(tài),所以KM2的映像
寄存器就舍變?yōu)?,同時(shí)KM1的映像寄存器變?yōu)?;CPU掃描到第3個(gè)邏輯段(Network 3)時(shí),由于KM1的映像寄存器已經(jīng)變?yōu)椋ㄆ涑i_(kāi)觸點(diǎn)斷開(kāi)),KM2的映像寄存器已經(jīng)變?yōu)?(其常開(kāi)觸點(diǎn)閉合),所以KM1和KM2的映像寄存器均變?yōu)镺,因此程序掃描的最終結(jié)果為KM1的映像寄存器為O,KM2的映像寄存器為O,在程序刷新階段將使第1臺(tái)電動(dòng)機(jī)停車(chē),第2臺(tái)電動(dòng)機(jī)停機(jī)。以后再操作按鈕KM1和KM2,都將保持這種狀態(tài)不變。
解決問(wèn)題的辦法:采用本項(xiàng)目控制方案1所示的方法,為每一個(gè)狀態(tài)設(shè)置一個(gè)標(biāo)志位,不直接用邏輯串驅(qū)動(dòng)輸出,這樣就可以避免一個(gè)掃描周期內(nèi)輸出映像寄存器被多次刷新。
|