1、SIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 1 页/共 32 页FB205 - “Sramp“ S曲线处理名称: 系列: Winder作者: Ye 版本: 1.0块版本: 2时间标志 代码:接口:2012-09-14 10:42:192012-09-14 10:42:19长度(块/逻辑/数据): 04064 03512 00016名称 数据类型 地址 初始值 注释 IN 0.0SEN Bool 0.0 FALSE 斜坡发生器使能信号0,1SV Real 2.0 0.000000e+000 斜坡发生
2、器目标值输入 m/minPV Real 6.0 0.000000e+000 实际值 m/minV_100 Real 10.0 0.000000e+000 额定速度 m/minUL Real 14.0 0.000000e+000 量程下限 M/SUH Real 18.0 0.000000e+000 量程上限 M/STU Real 22.0 0.000000e+000 斜坡上升时间S0,300TD Real 26.0 0.000000e+000 斜坡下降时间S0,300TRU Real 30.0 0.000000e+000 初始圆弧AR时长S0,10TRD Real 34.0 0.000000e+
3、000 最终圆弧ER时长S0,10Tsc Real 38.0 0.000000e+000 斜坡发生器执行时间MS10,500Bypass Bool 42.0 FALSE 旁路控制OUT 0.0OUT Real 44.0 0.000000e+000 斜坡发生器输出 M/Sdvdt Real 48.0 0.000000e+000 dv/dt输出 M/min2AR Bool 52.0 FALSE 初始圆弧处理ER Bool 52.1 FALSE 最终圆弧处理IN_OUT 0.0STAT 0.0SP Real 54.0 0.000000e+000 SV值生效值dev Real 58.0 0.00000
4、0e+000 距离SV值实时值dev_0 Real 62.0 0.000000e+000 距离SV值(初值)SP_old Real 66.0 0.000000e+000 给定值初值PV_old Real 70.0 0.000000e+000 测量初值dvdt_old Real 74.0 0.000000e+000 上次扫描dv/dt输出Yold Real 78.0 0.000000e+000 上次扫描输出值Ynew Real 82.0 0.000000e+000 本次控制输出值dvdt_new Real 86.0 0.000000e+000 本次扫描dv/dt输出ADD_V Real 90.0
5、 0.000000e+000 圆角执行其最大变化量dvdt_U Real 94.0 0.000000e+000 上升dvdt_maxdvdt_D_ABS Real 98.0 0.000000e+000 下降最大dvdt(绝对值)dvdt_D Real 102.0 0.000000e+000 下降dvdt_maxSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 2 页/共 32 页名称 数据类型 地址 初始值 注释 U_tru Real 106.0 0.000000e+000 上升AR增量U_trd Re
6、al 110.0 0.000000e+000 上升ER增量D_tru Real 114.0 0.000000e+000 下降AR增量D_trd Real 118.0 0.000000e+000 下降ER增量UP_V Real 122.0 0.000000e+000 AR最大速度增量DN_V Real 126.0 0.000000e+000 ER最大速度增量DN_Dev Real 130.0 0.000000e+000 ER开始点DS_V Real 134.0 0.000000e+000 最终圆角执行实际步长DS Real 138.0 0.000000e+000 er执行周期数DS2 Real
7、142.0 0.000000e+000 DS的平方Sen_P Bool 146.0 FALSE EN上升沿检测New_SP Bool 146.1 FALSE 给定改变calc Bool 146.2 TRUE 程序设计连接变量small Bool 146.3 TRUE 小范围调节Re_ER Bool 146.4 TRUE 设定改变,需要重新确定ERER_P Bool 146.5 TRUE ER上升沿检测ER_T Real 148.0 0.000000e+000 ER段执行周期计数TEMP 0.0temp0 Real 0.0 计算过程中临时值temp1 Real 4.0 计算过程中临时值temp3
8、 DInt 8.0 计算过程中临时值RET Int 12.0块: FB205 SIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 3 页/共 32 页程序段: 1 如果发生器未使能,相关参数置0#SEN斜坡发生器使能信号0,1#SEN MOVEEN0.000000e+000 INENOOUT#SP_old给定值初值#SP_oldMOVEEN0.000000e+000 INENOOUT#dvdt_old上次扫描dv/dt输出#dvdt_oldR#Sen_PEN上升沿检测#Sen_PR#AR初始圆弧处理#AR
9、R#ER最终圆弧处理#ERMOVEEN0.000000e+000 INENOOUT#Yold上次扫描输出值#Yold程序段: 2 Bypass控制#Bypass旁路控制#Bypass MOVEEN#SV斜坡发生器目标值输入m/min#SV INENOOUT#OUT斜坡发生器输出 M/S#OUTMOVEEN0.000000e+000 INENOOUT#dvdtdv/dt输出M/min2#dvdtRETSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 4 页/共 32 页程序段: 3 如果发生器未使能,关闭
10、输出,结束#SEN斜坡发生器使能信号0,1#SEN MOVEEN0.000000e+000 INENOOUT#Ynew本次控制输出值#YnewMOVEEN0.000000e+000 INENOOUT#OUT斜坡发生器输出 M/S#OUTMOVEEN0.000000e+000 INENOOUT#dvdtdv/dt输出M/min2#dvdtRET程序段: 4 设定值上下限幅MOVEEN#SV斜坡发生器目标值输入m/min#SV INENOOUT#SPSV值生效值#SPCMP R#SV斜坡发生器目标值输入m/min#SV IN1#UH量程上限M/S#UH IN2MOVEEN#UH量程上限M/S#UH
11、 INENOOUT#SPSV值生效值#SPSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 5 页/共 32 页程序段: 5 启动之初,各值赋初值#SEN斜坡发生器使能信号0,1#SENP#Sen_PEN上升沿检测#Sen_P MOVEEN#PV实际值m/min#PV INENOOUT#PV_old测量初值#PV_oldMOVEEN#PV实际值m/min#PV INENOOUT#Yold上次扫描输出值#Yold程序段: 6 ER_T是用于监视ER段执行周期数#SEN斜坡发生器使能信号0,1#SEN CM
12、P R#SP_old给定值初值#SP_old IN1#PV_old测量初值#PV_old IN2CMP R#SPSV值生效值#SP IN1#PV_old测量初值#PV_old IN2MOVEEN0.000000e+000 INENOOUT#dvdt_old上次扫描dv/dt输出#dvdt_oldMOVEEN#PV实际值m/min#PV INENOOUT#PV_old测量初值#PV_oldR#ER最终圆弧处理#ER程序段: 8 #New_SP给定改变#New_SP#ER最终圆弧处理#ERS#Re_ER设定改变,需要重新确定ER#Re_ER程序段: 9 #New_SP给定改变#New_SP MOV
13、EEN#SPSV值生效值#SP INENOOUT#SP_old给定值初值#SP_oldR#small小范围调节#smallSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 7 页/共 32 页程序段: 10 CMP =R#SPSV值生效值#SP IN1#Yold上次扫描输出值#Yold IN2JMPover程序段: 11 升降速方向判断,如果 SPR#SPSV值生效值#SP IN1#PV实际值m/min#PV IN2JMPNdown程序段: 12 新给定,重新计算各种条件值,否则直接进入曲线调节部分#N
14、ew_SP给定改变#New_SPJMPNU_BGSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 8 页/共 32 页程序段: 13 计算调节范围SUB_REN#SPSV值生效值#SP IN1#PV_old测量初值#PV_old IN2ENOOUT#dev_0距离SV值(初值)#dev_0程序段: 14 计算上升最大步长dvdt_U=V_100*Tsc0/(TU*1000)(TU:S Tsc:ms)DIV_REN#V_100额定速度m/min#V_100 IN1#TU斜坡上升时间S0,300#TU IN
15、2ENOOUT#temp0计算过程中临时值#temp0MUL_REN#temp0计算过程中临时值#temp0 IN1#Tsc斜坡发生器执行时间MS10,500#Tsc IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN11.000000e+003 IN2ENOOUT#dvdt_U上升dvdt_max#dvdt_USIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 9 页/共 32 页程序段: 15 起始圆角步长: U_tru=dvdt_U
16、*tsc/(Tru*1000)结束圆角步长: U_trd=dvdt_U*tsc/(Trd*1000) 将上升最大步长均分为TRU、TRD份MUL_REN#dvdt_U上升dvdt_max#dvdt_U IN1#Tsc斜坡发生器执行时间MS10,500#Tsc IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN11.000000e+003 IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN1#TRU初始圆弧AR时长S0,10#TRU IN2ENOOUT#U_tr
17、u上升AR增量#U_truDIV_REN#temp0计算过程中临时值#temp0 IN1#TRD最终圆弧ER时长S0,10#TRD IN2ENOOUT#U_trd上升ER增量#U_trd程序段: 16 开始圆角最大累积速度增量(TRU:S 需转换为TSC:ms 的倍数n=TRU*1000/Tsc)UP_V=(n+n*n)/2)*U_TruMUL_REN#TRU初始圆弧AR时长S0,10#TRU IN11.000000e+003 IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN1#Tsc斜坡发生器执行时间MS10,500#Ts
18、c IN2ENOOUT#temp0计算过程中临时值#temp0MUL_REN#temp0计算过程中临时值#temp0 IN1#temp0计算过程中临时值#temp0 IN2ENOOUT#temp1计算过程中临时值#temp1SIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 10 页/共 32 页程序段: 17 ADD_REN#temp0计算过程中临时值#temp0 IN1#temp1计算过程中临时值#temp1 IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程
19、中临时值#temp0 IN12.000000e+000 IN2ENOOUT#temp0计算过程中临时值#temp0MUL_REN#temp0计算过程中临时值#temp0 IN1#U_tru上升AR增量#U_tru IN2ENOOUT#UP_VAR最大速度增量#UP_V程序段: 18 结束圆角最大累积速度增量 DN_V=(n+n*n)/2)*U_TruMUL_REN#TRD最终圆弧ER时长S0,10#TRD IN11.000000e+003 IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN1#Tsc斜坡发生器执行时间MS10,
20、500#Tsc IN2ENOOUT#DSer执行周期数#DSMUL_REN#DSer执行周期数#DS IN1#DSer执行周期数#DS IN2ENOOUT#temp1计算过程中临时值#temp1程序段: 19 ADD_REN#DSer执行周期数#DS IN1#temp1计算过程中临时值#temp1 IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN12.000000e+000 IN2ENOOUT#temp0计算过程中临时值#temp0MUL_REN#temp0计算过程中临时值#temp0 IN1#U_trd上升ER增量#U_t
21、rd IN2ENOOUT#DN_VER最大速度增量#DN_VSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 11 页/共 32 页程序段: 20 如果调节范围不大于ADD_V,则降dvdt点每个扫描周期均需要调节大范围调节,dvdt肯定能上到最大值,所以ER开始点即为DN_V由于最后一个降dvdt周期时,新dvdt=0,实际OUT无变化,所以DS需减1,在此即#dvdt_UADD_REN#UP_VAR最大速度增量#UP_V IN1#DN_VER最大速度增量#DN_V IN2ENOOUT#ADD_V圆角
22、执行其最大变化量#ADD_VCMP =R#ADD_V圆角执行其最大变化量#ADD_V IN1#dev_0距离SV值(初值)#dev_0 IN2#small小范围调节#smallNOTSUB_REN#DN_VER最大速度增量#DN_V IN1#dvdt_U上升dvdt_max#dvdt_U IN2ENOOUT#DN_DevER开始点#DN_DevSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 12 页/共 32 页程序段: 21 小范围调节,降dvdt点需要随时计算。计算当前dvdt降到零时将产生多少速
23、度变化DN_Dev=(N+N*N)*D_Trd/2U_BG#small小范围调节#small#ER最终圆弧处理#ER#Re_ER设定改变,需要重新确定ER#Re_ERDIV_REN#dvdt_old上次扫描dv/dt输出#dvdt_old IN1#U_trd上升ER增量#U_trd IN2ENOOUT#DSer执行周期数#DSFLOOREN#DSer执行周期数#DS INENOOUT#temp3计算过程中临时值#temp321.ADI_REN#temp3计算过程中临时值#temp3 INENOOUT#DSer执行周期数#DS#calc程序设计连接变量#calc21.ASIMATIC Winde
24、rSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 13 页/共 32 页程序段: 22 经测试,DS需减一个周期,才能保证dvdt归零时,与调节不存在调节余差#calc程序设计连接变量#calc SUB_REN#DSer执行周期数#DS IN11.000000e+000 IN2ENOOUT#DSer执行周期数#DSMUL_REN#DSer执行周期数#DS IN1#DSer执行周期数#DS IN2ENOOUT#DS2DS的平方#DS2ADD_REN#DS2DS的平方#DS2 IN1#DSer执行周期数#DS IN2ENOOUT#t
25、emp1计算过程中临时值#temp1程序段: 23 由于最后一个降dvdt周期时,新dvdt=0,实际OUT无变化,所以需预减一周期#calc程序设计连接变量#calc DIV_REN#temp1计算过程中临时值#temp1 IN12.000000e+000 IN2ENOOUT#temp1计算过程中临时值#temp1MUL_REN#temp1计算过程中临时值#temp1 IN1#U_trd上升ER增量#U_trd IN2ENOOUT#DN_DevER开始点#DN_DevSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10
26、:39:58第 14 页/共 32 页程序段: 24 AR、ER判断SUB_REN#SPSV值生效值#SP IN1#Yold上次扫描输出值#Yold IN2ENOOUT#dev距离SV值实时值#devCMP 2012-10-17 10:39:58第 15 页/共 32 页程序段: 27 dvdt上升段ADD_REN#dvdt_old上次扫描dv/dt输出#dvdt_old IN1#U_tru上升AR增量#U_tru IN2ENOOUT#dvdt_new本次扫描dv/dt输出#dvdt_new程序段: 28 dvdt达到最大值,初始圆弧结束CMP =R#dvdt_new本次扫描dv/dt输出#d
27、vdt_new IN1#dvdt_U上升dvdt_max#dvdt_U IN2MOVEEN#dvdt_U上升dvdt_max#dvdt_U INENOOUT#dvdt_new本次扫描dv/dt输出#dvdt_new程序段: 29 JMPUP1SIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 16 页/共 32 页程序段: 30 U_ERSUB_REN#dvdt_old上次扫描dv/dt输出#dvdt_old IN1#U_trd上升ER增量#U_trd IN2ENOOUT#dvdt_new本次扫描dv/d
28、t输出#dvdt_newADD_REN#ER_TER段执行周期计数#ER_T IN11.000000e+000 IN2ENOOUT#ER_TER段执行周期计数#ER_TSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 17 页/共 32 页程序段: 31 在ER段给定值改变,需修正dvdt_newDS=SQRT(2*Dev)取整 dvdt_new=U_Trd*DS#New_SP给定改变#New_SP MUL_REN#dev距离SV值实时值#dev IN12.000000e+000 IN2ENOOUT#t
29、emp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN1#U_trd上升ER增量#U_trd IN2ENOOUT#temp0计算过程中临时值#temp0SQRTEN#temp0计算过程中临时值#temp0 INENOOUT31.A#temp0计算过程中临时值#temp0CEILEN#temp0计算过程中临时值#temp0 INENOOUT#temp3计算过程中临时值#temp331.A程序段: 32 #New_SP给定改变#New_SP DI_REN#temp3计算过程中临时值#temp3 INENOOUT#DSer执行周期数#DSMUL_REN#DS
30、er执行周期数#DS IN1#U_trd上升ER增量#U_trd IN2ENOOUT#dvdt_new本次扫描dv/dt输出#dvdt_newR#Re_ER设定改变,需要重新确定ER#Re_ERSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 18 页/共 32 页程序段: 33 加速度归零,最终圆弧处理结束,重置相关参数CMP =R#Ynew本次控制输出值#Ynew IN1#SPSV值生效值#SP IN2MOVEEN#SPSV值生效值#SP INENOOUT#Ynew本次控制输出值#Ynew程序段:
31、35 JMPoverSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 19 页/共 32 页程序段: 36 下降处理down#New_SP给定改变#New_SPJMPND_BG程序段: 37 计算调节范围SUB_REN#PV_old测量初值#PV_old IN1#SPSV值生效值#SP IN2ENOOUT#dev_0距离SV值(初值)#dev_0SIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 20 页/共 32
32、 页程序段: 38 计算上升最大步长dvdt_D=V_100*Tsc0/(TD*1000)(TU:S Tsc:ms)DIV_REN#V_100额定速度m/min#V_100 IN1#TD斜坡下降时间S0,300#TD IN2ENOOUT#temp0计算过程中临时值#temp0MUL_REN#temp0计算过程中临时值#temp0 IN1#Tsc斜坡发生器执行时间MS10,500#Tsc IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN11.000000e+003 IN2ENOOUT38.A#dvdt_D_ABS下降最大dvd
33、t(绝对值)#dvdt_D_ABSMUL_REN#dvdt_D_ABS下降最大dvdt(绝对值)#dvdt_D_ABS IN1-1.000000e+000 IN2ENOOUT#dvdt_D下降dvdt_max#dvdt_D38.ASIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 21 页/共 32 页程序段: 39 起始圆角步长: d_tru=dvdt_D*Tsc/(Tru*1000)结束圆角步长: d_tru=dvdt_D*Tsc/(Trd*1000)将上升最大步长均分为TRU、TRD份MUL_REN
34、#dvdt_D_ABS下降最大dvdt(绝对值)#dvdt_D_ABS IN1#Tsc斜坡发生器执行时间MS10,500#Tsc IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN11.000000e+003 IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN1#TRU初始圆弧AR时长S0,10#TRU IN2ENOOUT#D_tru下降AR增量#D_truDIV_REN#temp0计算过程中临时值#temp0 IN1#TRD最终圆弧ER时长S0,10#TRD
35、 IN2ENOOUT#D_trd下降ER增量#D_trd程序段: 40 开始圆角最大累积速度增量UP_V=(n+n*n)/2)*D_TruMUL_REN#TRU初始圆弧AR时长S0,10#TRU IN11.000000e+003 IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN1#Tsc斜坡发生器执行时间MS10,500#Tsc IN2ENOOUT#temp0计算过程中临时值#temp0MUL_REN#temp0计算过程中临时值#temp0 IN1#temp0计算过程中临时值#temp0 IN2ENOOUT#temp1计算过
36、程中临时值#temp1SIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 22 页/共 32 页程序段: 41 ADD_REN#temp0计算过程中临时值#temp0 IN1#temp1计算过程中临时值#temp1 IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN12.000000e+000 IN2ENOOUT#temp0计算过程中临时值#temp0MUL_REN#temp0计算过程中临时值#temp0 IN1#D_tru下降AR增量#
37、D_tru IN2ENOOUT#UP_VAR最大速度增量#UP_V程序段: 42 结束圆角最大累积速度增量DN_V=(n+n*n)/2)*D_TrdMUL_REN#TRD最终圆弧ER时长S0,10#TRD IN11.000000e+003 IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN1#Tsc斜坡发生器执行时间MS10,500#Tsc IN2ENOOUT#DSer执行周期数#DSMUL_REN#DSer执行周期数#DS IN1#DSer执行周期数#DS IN2ENOOUT#temp1计算过程中临时值#temp1程序段:
38、43 ADD_REN#DSer执行周期数#DS IN1#temp1计算过程中临时值#temp1 IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN12.000000e+000 IN2ENOOUT#temp0计算过程中临时值#temp0MUL_REN#temp0计算过程中临时值#temp0 IN1#D_trd下降ER增量#D_trd IN2ENOOUT#DN_VER最大速度增量#DN_VSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 2
39、3 页/共 32 页程序段: 44 如果调节范围不大于ADD_V,则降dvdt点每个扫描周期均需要调节大范围调节,dvdt肯定能上到最大值,所以ER开始点即为DN_V由于最后一个降dvdt周期时,新dvdt=0,实际OUT无变化,所以DS需减1,在此即dvdt_D_ABSADD_REN#UP_VAR最大速度增量#UP_V IN1#DN_VER最大速度增量#DN_V IN2ENOOUT#ADD_V圆角执行其最大变化量#ADD_VCMP =R#ADD_V圆角执行其最大变化量#ADD_V IN1#dev_0距离SV值(初值)#dev_0 IN2#small小范围调节#smallNOTSUB_REN#
40、DN_VER最大速度增量#DN_V IN1#dvdt_D_ABS下降最大dvdt(绝对值)#dvdt_D_ABS IN2ENOOUT#DN_DevER开始点#DN_DevSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 24 页/共 32 页程序段: 45 小范围调节,降dvdt点需要随时计算。计算当前dvdt降到零时将产生多少速度变化DN_Dev=(N+N*N)*D_Trd/2D_BG#small小范围调节#small#ER最终圆弧处理#ER#Re_ER设定改变,需要重新确定ER#Re_ERABSEN
41、#dvdt_old上次扫描dv/dt输出#dvdt_old INENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN1#D_trd下降ER增量#D_trd IN2ENOOUT#DSer执行周期数#DS45.AFLOOREN#DSer执行周期数#DS INENOOUT#temp3计算过程中临时值#temp3#calc程序设计连接变量#calc45.ASIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 25 页/共 32 页程序段: 46 经测试,D
42、S需减一个周期,才能保证dvdt归零时,与调节不存在调节余差#calc程序设计连接变量#calc DI_REN#temp3计算过程中临时值#temp3 INENOOUT#DSer执行周期数#DSSUB_REN#DSer执行周期数#DS IN10.000000e+000 IN2ENOOUT#DSer执行周期数#DSMUL_REN#DSer执行周期数#DS IN1#DSer执行周期数#DS IN2ENOOUT46.A#DS2DS的平方#DS2ADD_REN#DS2DS的平方#DS2 IN1#DSer执行周期数#DS IN2ENOOUT#temp1计算过程中临时值#temp146.ASIMATIC
43、WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 26 页/共 32 页程序段: 47 由于最后一个降dvdt周期时,新dvdt=0,实际OUT无变化,所以需预减一周期#calc程序设计连接变量#calc DIV_REN#temp1计算过程中临时值#temp1 IN12.000000e+000 IN2ENOOUT#temp1计算过程中临时值#temp1MUL_REN#temp1计算过程中临时值#temp1 IN1#D_trd下降ER增量#D_trd IN2ENOOUT#DN_DevER开始点#DN_Dev程序段: 48
44、 AR、ER判断SUB_REN#Yold上次扫描输出值#Yold IN1#SPSV值生效值#SP IN2ENOOUT#dev距离SV值实时值#devCMP 2012-10-17 10:39:58第 27 页/共 32 页程序段: 50 #ER最终圆弧处理#ERJMPD_ER程序段: 51 AR段SUB_REN#dvdt_old上次扫描dv/dt输出#dvdt_old IN1#D_tru下降AR增量#D_tru IN2ENOOUT#dvdt_new本次扫描dv/dt输出#dvdt_new程序段: 52 dvdt达到最大,初始圆弧结束CMP 2012-10-17 10:39:58第 28 页/共
45、32 页程序段: 53 JMPDN1程序段: 54 ER圆角段D_ERADD_REN#dvdt_old上次扫描dv/dt输出#dvdt_old IN1#D_trd下降ER增量#D_trd IN2ENOOUT#dvdt_new本次扫描dv/dt输出#dvdt_newADD_REN#ER_TER段执行周期计数#ER_T IN11.000000e+000 IN2ENOOUT#ER_TER段执行周期计数#ER_T程序段: 55 在ER段给定值改变,需修正dvdt_newDS=SQRT(2*Dev)取整 dvdt_new=D_Trd*DS,因为是降速,所以是负数#New_SP给定改变#New_SP MU
46、L_REN#dev距离SV值实时值#dev IN12.000000e+000 IN2ENOOUT#temp0计算过程中临时值#temp0DIV_REN#temp0计算过程中临时值#temp0 IN1#D_trd下降ER增量#D_trd IN2ENOOUT#temp0计算过程中临时值#temp0SQRTEN#temp0计算过程中临时值#temp0 INENOOUT#temp0计算过程中临时值#temp0SIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 29 页/共 32 页程序段: 56 因为是下降,所以
47、dvdt_new是负值#New_SP给定改变#New_SP CEILEN#temp0计算过程中临时值#temp0 INENOOUT#temp3计算过程中临时值#temp3DI_REN#temp3计算过程中临时值#temp3 INENOOUT#DSer执行周期数#DSMUL_REN#DSer执行周期数#DS IN1#D_trd下降ER增量#D_trd IN2ENOOUT56.A#temp0计算过程中临时值#temp0MUL_REN#temp0计算过程中临时值#temp0 IN1-1.000000e+000 IN2ENOOUT#dvdt_new本次扫描dv/dt输出#dvdt_new56.A程序段
48、: 57 加速度归零表示最终圆弧处理结束,降速最后一周期,计算dvdt_new=0,但dev并不为0,所以需要额外调整CMP =R#dvdt_new本次扫描dv/dt输出#dvdt_new IN10.000000e+000 IN2MOVEEN0.000000e+000 INENOOUT#dvdt_new本次扫描dv/dt输出#dvdt_newMOVEEN#PV实际值m/min#PV INENOOUT#PV_old测量初值#PV_oldR#Re_ER设定改变,需要重新确定ER#Re_ERSIMATIC WinderSIMATIC 300 站点CPU313 C-2 DP.FB205 - 2012-10-17 10:39:58第 30 页/共 32 页程序段: 58 DN1ADD_REN#Yold上次扫描输出值#Yold IN1#dvdt_new本次扫描dv/dt输出#dvdt_new