预览加载中,请您耐心等待几秒...
1/6
2/6
3/6
4/6
5/6
6/6

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

电炉的温度控制 实验目的 学习利用PID指令编写程序。 实验设备 西门子S7-200PLC一台,EM231模拟量输入模块一个,EM232模拟输出模块一个,0-5V直流稳压电源一台,RS232数据线。 实验功能 有一台电炉要求炉温控制在一定得范围。电炉的工作原理如下: 当设定电炉温度后,S7-200PLC经过PID运算后由模拟量输出模块EM232输出一个电压信号送到控制板,控制板根据电压信号(弱点信号)的大小控制电热丝加热电压(强电信号)的大小(甚至断开),温度传感器测量电炉的温度,温度信号经过控制板的处理后输入到模拟量输入模块EM231,再送到S7-200PLC进行PID运算,如此循环。在实验中没有温度传感器,由0~5V可变电压源代替反馈的温度值。整个系统的硬件配置如图所示: 图1硬件配置图 实验原理 1.PID算法 图2为PID的控制过程 图2PID控制过程 PID控制器调节输出,保证偏差(e)为零,使系统达到稳定状态,偏差是给定值(SP)和过程变量(PV)的差。PID控制的原理基于以下公式: (1-1) 式中,M(t)是PID回路的输出;是PID回路的增益;e是PID回路的偏差(给定值与过程变量的差);是PID回路输出的初始值。 由于以上的算式是连续量,必须将以上的连续量离散化才能在计算机中运算,离散处理后算式如下: (1-2) 式中,是在采样时刻n时PID回路的输出的计算值;是PID回路的增益;是积分项的比例常数;是微分项的比例常数;是采样时刻n的回路的偏差值;是采样时刻n-1的回路的偏差值;是采样时刻x的回路的偏差值;是PID回路输出的初始值。 在对以上算式进行改进和简化,得到如下计算PID输出的算式: (1-3) 式中,是第采样时刻的计算值;是第n时刻的比例项值;是第n采样时刻的积分项的值;是第n采样时刻微分项的值。 2.PID指令介绍 PID回路(PID)指令,当使能有效时,根据表格(TBL)中的输入和配置信息对引用LOOP执行PID回路计算。PID指令的格式见下表 表1PID指令格式 LAD输入/输出含义数据类型EN使能BOOLTBL参数表的起始地址BYTELOOP回路号,常数范围0~7BYTEPID指令的使用注意事项:(1)程序中最多可以使用8条PID指令回,回路号为0~7,不能重复使用。 (2)PID指令不对参数表输入值进行范围检查。必须保证过程变量、给定值积分项前值和过程变量前值在0.0~0.1之间。 (3)使EN0=0的错误条件:0006(简介地址),SM1.1(溢出,参数表起始地址或指令中指定的PID回路指令号操作数超出范围)。 在工业生产过程中,模拟信号PID(由比例、积分和微分构成的闭合回路)调节是常见的控制方法。运行PID控制指令,S7-200PLC将根据参数表中输入测量值、控制设定值及PID参数,进行PID运算,求的输出控制值。参数表中有9个参数,全部是32位的实数,共占用36个字节。PID控制回路的参数表见表2。 表2PID控制回路参数表 偏移地址参数数据格式参数类型描述0过程变量PVnREAL输入/输出必须在0.0~0.1之间4给定值SPnREAL输入必须在0.0~0.1之间8输出值MnREAL输入必须在0.0~0.1之间12增益KcREAL输入增益是比例常数,可正可负16采样时间TsREAL输入单位为秒,必须是正数20积分时间TiREAL输入单位为分钟,必须是正数24微分时间TdREAL输入单位为分钟,必须是正数28上一次积分值MxREAL输入必须在0.0~0.1之间32上一次过程变量PVn-1REAL输入最后一次PID运算过程变量值36~79保留自整定变量程序的编写 1)编写程序前,先要填写PID指令的参数表,参数表见表3 表3电炉温度控制的PID参数设置 偏移地址参数描述VD100过程变量PVn温度经过A/D转换后的标准化数据VD104给定值SPn0.335(最高温度为1,调节到0.335)VD108输出值MnPID回路输出值VD112增益Kc0.15VD116采样时间Ts35VD120积分时间TI30VD124微分时间Td0VD128上一次积分值Mx根据PID运算结果更新VD132上一次过程变量PVn-1最后一次PID运算过程变量值2)再编写PLC控制程序,程序如下图所示。 主程序 (b)子程序 (c)中断服务程序 实验分析 实验结果基本符合PID控制过程,在编写程序的过程中首先要理解PID的参数表各个参数的含义,其次要理解数据类型的转换。用以上的方法编写PID控制程序是可行的,但显然比较麻烦,我们还可以利用指令向导比较容易编写PID控制程序。