西门子 S7-200 SMART 系列十三:实例详解用s7-200 smart 向导配置PID回路参数设定

原文链接:西门子 S7-200 SMART 系列十三:实例详解用s7-200 smart 向导配置PID回路&参数设定

pid-logo

在往期文章中介绍了s7-200 smart的通讯应用,Modbus RTU,S7通信,Profinet通信,TCP通信等,基本包含了S7-200 smart的

PID 功能概述

PID控制器(Proportion Integration Differentiation),俗称比例-积分-微分控制器,分别由比例单元(P)、积分单元(I)和微分单元(D)组成。通过调节比例、积分、微分三个环节的参数,可以使系统达到稳定、快速、精确的控制效果。

在生活中们我们也经常接触到PID,例如小区恒压供水、家用恒温水壶、平衡车等”恒“字辈产品,背后都有PID的身影,那么在工业应用中PID的应用就更多了,特别是化工、油脂等行业;常见的被控对象压力、流量、液位、温度等等,如需达到一个”平衡“的状态都离不开PID控制,本期内容将讲述如何使用s7-200 smart 向导配置PID控制器;

s7-200 smart PID 实现方式

S7-200 SMART CPU最多可以支持8个PID控制回路(8个PID指令功能块),有实力自己按照PID算法编程则不受8路控制(小编能力有限,不做讨论)

S7-200 SMART中PID功能实现方式主要有以下两种:

  • **PID指令块:**通过一个PID回路表交换数据,只接受0.0 - 1.0之间的实数(实际上就是百分比)作为反馈、给定与控制输出的有效数值。
  • **PID向导:**方便地完成输入/输出信号转换/标准化处理。PID指令同时会被自动调用。

在S7-200 SMART中PID功能是通过PID指令功能块实现。通过定时(按照采样时间)执行PID功能块,按照PID运算规律,根据当时的给定、反馈、比例-积分-微分数据,计算出控制量。

PID功能块通过一个PID回路表交换数据,这个表是在V数据存储区中的开辟,长度为36字节。因此每个PID功能块在调用时需要指定两个要素:PID控制回路号,以及控制回路表的起始地址(以VB表示)。

PID功能块只接受0.0 - 1.0之间的实数(实际上就是百分比)作为反馈、给定与控制输出的有效数值,如果是直接使用PID功能块编程,必须保证数据在这个范围之内,否则会出错。其他如增益、采样时间、积分时间、微分时间都是实数。

由于PID可以控制温度、压力等等许多对象,它们各自都是由工程量表示,因此,必须把外围实际的物理量与PID功能块需要的(或者输出的)数据之间进行转换。这就是所谓输入/输出的转换与标准化处理。S7-200 SMART的编程软件Micro/WIN SMART提供了PID指令向导,以方便地完成这些转换/标准化处理,同时,PID指令也同时会被自动调用。

PID2

通过向导实现PID功能

Micro/WIN SMART提供了PID Wizard(PID指令向导),可以帮助用户方便地生成一个闭环控制过程的PID算法。此向导可以完成绝大多数PID运算的自动编程,用户只需在主程序中调用PID向导生成的子程序,就可以完成PID控制任务。

