PID指比例积分微分,Proportion比例,Integration积分,Differentiation微分
西门子PLC编程软件中有PID向导,程序中的PID程序块可利用s7-Micro/win程序中的“工具”→“指令向导”生成。根据向导的提示可以对死区、报警、手动等功能进行选择,可以对设定范围、P、I、D等参数进行设定(完成后还可以利用向导进行更改)。根据提示完成设定后会自动生成一个子程序和一个中断程序,在主程序或其他程序中调用PID子程序就可以实现PID调节功能。需要更详细的说明可以直接察看编程软件的帮助文档,那里说明的还是比较详细的。
使用简单,你应该用PID,PID是成型的自动化仪表,你在控制室里按装好后,可显示,给定也方便输出是标准信号你用PLC,你得编程,口的输出是不是标准信号,你买的时候得要求,每添装置,都要添价钱
介绍西门子PLC实现PID控制的方法。
1 引言
在工业生产中,常需要用闭环控制方式来实现温度、压力、流量等连续变化的模拟量控制。无论使用模拟控制器的模拟控制系统,还是使用计算机(包括PLC)的数字控制系统,PID控制都得到了广泛的应用。
PID控制器是比例-积分-微分控制的简称,具有
(1) 不需要精确的控制系统数学模型;
(2) 有较强的灵活性和适应性;
(3) 结构典型、程序设计简单,工程上易于实现,参数调整方便等优点。积分控制可以消除系统的静差,微分控制可以改善系统的动态相应速度,比例、积分、微分三者有效地结合可以满足不同的控制要求。
2 PLC实现PID的控制方式
21 PID过程控制模块
这种模块的PID控制程序是PLC生产厂家设计的,并存放在模块中,用户使用时序要设置一些参数,使用起来非常方便,一个模块可以控制几路甚至几十路闭环回路。
22 PID功能指令
现在很多PLC都有供PID控制用的功能指令,如S7-200的PID指令。它们实际上是用于PID控制的子程序,与模拟量输入/输出模块一起使用,可以得到类似于使用PID过程控制模块的效果。
23 用自编的程序实现PID闭环控制
有的PLC没有PID过程控制模块和PID控制用的功能指令,有时虽然可以使用PID控制指令,但是希望采用某种改进的PID控制算法。在上述情况下都需要用户自己编制PID控制程序。
3 PLC-PID控制器的实现
本文以西门子S7-200PLC为例,说明PID控制的原理及PLC的PID功能指令的使用及控制功能的实现。
31 PID控制器的数字化
PLC的PID控制器的设计是以连续系统的PID控制规律为基础,将其数字化写成离散形式的PID控制方程,再跟据离散方程进行控制程序设计。
在连续系统中,典型的PID闭环控制系统如图1所示。图1中sp(t)是给定值,pv(t)是反馈量,c(t)是系统的输出量,PID控制的输入输出关系式为:
式中:
M(t)—控制器的输出量,M0为输出的初始值;
e(t)=sp(t)-pv(t)-误差信号;
KC比例系数;
TI-积分时间常数;
TD-微分时间常数。
图1 连续闭环控制系统方框图
式(1)的右边前3项分别是比例、积分、微分部分,它们分别与误差,误差的积分和微分成正比。如果取其中的一项或两项,可以组成P、PD或PI控制器。
假设采样周期为TS,系统开始运行的时刻为t=0,用矩形积分来近似精确积分,用差分近似精确微分,将公式1离散化,第n次采样时控制器的输出为: (2)
式中:
en-1-第n-1次采样时的误差值;
KI-积分系数;
KD-微分系数。
基于PLC的闭环控制系统如图2所示。图中的虚线部分在PLC内。其中spn、pvn、en、Mn分别为模拟量在sp(t)、pv(t)、e(t)、M(t)在第n次采样时的数字量。
图2 PLC闭环控制系统方框图
在许多控制系统内,可能只需要P、I、D中的一种或两种控制类型。如可能只要求比例控制或比例与积分控制,通过设置参数可对回路进行控制类型进行选择。
32 输入输出变量的转换
PID控制有两个输入量:给定值(sp)和过程变量(pv)。多数工艺要求给定值是固定的值,如加热炉温度的给定值。过程变量是经A/D转换和计算后得到的被控量的实测值,如加热炉温度的测量值。给定值与过程变量都是与被控对象有关的值,对于不同的系统,它们的大小、范围与工程单位有很大的区别。应用PLC的PID指令对这些量进行运算之前,必须将其转换成标准化的浮点数(实数)。
同样,对于PID指令的输出,在将其送给D/A转化器之前,也需进行转换。
33 回路输入的转换
转换的第一步是将给定值或A/D转换后得到的整数值由16位整数转换成浮点数,可用下面的程序实现这种转换:
XORD AC0, ACO
//清除累加器
MOVW AIWO, AC0
//将待转化的模拟量存入累加器
LDW>= AC0, 0
//如果模拟量数值为正
JMP 0
//直接转换成实数
ORD 16#FFFF0000, ACO
//将AC0内的数值进行符号扩展,扩展为32位负数
LBL 0
DTR AC0, AC0
//将32位整数转换成实数
转换的下一步是将实数进一步转换成00~10之间的标准化实数,可用下面的式(3)对给定值及过程变量进行标准化:
RNorm=(RRaw/Span)+Offset (3)
式中:
RNorm-标准化实数值;
RRaw-标准化前的值;
Offset-偏移量,对单极性变量为00,对双极性变量为05;
Span-取值范围,等于变量的最大值减去最小值,单极性变量的典型值为32000,双极性变量的典型值为64000。
下面的程序将上述转换后得到的AC0中的双极性实数(其Span=64000)转换成00~10之间的实数:
/R 640000, AC0
//累加器中的实数标准化
+R 05, AC0
//加上偏移值,使其在00~10之间
MOVR ACO, VD100
//加标准化后的值存入回路表内
34 回路输出的转换
回路输出即PID控制器输出,它是标准化的00~10之间的实数。将回路输出送给D/A转换器之前,必须转换成16位二进制整数。这一过程是将pv与sp转换成标准化数值的逆过程。用下面的公式将回路输出转换成实数:
RScal=(Mn-Offset)×Span (4)
式中,RScal是回路输出对应的实数值,Mn是回路输出标准化的实数值。
下面的程序用来将回路输出转换为对应的实数:
MOVR VD108, AC0
//将回路输出送入累加器
-R 05, AC0
//仅双极性数才有此语句
R 640000, AC0
//单极性变量乘以320000
用下面的指令将代表回路输出的实数转换成16位整数:
ROUND AC0, AC0
//将实数转换为32位整数
MOVW AC0, AQW0
//将16位整数写入模拟输出(D/A)寄存器
35 PID指令及回路表
S7-200的PID指令如图3所示:
图3 PID指令
指令中TBL是回路表的起始地址,LOOP是回路的编号。编译时如果指令指定的回路表起始地址或回路号超出范围,CPU将生成编译错误(>
你好,这个问题要从2个角度回答:
1、首先探讨这么做是否可行:
这么做是完全能实现的,但不能只用梯形图编程。
OMRON的PID(190)、PIDAT(191)调节指令,涉及到大量的算术迭代运算,如果你想自己做PID的话,不能用梯形图编程(后面告诉你原因)。但可以用结构化文本(ST)和梯形图(LD)混合编程实现,在CS1以上的机型上都可以实现。运算部分用ST,I/O用梯形图。
因为梯形图更合适逻辑控制,而ST适合数学运算,用梯形图编程完成算术运算,不仅语句繁多,可读性差,也容易出错。
2、OMRON的PID指令,在工程实际应用中性能较差,逊于同类产品如西门子的S7300等等,但这跟硬件有关,不单是指令的问题,自己做PID并不能从根本上解决。
对此,OMRON自己也并非不知情,也许是心虚,为了强化PLC的过程控制能力,OMRON专门推出2款产品:
LC001回路控制板,安装在CPU的左侧(通讯板的位置),不占用槽位;
也有回路控制单元,占用I/O槽位一个,它们的性能一样。
LC001提供超强的算术运算能力(相当于PLC的协处理器,不占用CPU周期,只和CPU交换运算过程或结果数据),内部有大量的PID控制单元,例如串级PID,模糊PID等等,满足不同的控制需要,你可以任意组态,编程软件也在CX-ONE中。
我想如果你把这个单元用好,完成你的直流电机调速控制,2个闭环,小菜一碟,性能也绝对不是软件PID所能相比的,更远超西门子、三菱、AB等同类产品,当然,对用户来说,还是增加了成本投入,当然换来的是更强的性能。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如有满意答案,请及时采纳,谢谢!
三菱PLC实现PID控制的方法
1)使用PID过程控制模块。这种模块的PID控制程序是PLC生产厂家设计的,并存放在模块中,用户在使用时只需要设置一些参数,使用起来非常方便,一块模块可以控制几路甚至几十路闭环回路。但是这种模块的价格昂贵,一般在大型控制系统中使用。如三菱的A系列、Q系列PLC的PID控制模块。
2)使用PID功能指令。现在很多中小型 PLC都提供PID控制用的功能指令,如FX2N系列PLC的PID指令。它们实际上是用于PID控制的子程序,与A/D、D/A模块一起使用,可以得到类似于使用PID过程控制模块的效果,价格却便宜得多。
3)使用自编程序实现PID闭环控制。有的PLC没有有PID过程控制模块和 PID控制指令,有时虽然有PID控制指令,但用户希望采用变型PID控制算法。在这些情况下,都需要由用户自己编制PID控制程序。
3 三菱FX2N的PID指令
PID指令的编号为FNC88,源 *** 作数[S1]、[S2]、[S3]和目标 *** 作数[D]均为数据寄存器D,16位指令,占9个程序步。[S1]和[S2]分别用来存放给定值SV和当前测量到的反馈值PV,[S3]~[S3]+6用来存放控制参数的值,运算结果MV存放在[D]中。源 *** 作数[S3]占用从[S3]开始的25个数据寄存器。
PID指令是用来调用PID运算程序,在PID运算开始之前,应使用MOV指令将参数设定值预先写入对应的数据寄存器中。如果使用有断电保持功能的数据寄存器,不需要重复写入。如果目标 *** 作数[D]有断电保持功能,应使用初始化脉冲M8002的常开触点将其复位。
PID指令可以同时多次使用,但是用于运算的[S3]、[D]的数据寄存器元件号不能重复。
PID指令可以在定时中断、子程序、步进指令和转移指令内使用,但是应将[S3]+7清零(采用脉冲执行的MOV指令)之后才能使用。
控制参数的设定和 PID运算中的数据出现错误时,“运算错误”标志M8067为 ON,错误代码存放在D8067中。
PID指令采用增量式PID算法,控制算法中还综合使用了反馈量一阶惯性数字滤波、不完全微分和反馈量微分等措施,使该指令比普通的PID算法具有更好的控制效果。
PID控制是根据“动作方向”([S3]+1)的设定内容,进行正作用或反作用的PID运算。PID运算公式如下:
以上公式中:△MV是本次和上一次采样时PID输出量的差值,MVn是本次的PID输出量;EVn和 EVn-1分别是本次和上一次采样时的误差,SV为设定值;PVn是本次采样的反馈值,PVnf、PVnf-1和PVnf-2分别是本次、前一次和前两次滤波后的反馈值,L是惯性数字滤波的系数;Dn和Dn-l分别是本次和上一次采样时的微分部分;K p是比例增益,T S是采样周期,T I和T D分别是积分时间和微分时间,αD是不完全微分的滤波时间常数与微分时间TD的比值。
4PID参数的整定
PID控制器有4个主要的参数K p、T I、T D和T S需整定,无论哪一个参数选择得不合适都会影响控制效果。在整定参数时应把握住PID参数与系统动态、静态性能之间的关系。
在P(比例)、I(积分)、D(微分)这三种控制作用中,比例部分与误差信号在时间上是一致的,只要误差一出现,比例部分就能及时地产生与误差成正比的调节作用,具有调节及时的特点。比例系数K p越大,比例调节作用越强,系统的稳态精度越高;但是对于大多数系统,K p过大会使系统的输出量振荡加剧,稳定性降低。
积分作用与当前误差的大小和误差的历史情况都有关系,只要误差不为零,控制器的输出就会因积分作用而不断变化,一直要到误差消失,系统处于稳定状态时,积分部分才不再变化。因此,积分部分可以消除稳态误差,提高控制精度,但是积分作用的动作缓慢,可能给系统的动态稳定性带来不良影响。积分时间常数T I增大时,积分作用减弱,系统的动态性能(稳定性)可能有所改善,但是消除稳态误差的速度减慢。
微分部分是根据误差变化的速度,提前给出较大的调节作用。微分部分反映了系统变化的趋势,它较比例调节更为及时,所以微分部分具有超前和预测的特点。微分时间常数T D增大时,超调量减小,动态性能得到改善,但是抑制高频干扰的能力下降。
选取采样周期T S时,应使它远远小于系统阶跃响应的纯滞后时间或上升时间。为使采样值能及时反映模拟量的变化,T S越小越好。但是T S太小会增加CPU的运算工作量,相邻两次采样的差值几乎没有什么变化,所以也不宜将T S取得过小。
根据你说的情况,有2种PID模式进行控制
一是PID控制做在PLC中,输出的4--20毫安信号直接给定变频器的频率输入,从而直接控制了变频器的输出而控制了电机的转速。
二是PLC的输出的4--20毫安信号作为变频器的AI输入,在变频器中做PID闭环控制,来控制电机转速。其实就简单一个恒压供水,根本用不着PLC,变频器本身就足够了,现在的变频器都带有单回路PID控制功能的
首先,pid与plc是两个完全不同的概念,plc是控制器,像电脑一样,具有逻辑和运算功能,pid做为一种算法,是做闭环控制用的,plc里可以编写pid控制程序(其实pid就是一个比例+积分+微分的一个公式,plc里编写pid控制程序就是编写一个pid公式,让plc去运算和过程)pid控制程序不仅可以在plc里编写,在任何一种控制器里都可以实现
s7-200
22xp一个,电脑安装step7
micro/win
40
sp9
将224xp的模拟输出通道接到变频器的模拟输入,变频器设置好参数。
运行step7
micro/win的指令向导,选择pid,然后按照向导生成pid程序,然后在主程序调用pid程序即可。
以上就是关于请问plc中pid是什么意思全部的内容,包括:请问plc中pid是什么意思、串级三冲量汽包水位控制系统使用PID和PLC哪个更简单、如何用plc实现闭环pid等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)