您现在所在的是:

PLC论坛

回帖:5个,阅读:147 [上一页] [1] [下一页]
20375
bnnyygy
文章数:5827
年度积分:1041
历史总积分:20375
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2024/5/17 18:23:59
#0楼
现在想达到一个目的,上位机搞一个按钮,启动PID自整定(自动调整)。《目前已经完成》,但是出现一个问题。

PID工艺DB块有一个“起始值”,整定完成以后,监视值是自整定完成以后的数值,但是没找到BOOL变量把当前时间PID传送到起始值,

博图软件倒是有一个按钮,但是现场不可能随便弄个笔记本调试PID吧,更倾向于上位机点一下自整定就完成了。




我想到的办法是,RUN模式下,实时保存PID的数值到PID_TEMP,启动延迟以后把PID_TEMP传到的工艺DB块运行的PID里面,
除了这个办法,各位还有什么办法?










附件 1.jpg



20375
bnnyygy
文章数:5827
年度积分:1041
历史总积分:20375
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2024/5/17 18:39:19
#1楼
//PID值缓存,PID模式3,自动运行状态下保存PID参数
#T_0(IN := #PID.State = 3,
    PT := T#5S);
//STEP1,缓存写入
IF #T_0.ET >= 2000 AND #T_0.ET <= 3000 THEN
   #PID.Retain.CtrlParams := #PID_TEMP;
END_IF;
//step2 实时保存PID参数
IF #T_0.ET>=4000 THEN
   #PID_TEMP := #PID.Retain.CtrlParams;
END_IF;


测试好像也能用,表情


之前玩欧姆龙的PID自整定,就自己整定完就OK了,啥也不用管,用法相对我们使用者来说可能更友好一些。


~~上面逻辑还是有问题。

调整过程中,状态=2,整定完成切换到3,就把整定好的数据用旧数据覆盖了。

改成整定状态字=9999(完成)把整定好的PID值写入PID_TEMP,

要把缓存数据写入的条件改一下,自动运作状态+没有整定。

T_0.IN := #PID.State = 3 AND #PID.PIDSelfTune.TIR.State = 0;、



应该可以了,后续有问题再说。
[此贴子已经被作者于2024/5/17 18:51:38编辑过]
20375
bnnyygy
文章数:5827
年度积分:1041
历史总积分:20375
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2024/5/17 21:11:20
#2楼
TIR.State 变量指示当前的精确调节阶段:

State = -100:无法进行精确调节。将首先执行预调节。

State = 0:初始化精确调节

State = 200:计算标准偏差

State = 300:尝试达到设定值

State = 400:尝试使用现有 PID 参数达到设定值
(如果预调节已成功)

State = 500:确定波动并计算参数

State = 9900:精确调节已成功

State = 1:精确调节未成功



经过实验,调节完成以后,TIR.State会保持在9900,逻辑上就很好搞了,

TIR.State=9900的时候给出一个上升沿,用于传送实际使用的PID值给PID_temp,还要断开T_0,避免反过来把实际的PID写到PID_TEMP。
37227
知道一点
文章数:22147
年度积分:1646
历史总积分:37227
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2024/5/17 21:23:38
#3楼
PIDat没有标志?
启动PID自整定的变量在at完成后是不是自动变为off?类似欧姆龙是PIDAT启动位xx9.15
快乐 幸福 自由 比什么都重要
20375
bnnyygy
文章数:5827
年度积分:1041
历史总积分:20375
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2024/5/17 21:53:52
#4楼
以下是引用知道一点2024/5/17 21:23:38的发言:
PIDat没有标志?
启动PID自整定的变量在at完成后是不是自动变为off?类似欧姆龙是PIDAT启动位xx9.15

完全不一样啊。

PID工艺DB块的<起始值>不能通过某个变量写进去,可以在编程软件操作或者下载工艺DB块,

别无他法,只有外面暂存然后写进去,类似PLC脉冲停电记忆。

例如,打个比方,1200实际运行使用的PID参数是D1 D2 D3,在线修改,PID计算结果也会跟着动;
整定完毕以后,D1 D2 D3确实是变化了,有效的整定数值,但是这个值在PLC断电重启以后,会把PID工艺DB块的<起始值>写到D1 D2 D3.

非常蛋疼啊。
37227
知道一点
文章数:22147
年度积分:1646
历史总积分:37227
注册时间:2004/6/12
发站内信
工控人谈电商
2013国庆活动
2011国庆活动
发表于:2024/5/17 22:47:52
#5楼
先说一下,没使用过西家PID,它对于那些参数不能使用变量感到不理解
PIDAT后得出的参数,如果只能通过“编程软件操作或者下载工艺DB块”
那没有使用电脑现场岂不是太尴尬了

是不是也不能将PIDat后的参数通过PLC程序写到DB块里?
如果可以,那就用一个PIDAT,结果送DB,在另一个工作PID使用
快乐 幸福 自由 比什么都重要

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003