PID向导既可以生成模拟量输出PID控制算法,也支持数字量输出;既支持连续自动调节,也支持手动参与控制。建议使用此向导对PID编程,以避免不必要的错误。编程步骤如下:

  1. 在工具菜单中选择PID向导,并勾选需要组态的PID回路号;

  2. 点击”下一步“,为回路组态命名;此部分的默认名称是“回路 x”,其中“x”等于回路编号。

    image-20240328164637353

  3. 点击”下一步“,设置PID回路参数;

    image-20240328165720709

    参数说明:

    增益(P): 即比例常数,默认值=1.00。

    积分时间(I):如果不想要积分作用可以将该值设置很大(比如10000.0),默认值=10.00。

    微分时间(D):如果不想要微分回路,可以把微分时间设为0 ,默认值=0.00。

    采样时间:是PID控制回路对反馈采样和重新计算输出值的时间间隔,,默认值=1.00。在向导完成后,若想要修改此数,则必须返回向导中修改,不可在程序中或状态表中修改。

    **注:关于具体的PID参数值,每一个项目都不一样,都需要现场调试来定,但是对于某些相同工艺,在实际应用中可用参考值快速试车,防止参数波动较大,影响生产安全。 **

  4. 点击”下一步“,设定回路过程变量(反馈值);

    image-20240328170136416

    注:这一步相当于对回路过程变量(PV)–反馈值进行标定;

    首先,指定回路过程变量 (PV) 如何标定。可以从以下选项中选择:

    1. **单极性:**即输入的信号为正,如0-10V或0-20mA等
    2. **双极性:**输入信号在从负到正的范围内变化。如输入信号为±10V、±5V等时选用
    3. **选用20%偏移:**如果输入为4-20mA则选单极性及此项,4mA是0-20mA信号的20%,所以选20% 偏移,即4mA对应5530,20mA对应27648。
    4. 温度 x 10 °C 即输入值除以10就是实际温度,单位℃(摄氏度);
    5. 温度 x 10 °F 即输入值除以10就是实际温度,单位℉(华氏度);

    然后,对输入信号信号进行标定,数字量对应工程量;图中”过程变量“即数字量输入值,回路设定值即模拟量对应量程;例如:输入4mA,过程变量对应553027648,对应压力输入010bar,则回路控制设定值范围010bar(设定值输入物理量010bar,PID内部自动转换成数字量5520~27648);

  5. 点击”下一步“,设定回路输出选项

    image-20240328171846404

    参数说明:

    **输出类型:**可以选择模拟量输出或数字量输出。模拟量输出用来控制一些需要模拟量给定的设备,如比例阀、变频器等;数字量输出实际上是控制输出点的通、断状态按照一定的占空比变化,可以控制固态继电器(加热棒等),根实际需求选择(此处选择模拟量);

    标定:同输入设定中标定一致;

  6. 点击”下一步“,设定回路报警选项:

    image-20240328172141229

    向导提供了三个输出来反映过程值(PV)的低值报警、高值报警及过程值模拟量模块错误状态。当报警条件满足时,输出置位为1。这些功能在选中了相应的选择框之后起作用。

    1. 使能低值报警并设定过程值(PV)报警的低值,此值为过程值的百分数,缺省值为0.10,即报警的低值为过程值的10%。此值最低可设为0.01,即满量程的1%
    2. 使能高值报警并设定过程值(PV)报警的高值,此值为过程值的百分数,缺省值为0.90,即报警的高值为过程值的90%。此值最高可设为1.00,即满量程的100%
    3. 使能过程值(PV)模拟量模块错误报警并设定模块于CPU连接时所处的模块位置。“EM0”就是第一个扩展模块的位置
  7. 点击”下一步“,定义向导所生成的PID初使化子程序和中断程序名及手/自动模式

    image-20240328172316050

    注:

    1. 如果你的项目中已经存在一个PID配置,则中断程序名为只读,不可更改。因为一个项目中所有PID共用一个中断程序,它的名字不会被任何新的PID所更改。
    2. PID向导中断用的是SMB34定时中断,在用户使用了PID向导后,注意在其它编程时不要再用此中断,也不要向SMB34中写入新的数值,否则PID将停止工作。
  8. 点击”下一步“,指定PID运算数据存储区

    image-20240328172456193

    注:PID指令(功能块)使用了一个120个字节的V区参数表来进行控制回路的运算工作;除此之外,PID向导生成的输入/输出量的标准化程序也需要运算数据存储区。需要为它们定义一个起始地址,要保证该地址起始的若干字节在程序的其它地方没有被重复使用。如果点击“建议”,则向导将自动为你设定当前程序中没有用过的V区地址。

  9. 点击”下一步“,生成PID子程序、中断程序及符号表,点击”生成完成配置“

    image-20240328172833512

  10. 配置完PID向导,需要在程序中调用向导生成的PID子程序

    image-20240328182749153

    注:必须用SM0.0来使能 PIDx_CTRL 子程序,SM0.0 后不能串联任何其他条件,而且也不能有越过它的跳转;如果在子程序中调用 PIDx_CTRL 子程序,则调用它的子程序也必须仅使用 SM0.0 调用,以保证它的正常运行

