西门子S7-200 SMART PID控制实例,如何配置PID向导、调用子程序?如何创建状态图表测试程序?如何自整定PID参数?

简介: PID控制器是应用最广泛的闭环控制器,它根据给定值与被控变量实测值之间的偏差,按照PID算法计算出控制器的输出量控制执行机构进行调节,使被控量跟随给定量进行变化并使系统达到稳定,自动消除各种干扰对控制过程的影响,其中P、I、D分别指比例、积分、微分。

PID控制器是应用最广泛的闭环控制器,它根据给定值与被控变量实测值之间的偏差,按照PID算法计算出控制器的输出量控制执行机构进行调节,使被控量跟随给定量进行变化并使系统达到稳定,自动消除各种干扰对控制过程的影响,其中P、I、D分别指比例、积分、微分。


640.jpg

PID控制原理图

   

在西门子S7-200 SMART中,PID控制功能通过PID指令来实现。编程软件STEP7-Micro/WIN SMART提供了PID向导,可以帮助用户组态PID控制和生成PID子程序,方便快捷的完成PID控制编程任务,支持8路PID功能、自动/手动切换以及PID整定。


640.jpg

PID回路向导

   

STEP7-Micro/WIN SMART还提供了PID整定控制面板,允许以图形方式监视PID回路行为,还可以启动、停止自整定功能。下面我们来进行S7-200 SMART PID回路控制的使用练习:利用PID向导编写程序,使温度保持在给定值,并对PID参数进行整定。


640.jpg

PID整定控制面板

   

任务描述。本次实验设备中利用温度变送器将0-100℃的温度转换为0-10V的电压信号,送到扩展模块EM AM06的模拟量输入通道2。加热器用Q1.6输出的PWM脉冲来控制。需要说明的是,EM AM06将模拟量输入0-10V电压信号转换为数字量,对应数字范围为0-27648,传送到S7-200 SMART CPU的AI存储器中。


640.jpg

实验任务描述

   

硬件组态。打开编程软件STEP7-Micro/WIN SMART创建新项目,在项目树中双击CPU打开,根据实际配置CPU选择SR40,扩展模块EM0选择AM06,启用模块电源报警。单击模拟量输入节点下的通道2,通道地址为AIW20,类型组态为电压,范围选择+/-10V,平滑采用默认的4个周期,启用超出上限报警和超出下限报警,单击确定按钮完成硬件组态。


640.jpg

硬件组态

   

配置PID向导。在工具菜单功能区单击PID按钮打开PID回路向导对话框,选择要组态的回路,最多可组态8个回路,这里我们选择回路0。


640.jpg

选择回路0

   

在左侧的树视图中单击回路0节点,在此定义回路名称。单击参数节点,在此设置回路参数,如果不需要比例作用,增益设置为0.0,如果不需要积分作用,积分时间设置为无穷大值INF,如果不需要微分作用,微分时间设置为0.0,采样时间是PID控制回路对反馈采样以及重新计算输出值的时间间隔,这里我们均采用默认值,后面在实验中进行自整定。


640.jpg

设置回路参数

   

单击输入节点,在此指定回路过程变量的标定方式,根据外接模拟量输入情况,类型选择単极型,标定选项中设置过程变量范围0到27648,对应回路设定值范围0.0到100.0,该值是给定值占过程变量量程的百分比,在本例中也可以认为是工程量温度值。


640.jpg

设置输入参数

   

点击输出节点,在此指定回路输出的标定方式,根据外接输出信号类型选择数字量,循环时间即PWM输出的周期,采用默认值0.1秒。


640.jpg

设置输出参数

   

单击报警节点,在此设定回路报警选项,启用下限报警、上限报警、模拟量输入错误报警,指定报警上下限值以百分比表示,以及模拟量输入模块连接到PLC的位置。


640.jpg

报警参数设置

   

单击代码节点,在此自定义向导生成的子程序和中断程序的名称,选择添加PID的手动控制,当处于手动模式时不执行PID计算,回路输出由程序控制。单击存储器分配节点,PID向导为完成PID运算需要120个字节的位存储器,为其指定起始地址,要保证程序中没有使用这些存储器,单击建议按钮向导将自动设定当前程序中未用的位存储器,这里我们采用VB0为起始地址。


640.jpg

添加PID手动控制

   

单击组件节点,在此列出了PID向导生成的组件,包括一个初始化PID的子程序、一个用于循环执行PID功能的中断程序、一个120个字节的数据页以及一个符号表,单击生成按钮完成PID向导配置,向导生成的项目组件添加到了项目中。


