• {{item.name}}
{{item.name}}
{{item2.name}}
更多

PID_Compact 老版本(归档)

star star star star star
0 分
  • 使用操作
发布时间:2024年01月15日
  • 0
  • 10
PID_Compact 老版本(归档)

S7-1200 PID Compact V1 指令介绍

PID指令块的参数分为两部分,输入参数与输出参数,指令块的视图分为扩展视图与集成视图,在不同的视图下所能看见的参数是不一样的,在集成视图中可看到的参数为最基本的默认参数,如给定值,反馈值,输出值等定义这些参数可实现控制器最基本的控制功能,而在扩展视图中,可看到更多的相关参数,如手自动切换,高低限报警等,使用这些参数可使控制器具有更丰富的功能。如图 1

图1 PID指令块

表1 输入参数

参数数据类型描述
SetpointREAL自动模式下的给定值
InputREAL实数类型反馈值
Input_PERWORD整数类型反馈值,可用于连接模拟量外设输入
ManualEnableBOOL0到1 上升沿 = "手动模式"
1到0 下降沿 = "自动模式"
ManualValueREAL手动模式下的输出值
ResetBOOL复位控制器与错误

表2 输出参数

参数数据类型描述
ScaledInputREAL当前的输入值
OutputREAL实数类型输出值
Output_PERWORD整数类型输出值
Output_PWMBOOLPWM输出
SetpointLimit_HBOOL当给定值大于高限时置
SetpointLimit_LBOOL当给定值小于低限时置
InputWarning_HBOOL当反馈值超过高限报警时置
InputWarning_LBOOL当反馈值低于低限报警时置
StateINT控制器状态
0=Inactive,
1=SUT,
2=TIR,
3=Automatic,
4=Manual

表3 State状态

State状态描述
0 := Inactive(未激活)- 第一次下载
- 有错误或PLC出于停机状态
- Reset = TRUE(复位端激活)
1 :Start Up整定方式
2 :Tuning in Run整定方式
- 相对应的调试过程进行中
3 := Automatic Mode自动模式
4 := Manual Mode手动模式
0到1 上升沿 使能 "Manual mode"(手动模式)
1到0 下降沿 使能"Automatic mode(自动模式)

表4 错误代码

