求助:在STEP7中怎么实现斜坡函数 点击:5278 | 回复:9



渐渐明白

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 128回
  • 年度积分:0
  • 历史总积分:600
  • 注册:2006年12月19日
发表于:2007-03-30 12:00:00
楼主
 请问各位高手,如何在STEP7中实现斜坡函数,比如要模拟量输出40,在10秒内输出从小到大逐渐增加到40。有没有这样的系统功能?



microtomato

  • 精华:1帖
  • 求助:0帖
  • 帖子:85帖 | 1476回
  • 年度积分:0
  • 历史总积分:2078
  • 注册:2001年11月02日
发表于:2007-03-30 12:38:00
1楼
可以自己做。首先根据时间和最大值计算出单位时间内模拟量的增加的数值,然后利用时间中断更新输出就可以了。

Siemens2004

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 131回
  • 年度积分:0
  • 历史总积分:168
  • 注册:2004年10月14日
发表于:2007-04-03 16:19:00
2楼
最好的方法是编程序计算出PLC的扫描周期,然后总的斜坡时间除以PLC扫描周期就得到每个扫描周期应该给出的递增/或递减量,这个方法对精度要求高的斜坡控制非常好。

渐渐明白

  • 精华:0帖
  • 求助:0帖
  • 帖子:16帖 | 128回
  • 年度积分:0
  • 历史总积分:600
  • 注册:2006年12月19日
发表于:2007-04-04 08:57:00
3楼
非常感谢,我试着做一个!