640.jpg

项目组件列表

   

查看向导生成的项目组件。在项目树中展开程序块下的向导文件夹,双击初始化PID子程序打开,该子程序是加密的,可以查看相关的子程序调用说明,变量表列出了子程序的接口参数定义,编程调用时可参考。双击PID功能中断子程序打开,该中断子程序也是加密的,请注意PID向导使用了定时中断0,编程时不能再使用此中断,否则会引起PID运行错误。


640.jpg


查看项目组件

   

展开符号表下的向导文件夹,双击PID符号表打开,在此可以查看PID回路相关参数的符号及地址信息,不可更改,编程时可参考。展开数据块下的向导文件夹,双击PID数据页打开,该数据页是加密的,在此可以查看PID回路的PID算法相关参数,这样PID向导就配置完成了。


640.jpg


PID符号表


   

在编程软件STEP7-Micro/WIN SMART的指令树中,展开调用子例程文件夹,选择初始化PID向导子程序拖放到主程序中,该子程序有多个接口参数,切换到该子程序窗口,程序注释中指出需要在每个扫描周期使用SM0.0从主程序中调用该子程序,变量表给出有关接口参数的含义和取值范围。


640.jpg

拖放初始化PID向导子程序

   

回到主程序窗口,使能端插入一个常开触点,输入地址SM0.0,过程变量参数处输入模拟量输入地址AIW20,设定值参数处输入VD200,Auto_Manual处输入M0.0,ManualOutput处输入50.0,表示用M0.0控制自动与手动模式。配置PID向导时我们已经设置回路为数字量输出,因此手动模式时PID输出占空比为百分之五十,如果配置向导时没有添加PID手动控制,这两项不会出现。


640.jpg

设置参数地址

   

Output处输入Q1.6,用PWM输出驱动加热装置,HighAlarm、LowAlarm、ModulError处输入满足高低限报警、模块错误报警条件时相应的输出标志位,如果在配置向导时没有启用这些报警功能,相应的项也不会出现,这里我们分别输入Q0.0、Q0.1、Q0.2。另外,打开PID向导生成的符号表,查看各回路参数的详细地址,从而可以使用程序、状态图表、或从HMI设备上修改PID参数值进行编程调试,例如标准化过程变量的地址为VD0,如果想要得到实际工程量,需要编写程序转换。


640.jpg

查看符号表

   

插入实数相乘指令,在IN1处输入地址VD0,IN2处输入100.0,OUT处输入地址VD204,该指令把标准化的过程变量转化成了实际温度值存放在VD204中。对使用的地址进行符号定义,如下图所示,这样通过调用PID向导生成的子程序使温度保持在给定值的程序就编写完成了,最后,保存编译项目。


640.jpg

编写程序


下面,我们来学习如何创建状态图表并利用状态图表来测试程序。首先我们来看一下如何创建状态图表。


640.jpg

复制所需的数据地址

   

创建状态图表。从符号表复制所需要监控的数据地址粘贴到状态图表中,切换寻址显示模式,设置合适的数据显示格式,如图所示,这样就快速创建了状态图表,单击保持按钮保存项目。


640.jpg

将数据地址粘贴到状态图表中并切换寻址显示模式


下载并测试。将项目下载到PLC中,将CPU置于RUN模式,在状态图表中持续监视,可以看到当前温度为30度左右,PID控制处于手动模式,加热器按照百分之五十的PWM工作。


640.jpg

状态图表中监视PID参数

   

温度持续升高,将给定值设置为80度,PID控制改为自动模式,温度向设定值方向变化,自动计算PID输出。


640.jpg

PID设为自动模式

   

修改PID控制参数,观察控制器及被控变量状态,实际调试时可以利用PID整定控制面板,以图形方式来直观查看,并自整定PID控制参数。


640.jpg

修改PID控制参数观察控制器及被控变量状态


接下来使用西门子S7-200 SMART PID整定控制面板自整定PID参数。首先我们介绍一下PID整定控制面板。左侧选择PID回路号,标定区域显示给定值、过程值、输出值以及高低限,均以百分比显示;图形显示区中用不同颜色的曲线显示了给定值、过程值以及输出值相对于时间的PID趋势图,其中过程值和给定值共用图形左侧的纵轴,输出使用图形右侧的纵轴;采样区域中采样时间是执行PID运算的时间间隔,只能在PID向导配置中更改,速率设置图形显示区所有显示值的采样更新速率,可以单击暂停按钮冻结图形、单击清除按钮清除图形;调节参数区域中显示增益、积分、微分参数的当前值,选择启用手动调节后在计算值列可以直接修改PID参数,在自动模式下单击启动按钮启动自整定,自整定完成后单击更新CPU按钮将自整定计算出的PID参数写入到CPU中;状态区域显示自整定过程状态。


