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

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