错误代号(W#16#...)描述
0000 0000无错误.
0000 0001实际值超过组态限制
0000 0002参数 "Input_PER" 端有非法值
0000 0004“运行自整定”模式中发生错误.反馈值的震荡无法被保持
0000 0008“启动自整定”模式发生错误. 反馈值太接近与给定值
0000 0010自整定时设定值改变
0000 0020在运行启动自整定模式时,PID控制器处于自动状态,此状态无法运行启动自整定
0000 0040“运行自整定”发生错误.
0000 0080输出的设定值限制未正确组态
0000 0100非法参数导致自整定错误
0000 0200反馈参数数据值非法
数据值超出表示范围(值小于 -1e
12 或大于 1e12)
数据值格式非法
0000 0400输出参数数据值非法
数据值超出表示范围(值小于 -1e
12 或 大于1e12)
数据值格式非法
0000 0800采样时间错误指令块被OB1调用或循环中断块的中断时间被修改了
0000 1000设定值参数数据非法,数据值超出表示范围(数据值小于 -1e12 或大于 1e12)
数据值格式非法

工艺对象背景数据块

工艺对象数据块存储了控制器所有相关的参数

添加工艺对象数据块:

Project tree→Technological Objects→Add new object,在弹出的对话框中定义如图 2

图2 添加工艺对象数据块

打开工艺对象数据块:

选择Project tree→Technological Objects→PID_Compact_DB。如图3

图3 打开工艺对象数据块

工艺对象数据块主要分5部分:1 static 2 sBackUp 3 sPid_Calc 4 sPid_Cmpt 5 sRet

1 Static参数

表5 Static 参数

Static名称数据类型描述
 sd_VersionIDDWORD控制器版本(eg. 1.0.0.9)
 sb_GetCycleTimeBOOL开始自动预估采样时间
 sb_EnCyclEstimationBOOL使能预估采样时间
 sb_EnCyclMonitoringBOOL使能监视采样时间
 sb_RunModeByStartupBOOL在复位或上电后保持上一次状态或保持Inactive未激活状态
 si_UnitINT反馈量单位
 si_TypeINT控制器类型
sd_WarningDWORD警示信息

2 sBackUp参数

表6 sBackUp

sBackUp名称数据类型从上一次整定开始已保存的参数
 r_GainREAL已保存的增益
 r_TiREAL已保存的积分时间
r_TdREAL已保存的微分时间
 r_AREAL已保存存的微分滤波系数
 r_BREAL已保存的比例部分在直接/反馈路径的权重
 r_CREAL已保存的微分部分在直接/反馈路径的权重
 r_CycleREAL已保存的控制器采样时间

3 sPid_Calc参数

表7 sPid_Calc

sPid_Calc名称数据类型描述
 r_CycleREAL采样时间
b_RunInBOOL强制在设定点运行
 b_CalcParamSUTBOOL重新计算启动整定参数
 b_CalcParamTIRBOOL重新计算运行整定参数
 i_CtrlTypeSUTINT起始整定模式(0-CHR PID,1-CHR PI)
 i_CtrlTypeTIRINT运行整定模式 (0-2-A PID auto/fast/slow,3-ZN PID,4-ZN PI,5-ZN P)

4 sPid_Cmpt参数

表8 sPid_Cmpt

sPid_Cmpt名称数据类型描述
r_Sp_HlmREAL设定值高限
 r_Sp_LlmREAL设定值低限
 r_Pv_Norm_IN_1REAL输入量程化低限
 r_Pv_Norm_IN_2REAL输入量程化高限
 r_Pv_Norm_OUT_1REAL输出量程化低限
 r_Pv_Norm_OUT_2REAL输出量程化高限
 r_Lmn_HlmREAL输出高限
 r_Lmn_LlmREAL输出低限
 b_Input_PER_OnBOOL激活从外设输入的反馈值
 b_LoadBackUpBOOL回复上一次的参数备份PID参数
b_InvCtrlBOOL使能反向
 r_Lmn_Pwm_PPTmREALPWM 最小开时间
 r_Lmn_Pwm_PBTmREALPWM 最小关时间
 r_Pv_HlmREAL反馈高限
 r_Pv_LlmREAL反馈低限
 r_Pv_HWrnREAL反馈报警高限
 r_Pv_LWrnREAL反馈报警低限

5 sRet参数

表9 sRet

sRet名称数据类型描述
 i_ModeINT设置控制器模式 (0=Inactive(未激活),1=SUT(启动整定模式),2=TIR(运行整定模式),3=Automatic(自动模式),4=Hand(手动模式)
 r_Ctrl_GainREAL当前增益
 r_Ctrl_TiREAL当前积分时间
 r_Ctrl_TdREAL当前微分时间
 r_Ctrl_AREAL当前微分部分滤波系数
 r_Ctrl_BREAL在直接反馈路径中的比例加权
r_Ctrl_CREAL在直接反馈路径中的微分加权
 r_Ctrl_CycleREAL当前采样时间

S7-1200 PID Compact V1 组态步骤

在使用PID控制器前需要对其进行组态设置,共分为基本参数组态与高级参数组态两部分。

基本参数组态

在进行基本参数组态前,需要先添加循环中断,并在循环中断中添加PID_Compact指令块。

在循环中断块中,点击PID指令块,选择属性,选择组态,可进入基本参数组态,定义控制器的输入输出,给定值等参数,如图4所示。

图4 进入参数组态

PID基本参数组态如图5所示。

图5 PID基本参数组态

1. Controller Type(控制器类型):这里可选择控制对象的类型,如温度控制器,压力控制器,默认为以百分比为单位的通用控制器,这里的选择会影响后面参数的单位,但不会影响控制器的P,I,D数值。

2. 激活此选项会使控制器变为反作用PID,如应用在降温系统中。

3. Setpoint(给定值):自动模式下的给定值。
点击下拉列表,可定义控制器给定值源

图6 给定值源选择

  • Value from instance data block:给定值来自背景数据块。
  • Value at the function block:给定值来自功能块。

4. Input Value(反馈值):

图7 反馈值类型选择

  • Input_PER(analog):使用外设模拟量输入。
  • Input:使用从用户程序而来的反馈值。

图8 反馈值源选择

  • Value from instance data block:反馈值来自从背景数据块。
  • Value at the function block:反馈值来自功能块。

5. Output Value(输出值):

图9 输出值类型选择

  • Output_PER:模拟量输出形式。
  • Output:输出至用户程序。
  • Output_PWM:使用PWM输出。

图10 输出值源选择

  • Value from instance data block:输出值来自从背景数据块。
  • Value at the function block:输出值来自功能块。

进入Project tree(项目树)→Technological Objects(工艺对象) →PID_Compact_1[DB1] →Configuration,如图11

图11 进入基本参数组态

反馈值量程化组态如图12

图12 反馈值量程化组态

此界面用于量程化输入值

1与6为一组,用于配置输入量程上限,1为物理量的实际最大值,6为模拟量输入的最大值

4与5为一组,用于配置输入量程下限,4为物理量的实际最小值,5为模拟量输入的最小值

2与3分别为用户设置的高低限制,当反馈值达到高限或低限时,系统将停止PID的输出。

高级参数组态

Input monitoring 输入监控组态如图13。

02-10.jpg

图13输入监控

当反馈值达到高限或低限时,PID 指令块会给出相应的报警位。

PWM 限值组态如图14。

02-11.jpg

图14 PWM 限值

1. PWM输出时,一个脉冲周期内最小接通时间。

2. PWM输出时,一个脉冲周期内最小关断时间

PID 参数组态如图15。

图15 PID参数

1.微分滤波系数:即微分环节的延迟时间,可在D值不变的情况下,用于降低控制器对高频干扰的敏感度

2.比例权重:即设定值进入比例环节的比重,可在P值不变的情况下,用于减少系统设定值阶跃引起的超调

3.微分权重:即设定值进入微分环节的比重,可在D值不变的情况下,用于抑制系统在设定值阶跃时引起的输出突变

S7-1200 PID Compact V1 自整定功能

PID控制器能够正常运行,需要符合实际运行系统及工艺要求的参数设置,但由于每套系统都不完全一样,所以,每套系统的控制参数也不相同,用户可自己手动调试,通过参数访问方式,修改对应的PID参数,在调试面板中观察曲线图。也可使用系统提供的参数自整定功能,PID自整定是按照一定的数学算法,通过外部输入信号,激励系统,并根据系统的反应方式,来确定PID参数。S7-1200 提供了两种整定方式。启动自整定与运行中自整定。

Start Up(启动自整定)

整定算法将定义阶跃响应的时间常数,并在拐点处应用正切计算,得到TU, TG,控制器将依据这些参数等到优化后的P,I,D等参数。

图16 启动自整定

应用条件:

①| 设定值 – 反馈值 | > 0.3 * | 输入高限 – 输入低限 |
②| 设定值 – 反馈值 | > 0.5 * | 给定值 |
③指令块的状态应为“Manual Mode”(手动模式)或 “Inactive Mode”(未激活模式)

参数设置:

可通过参数访问的模式打开工艺对象数据块,选择参数“sPid_Calc.i_CtrlTypeSUT”。用于启动自整定时选择PID或PI控制器。CHR为Chien, Hrones and Reswick的缩写,一种整定算法。
sPid_Calc.i_CtrlTypeSUT:启动自整定模式选择
0=CHR PID
1=CHR PI

Tune in Run(运行中整定)

优化算法会逐渐增大比例系数,直到被控量开始振荡

图17 运行自整定

应用条件

  1. “PID_Compact” 指令块必须在 “Manual Mode”(手动模式), “Inactive Mode” (未激活模式)或 “Automatic Mode”(自动模式)
  2. 假如执行时满足Start Up(启动自整定)的条件,则会先执行Start Up(启动自整定),结束后再执行Tune In Run(运行中整定),若不满足启动整定的条件则进入运行中整定
  3. |设定值 – 反馈值 | < 0.3 * | 输入高限 – 输入低限 |
    |设定值 – 反馈值 | > 0.5 * | 给定值 |

参数设置

可通过参数访问的模式打开工艺对象数据块,选择参数 “sPid_Calc.i_CtrlTypeTIR”用于运行整定时选择算法。A (高级PID整定)算法,此算法可选择系统响应速度auto(自动),fast(快速),slow(慢速);ZN算法,ZN为Ziegler Nichols缩写。其中ZN算法又可分为PID,PI,P三种整定类型。
sPid_Calc.i_CtrlTypeTIR:运行自整定模式选择
0=A PID auto
1=A PID fast
2=A PID slow
3=ZN PID
4=ZN PI
5=ZN P

实际整定效果:

启动自整定

图18 启动自整定曲线图

运行中自整定

图19 运行自整定曲线图

调试面板说明

调试面板结构

 

图20 调节面板

1. 调试面板控制区
Start measurement(启动测量功能)
Stop measurement(停止测量功能)
Sample Time(采样时间):这里指调试面板测量功能的采样时间。
2. 趋势显示
此区以曲线方式显示设定值,反馈值及输出值。
3. 优化区
此区用于选择整定方式及显示整定状态。
Startup Tuning(启动整定方式)
Tuning in run(运行中整定方式)
Start Tuning(使能整定)
Abort Tuning(退出整定)
Staus(状态)
Process(整定进程)
Upload PID parameters to project(上载参数到项目):将已整定好的PID参数从CPU上载到项目。
4. 当前值显示
用户在此区域可监视给定,反馈,输出值,并可手动强制输出值,点击Manual前的方框,用户就可在Output栏内入百分比形式的输出值

趋势显示面板

趋势显示面板使用说明

图21 趋势显示面板

  1. 显示模式的选择
  2. 趋势视图
  3. 移动和缩放轴的区域
  4. 标尺
  5. 在标尺中的趋势值:Setpoint(给定值),Input(反馈值),Output(输出值)

显示模式可在如图..所示中点击下拉菜单进行选择

图22 显示模式选择

Strip:条状 (连续显示)

新趋势值从右侧输入视图,以前的视图卷动到左侧,时间轴不移动。

Scope:示波图 (跳跃区域显示)

新趋势的值从左到右进行输入,当到达右边趋势视图,监视区域移动一个视图宽度到右侧 时间轴在监视区域限制内可以移动。

Sweep:扫动 (旋转显示)

新的趋势值以旋转方式在趋势图中显示,趋势的值从左到右输出,上一次旋转显示被覆盖,时间轴不动。

Static:静态 (静态区域显示)

趋势的写入被中断,新趋势的记录在背景中执行,时间轴移动横整个以前的记录时期。

使用标尺

使用一个或多个标尺分析趋势曲线的离散值。
移动鼠标到趋势区域的左边并注意鼠标指示的变化,拖动垂直的标尺到需要分析的测量的趋势。趋势输出在标尺的左侧,标尺的时间显示在标尺的底端。激活标尺的趋势值显示在测量值与标尺交点处。如果多个标尺拖动到趋势区域,各自的上一个标尺被激活。激活的标尺由相应颜色符号显示,通过点击可以重新激活一个停滞的标尺。使用快捷键 ALT+点击移出不需要的标尺,如图23。

图23 标尺

上传参数

由于自整定过程是在 CPU 内部进行的,整定后的参数并不在项目中,所以需要上传参数到项目。点击调试面板下部的“Upload PID parameters to project”按钮,将参数上传到项目。

图24 上传参数
上传参数时要保证软件与CPU之间的在线连接,并且调试模板要在测量模式,即能实时监控状态值,点击上传按钮后,PID工艺对象数据块会显示与CPU中的值不一致,因为此时项目中工艺对象数据块的初始值与CPU中的不一致,可将此块重新下载,右键单击弹出菜单,选择在线比较,进入在线比较编辑器,将模式设为“Download to device(下载到设备)”,点击执行,完成参数同步,如图25。

图25 下载参数到设备

S7-1200 PID Compact V1 常见问题

5.gif为什么PID控制器没有运行?

答:PID控制器被添加后,要靠PID_Compact指令块控制,其中工艺对象数据块中的sRet.i_Mode参数用于设置控制器运行方式,共有如下5种模式:

0 : Inactive(未激活)

1 : Start Up整定方式

2 : Tuning in Run整定方式

3 : Automatic Mode自动模式

4 : Manual Mode手动模式

PID控制器未使能自整定,则sRet.i_Mode默认值为0,控制器处于未激活模式,需要手动给sRet.i_Mode参数赋值,如将3写入参数中,PID控制器处于自动模式。

5.gif使能运行自整定与启动自整定的条件是什么?

答:Start Up(启动自整定)

  1. | 设定值 – 反馈值 | > 0.3 * | 输入高限 – 输入低限 |
  2. | 设定值 – 反馈值 | > 0.5 * | 给定值 |
  3. 指令块的状态应为“Manual Mode”(手动模式) 或 “Inactive Mode”(未激活模式)

Tune in Run(运行中整定)

  1. | 设定值 – 反馈值 | < 0.3 * | 输入高限 – 输入低限 |
  2. | 设定值 – 反馈值 | > 0.5 * | 给定值 |
  3. 指令块的状态应为“Manual Mode”(手动模式) ,“Inactive Mode”(未激活模式)或Automatic Mode(自动模式)

假如使能运行自整定时满足启动自整定的条件,则会先执行启动自整定,结束后再执行运行中整定,整定完成后系统进入自动模式,假如整定失败控制器会进入模式0,且在error管脚输出错误代码

5.gifPID控制器产生错误,使能Reset端为何不能让控制器重新运行?

答:当PID控制器在自动模式时发生错误,如反馈值超限,则PID控制器将会进入未激活模式,这时使能Reset只能清除错误,若想要控制器重新运行,需要将3写入sRet.i_Mode以使控制器进入自动模式,但此参数只对数值 变化响应,在大多数情况下sRet.i_Mode参数已经被设为3了,所以需要先将此参数清零后,再写入3才能使控制器进入自动模式

5.gif循环中断时间与PID控制器的采样时间有什么关系?

答:循环中断时间为添加循环中断后对指定两次中断的间隔时间,PID控制器采样时间:sRet.r_Ctrl_Cycle是控制器两次计算之间的间隔时间。PID控制器的采样时间是循环中断时间的整数倍。若用户使能自整定择系统会自动计算sRet.r_Ctrl_Cycle参数,若用户使用手动方式设定,则一定要注意此参数为循环中断时间的整数倍

例如:PID控制器的采样时间是1s,循环中断时间为100ms,则在1S的时间内,循环中断执行了10次,但前9次PID控制器都不进行运算,只在第10次运算若用户使能PWM输出,则PWM的周期即为sRet.r_Ctrl_Cycle,其分辨率为循环中断的时间。

例如:PID控制器的采样周期为1S,循环中断时间为100ms,则PWM的周期为1S,分辨率为100ms,一个周期内可能的脉宽为:0(关闭),100,200,300,400,500,600,700,800,900,1000ms(全开)

剩余80%未阅读,请登录查看大全章节内容

  • 评论
更多
  • 分享

    扫码分享

扫码进入移动端

信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。