640.jpg

PID整定控制面板

   

单击选项按钮打开自整定参数设置的高级选项对话框,选中自动计算值复选框,自整定将自动计算滞后值和偏差值,不选中此项可以自行指定这些值;滞后值规定了允许过程值偏离设定值的最大正负范围;偏差值决定了允许过程值偏离设定值的峰-峰值;初始输出步就是输出变化的第一步变化量,以实际输出量程的百分比表示;看门狗时间规定过程变量必须在此时间内达到或穿越设定值;动态响应字段中根据回路过程的控制要求可选择不同的响应类型。


640.jpg

高级选项

   

自整定。要使用PID控制面板必须与CPU通信,用PID向导配置生成一个PID回路,并将程序下载到CPU中,使CPU处于运行模式,在状态图表中将给定值设为60度,PID控制改为自动模式。


640.jpg

状态图表

   

在工具菜单功能区单击PID控制面板按钮,打开PID整定控制面板对话框,选择回路0,先启动手动调节,输入PID参数,如增益改为5.0,单击更新CPU,使新输入的参数值起作用,监视趋势图,根据调节状况改变PID参数直至调节稳定,即过程值与设定值接近,且输出没有不规律的变化,并最好处于控制范围中心附近,此时可将手动调节改为自动调节,即自整定。


640.jpg

手动调节改为自动调节

   

单击选项按钮,打开自整定参数设置高级选项,这里我们不做修改,单击启动按钮启动PID自整定功能,此时按钮变为停止,观察自整定过程状态,这时只需耐心等待,系统完成自整定后会自动将计算出的PID参数显示出来。请注意,要使用自整定功能必须保证PID回路处于自动模式,开始自整定后,给定值不能再改变。


640.jpg

完成自整定

   

当按钮再次变为启动时表示系统已经完成了自整定,单击更新CPU按钮,将PID自整定参数应用到PLC中。在状态图表中可以看到PID参数已经更新为新的整定参数。


640.jpg

参数已改变


相关文章
|
6天前
|
JavaScript 测试技术
Vue 3 单元测试实例
Vue 3 单元测试实例
16 4
|
8天前
|
数据采集 自然语言处理 数据库
深入体验阿里云通义灵码:测试与实例展示
阿里云通义灵码是一款强大的代码生成工具,支持自然语言描述需求,快速生成高质量代码。它在测试、代码质量和用户体验方面表现出色,能够高效地生成 Python 和 Java 等语言的代码,助力开发者提升开发效率和代码质量。无论是新手还是资深开发者,都能从中受益匪浅。
|
1月前
|
机器学习/深度学习 JSON 算法
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
本文详细介绍了使用YOLOv5-Seg模型进行图像分割的完整流程,包括图像分割的基础知识、YOLOv5-Seg模型的特点、环境搭建、数据集准备、模型训练、验证、测试以及评价指标。通过实例代码,指导读者从自定义数据集开始,直至模型的测试验证,适合深度学习领域的研究者和开发者参考。
359 3
实例分割笔记(一): 使用YOLOv5-Seg对图像进行分割检测完整版(从自定义数据集到测试验证的完整流程)
|
15天前
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
17 1
|
30天前
|
机器学习/深度学习 弹性计算 自然语言处理
前端大模型应用笔记(二):最新llama3.2小参数版本1B的古董机测试 - 支持128K上下文,表现优异,和移动端更配
llama3.1支持128K上下文,6万字+输入,适用于多种场景。模型能力超出预期,但处理中文时需加中英翻译。测试显示,其英文支持较好,中文则需改进。llama3.2 1B参数量小,适合移动端和资源受限环境,可在阿里云2vCPU和4G ECS上运行。
|
1月前
|
分布式计算 Hadoop Shell
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
Hadoop-35 HBase 集群配置和启动 3节点云服务器 集群效果测试 Shell测试
69 4
|
1月前
|
运维 监控 数据可视化
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
62 1
|
1月前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
44 1
|
1月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
120 0
|
6天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
34 3