西门子模块6ES7231-7PF22-0XA0技术数据
西门子模块6ES7231-7PF22-0XA0技术数据
引言:
PLC控制系统由于具有功能强、程序设计简单、扩展性好、维护方便、可靠性高、能适应比较恶劣的工业环境的特点,因此在工业企业广泛应用.但是由于工业环境条件恶劣,以及各种工业电磁,辐射干扰等,影响PLC控制系统的正常工作,因此必须重视PLC控制系统的抗干扰设计.为防止干扰,可以采用硬件和软件相结合的抗干扰方法. 防止硬件干扰的方法有:1采用性能优良的电源来抑制电网引入的干扰2电缆的选择与铺设来降低电磁干扰3完善接地系统4采用光电隔离来抑制输入输出电路引入的干扰等.而利用PLC软件来减少干扰是PLC控制系统正常、稳定工作的重要环节.下面主要分析在生产实践中应用的利用PLC组态软件来减少干扰的方法:
一、减少数字量输入扰动的方法
1、 计数器法
CON—计数器
NOT—非门
RS—复位优先触发器
IN—输入
OUT—输出
N—脉冲采样个数
注释:当外部有信号输入时,控制系统采集连续的N个脉冲使RS触发器输出为“1”,只有当外部输入信号由“1”变成“0”时,RS触发器的复位端为“1”,将RS触发器的输出复位成“0”。而当有瞬间干扰脉冲时,CON计数器将采集不到连续的N个脉冲,CON计数器无法输出,这就起到了减少干扰的作用。(N一般情况下取2)
优点:响应速度快,对周期性的瞬时干扰起到了一定的抑制作用。
缺点:不能消除超过CON计数器采样时间的干扰。
2、延迟输入法
IN—输入
OUT—输出
TIME(ET)—延时时间
TON—延时输出(其曲线如下图)
注释:当输入IN=1时,启动计数器直到计时时间(PT)=延时时间,OUT=1。当计数器计时时间〈延时时间,OUT=0。延时时间好取1S以内。
优点:消除了短时的周期干扰。
缺点:响应速度慢,不利于信号的快速传输。
二、减少模拟量输入扰动的方法
1、限幅法
MOVE—移动保持指令(使能端EN=1,OUT=IN。EN=0,OUT保持前次值)
GE—大于等于指令(OUT=1,IF IN1≥IN2)
LE—小于等于指令(OUT=1,IF IN1≤IN2)
HL—上限设定值
LL—下限设定值
注释:当模拟量输入信号在HL和LL之间时,OUT=IN。当IN-AI信号超出或等于HL或LL时,GE或LE判断IN-AI信号,使OUT1或OUT2输出“1”去封锁MOVE,从而保持MOVE的输出为HL或LL的设定值。也就起到了限幅的作用。
优点:能有效克服因偶然因素引起的脉冲干扰。
缺点:平滑度差。
2、延迟滤波限幅法
MOVE—移动保持指令(使能端EN=1,OUT=IN。EN=0,OUT保持前次值)
GE—大于等于指令(OUT=1,IF IN1≥IN2)
LE—小于等于指令(OUT=1,IF IN1≤IN2)
HL—上限设定值
LL—下限设定值
LG—延迟滤波指令(其曲线如下图)
TIME—延迟滤波时间
注释:功能基本和限幅法相同,只是在输入端增加了一个延迟滤波器,对输入信号起到了延迟缓冲的滤波。
优点:有效地抑制了周期性的脉冲干扰。平滑度比限幅法有所改善。
缺点:信号响应速度减缓。
3、延迟滤波比较法
LG—延迟滤波器
SUB—减法指令
ABS—值指令
GE—大于等于指令
HL—大偏差值
TIME—延迟滤波时间
注释:正常情况输入信号IN-AI经过一阶延迟滤波后直接输出,OUT=IN-AI的值;当有突变信号时,输入信号IN-AI经过一阶延迟滤波后与含有突变信号的输入信号IN-AI相减取值(无论出现正偏差还是负偏差),与HL值比较,若大于等于HL的预设值,OUT1=1,将LG—延迟滤波器切换成跟踪状态,此时OUT就保持了输入信号IN-AI突变前的值。直到突变信号减弱,OUT1=0,OUT=IN-AI。
优点:对周期性干扰具有良好的抑制作用。平滑度高。
缺点:灵敏度取决于TIME—延迟滤波时间的大小。
4、积分消抖滤波法
LG—延迟滤波器
SUB—减法指令
GE—大于等于指令
LE—小于等于指令
OR—或门(自做的DFB功能块)
NOT—非门
TON—延时输出
EOR—异或门
MOV—移动保持指令
PI—比例积分调节器
HL—大正向偏差值
LL—大负向偏差值
TIME—延迟滤波时间
TIME1—延迟输出时间
TIME2—延迟滤波时间
注释:参数设置:LG(TIME=1S),TON(TIME1=10S),LG1(TIME=30S),HL=0.2,LL=-0.2 ,PI(TI=10S,将P放开封锁成为纯积分调节器)
一、 小信号在变化幅度中变化时
1、 终状态:此时为稳态,输入与输出相近。OR输出为“0”,NOT=1,TON时间已超出10S,EOR=0,MOV不保持,PI不积分,SUB=0,信号走PI的跟踪回路,LG1滤波后输出。正常的信号流向:IN→LG→PI的跟踪→LG1(滤波30S)→输出
2、 小信号的暂态变化:(在TON=10S之前)OR=0,NOT=1,TON未到10S,EOR=1,MOV保持,PI积分作用,LG1未起作用,输出跨越LG1(TIME=30S),直接到输出端,此时为线性跟踪滤波状态。
二、 信号大幅度变化时(≥HL,≤LL)
OR=1,NOT=0,TON不起作用,EOR=0,所以LG1(TIME=30S)不起作用,PI不起作用走跟踪。正常的信号流向:IN→LG→PI的跟踪→LG1的跟踪→输出
三、 总结:
1、 小信号在10秒之内,经过LG(TIME=1S),PI的积分作用,跳过LG1(TIME=30S),直接输出,实现输入信号的滤波和跟踪状态。
2、 小信号在10秒之后,经过LG(TIME=1S),PI的跟踪和LG1(TIME=30S)跟踪输入。
3、 大信号变化时,LG(TIME=1S)作用,LG1(TIME=30S)不起作用,此时为输出快速跟踪。
优点: 对于被测参数有较好的滤波效果, 对周期性干扰具有良好的抑制作用,平滑度高。
缺点: 对于变化缓慢的输入信号响应慢。
结束语
上述所分析的方法,均在生产实际中得到检验,取得了一定的效果,并随着生产实际的需要和经验的积累,不断完善其对干扰的软件处理方法。
另付:积分消抖滤波法利用Concept2.6的编程。并且本论文涉及的功能指令块各管脚的用法均参考下图及Concept2.6中文手册。
引言
在工业生产中,常需要用闭环控制方式来实现温度、压力、流量等连续变化的模拟量控制。无论使用模拟控制器的模拟控制系统,还是使用计算机(包括PLC)的数字控制系统,PID控制都得到了广泛的应用。
PID控制器是比例-积分-微分控制的简称,具有
(1) 不需要jingque的控制系统数学模型;
(2) 有较强的灵活性和适应性;
(3) 结构典型、程序设计简单,工程上易于实现,参数调整方便等优点。积分控制可以消除系统的静差,微分控制可以改善系统的动态相应速度,比例、积分、微分三者有效地结合可以满足不同的控制要求。
2 PLC实现PID的控制方式
2.1 PID过程控制模块
这种模块的PID控制程序是PLC生产厂家设计的,并存放在模块中,用户使用时序要设置一些参数,使用起来非常方便,一个模块可以控制几路甚至几十路闭环回路。
2.2 PID功能指令
现在很多PLC都有供PID控制用的功能指令,如S7-200的PID指令。它们实际上是用于PID控制的子程序,与模拟量输入/输出模块一起使用,可以得到类似于使用PID过程控制模块的效果。
2.3 用自编的程序实现PID闭环控制
有的PLC没有PID过程控制模块和PID控制用的功能指令,有时虽然可以使用PID控制指令,但是希望采用某种改进的PID控制算法。在上述情况下都需要用户自己编制PID控制程序。
3 PLC-PID控制器的实现
本文以西门子S7-200PLC为例,说明PID控制的原理及PLC的PID功能指令的使用及控制功能的实现。
3.1 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,用矩形积分来近似jingque积分,用差分近似jingque微分,将公式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中的一种或两种控制类型。如可能只要求比例控制或比例与积分控制,通过设置参数可对回路进行控制类型进行选择。
3.2 输入输出变量的转换
PID控制有两个输入量:给定值(sp)和过程变量(pv)。多数工艺要求给定值是固定的值,如加热炉温度的给定值。过程变量是经A/D转换和计算后得到的被控量的实测值,如加热炉温度的测量值。给定值与过程变量都是与被控对象有关的值,对于不同的系统,它们的大小、范围与工程单位有很大的区别。应用PLC的PID指令对这些量进行运算之前,必须将其转换成标准化的浮点数(实数)。
同样,对于PID指令的输出,在将其送给D/A转化器之前,也需进行转换。
3.3 回路输入的转换
转换的步是将给定值或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位整数转换成实数
转换的下一步是将实数进一步转换成0.0~1.0之间的标准化实数,可用下面的式(3)对给定值及过程变量进行标准化:
RNorm=(RRaw/Span)+Offset (3)
式中:
RNorm-标准化实数值;
RRaw-标准化前的值;
Offset-偏移量,对单极性变量为0.0,对双极性变量为0.5;
Span-取值范围,等于变量的大值减去小值,单极性变量的典型值为32000,双极性变量的典型值为64000。
下面的程序将上述转换后得到的AC0中的双极性实数(其Span=64000)转换成0.0~1.0之间的实数:
/R 64000.0, AC0
//累加器中的实数标准化
+R 0.5, AC0
//加上偏移值,使其在0.0~1.0之间
MOVR ACO, VD100
//加标准化后的值存入回路表内
3.4 回路输出的转换
回路输出即PID控制器输出,它是标准化的0.0~1.0之间的实数。将回路输出送给D/A转换器之前,必须转换成16位二进制整数。这一过程是将pv与sp转换成标准化数值的逆过程。用下面的公式将回路输出转换成实数:
RScal=(Mn-Offset)×Span (4)
式中,RScal是回路输出对应的实数值,Mn是回路输出标准化的实数值。
下面的程序用来将回路输出转换为对应的实数:
MOVR VD108, AC0
//将回路输出送入累加器
-R 0.5, AC0
//仅双极性数才有此语句
*R 64000.0, AC0
//单极性变量乘以32000.0
用下面的指令将代表回路输出的实数转换成16位整数:
ROUND AC0, AC0
//将实数转换为32位整数
MOVW AC0, AQW0
//将16位整数写入模拟输出(D/A)寄存器
3.5 PID指令及回路表
S7-200的PID指令如图3所示:
图3 PID指令
指令中TBL是回路表的起始地址,LOOP是回路的编号。编译时如果指令指定的回路表起始地址或回路号超出范围,CPU将生成编译错误(范围错误)仪器编译失败。PID指令对回路表中的某些输入值不进行范围检查,应保证过程变量、给定值等不超限。回路表参见附表。
附表 PID指令的回路表
如果PID指令中的算术运算发生错误,特殊存储器SMI.1(溢出或非法数值)被置1,并将终止PID指令的执行。要想消除错误,在下次执行PID运算之前,应改变引起运算错误的输入值,而不是更新输出值。
4 PID指令编程举例
某一水箱里的水以变化速度流出,一台变频器驱动的水泵给水箱打水,以保持水箱的水位维持在满水位的75%。过程变量由浮在水面上的水位测量仪提供,PID控制器的输出值作为变频器的速度给定值。过程变量与回路输出均为单极性模拟量,取值范围为0.0~1.0。
本例采用PI控制器,给定值为0.75,选取控制器参数的初始值为:KC=0.25,TS=0.1s,TI=30min。编程如下:
//主程序(OBI)
LD SM0.1 //扫描时
CALL 0 //调用初始化子程序
//子程序
LD SM0.0
MOVR 0.75, VD104 //装入给定值75%
MOVR 0.25, VD112 //装入回路增益0.25
MOVR 0.10, VD116 //装入采样时间0.1s
MOVR 30.0 VD120 //装入积分时间30min
MOVR 0.0, VD124 //关闭微分作用
MOVB 100, SMB34
//设置定时中断0的时间间隔为100ms
ATCH 0, 10
//设定定时中断以执行PID指令
ENI
//允许中断,子程序0结束
//中断程序0
LD SM0.0
LTD AIW0, AC0
//单极性模拟量经A/D转换后存入累加器
DTR AC0, AC0
//32位整数转换为实数
/R 32000.0, AC0
//标准化累加器中的实数
MOVR AC0, VD100 //存入回路表
LD 10.0
//在自动方式下,执行PID指令
PID VB100, 0
//回路表的起始地址为VB100,回路号为0
LD SM0.0
MOVB VD108, AC0
//PID控制器的输出值送入累加器
*R 32000.0 AC0
//将累加器中的数值标准化
ROUND AC0, AC0
//实数转换为32位整数
DTI AC0, AQW0
//将16位整数写入到模拟量输出(D/A)寄存器
5 结束语
PLC实现PID控制的方法多种,直接应用PID指令来实现基于PLC的PID控制,是一种易于实现且经济实用的方