读PID官方例程 3-Point Stepper Control

读PID官方例程 3-Point Stepper Control
这两天闲来无事,就下载了这个程序读一读。这个程序是用博途V15.1版本写的,用的PLC是1511,我是把它放在虚拟机里面仿真运行的。最终目的是自己做一个完善的调试面板放在HMI里,便于现场应用。
 
PLC程序
 
一如既往,和很多其它西门子的官方例程很相似,里面有一个叫HMI的FB。它的作用是管理和转换HMI控制和显示与PLC内部逻辑之间的交互,其实弄得不完整。这个FB放是在常规OB中运行。
 
PID_3Step这个FB,和另一个叫Simulation的用于仿真被控环境的FB,是放在周期100ms的
中断OB中运行的。需要提一嘴的是,1200没法仿真PID,即使是1500仿真,它和实际PLC的运行时间也是不同的,为此需要把PID_3Step静态参数中负责监控采样周期的两个参数都设置为false,否则会报错,无法进行整定。
 
这个Simulation里面模仿了一个受到PID_3Step控制的冷热混水阀来控制下游管路中的水温,这样一个场景。这个混水阀带有冷热两边全开全闭的极限位置数字量反馈,和当前阀门位置的模拟量反馈。这个仿真的实现用到了官方受控环境仿真库中的模块。
龙岗气田 
这个仿真库里面总共有16个模块,可以组合仿真各种常见的过程场景。本程序用到是LSim_Valve用于模仿混水阀,和LSim_PT1用于模拟水温的变化过程。这个仿真库可以在下面的链接下载。这个库的模块是开源的,可以看内部代码实现。这个库的用处真是太大了。
总的来说PLC程序还是比较简单,就那么几块。这个程序既可以和仿真环境运行,也可以
切换成与真实IO一起工作。程序中包含一个可以人为触发的出错情景。
库克曲线HMI程序
 
总共8个页面,多角度诠释3Step的功能用法,设计上是力求界面的逼真和生动。运用了大量可见性和关联性的逻辑,来引导对PID_3Step功能细节的场景理解。
原程序总共用了161个HMI变量,我剔除了40多个垃圾变量,剩下116个。很明显这是从其它模板复制过来的,其中不少瑕疵残留。其中HMI内部变量有7个,其余都是来自PLC的变量。
没有用自定义VB脚本;用了不少离散报警包括Error和Warning;很多文本列表;一个25个图片组成的图形列表。
PID_3Step有一个独有的功能项,就是它需要测量或者自己设定,阀门完整开闭所需要的时间。另外出现错误之后,阀门可以自动恢复到预先设定的一个安全开度值。
 医用导管
---------------------------
这个官方程序只是个功能demo。如果想要实用化,需要把它重构几次,才能变成适合工业现场的调试面板。不少东西需要简并和transform。
下图是一个简化改造的V14版本,放在实机1214C中运行的。
珀尔
测量或设置阀门的开闭时间,出错后的主动恢复模式设置,这两项对于阀门控制而言是非常重要的。阀门位于控制的末端,没什么花样,所以就没有加手动输入PID参数的功能以及关于参数存储操作的那一套东西。PID算法的选择其实也是个噱头。能自动手动运行、能整定、能处理错误,也就行了。
上面界面中的阀门图片是从V15.1图形列表中抠出来的,背景浅灰,懒得改直接就用了。个人一贯喜欢用黑顿挫过的绿,不过这个灰看着好像还可以。
----------------------------------------------------------------------------------------------------------------------
以前做过一个PID_Temp的调试面板用于触屏,见下图。PID_Temp面板的功能是必须要强化的。因为运用套路的区别,结果可能会差别很大。
看着有点繁琐。这个面板支持加热和制冷的预整定(SUT)和精确整定(TIR),支持级联,是支持多PID_Temp对象的复用面板。其中额外编写了SUT和TIR的程序,能更精确灵活的改变整定过程,体现的内部信息也更多,比博途中的官方调试面板功能要强一点。oddi括约肌
PID参数的可以保存多组、重置、加注释、载入、手动修改等。PID参数比较占掉电保持空间,1200总共10k,试过用配方来表达,但是笨拙不爽。
PID_3Step的静态变量有大约70~80个,绝大部分都在这个程序中用到了。比PID_Temp的静态变量少了一倍,而且不用自己额外编写SUT和TIR的程序。
 
我是做温控,所以PID_Compact就没太弄,功能单薄。PID_Temp功能齐全,适合控制电加热这样的快速动作机构,也能干常规PID的事情。PID_3Step适合控制比例阀进行蒸汽或导热油加热,这种需要缓慢动作的执行机构,也可以增减量式控制伺服慢慢驱动机构。
必须提到的是:级联是非常好的结构设计方式,可以把复杂过程变成几个简单过程控制的因果关联。它是过程控制中的妙招儿,非常管用,能让你换个维度解决问题。更重要的是它能帮助看清复杂变化背后的本质。
-
---------------------------------------------------------
再说一下这个仿真库。这东西真是便利,要是没有它,哪那么容易在手边随时建立受控环境来验证一些新的设计想法。用上了也许会觉得运用这个库的能力对一些事情是有决定性影响的。
beamreader上面这张图片是从PID级联(Cascade)那个范例中,把仿真部分抠出来,自己改造一下,把它和multi zone协同PID整定那个范例中的精华部分,相结合的产物。其中的仿真模仿了了三个受控对象。
它讲的是:经冷热水阀门控制而混合形成的热水浴,充满到一个金属锅的锅壁中的加热夹套里面,锅里面装着巧克力,它需要被融化到目标温度,且不会过热烧糊。
液态巧克力的温度、金属锅壁的温度,夹套水浴的温度,分别被采集并有三个PID_Temp分别控制,执行机构是热水阀和冷水阀。这个三个PID对象之间组成级联控制结构。
有了仿真库,把程序下到1200里面就可以运行了。上图是10ms中断的仿真调试结果,不是很理想。但有了仿真库,自己可以随便改参数,试验各种环境和特点。
下面这张图是100ms中断仿真调试的结果。

本文发布于:2024-09-22 10:36:42,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/96689.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:控制   阀门   面板   功能   参数   需要
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议