还剩3页未读,继续阅读
文本内容:
该程序功能块主要应用与矢量变速调节,根据距离来实时调节速度,可以用于调速、堆RGV垛机调速等应用场景功能块如下
一、程序块外部接口卜DigitalOut B_DB-VB3•DigitalOut-FB-EN ENO•DB MicT.-DB MicT.水二建县分转里CWD匕一次二3更建二MDigitalValuc匕Error-DB Mid,.次=尊正能凝SpeedMode%DB1DBD76加•DB_5y mJSpeedf*J.MaxSpeedMaxSpeedWB1DBD80•DB^Syctam*.5peedJ].MinSpeedMinSpeed%DB1DBD84DB_Sv^tar*.Spwd[l].AddSpeedDi:人4_cxr1AddSpeedDn%DB
1.DBD885peed
[1].Dec SpeedDi%DB1DBD925peed
[1].LMKeepOicLoi^KeepDi:
二、程序块接口定义:DigitalOut_FB名称数据类型偏移里默认值1■d▼Input20■TargetDis Dint回
0.00目标距离本次工作距离3«□■WbrkDis Dint
4.00〕〕i■SpeedMode Int
8.00科线控制方式
1.抛物线控制方式…543MaxSpeed Dint
10.00最高速度5-□MinSpeed Dint
14.00最低速度7■d■AddSpeedDis Dint
18.00一口二一加速距离3-d■DecSpeedDis Dint
22.00成速距离LowKeepDis Dint
26.00低速保持距离02▼Output1•€■Digitslvalue Dint
30.0020IsError Bool
34.0false StaticVariables3■d▼InOut4■•新增〉5©▼Static6□■Speedup Bool
36.0false70SpeedDown Bool
36.1false TemperaryVariables8▼Temp90-Up,K Real
0.0200Up_b Real
4.021•]■Down_k Real
8.0220Down_b Real
12.0JL-00^O0SU0S000S00BSU0SS0HSS0—-nnDHHnnDHHaBSSBBBS_□□□□□□□□□□□□□□@@句▼Temp■Up_K Real
0.0-o■Up_b Real
4.0■Down_k Real
8.0^3■Down_b Real
12.02■Up_P Real
16.0包■Down_P Real
20.0•CD-Temp_Num Real
24.0■TargetDis-t Real
28.0B■WorkDis_t Real
32.0句■MaxSpeed_t Real
36.0MinSpeed_t Real
40.0AddSpeedDi5_t Real
44.03■DecSpeedDis.t Real
48.0■LowKeepDis_t Real
52.03▼Constant寺野.
三、程序源代码如下〃目标距离#TargetDis_t:=DINT_TO_REAL#TargetDis;〃本次工作距离#WorkDis_t=DINT_TO_REAL#WorkDis;〃最高速度#MaxSpeed_t:=DINT_TO_REAL#MaxSpeed;〃最小速度#MinSpeed_t:=DINT_TO_REAL#MinSpeed;〃加速距离#AddSpeedDis_t:=DINT_TO_REAL#AddSpeedDis;//减速距离#DecSpeedDis_t:=DINT_TO_REAL#DecSpeedDis;〃低速保持距离#LowKeepDis_t=DINT_TO_REAL#LowKeepDis;//目标距离大于工作距离或者工作距离小于报错0IF#TargetDis#WorkDis OR#WorkDis=0THEN#lsError:=true;#DigitalValue:=DINT_TO_INT#MinSpeed;GOTO LABI;ENDJF;IF#MaxSpeed=0OR#MinSpeed=0OR#AddSpeedDis=0OR#DecSpeedDis=0OR#MinSpeed#MaxSpeed THEN#lsError:=true;#DigitalValue:=DINT_TO_INT#MinSpeed;GOTO LABI;END IF;#lsError:=false;〃本次工作距离大于加速距离+减速距离+低速保持距离IF#WorkDis#AddSpeedDis+#DecSpeedDis+#LowKeepDis THEN//IF WorkDis-TargetDis=AddSpeedDis+LowKeepDis THENIF#WorkDis-#TargetDis=#AddSpeedDis THEN〃加速#SpeedUp:=true;ELSE#SpeedUp:=false;ENDJF;IF#TargetDis=#DecSpeedDis+#LowKeepDis THEN〃减速#SpeedDown:=true;#SpeedUp:=false;ELSE#SpeedDown:=false;END IF;ELSEIF#TargetDis#WorkDis*5/7THEN#SpeedUp:=true;#SpeedDown:=false;ELSE#SpeedUp:=false;#SpeedDown:=true;ENDJF;END IF;CASE#SpeedModeOF0:〃加速斜坡系数#Up_K:=#MaxSpeed_t-#MinSpeed_t/#AddSpeedDis_t;#Up_b:=#MinSpeed_t;〃减速斜坡参数#Down__k:=#MinSpeed_t-#MaxSpeed_t/#DecSpeedDis__t;#Down_b:=#MaxSpeed_t;〃加速IF#SpeedUp=true THEN加速#DigitalValue:=REAL_TO_INTABS#WorkDis_t-#TargetDis_t*#Up_K+#Up_b;//区ELSIF#SpeedUp=false AND#SpeedDown=false THEN#DigitalValue:=REAL_TO_INT#MaxSpeed_t;ENDJF;〃减速IF#SpeedDown=true THENIF#TargetDis=#LowKeepDis+#DecSpeedDis AND#TargetDis#LowKeepDis THEN#DigitalValue:=REAL_TO_INT#LowKeepDis_t+#DecSpeedDis_t-#TargetDis_t*#Down_k+#Down_b;ELSIF#TargetDis=#LowKeepDis THEN」〃减速缓冲保持区#DigitalValue:=DINT_TO NT#MinSpeed;END IF;ENDJF;//X*X=-2PYP0Y=X*X/-2P1:#Up_P:=#AddSpeedDis_t*#AddSpeedDis_t/2*#MaxSpeed_t;#Down_P:=#DecSpeedDis_t*#DecSpeedDis_t/2*#MaxSpeed_t;#Temp_Num:=#AddSpeedDis_t-#WorkDis_t-#TargetDis_t;IF#SpeedUp=true AND#Temp_Num=0THEN;#DigitalValue:=REAL_TO_INT#Temp_Num*#Temp_Num/-2*#Up_P+#MaxSpeed_t ENDIF;IF#SpeedDown=true AND#TargetDis=#DecSpeedDis THEN#DigitalValue:=REAL_T0_INT#DecSpeedDis__t-#TargetDis_t*#DecSpeedDis_t-#TargetDis__t/-2*#Down_P+#MaxSpeed_t;ENDJF;END_CASE;IF#TargetDis=0OR#DigitalValue0THEN#DigitalValue:=O;ENDJF;LABI:;。