用S7-200 SMART PLC实现PID控制
如果用西门子S7-200 SMART PLC实现PID控制,则需要掌握配置PID向导、调用子程序、创建状态图表测试程序、自整定PID参数等技能。本文详细介绍西门子S7-200 SMART PID回路控制,如何配置PID向导?如何调用子程序?如何创建状态图表测试程序?如何自整定PID参数?
PID控制器是应用最广泛的闭环控制器,它根据给定值与被控变量实测值之间的偏差,按照PID算法计算出控制器的输出量控制执行机构进行调节,使被控量跟随给定量进行变化并使系统达到稳定,自动消除各种干扰对控制过程的影响,其中P、I、D分别指比例、积分、微分。
在西门子S7-200 SMART中,PID控制功能通过PID指令来实现。编程软件STEP7-Micro/WIN SMART提供了PID向导,可以帮助用户组态PID控制和生成PID子程序,方便快捷的完成PID控制编程任务,支持8路PID功能、自动/手动切换以及PID整定。
STEP7-Micro/WIN SMART还提供了PID整定控制面板,允许以图形方式监视PID回路行为,还可以启动、停止自整定功能。下面我们来进行S7-200 SMART PID回路控制的使用练习:利用PID向导编写程序,使温度保持在给定值,并对PID参数进行整定。
任务描述。本次实验设备中利用温度变送器将0-100℃的温度转换为0-10V的电压信号,送到扩展模块EM AM06的模拟量输入通道2。加热器用Q1.6输出的PWM脉冲来控制。需要说明的是,EM AM06将模拟量输入0-10V电压信号转换为数字量,对应数字范围为0-27648,传送到S7-200 SMART CPU的AI存储器中。
硬件组态。打开编程软件STEP7-Micro/WIN SMART创建新项目,在项目树中双击CPU打开,根据实际配置CPU选择SR40,扩展模块EM0选择AM06,启用模块电源报警。单击模拟量输入节点下的通道2,通道地址为AIW20,类型组态为电压,范围选择+/-10V,平滑采用默认的4个周期,启用超出上限报警和超出下限报警,单击确定按钮完成硬件组态。
配置PID向导。在工具菜单功能区单击PID按钮打开PID回路向导对话框,选择要组态的回路,最多可组态8个回路,这里我们选择回路0。
在左侧的树视图中单击回路0节点,在此定义回路名称。单击参数节点,在此设置回路参数,如果不需要比例作用,增益设置为0.0,如果不需要积分作用,积分时间设置为无穷大值INF,如果不需要微分作用,微分时间设置为0.0,采样时间是PID控制回路对反馈采样以及重新计算输出值的时间间隔,这里我们均采用默认值,后面在实验中进行自整定。
单击输入节点,在此指定回路过程变量的标定方式,根据外接模拟量输入情况,类型选择単极型,标定选项中设置过程变量范围0到27648,对应回路设定值范围0.0到100.0,该值是给定值占过程变量量程的百分比,在本例中也可以认为是工程量温度值。
点击输出节点,在此指定回路输出的标定方式,根据外接输出信号类型选择数字量,循环时间即PWM输出的周期,采用默认值0.1秒。
单击报警节点,在此设定回路报警选项,启用下限报警、上限报警、模拟量输入错误报警,指定报警上下限值以百分比表示,以及模拟量输入模块连接到PLC的位置。
单击代码节点,在此自定义向导生成的子程序和中断程序的名称,选择添加PID的手动控制,当处于手动模式时不执行PID计算,回路输出由程序控制。单击存储器分配节点,PID向导为完成PID运算需要120个字节的位存储器,为其指定起始地址,要保证程序中没有使用这些存储器,单击建议按钮向导将自动设定当前程序中未用的位存储器,这里我们采用VB0为起始地址。
单击组件节点,在此列出了PID向导生成的组件,包括一个初始化PID的子程序、一个用于循环执行PID功能的中断程序、一个120个字节的数据页以及一个符号表,单击生成按钮完成PID向导配置,向导生成的项目组件添加到了项目中。
查看向导生成的项目组件。在项目树中展开程序块下的向导文件夹,双击初始化PID子程序打开,该子程序是加密的,可以查看相关的子程序调用说明,变量表列出了子程序的接口参数定义,编程调用时可参考。双击PID功能中断子程序打开,该中断子程序也是加密的,请注意PID向导使用了定时中断0,编程时不能再使用此中断,否则会引起PID运行错误。
展开符号表下的向导文件夹,双击PID符号表打开,在此可以查看PID回路相关参数的符号及地址信息,不可更改,编程时可参考。展开数据块下的向导文件夹,双击PID数据页打开,该数据页是加密的,在此可以查看PID回路的PID算法相关参数,这样PID向导就配置完成了。
在编程软件STEP7-Micro/WIN SMART的指令树中,展开调用子例程文件夹,选择初始化PID向导子程序拖放到主程序中,该子程序有多个接口参数,切换到该子程序窗口,程序注释中指出需要在每个扫描周期使用SM0.0从主程序中调用该子程序,变量表给出有关接口参数的含义和取值范围。
回到主程序窗口,使能端插入一个常开触点,输入地址SM0.0,过程变量参数处输入模拟量输入地址AIW20,设定值参数处输入VD200,Auto_Manual处输入M0.0,ManualOutput处输入50.0,表示用M0.0控制自动与手动模式。配置PID向导时我们已经设置回路为数字量输出,因此手动模式时PID输出占空比为百分之五十,如果配置向导时没有添加PID手动控制,这两项不会出现。|
Output处输入Q1.6,用PWM输出驱动加热装置,HighAlarm、LowAlarm、ModulError处输入满足高低限报警、模块错误报警条件时相应的输出标志位,如果在配置向导时没有启用这些报警功能,相应的项也不会出现,这里我们分别输入Q0.0、Q0.1、Q0.2。另外,打开PID向导生成的符号表,查看各回路参数的详细地址,从而可以使用程序、状态图表、或从HMI设备上修改PID参数值进行编程调试,例如标准化过程变量的地址为VD0,如果想要得到实际工程量,需要编写程序转换。
插入实数相乘指令,在IN1处输入地址VD0,IN2处输入100.0,OUT处输入地址VD204,该指令把标准化的过程变量转化成了实际温度值存放在VD204中。对使用的地址进行符号定义,如下图所示,这样通过调用PID向导生成的子程序使温度保持在给定值的程序就编写完成了,最后,保存编译项目。
下面,我们来学习如何创建状态图表并利用状态图表来测试程序。首先我们来看一下如何创建状态图表。
创建状态图表。从符号表复制所需要监控的数据地址粘贴到状态图表中,切换寻址显示模式,设置合适的数据显示格式,如图所示,这样就快速创建了状态图表,单击保持按钮保存项目。
将数据地址粘贴到状态图表中并切换寻址显示模式
下载并测试。将项目下载到PLC中,将CPU置于RUN模式,在状态图表中持续监视,可以看到当前温度为30度左右,PID控制处于手动模式,加热器按照百分之五十的PWM工作。
温度持续升高,将给定值设置为80度,PID控制改为自动模式,温度向设定值方向变化,自动计算PID输出。
修改PID控制参数,观察控制器及被控变量状态,实际调试时可以利用PID整定控制面板,以图形方式来直观查看,并自整定PID控制参数。
接下来使用西门子S7-200 SMART PID整定控制面板自整定PID参数。首先我们介绍一下PID整定控制面板。左侧选择PID回路号,标定区域显示给定值、过程值、输出值以及高低限,均以百分比显示;图形显示区中用不同颜色的曲线显示了给定值、过程值以及输出值相对于时间的PID趋势图,其中过程值和给定值共用图形左侧的纵轴,输出使用图形右侧的纵轴;采样区域中采样时间是执行PID运算的时间间隔,只能在PID向导配置中更改,速率设置图形显示区所有显示值的采样更新速率,可以单击暂停按钮冻结图形、单击清除按钮清除图形;调节参数区域中显示增益、积分、微分参数的当前值,选择启用手动调节后在计算值列可以直接修改PID参数,在自动模式下单击启动按钮启动自整定,自整定完成后单击更新CPU按钮将自整定计算出的PID参数写入到CPU中;状态区域显示自整定过程状态。
单击选项按钮打开自整定参数设置的高级选项对话框,选中自动计算值复选框,自整定将自动计算滞后值和偏差值,不选中此项可以自行指定这些值;滞后值规定了允许过程值偏离设定值的最大正负范围;偏差值决定了允许过程值偏离设定值的峰-峰值;初始输出步就是输出变化的第一步变化量,以实际输出量程的百分比表示;看门狗时间规定过程变量必须在此时间内达到或穿越设定值;动态响应字段中根据回路过程的控制要求可选择不同的响应类型。
自整定。要使用PID控制面板必须与CPU通信,用PID向导配置生成一个PID回路,并将程序下载到CPU中,使CPU处于运行模式,在状态图表中将给定值设为60度,PID控制改为自动模式。
在工具菜单功能区单击PID控制面板按钮,打开PID整定控制面板对话框,选择回路0,先启动手动调节,输入PID参数,如增益改为5.0,单击更新CPU,使新输入的参数值起作用,监视趋势图,根据调节状况改变PID参数直至调节稳定,即过程值与设定值接近,且输出没有不规律的变化,并最好处于控制范围中心附近,此时可将手动调节改为自动调节,即自整定。
单击选项按钮,打开自整定参数设置高级选项,这里我们不做修改,单击启动按钮启动PID自整定功能,此时按钮变为停止,观察自整定过程状态,这时只需耐心等待,系统完成自整定后会自动将计算出的PID参数显示出来。请注意,要使用自整定功能必须保证PID回路处于自动模式,开始自整定后,给定值不能再改变。
当按钮再次变为启动时表示系统已经完成了自整定,单击更新CPU按钮,将PID自整定参数应用到PLC中。在状态图表中可以看到PID参数已经更新为新的整定参数。