S7-1200 中提供了被称为Compact PID 的回路控制功能,Compact PID 定位于中低段回路控
制应用。
从易用性角度来讲,Compact PID 比以前有了很大进步,下面把Compact PID 的使用方法简
单介绍一下。
Compact PID 的控制功能通过一个FB 块实现, 每条回路的参数则保存在所谓的
"Technological object"中,以下简称TO。要控制几条回路就要添加相应数量的TO。每控制
一条回路就需要调用一次FB 块。通过在FB 调用时指定使用不同的TO 来实现对不同回路
的控制。
第一步:添加TO 并作基本设置
在PLC 站下有一个"Technological objects"的文件夹,双击其中的"Add new object"
选择添加"PID controller"。
如果左下角的"Add new and open"是勾选的,添加TO 后会自动打开TO 编辑器。也可以通过
双击TO 下的"Configuration"来打开TO 编辑器。在TO 编辑器中对控制回路作基本的设置。
几点说明:
1、"Invert PID controller output":当PID 输出增大会导致输入减小时需要勾选(比如通过控
制冷却设备来控制温度时)
2、"Input_PER(analog)":当PID 输入直接来自模拟量输入模块时选择。
3、"Input":当PID 输入来自于PLC 内部变量时选择,如来自于DB 块或M 区变量
4、"Output_PER":当PID 输出直接输出直模拟量输出模块时选择
5、"Output":当PID 输出输出至PLC 内部变量时选择
6、"Output_PWM":当输出至PWM 时选择
7、为什么setpoit, Inputvalue 和Output Value 的实际值都是灰的? 答:这些要在FB 调用并
选择了该TO 时才能填写。
第二步:在循环中断OB 中调用Compact PID 的FB 块
在添加了"PID controller"的TO 后,用于Compact PID 控制的FB 块会自动被添加到"Program
blocks"文件夹下。该FB 块也可以从"Extended instructions"中手动添加。
Compact PID 需要在循环中断OB 中调用以保证采样周期和输出时间间隔的确定性。因此,
首先添加一个循环中断OB。
双击"Add new block",在弹出对话框中选择添加"Cyclic interrupt"。"Scan time"以毫秒为单位,
指该OB 中的程序在PLC 运行时每隔多少毫秒执行一次,这也就是你PID 控制的采样周期。
将Compact PID 的FB 块拖到新添加的循环中断OB 中。熟悉Step7 的人都知道,FB 块在调
用时要指定instance DB(一直以来翻译成背景数据块,但是我个人习惯把它称为iDB),而
对于Compact PID,它的iDB 就是TO。因此,要控制哪条回路,就选择那条回路的TO 作
为iDB。实际上TO 本质上就是一个DB 块,只不过不能用普通的DB 编辑器编辑罢了。
第三步:填写Compact PID 管角
Compact PID 的属性页里提供了一个配置界面,以帮助用户填写管角。这个配置界面与TO
的编辑器实际上是一回事,但在这里"setpoit, input, output"是可以编辑的,不过与TO 编辑器

相比少了"Advanced settings"选项页。
总体来讲,这个配置界面使用起来还是比较容易的。只有一点比较迷惑人的地方需要说明,
就是其中的"Value from instance data block"和"Value at function block"选项
我相信,绝大多数用户都习惯于将变量或数值直接填写到FB 的管角上,因此对于绝大多数
用户,只要选择"Value at function block"就可以了。实际上在程序执行时,管角上的变量或
数值会自动copy 到iDB 的相应位置上。
对于少部分高手,他们不屑于在管角上填写变量或数值,因为他们知道这些变量或数值最终
会copy 到iDB 里,所以他们索性自己动手,这样他们的程序别人不容易读懂。比如用户可
以在setpoint 管角上填写"MD100" , 也可以用move 指令将MD100 的值写到
"PID_Compact_1"."Setpoint"里,最终的效果是一样的。其实在配置界面里提供这个选项有点
多此一举,因为绝大多数普通用户都用不到,而对于真正的高手,即使没有这个选项他们也
会这么作的。
配置界面还有一个选项页叫"Input scaling"用于将输入值进行量程转换。我不知道为什么在这
里没有提供启用/禁用的选项,所以输入值的量程一直是被转换的。如果你确实不需要量
程转换,只要把原始值和"scaled value"设置成一样就行了。
所有参数添好以后就可以将程序下载到PLC 了。
第四步:整定PID 参数
下载之后,打开在线监控,你会发现FB 看起来在正常运行,但是无论怎么改变设置值
(setpoint),输出始终是0。
这是因为你还没有对PID 进行整定。Compact PID 只有在进行整定之后才可以正常运行。
点击Compact PID 上的"commissioning"按钮或者双击TO 下的"commissioning"打开调试工
具。
在调试工具中首先点击"Start measurement",再点击"Start tuning",系统便开始对PID 进行自
动整定
Compact PID 有两种自整定模式,一种是"Startup tuning",另一种是"Tuning in run"。两种模
式到底有什么区别我不太清除,只知道"Tuning in run"的算法更复杂一些,需要的时间也更
长。有时候"Startup tuning"无法找到优化的PID 参数时,系统会提示用户使用"Tuning in run"
模式进行自整定。
整定过程中:

