step7 PID功能块详解 点击:1970 | 回复:13



challenge

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:78帖 | 200回
  • 年度积分:0
  • 历史总积分:444
  • 注册:2004年11月04日
发表于:2005-09-26 18:02:00
楼主
PID控制软件包包括以下几部分 􀀹 CONT_C、 CONT_S和PULSEGEN功能模块 PID控制的概念 PID控制软件包里的功能块包括连续控制功能块CONT_C,步进控制功能块CONT_S以及具有脉冲调制功能的PULSEGEN。 控制模块利用其所提供的全部功能可以实现一个纯软件控制器。循环扫描计算过程所需的全部数据存储在分配给FB的数据区里,这使得无限次调用FB变成可能。功能块PULSEGEN一般用来连接CONT_C,以使其可以产生提供给比例执行器的脉冲信号输出。 基本功能 在功能块组成的控制器中,有一系列你可以通过设置使其有效或无效的子功能。除了实际采用PID算法的控制器外,还包括给定点值处理、过程变量处理以及调整操作值范围等功能。 应用 用两个控制模块组成控制器就可以突破局限的特定应用。控制器的性能和处理速度只与所采用的CPU性能有关。对于任意给定的CPU,控制器的数量和每个控制器被调用的频率是相互矛盾的。控制环执行的速度,或者说,在每个时间单元内操作值必须被更新的频率决定了可以安装的控制器的数量。对要控制的过程类型没有限制,迟延系统(温度、液位等)和快速系统(流量、电机转速等)都可以作为控制对象。 过程分析 注意:控制过程的静态性能(比例)和动态性能(时间延迟、 死区和重设时间等)对被控过程控制器的构造和设计以及静态(比例)和动态参量(积分和微分)的维数选取有着很大的影响。准确地了解控制过程的类型和特性数据是非常必要的。 控制器的选取 注意:控制环的特性由被控过程或被控机械的物理特性决定,并且我们可以改变的程度不是很大。只有选用了最适合被控对象的控制器并使其适应过程的响应时间,才能得到较高的控制质量。 生成控制器 不用通过编程你就可以生成控制器的大部分功能(构造、参数设置和在程序中的调用等),前提是你掌握了STEP 7的编程知识。 在线帮助 STEP 7的在线帮助同样也可以为你提供各种功能块的帮助信息 进一步帮助 PID控制器是标准控制器的子集,想得到标准控制器进一步的资料,请参阅/350/ 参数设置 调用参数分配用户界面 在Windows95下按照下面的选项调用PID控制器的参数设置用户界面Start—SIMATIC_Step 7—PID Control ParameterAssignment 在第一个对话框中你可以打开一个已经存在的CONT_C或CONT_S的背景数据块,或者你新建一个数据块作为功能的背景数据块。如果你新建了一个新的背景数据块,你会被提示将这个数据块分配给某一个功能块。FB43 PULSEGEN没有参数设置的界面,你必须用STEP 7的工具给其分配参数。 在线帮助 当你给控制模块设置参数时可以使用参数设置用户界面的在线帮助,你可以以三种方式调用在线帮助 􀀹 用菜单选项中的Help 􀀹 按下F1键 􀀹 按下参数设置用户界面里的帮助按钮 用功能块FB41“CONT_C”实现连续控制 简介 在SIMATIC S7 可编程控制器上,功能块FB41用来控制具有连续输入输出的技术过程。在参数设置过程中,你可以通过参数设置来激活或取消激活PID控制的某些子功能来设计适应过程需要的控制器 应用 你可以将其作为一个给定点PID控制器,或者在多环路控制中作为串级、混合或比率控制器。控制器的算法是基于具有模拟输入信号的采样PID控制。如果扩展需要的话可以引入一个脉冲发生器,来产生具有脉宽调制的操作值输出,以提供给带有比例执行器的两级或三级步进控制器。 描述 除了给定点和过程变量分支的功能外,FB自己就可以实现一个完整的具有连续操作值输出并且具有手动改变操作值功能的PID控制器,下面你会找到各子功能的详细描述 给定点分支 给定点的值以浮点形式在SP_INT处输入。 过程变量分支 过程变量可以从外设直接输入到PV_PER或以浮点PV-IN形式输入,功能CRP_IN将从外设来的值PV-PER转化成范围在-100%~100%之间的浮点形式,根据下面的法则进行转换: CRP_IN = PV_PER*100/27648 功能PV_NORM根据下面的法则标准化输出CRP_IN PV_NORM的输出 = ( CRP_IN的输出) * PV_FAC + PV_OFF PV_FAC和PV_OFF的默认值分别为1和0 误差信号 误差是给定点和过程变量之间的差值。为了抑制由于控制量量化而引起的小扰动(例如,控制量由于其执行电子管的有限分辨率),可将死区功能DEADBAND运用在误差信号上。如果DEADB_W = 0,则死区就不起作用。 PID算法 此处PID算法是位置式的,比例、积分和微分作用并联并且可以分别激活或取消激活。这样就可以分别构造P、PI、PD以及PID控制器,纯比例控制器或纯微分控制也是可以的。 手动值 可以在手动和自动模式之间切换,在手动模式下,操作值可以由一个手动选择值来设定,积分器在内部设定为 LMN(操作值) - LMN_P(比例操作值) - DISV(扰动), 微分器设定为0并且在内部进行同步,这意味着当转换到自动模式后,不会引起操作值的突然改变。 操作值 利用LMNLIMIT功能可以将操作值限定在所选的值范围内,输入值引起的输出超过界限时会在信号位上表现出来,功能LMN_NORM根据下面的公式标准化LMNLIMIT的输出 LMN=LMNLIMIT的输出×LMN_FAC+LMN_OFF LMN_FAC和LMN_OFF的默认值分别为1和0 操作值也可以直接输出到外设,功能CRP_OUT将浮点形式的值LMN根据下面的公式转化成能输出到外设式的值: LMN_PER = LMN × 100/27648 前馈控制 扰动可以作为前馈信号从DISV处输入。 模式 Complete Restart/Restart 当输入参数COM_RST为真时,FB41 “CONT_C”开始执行完全重启的程序。在此过程中,积分器被设定为初始值I_ITVAL,当它被一个中断优先级更高地调用时,它就以这个值来继续工作,其他所有的输出值都被设定为默认值。 误差信息 模块并不检查误差,误差输出参数RET_VAL并没有用到模块图输入参数 参数 数据类型 数据范围默认值描述COM_RST BOOL FALSE 完全重启,当为真时执行重启程序 MAN_ON BOOL TRUE 手动操作,若为真,控制环中断,操作值手动设定 PVPER_ON BOOL FALSE 过程变量直接从外设输入 P_SEL BOOL TRUE 为真则比例控制起作用 I_SEL BOOL TRUE 为真则积分控制起作用 D_SEL BOOL FALSE 为真则微分控制起作用 INT_HOLD BOOL FALSE 为真则积分控制的输出不变 I_ITL_ON BOOL FALSE 为真,使积分器的输出为I_ITLVAL CYCLE TIME >=1ms T#1s 采样时间SP_INT REAL -100~100%或者物理量0.0 内部的给定点的输入值 PV_IN REAL -100~100%或者物理量0.0 过程变量以浮点形式输入的值 PV_PER WORD W#16#0000 过程变量从外设直接输入的值 MAN REAL -100~100%或者物理量0.0 通过这个参数设定手动操作的值 GAIN REAL 2.0 比例控制增益 TI TIME >=CYCLE T#20s 决定积分器的响应时间 TD TIME >=CYCLE T#10s 微分时间 TM_LAG TIME >=CYCLE/2 T#2s 微分器的延迟时间 LMN_HLM REAL 100.0 操作值的最高限 LMN_LLM REAL 0.0 操作值的最低限 PV_FAC REAL 1.0 过程变量因子,调整过程变量的范围 PV_OFF REAL 0.0 过程变量偏置,调整过程变量的范围 LMN_FAC REAL 1.0 操作值因子,调整操作值的范围LMN_OFF REAL 0.0 操作值偏置,调整操作值的范围 I_ITLVAL REAL -100~100%或者物理量0.0 积分器的初始化值 DISV REAL -100~100%或者物理量0.0 输入的扰动变量 DEADE_W REAL -100~100%或者物理量0.0 死区宽度输出参数 参数 数据类型 数据范围默认值描述LMN REAL 0.0 以浮点形式输出的有效操作值 LMN_PER WORD W#16#0000 直接输出到外设的操作值 QLMN_HLM BOOL FALSE 手动操作值达到最高限设置为真 QLMN_LLM BOOL FALSE 手动操作值达到最低时设置为真 LMN_P REAL 0.0 比例控制产生的操作值 LMN_I REAL 0.0 积分控制产生的操作值 LMN_D REAL 0.0 微分控制产生的操作值 PV REAL 0.0 输出的有效过程变量 ER REAL 0.0 输出的误差信号



