读PID官方例程 3-Point Stepper Control

已锁定

宝冬

  • 帖子

    1491
  • 精华

    52
  • 被关注

    177

论坛等级:奇侠

注册时间:2016-07-06

钻石 钻石 如何晋级?

读PID官方例程 3-Point Stepper Control

6615

12

2019-12-24 14:12:17

star star star star star

关于PID_3Step这个工艺对象,有一个西门子的官方例程可以在下面的链接下载。


3-Point Stepper Control with SIMATIC S7-1200/S7-1500

https://support.industry.siemens.com/cs/document/62154322/3-point-stepper-control-with-simatic-s7-1200-s7-1500?dti=0&pnid=13683&lc=en-CN

 

这两天闲来无事,就下载了这个程序读一读。这个程序是用博途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用于模拟水温的变化过程。这个仿真库可以在下面的链接下载。这个库的模块是开源的,可以看内部代码实现。这个库的用处真是太大了。

https://support.industry.siemens.com/cs/document/79047707/closed-loop-control-of-simulated-controlled-systems-in-the-s7-1500-with-pid_compact-v2?dti=0&pnid=13683&lc=en-CN

 

总的来说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的程序,能更精确灵活的改变整定过程,体现的内部信息也更多,比博途中的官方调试面板功能要强一点。


PID参数的可以保存多组、重置、加注释、载入、手动修改等。PID参数比较占掉电保持空间,1200总共10k,试过用配方来表达,但是笨拙不爽。

读PID官方例程 3-Point Stepper Control 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有12958条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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