技术论坛

刺激程序块

作者 主题
侠客

经验值: 858
发帖数: 164
精华帖: 1
主题:【求助】刺激程序块


只看楼主 楼主 2021-07-25 00:36:17
请假个问题,目前plc给G120发速度7.3m/min,我想找个写个程序或者有现成的快,发速度线性下降,线性提升,7.3到0.0到7.3,变频器斜坡改不了,就想通过程序给速度,
就是干
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1706675&b_id=4&s_id=0&num=2

版主

经验值: 76252
发帖数: 19148
精华帖: 378
回复:刺激程序块


只看楼主 1楼 2021-07-25 21:26:50

不就是速度给定经过个斜坡函数吗?


用西家的变频就可以直接利用装置的斜坡功能实现了。


PLC的斜坡加变频的斜坡,实际上的变频输出是个2次方曲线哦,这点你知道不?


Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
侠圣

经验值: 2790
发帖数: 390
精华帖: 5
回复:刺激程序块


只看楼主 2楼 2021-07-26 16:15:17

就想通过程序给速度  其实你的意思就是通过程序产生一个速度斜坡发生器,一定的斜率进行升降 速度。

通过程序 + 传动装置进行 控制速度。

估计 目的,正常加减一个速度斜率  快停 一个速度斜率  急停 一个速度斜率 ,相当一个时间组的选择,其实这个可以在starter里实现的。用DCC 就可以,

FUNCTION_BLOCK FB1

VAR_INPUT

ramp_enable:BOOL;      // 斜坡发生器 使能 = TRUE 表示允许  斜坡输出。

reset_zero_out:BOOL;    // 输出强制清零  = TRUE  输出强制为0.0

ramp_before_set:REAL;  // 斜坡前的 设定值  

ramp_add_ratio:REAL;    //加速斜坡 系数

ramp_sub_ratio:REAL;    // 减速斜坡系数

change_ratio:REAL;       // 系统斜坡变化率  值越大 斜坡越陡

death1:REAL;        //  正死区 区间值

death2:REAL;       //    负死区 区间值

END_VAR


VAR_IN_OUT

adjust_ramp_act:REAL;    //斜坡调整过程值

END_VAR


VAR_OUTPUT

ramp_after_out:int;    // 目前斜坡输出值  注意,采用了四舍五入为整型 如果要浮点型,可以更改

ramp_already:BOOL;  //斜坡输出调整到设定值 范围内  

END_VAR


VAR

ramp_add:REAL;

ramp_sub:REAL;

no_adjust:BOOL;

error :REAL;

END_VAR

ramp_add:=ramp_add_ratio * change_ratio;

ramp_sub:=ramp_sub_ratio * change_ratio;

IF NOT reset_zero_out THEN

    IF ramp_enable THEN

                error:=  ramp_before_set - adjust_ramp_act;

                IF ( error >death1) AND NOT no_adjust  THEN

                adjust_ramp_act:=adjust_ramp_act + ramp_add;

                ramp_already:=FALSE;

                ELSIF (error < death2)   AND NOT no_adjust THEN

                 adjust_ramp_act:= adjust_ramp_act - ramp_sub  ;

                 ramp_already:=FALSE;

                 END_IF;

                IF   ( death2 <=error)  AND (error <= death1) THEN

                 adjust_ramp_act:=ramp_before_set;

                 ramp_already:=true;

                 no_adjust:=true;

                ELSE

                 ramp_already:=false;

                 no_adjust:=false;   

                END_IF;

    ELSE

              adjust_ramp_act:=ramp_before_set;

              ramp_already:=false;

              END_IF;

ELSE

    adjust_ramp_act:=0.0;

    ramp_already:=false;

END_IF;

    ramp_after_out:=REAL_TO_INT (adjust_ramp_act);

 

END_FUNCTION_BLOCK

放在系统中断组织块里调用 。


大家同行,you ok ? me !
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
刺激程序块
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。