challenge

  • 精华:0帖
  • 求助:0帖
  • 帖子:78帖 | 200回
  • 年度积分:0
  • 历史总积分:444
  • 注册:2004年11月04日
发表于:2005-09-26 18:03:00
1楼
文章有点长,大家看仔细哦,很有用的

challenge

  • 精华:0帖
  • 求助:0帖
  • 帖子:78帖 | 200回
  • 年度积分:0
  • 历史总积分:444
  • 注册:2004年11月04日
发表于:2005-11-11 11:11:00
2楼
这么好的文章怎么没有人顶,
自己顶一下先

闲云0111

  • 精华:0帖
  • 求助:0帖
  • 帖子:5帖 | 43回
  • 年度积分:0
  • 历史总积分:73
  • 注册:2004年11月15日
发表于:2005-11-11 12:36:00
3楼
虽然没有怎么看明白,因为我没有怎么用过西门子的东西,也不知道怎么用到MODICON上去,但没有功劳也有苦劳啊,这么长,真不容易!真的谢谢了!下次对西门子有些了解时,一定回来好好看看!先顶一下,做个计号!:)

challenge

  • 精华:0帖
  • 求助:0帖
  • 帖子:78帖 | 200回
  • 年度积分:0
  • 历史总积分:444
  • 注册:2004年11月04日
