回复:s7-200 PID

流星fly

  • 帖子

    528
  • 精华

    0
  • 被关注

    18

论坛等级:侠士

注册时间:2010-01-01

普通 普通 如何晋级?

发布于 2011-11-08 17:50:23

8楼

最简单的PID程序(未验证)
SUBROUTINE_BLOCK PIDCal:SBR0
TITLE=
VAR_INPUT
set:INT; // 给定
back:INT; // 反馈
kp:REAL; // Kp
ki:REAL; // Ki
kd:REAL; // Kd
END_VAR
VAR_IN_OUT
initial:REAL; // 积分寄存
err:REAL; // e(n-1)
END_VAR
VAR_OUTPUT
result:INT; // 输出
END_VAR
VAR
temp:DINT;
temp0:REAL;
temp1:REAL;
END_VAR
BEGIN
Network 1
// P
LD SM0.0
-I LW2, LW0
ITD LW0, LD26
DTR LD26, LD30
*R LD30, LD4
*R LD30, LD8
+R LD16, LD8
MOVR LD8, LD16
+R LD8, LD4
MOVR LD30, LD34
-R LD20, LD30
MOVR LD34, LD20
*R LD30, LD12
+R LD12, LD4
ROUND LD4, LD26
DTI LD26, LW24
Network 2
// 输出上限保护
LDW> LW24, 10000
MOVW 10000, LW24

Network 3
// 输出下限保护
LDW< LW24, 0
MOVW 0, LW24

END_SUBROUTINE_BLOCK
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33088条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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