实际运行并调试PID参数

没有一个PID项目的参数不需要修改而能直接运行,因此需要在实际运行时调试PID参数。
查看数据块以及符号表相应的PID符号标签的内容,可以找到包括PID核心指令所用的控制回路表,包括比例系数、积分时间等等。将此表的地址复制到状态表中,可以在监控模式下在线修改PID参数,而不必停机再次做配置。
参数调试合适后,用户可以在数据块中写入,也可以再做一次向导,或者编程向相应的数据区传送参数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/777738.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码学习记录29----贪心最后一天

随想录日记part29 t i m e : time: time: 2024.03.28 主要内容:今天是学习贪心算法最后一天,接下来是针对题目的讲解:1.单调递增的数字;2.监控二叉树; 3. 总结 738.单调递增的数字 968.监控二叉树 总结 To…

通知中心架构:打造高效沟通平台,提升信息传递效率

随着信息技术的快速发展,通知中心架构作为一种关键的沟通工具,正逐渐成为各类应用和系统中必不可少的组成部分。本文将深入探讨通知中心架构的意义、设计原则以及在实际场景中的应用。 ### 什么是通知中心架构? 通知中心架构是指通过集中管…

Git_常用命令+代码冲突解决方案

文章目录 基本命令的使用查看git的当前版本初始化配置设置用户名及邮箱设置仓库的认证方式查看当前配置 创建仓库从远程服务器克隆仓库创建本地仓库 添加和提交文件工作区域和文件状态工作区域文件状态 查看文件状态及分支信息查看暂存区的内容添加文件提交文件查看提交日志回退…

verilog设计-cdc:多比特信号跨时钟域(DMUX)

一、前言 多比特一般为数据,其在跨时钟域传输的过程中有多种处理方式,比如DMUX,异步FIFO,双口RAM,握手处理。本文介绍通过DMUX的方式传输多比特信号。 二、DMUX同步跨时钟域数据 dmux表示数据分配器,该方…

ChatGLM3:AttributeError_ can‘t set attribute ‘eos_token‘

最近在微调 ChatGLM3-6b 时,训练好模型之后,调用inference_hf.py函数验证模型的时候报了如下错误,下面是解决方案。 我在训练时使用的是ptuning_v2.yaml配置文件,训练运行代码如下: CUDA_VISIBLE_DEVICES1 python fi…

3.Labview字符串与路径精讲(下) — 字符串及路径的使用

本章讲解labview中的字符串和路径具体实践用例,从前面板字符串属性到后面板字符串函数应用做出详细概述,通过本文的学习希望大家了解到字符串及路径在labview编程中的重要地位。 本系列文章为labview 从基础到强化到精通的学习文章,大家可以随…

Unity3d使用Jenkins自动化打包(Windows)(二)

