在FX1S型PLC中用于進行數據比較的編程指令有兩種,即觸點比較指令和比較指令(CMP 指令),下面分別通過幾個實例說明它們的應用。
一、觸點比較指令
觸點比較指令是帶有邏輯運算功能的比較指令,編程時相當于一個觸點,執行時比較源操作數 [S1]和 [S2],滿足比較條件則觸點閉合,源操作數可以取所有的數據類型。觸點比較指令既有基本指令的邏輯功能,也有高級指令的運算功能,在編寫程序時,它們和普通觸點一樣放在梯形圖的橫線上,非常實用。
例1:試設計電動機的單鍵啟停程序,即按一下按鈕電動機啟動,再按一下按鈕,電動機停轉。
編程思路分析:當我們希望在同一個計數器或定時器不同的當前值時有不同的輸出時,用觸點比較指令較方便。本例中用計數器C0對按鈕的按動次數進行計數。為了更準確地進行計數,采用FX1S型PLC特有的按鈕觸點作為計數信號,由于按下按鈕兩次,電動機有兩種狀態,以后重復前面的過程,因此計數器的常數設定值取2。本例中觸點比較指令是將計數器的當前值與十進制常數進行比較,當計數器的當前值等于1時,使Y1置位,即電動機轉動;當計數器的當前值等于2時,使Y1復位,即電動機停轉。同時使計數器清零,為下一次計數做準備。程序如圖1所示。
例2:某生產自動線小車用電動機拖動,電機正轉小車前進,電動機反轉小車后退。如圖2所示。控制要求如下:
按下啟動按鈕SB1后小車前進,碰到限位開關SQ1后退至原位0停止。
在原位0停止3S后小車繼續前進,碰到限位開關SQ2后退至原位0停止。
自動循環次數由按鈕SB2設定,運行滿設定次數自動停止。
設置預停按鈕SB3,按下預停按鈕小車完成本次循環后停于原位。試設計程序。
編程思路分析:根據要求自動循環次數由按鈕SB2(X2)設定,運行滿設定次數自動停止,可以用計數器C0對X2的輸入次數進行計數,用X7作為計數器C1的計數信號,完成對小車循環次數的計數。本例中觸點比較指令是將兩個計數器的當前值進行比較,當C0和C1的當前值相等時,即小車運行滿設定次數時自動停止。C0和C1的常數設定值理論上可以在1~32767之間設定,本例中設定為20。編程時需注意C0和C1不能同時復位,否則一開始M4即得電,小車不能運行。調試時,先按SB2數次,設定自動循環次數,然后再按下啟動按鈕SB1(X1),小車自動運行滿設定次數時停止。程序如圖3所示。
二、比較指令
比較指令CMP(Compare)的功能:將源操作元件[S1]和源操作元件[S2]的數據進行比較,并將比較結果送到目標操作元件[D]中。目標操作元件[D]由三個元件組成,指令中[D]給出首地址,其余兩個為后面的相鄰元件。
例3:圖4為某生產流水線的送料車定點呼叫控制示意圖。送料車根據要求對1#~4#的工位進行送料。每個工位上都設置有位置檢測傳感器SQ,用于檢測送料車的到位情況。每個工位都設置有呼叫按鈕SB,用于呼叫送料車。送料車在生產線1#~4#工位范圍內左、右運動,當某個工位的呼叫按鈕閉合時,送料車將自動運行至呼叫工位。試設計程序。
編程思路分析:本例中需要將呼叫按鈕號和送料車的工位號大小進行比較,從而判斷送料車的運行方向,比較結果有三種,需要輸出三種結果,即當呼叫按鈕號大于送料車所在的工位號時,送料車右行;當呼叫按鈕號等于送料車所在的工位號時,送料車不動;當呼叫按鈕號小于送料車所在的工位號時,送料車左行。因此采用FX1S型PLC中的比較指令CMP很容易實現。在任何一個呼叫按鈕閉合的瞬間,采用脈沖微分指令PLS得到一個掃描周期寬度的控制信號M0,用M0信號控制MOV指令的執行,將當前的呼叫信號傳送到數據寄存器D1中。同理,將送料車當前所在的位置號傳送到數據寄存器D2中。在M0為ON時,執行比較指令,確定送料車的運動方向。當D1>D2時,M1觸點閉合,送料車右行;當D1=D2時,M2觸點閉合,清除比較結果,送料車不動;當D1 (作者單位:江蘇省常州技師學院) 注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文