自己编pid程序的几个问题

已锁定

zlx556677

  • 帖子

    104
  • 精华

    0
  • 被关注

    2

论坛等级:游士

注册时间:2005-04-20

普通 普通 如何晋级?

自己编pid程序的几个问题

2424

12

2008-12-05 13:56:33

我有一本书《西门子s7-200plc的使用经验与技巧》,书内有个pid的例子,程序如下:一。主程序 LD M0.1
A T38
XORD AC0, AC0 //1)给累加器清零
MOVW AIW0, AC0 //2)过程变量的数字信号送到AC0
DTR AC0, AC0 //3)整数转实数
MOVR AC0, VD300 //4)标准化
/R 32000.0, VD300
PID VB300, 0 //5)标准化的值存入pid表的vb300中
MOVR AC0, VD308 //6)将计算后的输出值存放到指定累加器中
MOVR AC0, VD328 //7)将计算后的输出值作为积分前项值存放到指定累加器中
MOVR AC0, VD332 //8)将计算后的输出值作为最近一次pid运算的过程变量存放到指定累加器中
*R VD308, AC0 //9)将被控制量与实数相乘存放到指定累加器中
MOVW AC0, AQW0 //10)将运算结果直接以实数格式送到模拟量输出端口中
二。子程序
LD M0.0
MOVR 0.8, VD304 //设定值
MOVR 0.4, VD312 //比例
MOVR 10.0, VD320 //积分
MOVR 5.0, VD324 //微分

我只写了涉及到pid控制的程序,现在有以下几个疑问:
1.(5)步我认为应该把VB300改为VB303,因为VD300存储数据是从VB303开始存储,即要符合高地址低字节的原则;
2.(6)7)8)步为何用AC0作为计算后的输出值?我认为AC0在6)步前的最终值应该是(4)步过程变量的数字值;
3.把设定值,比例,积分,微分的参数编写在子程序里是为了以后调试时方便修改参数用么?
请高手指教!
自己编pid程序的几个问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33264条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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