maomao1061381392

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2005年6月08日
发表于:2012-07-09 16:45:16
4楼
FUNCTION "RAMPE_1" : VOID
 TITLE ="Ramp with acc/deceleration time in ms"
 AUTHOR : BenBen
 VERSION : 1.1
 
 
 VAR_INPUT
   VALID : BOOL ;    //Validation
   T_CYCLE : REAL ;  //Cycle time (ms)
   MAXI_OUT : REAL ; //Maximum output
   T_ACCEL : REAL ;  //Acceleration time (ms)
   T_DECEL : REAL ;  //Deceleration time (ms)
   Setpoint : REAL ; //Input
 END_VAR
 VAR_OUTPUT
   ZERO : BOOL ; //Output ramp at zero
   AV : BOOL ;   //Output ramp positive
   AR : BOOL ;   //Output ramp negative
 END_VAR
 VAR_IN_OUT
   OUT : REAL ;    //Output ramp
 END_VAR
 VAR_TEMP
   T_ACC : REAL ;    //Temps acc閘閞ation en cours
   T_DEC : REAL ;    //Temps d閏閘閞ation en cours
 END_VAR
 BEGIN
 NETWORK
 TITLE =
 //*********************** TEST DES PARAMETRES D‘ENTREE ********************
       A     #VALID; // Si rampe valid閑
       A(    ;
       L     #T_CYCLE; // et temps de cycle > 0
       L     0.000000e+000;
       >R    ;
       )     ;
       A(    ;
       L     #T_ACCEL; // temps accel > 0
       L     0.000000e+000;
       >R    ;
       )     ;
       A(    ;
       L     #T_ACCEL; // temps de decel > 0
       L     0.000000e+000;
       >R    ;
       )     ;
       A(    ;
       L     #MAXI_OUT; // maxi de la sortie >  0
       L     0.000000e+000;
       >R    ;
       )     ;
       JC    M12; // alors OK et saut en M12
       L     0.000000e+000; // sinon 0 dans la sortie
       T     #OUT;
       JU    M001;
 //
 // ************************* LIMITATION DE LA CIBLE AU MAXI ******************
 M12:  L     #Setpoint;
       L     #MAXI_OUT;
              JC    M007;
       L     #MAXI_OUT; // transfert maxi dans cible
       T     #Setpoint;
       JU    M002;
 M007: NOP   0;
       L     #MAXI_OUT;
       L     -1.000000e+000;
       *R    ;
       L     #Setpoint;
              JC    M002;
       TAK   ;
       T     #Setpoint; // transfert - maxi dans cible
 // ****************************** TEST SI CIBLE = SORTIE *************************
 M002: L     #Setpoint; // si cible
       L     #OUT; // == sortie
       ==R   ;
       JC    M001; // alors saut
 //
 // *************** CHOIX DES TAUX ACCEL ET DECEL SELON SIGNE DE LA SORTIE **********
       A(    ;
       L     #OUT; //Si sortie
       L     0.000000e+000; //est negative
              )     ;
       JC    M005;
       L     #T_ACCEL; // si sortie positive alors
       T     #T_ACC; // pas d‘inversion des taux
       L     #T_DECEL;
       T     #T_DEC;
       JU    M006;
 M005: NOP   0; // si sortie n間ative alors
       L     #T_DECEL; // on inverse les taux accel et decel
       T     #T_ACC;
       L     #T_ACCEL;
       T     #T_DEC;
 //
 //****************************** CHOIX DU SENS *******************************
 M006: NOP   0;
       L     #Setpoint;
       L     #OUT; // si cible < sortie
              JC    DEC; // alors saut ?DEC
 //
       NOP   0; //******** ACCELERATION *********
       L     #T_CYCLE; // (T_CYCLE * MAXI_OUT)/(T_0_MAX)
       L     #MAXI_OUT; // + OUT ---> OUT
       *R    ;
       L     #T_ACC;
       /R    ;
       L     #OUT;
       +R    ;
       T     #OUT;
 //
       L     #Setpoint; // Si OUT > CIBLE
              JC    M001; // Alors saut en M001
       L     #Setpoint; // sinon CIBLE ---> OUT
       T     #OUT;
       JU    M001;
 //
 DEC:  NOP   0; //******** DECELERATION *********
       L     #T_CYCLE; // (T_CYCLE * MAXI_OUT)/(T_MAX_0)
       L     #MAXI_OUT; // - OUT ---> OUT
       *R    ;
       L     #T_DEC;
       /R    ;
       L     -1.000000e+000;
       *R    ;
       L     #OUT;
       +R    ;
       T     #OUT;
 //
       L     #Setpoint; // Si OUT < CIBLE
       >R    ;
       JC    M001; // Alors saut en M001
       L     #Setpoint; // sinon CIBLE ---> OUT
       T     #OUT;
 //
 //  ****************************** SORTIES ZERO/ AV/ AR ***********************
 M001: NOP   0;
       L     #OUT;
       L     0.000000e+000; // Si sortie > 0 alors saut en M003
       >R    ;
       JC    M003;
              JC    M004;
       S     #ZERO; // Sinon ZERO = vrai
       R     #AV; // AV = faux
       R     #AR; // AR = faux
       JU    FIN;
 M003: NOP   0;
       R     #ZERO; // ZERO = faux
       S     #AV; // AV = vrai
       R     #AR; // AR = faux
       JU    FIN;
 M004: NOP   0;
       R     #ZERO; // ZERO = faux
       R     #AV; // AV = faux
       S     #AR; // AR = vrai
 FIN:  NOP   0;
 END_FUNCTION
 
 
 

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2012-07-10 10:05:57
5楼
引用 渐渐明白 的回复内容:非常感谢,我试着做一个!



这个很好做的, 也可以 启动 定时器,设定定时器的时长 为 斜坡总的时间,用定时器的 当前值作为过程值,做一个 百分百转换程序 即可搞定,也可以做出曲线型的;

yuhaiyuye

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 51回
  • 年度积分:0
  • 历史总积分:192
  • 注册:2007年3月26日
发表于:2012-07-11 22:41:58
6楼
以前做过的平均值滤波程序。FB的输入参数有待滤波值、滤波间隔时间、参与滤波的数据量。可以实现斜坡,而且是前后斜坡需要的话给个邮箱给你发?

咖啡加糖5

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2014年5月07日
发表于:2014-05-11 09:45:57
7楼

回复内容:

对: miy_gongkong 引用 渐渐明白 的回复内容:非常感谢,我试着做一个! ... 内容的回复!


定时器怎么设定


咖啡加糖5

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2014年5月07日
发表于:2014-05-11 14:38:58
8楼

回复内容:

对: microtomato 可以自己做。首先根据时间和最大值计算出单位时间内模拟量... 内容的回复!


能不能具体点,我也想知道,刚学PLC.谢谢了。


luckyqiang

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 25回
  • 年度积分:0
  • 历史总积分:131
  • 注册:2009年8月06日
发表于:2018-01-28 23:20:51
9楼

请把这个斜坡函数库发我,谢谢!158650435@qq.com


热门招聘
相关主题

官方公众号

智造工程师