PLC在工作時(shí)采用順序循環(huán)掃描的工作方式來執(zhí)行081(包括子程序,如FC,F(xiàn)B等)中的用戶程序,在一個(gè)掃描周期的開始CPU對所有的輸入端子上的信號進(jìn)行集中采集,BTB06-600S并將采集結(jié)果保存在過程映像輸入寄存器(I),在程序執(zhí)行期間不再考慮輸入端子上信號的變化,而程序執(zhí)行過程中所產(chǎn)生的中間結(jié)果則直接保存在存儲器(M)或過程映像輸出寄存器(Q)中,并不立即送到輸出端子,只有在當(dāng)前掃描周期結(jié)束前才將程序執(zhí)行的最終結(jié)果集中送到輸出端子,對輸出端子進(jìn)行刷新。如果對這種掃描方式理解不清楚,在編程時(shí)就會出現(xiàn)意想不到的結(jié)果。請看下面的分析:
根據(jù)本項(xiàng)目的要求,第1次按按鈕時(shí)只有第1臺電動機(jī)工作,在這之前兩臺電動機(jī)都處于停機(jī)狀態(tài),由此可編寫出圖4-9中如Network 1所示的邏輯程序段;第2次按按鈕時(shí)第1臺電動機(jī)停車,第2臺電動機(jī)工作,在這之前第1臺電動機(jī)工作,第2臺電動機(jī)停車,由此可編寫出圖4-9中如Network 2所示的邏輯程序段;第3次按按鈕時(shí)兩臺電動機(jī)同時(shí)停車,在這之前第1臺電動機(jī)停車,第2臺電動機(jī)工作,由此可編寫出圖4-9中如Network 3所示的邏輯程序段。

圖4-9所示的程序看起來邏輯關(guān)系非常清晰,應(yīng)該能夠?qū)崿F(xiàn)項(xiàng)目所要求的功能,但仔細(xì)分析后發(fā)現(xiàn):由于程序按編寫順序進(jìn)行掃描工作,第1次操作按鈕后的一個(gè)掃描周期內(nèi),KM1和KM2的映像寄存器都為O(兩臺電動機(jī)都處于停車狀態(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)?(其常開觸點(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_觸點(diǎn)斷開),KM2的映像寄存器已經(jīng)變?yōu)?(其常開觸點(diǎn)閉合),所以KM1和KM2的映像寄存器均變?yōu)镺,因此程序掃描的最終結(jié)果為KM1的映像寄存器為O,KM2的映像寄存器為O,在程序刷新階段將使第1臺電動機(jī)停車,第2臺電動機(jī)停機(jī)。以后再操作按鈕KM1和KM2,都將保持這種狀態(tài)不變。
解決問題的辦法:采用本項(xiàng)目控制方案1所示的方法,為每一個(gè)狀態(tài)設(shè)置一個(gè)標(biāo)志位,不直接用邏輯串驅(qū)動輸出,這樣就可以避免一個(gè)掃描周期內(nèi)輸出映像寄存器被多次刷新。
|