恭喜,你发布的帖子
发布于 2015-08-10 23:19:36
1楼
FUNCTION_BLOCK FB 509
TITLE =符号名:SimInverter_FwdRev
//符号说明:模拟变频器加减速输出;
////20150313,模拟变频器加减速输出
//加减速时间:从0<->最大速所需时间;
//最大速度、加减速时间只有变频器运行信号失效下才能修改;
//启动信号发出后,延时RunDelayT(最小50ms保证一个周期加/减速度计算)时间后,运行信
//号有效;
//无启动信号后,输出减速到0后,运行信号失效;运行信号失效后,程序提前退出;
//Arrive:输出速度到设定速度一定(ArriveRange)范围内;
//deadPos/deadNeg:防止输出在设定值附近震荡,大于增量一半(一半+0.1)自动确定
////20150316
//Arrive范围撤销,输出=输入时就有效;
//加入无升降时,用设定赋值给输入,反转震荡;
//接口从real转换成int,给客户用int数据接口,计算用real方便理解单位换算,保持精度
////20150429-增加新的版本v2
//增加正反转,换向必须停下,不换向情况下,如果还没停下来再次启动继续运行;
//换向启动有启动延时,运行中反向指令无效,当前运行停止后延时启动运行反方向;
//正/反转运行中(含等待和减速中)信号放到接口。
//设定参数增加了输入限值
////20150508,增加实际采用的加减速时间,默认=10,修改加减速限值大于等于1;
//加减速中标志:pos(加速DIX42.0),neg(减速DIX42.1);
//KNOW_HOW_PROTECT
AUTHOR : WGQ
NAME : SimInv2
VERSION : 8.2
VAR_INPUT
RstFB : BOOL ; //急停,初始化复位FB
Fwd : BOOL ; //正转指令
Rev : BOOL ; //反转指令
SetSpd : INT := 50; //设定速度(单位mm/s,默认50,限值0~maxSpd)
MaxSpd : INT := 600; //最大输出速度(单位mm/s,默认600,限值大于等于10)
AccT : INT := 30; //加速时间(单位0.1s,默认30,限值大于等于1)
DecT : INT := 30; //减速时间(单位0.1s,默认30,限值大于等于1)
RunDlyT : INT := 100; //启动延时时间(单位ms,默认100,限值大于等于1)
CycT : INT ; //程序执行周期ms
END_VAR
VAR_OUTPUT
Spd : INT ; //速度输出(0~MaxSpd)
SpdHex : INT ; //速度输出(0~27648)
Run : BOOL ; //状态指示(1=运行,0=停止),停下后复位功能块,保证运行重复性。
Arrive : BOOL ; //输出=设定速度
Fwding : BOOL ; //正转过程中标记……(含等待和减速过程)
Reving : BOOL ; //反转过程中标记……(含等待和减速过程)
END_VAR
VAR
tmpDelayAct : INT ; //运行延时计时值
accSpd : REAL ; //运行前运算得:加速度量(单位mm/s)
decSpd : REAL ; //运行前运算得:减速度量(单位mm/s)
dltSpd : REAL ; //运算得:速度调整量(正负),(单位mm/s)
deadPos : REAL ; //运算得:正向调整的死区
deadNeg : REAL ; //运算得:负向调整的死区
pos : BOOL ; //加速
neg : BOOL ; //减速
strOK : BOOL ; //启动延时到,启动指令有效;
Str : BOOL ; //电机启动指令控制(1=启动,0=停止)
fwdok : BOOL ; //正转指令有效
revok : BOOL ; //反转指令有效
tbFn1 : BOOL ;
tbFn2 : BOOL ;
SetSpd_real : REAL ; //设定速度(单位mm/s,默认50.0)
MaxSpd_real : REAL := 6.000000e+002; //最大输出速度(单位mm/s,默认600.0)
AccT_real : REAL := 1.000000e+000; //加速时间(单位1s,默认1.0)
DecT_real : REAL := 1.000000e+000; //减速时间(单位1s,默认1.0)
Spd_real : REAL ; //速度输出(mm/s单位同最大一样)
accTact : INT := 10; //采用的加速时间(单位0.1s,默认10)
decTact : INT := 10; //采用的减速时间(单位0.1s,默认10)
END_VAR
VAR_TEMP
CycT_real : REAL ;
END_VAR
请填写推广理由:
分享
只看
楼主