整定结束,自动切换为自动模式:
注意:这时,整定好的PID 参数还只保存在CPU 中,可以通过点击左下角的"Upload PID
parameters to project"把参数上载到项目中以便以后下载直接使用。如果你忘记了上载PID 参
数,再次下载项目后就需要重新走一遍自整定过程。点击"Upload PID parameters to project"
按钮后系统没有任何反馈,这确实是个易用性问题,以后会改进,不过当你打开TO 编辑器
选择PID parameter 选项页时,可以看到参数已经上载回来了。
对于Compact PID,建议大家不要使用手动的PID 参数,因为它并不是标准的PID 算法,手
动PID 参数不会得到很好的效果。即使是你把上载的PID 参数抄下来原封不动的放到另一
个TO 里控制同一个对象,效果也未必会理想,因为有一些参数是没有显示出来了。所以唯
一的办法就是保存好。

S7-1200 中提供了被称为Compact PID 的回路控制功能相关推荐

  1. 在s7 1200中模拟量的应用

    模拟量 概念:随着时间连续变化的物理量被称为模拟量.例如:电压.电流.压力.速度.流量.温度等信号.通常电压信号为0~10V,电流信号为4~20mA,可以用PLC的模拟量模块进行数据采集,其经过抽样和 ...

  2. Spring Boot错误–创建在类路径资源DataSourceAutoConfiguration中定义的名称为“ dataSource”的bean时出错...

    大家好,如果您使用的是Spring Boot,并且遇到诸如"无法为数据库类型NONE确定嵌入式数据库驱动程序类"或"在类路径资源ataSourceAutoConfigur ...

  3. PLC实验—西门子S7 1200读取旋转编码器数据并计算电机转速

    PLC实验-西门子S7 1200读取旋转编码器数据并计算电机转速 注意PTO控制步进电机实验博途软件需要V14版本,不然没有PTO功能块 软件的下载请点击下方百度网盘的链接 链接:https://pa ...

  4. opencv-python 详解直方图均衡(二)《再详细介绍直方图以及OpenCV中提供的函数使用》

    作者:RayChiu_Labloy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 目录 传送门: 详解直方图均衡(一)<图像增强.灰度变换和直方图均衡化关系> ...

  5. xmos驱动_XMOS推出了Xcore.ai处理器,单个设备中提供高性能AI,DSP,控制和IO,价格从1美元起!...

    作者:XMOS,排版整理:晓宇 微信公众号:芯片之家(ID:chiphome-dy) 近日,英国半导体科技公司XMOS宣布推出Xcore.ai ,它是一款面向AIoT市场的超强性能跨界处理器,该处理器 ...

  6. 西门子plc s-7 1200驱动伺服电机方法

    西门子plc s-7 1200驱动伺服电机方法 前言 完整设备连接 驱动实际接线图 程序编写 新建项目 添加工艺对象 配置工艺对象 程序编写 启动方法 选择工作模式 前言 其实,伺服电机还用另外两种工 ...

  7. PLC实验—西门子S7 1200 PID控制步进电机转速

    PLC实验-西门子S7 1200 PID控制步进电机转速 严格讲并不是PID控制,因为并不是并不研究这个方向,研二又比较忙,时间限制只加了比例系数 这里只是抛砖引玉,希望大家可以进一步完善补充 思路 ...

  8. 网络上连接的计算机必须要安装,[单选] Windows XP中提供了三种组件,实现不同的网络功能。如果计算机需要连接到Internet,必须安装()。...

    [单选] Windows XP中提供了三种组件,实现不同的网络功能.如果计算机需要连接到Internet,必须安装(). 更多相关问题 [单选] 乙炔与空气或氧气混合达到自燃温度在()下也能爆炸 [单 ...

  9. oracle中yest,DBFS就是Oracle数据库11gR2中提供的能够将Oracle数据库当成文件系统来使用的功能...

    简单的来说,DBFS就是Oracle数据库11gR2中提供的能够在Linux操作系统中将Oracle数据库当成文件系统来使用的功能.在DBFS内部,文件是以SecureFiles LOBs(对比与以前 ...

  10. Django中提供的6种缓存方式

    由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用: 缓存,缓存将一个某个views的返回值保存至内存或者memcache中, ...

最新文章

  1. C#如何根据DataTable生成泛型List或者动态类型list
  2. React native 浏览器调试
  3. Golang Context包的使用
  4. quratz数据存储
  5. PID控制器改进笔记之三:改进PID控制器之正反作用
  6. 聚宽macd底背离_许多散户不知道:MACD月线金叉,MACD月金叉都会带来一波牛市!...
  7. 推荐几款好用的模态框附带教程
  8. STL标准模版库---set操作
  9. xp3+vs2010+opencv2.4.4配置说明
  10. 关于广告投放系统:竞价策略(2018)
  11. kotlin serialization 使用指南(一)
  12. 计算机主板与检测,主板知识详解:CPU自动检测和硬件错误的侦测
  13. 利用html和js输入数字转换为中文大写示例。
  14. (转) 咖啡猫的至理名言
  15. 编译ASP.NET网站项目,以及部署网站到本地localhost服务器上实现独立运行
  16. i是j的倍数c语言编程,c语言编程一些常见小程序.docx
  17. 【概率论】几种常见的概率分布表
  18. 不同路径中的文件如何批量改名的实用技巧
  19. 文献翻译__人工智能时代医学图像重建中的凸优化算法(第4、5、6章)
  20. 阿里云手机系统之我见

热门文章

  1. I2C eeprom调试经验
  2. excel vba高手无用武之地
  3. Spring boot启动报“Application failed to start with classpath“错误
  4. 2021 AI年度报告-stateof.ai出品【2】
  5. wifi压力测试工具_【案例分享】利用手持式测试工具对建筑控制系统快速排障的方法...
  6. CentOs7 命令合集
  7. 学不会 Android Framework,是不是基础不牢固?
  8. 测试大神博客及资料收藏
  9. 手机游戏影响游戏主机发展的5个方面
  10. JavaSE_IO流_3