发表于:2005-11-11 14:14:00
4楼
THANKS

沙钢diangong

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:35
  • 注册:2004年12月23日
发表于:2005-11-11 20:49:00
5楼
不错不错,你的总结挺有内含,我这段时间也正在总结这方面的内容,有机会交流,80160441

姗姗来迟

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 8回
  • 年度积分:0
  • 历史总积分:75
  • 注册:2005年11月01日
发表于:2005-11-12 13:08:00
6楼
不错啊 学习学习 有没有关于自适应控制或参数自整定的?

小小工控

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 24回
  • 年度积分:0
  • 历史总积分:142
  • 注册:2005年9月16日
发表于:2005-11-12 16:59:00
7楼
同志辛苦了!!
    初级阶段,还不能全接受,不过好东西是要收好的,以后再慢慢吸收!!

zjlongs

  • 精华:2帖
  • 求助:0帖
  • 帖子:423帖 | 3890回
  • 年度积分:0
  • 历史总积分:7026
  • 注册:2003年5月05日
发表于:2005-11-13 21:43:00
8楼

bandit

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 132回
  • 年度积分:0
  • 历史总积分:1520
  • 注册:2003年7月19日
发表于:2005-11-13 22:04:00
9楼
学习学习

心心心草

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:254
  • 注册:2003年9月07日
发表于:2005-11-25 16:32:00
10楼
我现在正在用这个,FB41。我遇到个问题:每当从手动切到自动模式下,输出LMN_PER 总是要先归零,再进行PID调节,不能马上跟随调节。以前没遇到,真搞不懂为什么要归一次零呢?
 谢谢指导!

challenge

  • 精华:0帖
  • 求助:0帖
  • 帖子:78帖 | 200回
  • 年度积分:0
  • 历史总积分:444
  • 注册:2004年11月04日
发表于:2005-11-25 17:28:00
11楼
就是,西门子是这样的,
所以说你要在每个PID后面添上一小段程序,就是在切换的过程中在把值传回去,这样再次切换的时候就等于输出先是调用以前的值,然后再控制.

WSR

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 81回
  • 年度积分:3
  • 历史总积分:136
  • 注册:2002年12月03日
发表于:2005-12-01 11:07:00
12楼
仔细研究一下。

一年级同学

  • 精华:0帖
  • 求助:0帖
  • 帖子:23帖 | 109回
  • 年度积分:0
  • 历史总积分:188
  • 注册:2005年8月01日
发表于:2005-12-01 15:11:00
13楼
hao 

热门招聘
相关主题

官方公众号

智造工程师