西门子PLC工艺对象PID用法

西门子PLC工艺对象PID用法

在西门子S71200/1500中,自带了集成的PID库。对于PID实现的算法本文不做介绍,不明白的可以自行百度。或者可以留意我的下一篇文章,会单独讲解PID算法,并在PLC中实现。

输入以及输出参数

以 PID _Compact 通用PID库为例,首先对输入参数进行说明。input / input _PER 为反馈输入,对于 Input 和 Input _ PER,大家都想知道二者什么区别。Input 是工程量,也就是实际的物理量。比如说,温度传感器采集的数据经过标定后为10摄氏度,10就是工程量。那Input _PER呢?在西门子文档中称之为模拟量,为 int 类型。实际上这个就是PLC采集到的并未作任何标定的原始数据,如果你的传感器是电流信号,那个值就是一个0到27648之间的一个值。所以当你在工艺对象组态,选择以Input _PER作为输入的时候,是需要对数据做一个线性标定处理的,将该模拟量输入转换为工程量。当然,我一般习惯使用 Input 作为输入。Setpoint 是控制的设定值,该值为工程量。比如温度要控制到50摄氏度,Setpoint 就是50。
下面来说输出参数, PID _Compact 提供的三个输出。Output、Output_PER 以及 Output_PWM。
首先来说 Output 和 Output_PER 的区别。Output 输出的是一个百分比,范围是0到100。Output_PER输出是一个模拟量值,其输出就是一个0到27648的值(输出限制设在0-100)。如果输出限制设置在-100到100,输出就是 -27648~27648。如果采用Output作为输出,在最终给到模拟量模块输出时也需要将0到100转换成0到27648的值。所以,我们输入参数可以使用input 作为输入,输出上以Output_PER作为输出。关于Output_PWM,是将计算结果以脉宽调制的方式输出,不断调整方波的占空比。比如在以固态继电器控制加热器时,就必须采用此输出。正常情况下,有这三个参数就可以使用PID模块了,然后根据控制效果调整PID参数。

配置工艺对象

首先在工艺对象中新建,选择其中一种PID。在基本设置中将“CPU重启后激活Mode”勾选。如上面所述,配置输入以及输出。

MODE
在这里插入图片描述

因为输入为Input,所以不需要配置过程值标定。对输出值限制,默认为0到100。对于一般的单向输出可以采用默认设置,但是对于双向输出,比如输出正负10V,去控制以及具有正反向的对象,此时需要将下限设置为-100。

实例

PID模块必须运行在定时中断中,比如OB30等。因为执行PID需要高实时性,而主程序OB1扫描周期并不是确定的。所以,需要新建一个定时中断。

 "PID_Flow"(Setpoint := "Flow".Flow_set,
               Input := "Flow".Result,
               Output_PER => "Flow".FlowValveOut);
  "QW_FlowValve" := "Flow".FlowValveOut;

其中,“PID_Flow” 是在工艺对象中建立的功能块,"QW_FlowValve"是模拟量输出。

总结

关于西门子PID的实现大家可以参考帮助文件中的框图,至于另外两个 PID 库,一个是温度专用的,一个是阀专用的,和通用的这个本质上没有太大区别,其功能也都可以在 PID _Compact 实现,就不做介绍了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值