查看: 480|回复: 1
收起左侧

[资料分享] 升降速功能块第一次玩ST请指点

单简 2022-7-21 23:18:12 | 显示全部楼层 |阅读模式
邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
FUNCTION_BLOCK SPEED_AJ
VAR_INPUT
启动: BOOL;
停止: BOOL;
END_VAR
VAR_OUTPUT
运行: BOOL;
升速中: BOOL;
降速中: BOOL;
速度到达: BOOL;
END_VAR
VAR_INPUT
设定速度: REAL;
缓升系数: REAL;
微升系数: REAL;
缓降系数: REAL;
微降系数: REAL;
缓冲系数: REAL;
END_VAR
VAR_IN_OUT
实时速度: REAL;
END_VAR
VAR
缓升时间: TON;
微升时间: TON;
缓降时间: TON;
微降时间: TON;
i_step: INT;
升缓冲带: REAL;
降缓冲带: REAL;
END_VAR
IF 启动 OR 运行 AND NOT 停止 THEN
运行:=TRUE;
ELSE
运行:=升速中:=降速中:=速度到达:=FALSE;
RETURN;
END_IF
IF 实时速度=设定速度 THEN
      i_step:=0;
ELSIF 实时速度>设定速度 THEN
  i_step:=1;
  降缓冲带:=设定速度+缓冲系数;
ELSE
  i_step:=2;
  升缓冲带:=设定速度-缓冲系数;
END_IF
CASE i_step OF
0:    升速中:=降速中:=FALSE;   
          速度到达:=TRUE;
   
1:    降速中  :=TRUE;
       升速中:=速度到达:=FALSE;
   
     IF 实时速度>降缓冲带 AND 缓降时间.Q THEN
     实时速度 :=实时速度-缓冲系数;
     END_IF
     
     IF 实时速度<=降缓冲带 AND 微降时间.Q THEN
     实时速度:=实时速度 -1.0;
     END_IF
     
2:    升速中  :=TRUE;
       降速中:=速度到达:=FALSE;
   
     IF 实时速度<升缓冲带 AND 缓升时间.Q THEN
     实时速度 :=实时速度+缓冲系数;
     END_IF
     
     IF 实时速度>=升缓冲带 AND 微升时间.Q THEN
     实时速度:=实时速度 +1.0;
     END_IF   
END_CASE
ACT_time();





上一篇:西门子案例分享1200 触摸屏 伺服 视觉 条码枪 测距 换点水滴
下一篇:西门子1200 流量累计样例程序分享

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部