幾個(gè)單按鈕啟停控制程序詳解
單按鈕啟??刂?
本程序的特點(diǎn)在于:上升沿指令檢測(cè)到上升沿信號(hào)后,后面接通一個(gè)掃描周期,下一個(gè)掃描周期未檢測(cè)到上升沿信號(hào)則會(huì)自動(dòng)復(fù)位。即只保持一個(gè)掃描周期,揮著說在本掃描周期內(nèi)有效。此乃亮點(diǎn)也。第二行程序用于啟動(dòng)。
在第一個(gè)掃描周期,M0.0由0變?yōu)?,檢測(cè)到上升沿信號(hào),程序處理結(jié)果為M0.1變?yōu)?,第二行M0.1常開點(diǎn)閉合,由于Q0.0尚未動(dòng)作,第二行的Q0.0常閉點(diǎn)還是常閉,以此在輸出刷新階段能流通過第二行,將導(dǎo)致Q0.0得電,此時(shí)啟動(dòng)完成一半。第一個(gè)掃描周期結(jié)束后,M0.0立即變?yōu)?,M0.1立即變?yōu)?,同時(shí)Q0.0的常開點(diǎn)閉合,Q0.0常閉點(diǎn)斷開,該信號(hào)可以作為程序的輸入信號(hào)。此時(shí)第二行2個(gè)點(diǎn)全部斷開,第三行2個(gè)點(diǎn)全部閉合,能流通過第三行使Q0.0保持得電。
在第二個(gè)掃描周期,由于時(shí)間很短,操作人員不可能超出掃描周期的速度在1個(gè)掃描周期內(nèi)連續(xù)按下2次按鈕,因此PLC未檢測(cè)到M0.0由0變?yōu)?,M0.1未得電,第二行的M0.1常開點(diǎn)依舊常開,而Q0.0常閉點(diǎn)是斷開的,第二行2個(gè)點(diǎn)依舊全斷開,第三行2個(gè)點(diǎn)依舊全閉合。
第三行用于保持和停止。當(dāng)再次檢測(cè)到上升沿信號(hào)后,在相應(yīng)的周期內(nèi)M0.1常閉點(diǎn)斷開,第三行斷開,Q0.0失電。詳見上升沿|P|指令。--|P|--:掃描操作數(shù)的信號(hào)上升沿。
使用“掃描操作數(shù)的信號(hào)上升沿”指令,可以確定所指定操作數(shù)(<操作數(shù) 1>)的信號(hào)狀態(tài)是否從“0”變?yōu)椤?”。該指令將比較 <操作數(shù) 1> 的當(dāng)前信號(hào)狀態(tài)與上一次掃描的信號(hào)狀態(tài),上一次掃描的信號(hào)狀態(tài)保存在邊沿存儲(chǔ)位(<操作數(shù) 2>)中。如果該指令檢測(cè)到邏輯運(yùn)算結(jié)果 (RLO) 從“0”變?yōu)椤?”,則說明出現(xiàn)了一個(gè)上升沿。
下圖顯示了出現(xiàn)信號(hào)下降沿和上升沿時(shí),信號(hào)狀態(tài)的變化:

每次執(zhí)行指令時(shí),都會(huì)查詢信號(hào)上升沿。檢測(cè)到信號(hào)上升沿時(shí),<操作數(shù) 1> 的信號(hào)狀態(tài)將在一個(gè)程序周期內(nèi)保持置位為“1”。在其它任何情況下,操作數(shù)的信號(hào)狀態(tài)均為“0”。
在該指令上方的操作數(shù)占位符中,指定要查詢的操作數(shù)(<操作數(shù) 1>)。在該指令下方的操作數(shù)占位符中,指定邊沿存儲(chǔ)位(<操作數(shù) 2>)。
說明:修改邊沿存儲(chǔ)位的地址。邊沿存儲(chǔ)器位的地址在程序中最多只能使用一次,否則,會(huì)覆蓋該位存儲(chǔ)器。該步驟將影響到邊沿檢測(cè),從而導(dǎo)致結(jié)果不再唯一。邊沿存儲(chǔ)位的存儲(chǔ)區(qū)域必須位于 DB(FB 靜態(tài)區(qū)域)或位存儲(chǔ)區(qū)中。
下表列出了“掃描操作數(shù)的信號(hào)上升沿”指令的參數(shù):


單按鈕啟??刂瞥绦?
該程序與程序1一樣。不同之處在于第一行使用的指令,用了(P)指令。該指令的解釋見下面。--(P)--:在信號(hào)上升沿置位操作數(shù)。
說明:可以使用“在信號(hào)上升沿置位操作數(shù)”指令在邏輯運(yùn)算結(jié)果 (RLO) 從“0”變?yōu)椤?”時(shí)置位指定操作數(shù)(<操作數(shù) 1>)。該指令將當(dāng)前 RLO 與保存在邊沿存儲(chǔ)位中(<操作數(shù) 2>)上次查詢的 RLO 進(jìn)行比較。如果該指令檢測(cè)到 RLO 從“0”變?yōu)椤?”,則說明出現(xiàn)了一個(gè)信號(hào)上升沿。
每次執(zhí)行指令時(shí),都會(huì)查詢信號(hào)上升沿。檢測(cè)到信號(hào)上升沿時(shí),<操作數(shù) 1> 的信號(hào)狀態(tài)將在一個(gè)程序周期內(nèi)保持置位為“1”。在其它任何情況下,操作數(shù)的信號(hào)狀態(tài)均為“0”。
可以在該指令上面的操作數(shù)占位符中指定要置位的操作數(shù)(<操作數(shù) 1>)。在該指令下方的操作數(shù)占位符中,指定邊沿存儲(chǔ)位(<操作數(shù) 2>)。
說明:修改邊沿存儲(chǔ)位的地址
邊沿存儲(chǔ)器位的地址在程序中最多只能使用一次,否則,會(huì)覆蓋該位存儲(chǔ)器。該步驟將影響到邊沿檢測(cè),從而導(dǎo)致結(jié)果不再唯一。邊沿存儲(chǔ)位的存儲(chǔ)區(qū)域必須位于 DB(FB 靜態(tài)區(qū)域)或位存儲(chǔ)區(qū)中。
以下示例說明了該指令的工作原理:

如果線圈輸入的信號(hào)狀態(tài)從“0”更改為“1”(信號(hào)上升沿),則將操作數(shù)“TagOut”置位一個(gè)程序周期。在其它任何情況下,操作數(shù)“TagOut”的信號(hào)狀態(tài)均為“0”。

單按鈕啟停程序3
該程序的算法是計(jì)數(shù)器在0和1之間變化,具體操作是將計(jì)數(shù)器上限設(shè)為2,到2就復(fù)位。
CV初始值為0,按鈕按一下CV變?yōu)?,Q0.0得電,再按一下CV變?yōu)?,Q輸出使得計(jì)數(shù)器復(fù)位,CV立即變?yōu)?。本質(zhì)是利用計(jì)數(shù)器的自循環(huán)。

單按鈕啟停程序4
該程序的算法是除2取余數(shù)。對(duì)于正整數(shù)而言,除以2,要么剛好除盡,對(duì)應(yīng)余數(shù)為0;
要么除不盡,對(duì)應(yīng)余數(shù)為1。而且對(duì)于每次遞增加1的正整數(shù),余數(shù)0和1交替出現(xiàn)。
評(píng)論