文章目录 前言一、Unity工程准备二、Unity调取命令行实战一实战二实战三实战四实战五 总结 前言 自动化打包的价值在于让程序员更轻松地创建和管理构建工具链,提高编程效率,将繁杂的工作碎片化,变成人人(游戏行业特指策划&#x…

RegSeg 学习笔记(待完善)

论文阅读 解决的问题 引用别的论文的内容 可以用 controlf 寻找想要的内容 PPM 空间金字塔池化改进 SPP / SPPF / SimSPPF / ASPP / RFB / SPPCSPC / SPPFCSPC / SPPELAN  ASPP STDC:short-term dense concatenate module 和 DDRNet SE-ResNeXt …

如何为企业策划一场XR虚拟直播?

活动年年办,都是老一套,想玩点新花样? 预算有限,但还是想把活动办的逼格高一点? 想通过活动,让更多的人知道自己企业的品牌? 随着AIGC技术的不断演变,企业活动的形式和内容也在不…

Linux中的vim/vi编辑器

VI 是 Unix 操作系统和类 Unix 操作系统中最通用的文本编辑器。 VIM 编辑器是从 VI 发展出来的一个性能更强大的文本编辑器,可以说是:编辑器之神。可以主动的以字体颜 色辨别语法的正确性,方便程序设计。VIM 与 VI 编辑器完全兼容。 一:三种…

MoonBit MeetUp回顾——张正、宗喆:编程语言在云原生与区块链领域的技术探索

宗喆和张正分别给我们带了 KCL 相关的最新进展,由蚂蚁集团开发的 Rust 编写的开源 DSL,目标是优化云原生策略配置和用户体验。它通过引入动态配置管理、配置校验和基础设施抽象等核心概念,解决开发者认知负担、配置膨胀和标准化工具缺乏的问题…

Unity AI Navigation自动寻路

目录 前言一、Unity中AI Navigation是什么?二、使用步骤1.安装AI Navigation2.创建模型和材质3.编写向目标移动的脚本4.NavMeshLink桥接组件5.NavMeshObstacle组件6.NavMeshModifler组件 三、效果总结 前言 Unity是一款强大的游戏开发引擎,而人工智能&a…

Swagger添加JWT验证(ASP.NET)

文章目录 JWT1、解析2、配置JWT JWT 1、解析 1)客户端向授权服务系统发起请求,申请获取“令牌”。 2)授权服务根据用户身份,生成一张专属“令牌”,并将该“令牌”以JWT规范返回给客户端 3)客户端将获取到的…

Kafka重要配置参数全面解读(重要)

欢迎来到我的博客,代码的世界里,每一行都是一个故事 Kafka重要配置参数全面解读(重要 前言auto.create.topics.enableauto.leader.rebalance.enablelog.retention.{hour|minutes|ms}offsets.topic.num.partitions 和 offsets.topic.replication.factorlo…

php 快速入门(七)

一、操作数据库 1.1 操作MySQL的步骤 第一步:登录MySQL服务器 第二步:选择当前数据库 第三步:设置请求数据的字符集 第四步:执行SQL语句 1.2 连接MySQL 函数1:mysql_connect() 功能:连接(登录…

软件概要设计说明书word原件(实际项目)

一、 引言 (一) 编写目的 (二) 范围 (三) 文档约定 (四) 术语 二、 项目概要 (一) 建设背景 (二) 建设目标 (三&a…

分类任务中的评估指标:Accuracy、Precision、Recall、F1

概念理解 T P TP TP、 T N TN TN、 F P FP FP、 F N FN FN精度/正确率( A c c u r a c y Accuracy Accuracy) 二分类查准率 P r e c i s i o n Precision Precision,查全率 R e c a l l Recall Recall 和 F 1 − s c o r e F1-score F1−s…

ChatGPT 商业金矿(上)

原文:ChatGPT Business Goldmines 译者:飞龙 协议:CC BY-NC-SA 4.0 第一章:为什么我写这本书 欢迎阅读《ChatGPT 多源收入:20 个利润丰厚的业务,任何人都可以在一周内使用 ChatGPT 开始》。我很高兴分享我…

<QT基础(5)>事件监听

事件监听 事件监听(Event Handling)是在程序中监视和响应发生的事件的一种机制。在Qt中,事件监听是一种常见的用于处理用户输入、系统事件以及其他类型事件的方法。通过事件监听,您可以在发生特定事件时捕获事件并执行相应的操作…

【案例·增】获取当前时间、日期(含,SQL中DATE数据类型)

问题描述: 需要使用当前时间、日期,可以使用 SQL 中的 CURDATE() 、NOW()、CURTIME()运算符 案例: INSERT INTO table_name(current_time, column_name2,...) VALUES (NOW(),, ...)规则(Date 相关函数): 规则(Date数据类型)