对于程序里常用的执行机构,最好总结出一个标准功能块,通过改参数,实现这个功能块不同的功能,下面以用的最多执行机构-气缸为例,讲一下达到封装标准的功能块使用的思路。

1、 气缸介绍

气缸上下、伺服左右运行、吸气吹气等等,都是具有两个状态的逻辑对象。我们的气缸一般有两个状态,工作状态和非工作状态,我们一般把非工作状态叫做基本位,工作状态叫做工作位。

气缸使用电磁阀来切换气路,一般气缸分为单电磁阀气缸和双电磁阀气缸。

单电磁阀:通过单个电磁阀来控制气缸的正反动作, 用磁性开关是无法使气缸停到中间某个位置的。

双电磁阀:通过两个电磁阀分别控制气缸的正反向运行,例如三位五通的电磁阀执行器的。

检测气缸的到位信号一般有两种方法,第一种通过时间限位来实现:根据气缸的移动速度,计算出到达工作位置的时间,通过这个时间来确实是否到位。第二种通过气缸上的实际到位信号来判断是否到位。一般气缸带有磁性开关(一般2个,检测两端到位),用来检测气缸到位情况 (这个也是PLC的输入信号)

2、标准的气缸功能块

气缸功能块FB_Actuator适用于各种气缸(例如单/双电磁阀气缸,时间限位/硬件反馈气缸等),首先了解一下FB_Actuator控制原理。

plc中stl的循环控制(PLC标准ST编程之执行器的标准功能块思路)(1)

功能块程序结构

1) FB_Actuator功能块输入输出管脚的介绍

plc中stl的循环控制(PLC标准ST编程之执行器的标准功能块思路)(2)

功能块

输入管脚:

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,该模板中包括了手动控制执行机构的控件,显示从基本位(工作位)到工作位(基本位)移动的时间控件,到达基本位,工作位的状态显示控件和执行器的名字。

plc中stl的循环控制(PLC标准ST编程之执行器的标准功能块思路)(3)

HMI

3) 模板的调用

执行器的程序中,是单电磁阀的气缸,并且有实际信号的反馈。具体调用步骤如下:

第一步:新建变量,实例化功能块

plc中stl的循环控制(PLC标准ST编程之执行器的标准功能块思路)(4)

声明

其中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模板

plc中stl的循环控制(PLC标准ST编程之执行器的标准功能块思路)(5)

HMI

调用Frame控件之后,进入Frame属性里面设置相关参数:

1) 设置调用HMI控件,选择congfigure,添加PH_ACTER作为模板。

2) 通过绑定变量Main.fbActuator,实现控制器上的程序变量和HMI上的控件的对应。

想要原程序看看的可以私信我!

,