工控之家

 找回密码
加入工控之家

求助:西门子PLC做的PID程序

[复制链接]
发表于 2012-7-11 20:35:07 | 显示全部楼层 |阅读模式
我刚学西门子PLC编程,因为公司需要我用PID向导做了一个PID程序不知对不对,请那位高手给我看一下,如果不对的话应该要怎么改?
(我用的PLC是224的,温度模块是2路PT100热电阻输入模块,量程我设的是400度.程序中M3.0是位式和PID切换,VW250是测量温度,VD200是设定温度,Q0.1是控制电加热的,在触摸屏上设的数据地址是P=VW12,I=VW20,D=VW24,采样时间是VW16,采样时间是不是就是周期时间?)
发表于 2012-7-11 23:50:32 | 显示全部楼层
1,变量输入有问题应该读取数字量0-4000,而不是实际值。
2,VD200与VW200地址问题,你可以将VW250转换成实数与VD200比较
3,不知道PID0_INIT中网络13以后的处理依据。
发表于 2012-7-12 03:05:57 | 显示全部楼层
P=VW12,I=VW20,D=VW24,采样时间是VW16???
地址应该是VD,写入的是实数!
我觉得你对字、双字的理解有问题
1,如果VD要求写入的是整数的,当然可以写入其低字节(值小于66535)是可以的,假如VD200,其低字节是VW202,而不是vw200。
2,你要明白实数与整数的存储的方式是不样的。
采样周期-间隔多少时间调用一次PID运算
发表于 2012-7-12 06:21:22 | 显示全部楼层
有高人在上
发表于 2012-7-12 09:36:47 | 显示全部楼层
我在VD200里面写入的是整数而不是实数那应该不用整数实数转换了吧
发表于 2012-7-12 12:52:13 | 显示全部楼层
那楼上的朋友能不能帮我改一下,改好后给我发到邮箱里面.我的邮箱是326767265@QQ.
或者上传到论坛也行.
发表于 2012-7-12 16:07:38 | 显示全部楼层
引用

引用第4楼蓝蓝天于2011-03-26 20:17发表的  :
我在VD200里面写入的是整数而不是实数那应该不用整数实数转换了吧
[/quote]
PID的运算要求设定值是实数,你没有看到局部变量对Setpoint_R的要求是real嘛!,如果你想输入为整数的话,那建议在子程序里修改。
PID0_Output_D:VD86和PID0_Dig_Timer:VD82应该是生产向导时给PID配置空间,你用这两个单元的目的是为什么?如果只是找两个存储单元,建议不要用这两个,本人猜测是为PID自整定使用的。
然后你PID0子程序的网络13以后程序你是怎样的一个思路?

至于你想让我改发给你的话!你程序中的一些问题我已经写出来了,你自己改你才会有收获,我改收获全是我的。
有什么问题你可以发e-mail  QQ295491418
发表于 2012-7-12 19:23:03 | 显示全部楼层
发表于 2012-7-12 22:38:28 | 显示全部楼层
高人
什么时候我也能达到如此境界
您需要登录后才可以回帖 登录 | 加入工控之家

本版积分规则

QQ|手机版|小黑屋|Archiver|工控之家 ( 鲁ICP备12015736号-1 )

GMT+8, 2024-6-8 08:53 , Processed in 0.066874 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表