對于程序裡常用的執行機構,最好總結出一個标準功能塊,通過改參數,實現這個功能塊不同的功能,下面以用的最多執行機構-氣缸為例,講一下達到封裝标準的功能塊使用的思路。
1、 氣缸介紹氣缸上下、伺服左右運行、吸氣吹氣等等,都是具有兩個狀态的邏輯對象。我們的氣缸一般有兩個狀态,工作狀态和非工作狀态,我們一般把非工作狀态叫做基本位,工作狀态叫做工作位。
氣缸使用電磁閥來切換氣路,一般氣缸分為單電磁閥氣缸和雙電磁閥氣缸。
單電磁閥:通過單個電磁閥來控制氣缸的正反動作, 用磁性開關是無法使氣缸停到中間某個位置的。
雙電磁閥:通過兩個電磁閥分别控制氣缸的正反向運行,例如三位五通的電磁閥執行器的。
檢測氣缸的到位信号一般有兩種方法,第一種通過時間限位來實現:根據氣缸的移動速度,計算出到達工作位置的時間,通過這個時間來确實是否到位。第二種通過氣缸上的實際到位信号來判斷是否到位。一般氣缸帶有磁性開關(一般2個,檢測兩端到位),用來檢測氣缸到位情況 (這個也是PLC的輸入信号)
2、标準的氣缸功能塊氣缸功能塊FB_Actuator适用于各種氣缸(例如單/雙電磁閥氣缸,時間限位/硬件反饋氣缸等),首先了解一下FB_Actuator控制原理。
功能塊程序結構
1) FB_Actuator功能塊輸入輸出管腳的介紹
功能塊
輸入管腳:
inWork: 在工作位置的實際信号輸入
inBasic: 在基本位置的實際信号輸入
FilterInWork: 在工作位置濾波時間
FilterInBasic: 在基本位濾波時間22
rqWork: 到工作位指令
rqBasic: 到基本位指令
EnableManuWorkBt: 使能到工作位按鈕
EnableManuBasicBt: 使能到基本位按鈕
btManuWork: 手動按鈕
btManuBasic: 手動按鈕
TimeOutWork: 到工作位超時報警時間,單位s
TimeOutBasic: 到基本位超時報警時間,單位s
bUseTimeLimit: 利用時間做限位到位開關,不使用實際的反饋點
DoWorkTimeOutId: 超時報警的ID号
DoBasicTimeOutId: 超時報警的ID号
bLockByItself: 是否自鎖
bForceEnableManualBt: 強制使用手動按鈕功能,不需要轉換到手動模式
sName: 執行器名字
輸出管腳:
IsWork: 已經到了工作位置
IsBasic: 已經到了基本位
doWork: 開始到工作位置輸出信号
doBasic: 開始到基本位輸出信号
RqManuWorkALarm: 手動,不在工作位條件不滿足報警
RqManuBasicALarm: 手動,不在基本位置條件不滿足報警
bError: 錯誤
MoveWorkTime: 到工作位時間計時,單位s
MoveBasicTime: 到基本位時間計時,單位s
2) 執行器的HMI模闆介紹
執行器使用的模闆是PH_ACTER,該模闆中包括了手動控制執行機構的控件,顯示從基本位(工作位)到工作位(基本位)移動的時間控件,到達基本位,工作位的狀态顯示控件和執行器的名字。
HMI
3) 模闆的調用
執行器的程序中,是單電磁閥的氣缸,并且有實際信号的反饋。具體調用步驟如下:
第一步:新建變量,實例化功能塊
聲明
其中FBisManualActive是自動使能,rqwork是要求執行器從基本位運行到工作位。
第二步:調用相關功能塊
RqSysAutoModeIsActive:=true; //切換到自動模式
fbActuator.sName:="吸嘴"; //對執行器命名,用于區分
fbActuator(
inWork:=stInput.biSnVacuuSor, //執行器反饋到位信号
FilterInWork:=t#20ms , //反饋信号的濾波
rqWork:=rqwork , //要求執行器動作
sName:= ,
isWork=> ,
isBasic=> ,
doWork=>stOutput.bqClamperSuck, //用輸出模塊控制執行器的動作
);
第三步:HMI模闆調用
通過HMI中的Frame控件來調用HMI模闆
HMI
調用Frame控件之後,進入Frame屬性裡面設置相關參數:
1) 設置調用HMI控件,選擇congfigure,添加PH_ACTER作為模闆。
2) 通過綁定變量Main.fbActuator,實現控制器上的程序變量和HMI上的控件的對應。
想要原程序看看的可以私信我!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!