回复:【分享】编写一个仿真变频器控制块,方便程序测试

牧歌2050

  • 帖子

    24
  • 精华

    1
  • 被关注

    2

论坛等级:游士

注册时间:2014-03-16

普通 普通 如何晋级?

发布于 2015-08-10 23:22:17

3楼


NETWORK

TITLE =

//---cycT定时器 Ton 标准样式

      L     0; //初始化值

      O     #Fwding; 

      O     #Reving; 

      AN(   ; 

      A     #Fwding; 

      FN    #tbFn1; 

      )     ; 

      AN(   ; 

      A     #Reving; 

      FN    #tbFn2; 

      )     ; 

      JCN   aa1; 

      L     #tmpDelayAct; 

      L     #CycT; //程序执行周期

      +I    ; 

      L     32000; //递增限值

      >I    ; 

      JC    aa1; 

      POP   ; 

aa1:  T     #tmpDelayAct; 

      L     #RunDlyT; //设定值

      >=I   ; 

      S     #strOK; //延时到


      O     #fwdok; 

      O     #revok; 

      =     #Str; 

      S     #Run; 


      AN    #Str; 

      R     #strOK; 

//---停止情况下,才能修改参数:最大速度、加减速时间;

      A     #Run; 

      JC    rn1; 

ini:  L     #MaxSpd_real; 

      L     #AccT_real; 

      /R    ; 

      T     #accSpd; 


      L     #MaxSpd_real; 

      L     #DecT_real; 

      /R    ; 

      T     #decSpd; 


      L     #AccT; 

      T     #accTact; 

      L     #DecT; 

      T     #decTact; 



      L     0; 

      T     #SpdHex; 

      T     #Spd; 


      L     0.000000e+000; 

      T     #dltSpd; 

      T     #deadPos; 

      T     #deadNeg; 

      T     #Spd_real; 

      CLR   ; 

      =     #pos; 

      =     #neg; 

      =     #strOK; 

      =     #Str; 

      =     #Fwding; 

      =     #Reving; 

      =     #fwdok; 

      =     #revok; 

      =     #Arrive; 

      =     #tbFn1; 

      =     #tbFn2; 


      BE    ; 

rn1:  NOP   0; 

NETWORK

TITLE =

//---死区范围确定,防止输出在设定附近震荡,死区要大于增量一个周期增量的的一半 

//(一半+0.1)

//--如果对输出精确累计,可以把死区范围设定为0

//-arrive:输出值到达设定值范围内;

      L     #CycT; 

      ITD   ; 

      DTR   ; 

      L     1.000000e+003; 

      /R    ; 

      T     #CycT_real; //程序周期s

//--

      L     #accSpd; 

      L     #CycT_real; 

      *R    ; 

      L     2.000000e+000; 

      /R    ; 

      L     1.000000e-001; 

      +R    ; 

      T     #deadPos; //取设定和运算死区最大值


      L     #decSpd; 

      L     #CycT_real; 

      *R    ; 

      L     2.000000e+000; 

      /R    ; 

      L     1.000000e-001; 

      +R    ; 

      T     #deadNeg; //取设定和运算死区最大值


//----------------------------------


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54759条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。