為什么不要頻繁使用置位和復(fù)位指令編程?
王曾
發(fā)布于2023-03-02 15:44
277
5
標(biāo)簽:西門子PLC
剛?cè)胄械臅r(shí)候,我最喜歡的就是置位與復(fù)位這兩個(gè)指令,可以說(shuō)沒有之一。不管是氣缸控制,還是燈的控制,使用置位和復(fù)位兩個(gè)指令就可以輕松搞定。但是隨著編程時(shí)間越長(zhǎng),慢慢發(fā)現(xiàn)了它們的一些弊端,所以我越來(lái)越不喜歡用置位與復(fù)位指令編程了。這是為什么呢?一條條講給你聽。
1. 執(zhí)行效率不高。
我們以最典型的電機(jī)啟??刂瞥绦蜻M(jìn)行舉例,置位復(fù)位方式編程如圖所示:
為什么說(shuō)這個(gè)程序執(zhí)行效率不高,因?yàn)檫@個(gè)程序如果條件滿足時(shí),一個(gè)掃描周期內(nèi)會(huì)對(duì)Q0.0進(jìn)行二次寫入操作,一次是置1操作,一次是置0操作。
2. 編程容易遺漏
置位與復(fù)位指令,通常是成對(duì)使用的,在編程的時(shí)候,如果遺漏了,則可能讓程序處于一個(gè)狀態(tài)。如果遺漏掉了置位指令,則會(huì)導(dǎo)致處于0的狀態(tài);如果遺漏掉了復(fù)位指令,則會(huì)導(dǎo)致處于1的狀態(tài)。
3. 設(shè)備未全掃描
置位復(fù)位指令,本質(zhì)上是一種條件判斷。在一個(gè)掃描周期內(nèi),如果啟動(dòng)和停止按鈕都沒有按下的狀態(tài),則會(huì)跳過(guò)對(duì)Q0.0的寫入操作,即不寫入0,也不寫入1。如果處于這種狀態(tài),可能會(huì)導(dǎo)致不可預(yù)知的情況發(fā)生。
4. 程序邏輯不嚴(yán)密
當(dāng)置位操作與復(fù)位操作之間,存在多條程序時(shí),會(huì)占用一定的掃描時(shí)間。如果這個(gè)時(shí)間存在時(shí)間足夠長(zhǎng),可能存在一個(gè)極短的過(guò)渡階段。當(dāng)兩個(gè)條件都滿足時(shí),可能在一個(gè)掃描周期內(nèi),電機(jī)先啟動(dòng)了,又停止了。
最后簡(jiǎn)單總結(jié)一下。雖然置位復(fù)位指令非常的簡(jiǎn)單,但是由于存在一些問(wèn)題,所以對(duì)于邏輯控制的程序,不采用這種方法編程。那么采用什么方法實(shí)現(xiàn)呢?可以采用程序自鎖的方式來(lái)進(jìn)行邏輯控制。如圖所示: