- {{item.name}}
PID_Compact 老版本(归档)
- 0
- 273
S7-1200 PID Compact V1 指令介绍
PID指令块的参数分为两部分,输入参数与输出参数,指令块的视图分为扩展视图与集成视图,在不同的视图下所能看见的参数是不一样的,在集成视图中可看到的参数为最基本的默认参数,如给定值,反馈值,输出值等定义这些参数可实现控制器最基本的控制功能,而在扩展视图中,可看到更多的相关参数,如手自动切换,高低限报警等,使用这些参数可使控制器具有更丰富的功能。如图 1
图1 PID指令块
表1 输入参数
参数 | 数据类型 | 描述 |
Setpoint | REAL | 自动模式下的给定值 |
Input | REAL | 实数类型反馈值 |
Input_PER | WORD | 整数类型反馈值,可用于连接模拟量外设输入 |
ManualEnable | BOOL | 0到1 上升沿 = "手动模式" 1到0 下降沿 = "自动模式" |
ManualValue | REAL | 手动模式下的输出值 |
Reset | BOOL | 复位控制器与错误 |
表2 输出参数
参数 | 数据类型 | 描述 |
ScaledInput | REAL | 当前的输入值 |
Output | REAL | 实数类型输出值 |
Output_PER | WORD | 整数类型输出值 |
Output_PWM | BOOL | PWM输出 |
SetpointLimit_H | BOOL | 当给定值大于高限时置 |
SetpointLimit_L | BOOL | 当给定值小于低限时置 |
InputWarning_H | BOOL | 当反馈值超过高限报警时置 |
InputWarning_L | BOOL | 当反馈值低于低限报警时置 |
State | INT | 控制器状态 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 | 反馈参数数据值非法 数据值超出表示范围(值小于 -1e12 或大于 1e12) 数据值格式非法 |
0000 0400 | 输出参数数据值非法 数据值超出表示范围(值小于 -1e12 或 大于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_VersionID | DWORD | 控制器版本(eg. 1.0.0.9) | |
sb_GetCycleTime | BOOL | 开始自动预估采样时间 | |
sb_EnCyclEstimation | BOOL | 使能预估采样时间 | |
sb_EnCyclMonitoring | BOOL | 使能监视采样时间 | |
sb_RunModeByStartup | BOOL | 在复位或上电后保持上一次状态或保持Inactive未激活状态 | |
si_Unit | INT | 反馈量单位 | |
si_Type | INT | 控制器类型 | |
sd_Warning | DWORD | 警示信息 |
2 sBackUp参数
表6 sBackUp
sBackUp | 名称 | 数据类型 | 从上一次整定开始已保存的参数 |
r_Gain | REAL | 已保存的增益 | |
r_Ti | REAL | 已保存的积分时间 | |
r_Td | REAL | 已保存的微分时间 | |
r_A | REAL | 已保存存的微分滤波系数 | |
r_B | REAL | 已保存的比例部分在直接/反馈路径的权重 | |
r_C | REAL | 已保存的微分部分在直接/反馈路径的权重 | |
r_Cycle | REAL | 已保存的控制器采样时间 |
3 sPid_Calc参数
表7 sPid_Calc
sPid_Calc | 名称 | 数据类型 | 描述 |
r_Cycle | REAL | 采样时间 | |
b_RunIn | BOOL | 强制在设定点运行 | |
b_CalcParamSUT | BOOL | 重新计算启动整定参数 | |
b_CalcParamTIR | BOOL | 重新计算运行整定参数 | |
i_CtrlTypeSUT | INT | 起始整定模式(0-CHR PID,1-CHR PI) | |
i_CtrlTypeTIR | INT | 运行整定模式 (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_Hlm | REAL | 设定值高限 | |
r_Sp_Llm | REAL | 设定值低限 | |
r_Pv_Norm_IN_1 | REAL | 输入量程化低限 | |
r_Pv_Norm_IN_2 | REAL | 输入量程化高限 | |
r_Pv_Norm_OUT_1 | REAL | 输出量程化低限 | |
r_Pv_Norm_OUT_2 | REAL | 输出量程化高限 | |
r_Lmn_Hlm | REAL | 输出高限 | |
r_Lmn_Llm | REAL | 输出低限 | |
b_Input_PER_On | BOOL | 激活从外设输入的反馈值 | |
b_LoadBackUp | BOOL | 回复上一次的参数备份PID参数 | |
b_InvCtrl | BOOL | 使能反向 | |
r_Lmn_Pwm_PPTm | REAL | PWM 最小开时间 | |
r_Lmn_Pwm_PBTm | REAL | PWM 最小关时间 | |
r_Pv_Hlm | REAL | 反馈高限 | |
r_Pv_Llm | REAL | 反馈低限 | |
r_Pv_HWrn | REAL | 反馈报警高限 | |
r_Pv_LWrn | REAL | 反馈报警低限 |
5 sRet参数
表9 sRet
sRet | 名称 | 数据类型 | 描述 |
i_Mode | INT | 设置控制器模式 (0=Inactive(未激活),1=SUT(启动整定模式),2=TIR(运行整定模式),3=Automatic(自动模式),4=Hand(手动模式) | |
r_Ctrl_Gain | REAL | 当前增益 | |
r_Ctrl_Ti | REAL | 当前积分时间 | |
r_Ctrl_Td | REAL | 当前微分时间 | |
r_Ctrl_A | REAL | 当前微分部分滤波系数 | |
r_Ctrl_B | REAL | 在直接反馈路径中的比例加权 | |
r_Ctrl_C | REAL | 在直接反馈路径中的微分加权 | |
r_Ctrl_Cycle | REAL | 当前采样时间 |
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。
图13输入监控
当反馈值达到高限或低限时,PID 指令块会给出相应的报警位。
PWM 限值组态如图14。
图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 运行自整定
应用条件
- “PID_Compact” 指令块必须在 “Manual Mode”(手动模式), “Inactive Mode” (未激活模式)或 “Automatic Mode”(自动模式)
- 假如执行时满足Start Up(启动自整定)的条件,则会先执行Start Up(启动自整定),结束后再执行Tune In Run(运行中整定),若不满足启动整定的条件则进入运行中整定
- |设定值 – 反馈值 | < 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 趋势显示面板
- 显示模式的选择
- 趋势视图
- 移动和缩放轴的区域
- 标尺
- 在标尺中的趋势值: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 常见问题
为什么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控制器处于自动模式。
使能运行自整定与启动自整定的条件是什么?
答:Start Up(启动自整定)
- | 设定值 – 反馈值 | > 0.3 * | 输入高限 – 输入低限 |
- | 设定值 – 反馈值 | > 0.5 * | 给定值 |
- 指令块的状态应为“Manual Mode”(手动模式) 或 “Inactive Mode”(未激活模式)
Tune in Run(运行中整定)
- | 设定值 – 反馈值 | < 0.3 * | 输入高限 – 输入低限 |
- | 设定值 – 反馈值 | > 0.5 * | 给定值 |
- 指令块的状态应为“Manual Mode”(手动模式) ,“Inactive Mode”(未激活模式)或Automatic Mode(自动模式)
假如使能运行自整定时满足启动自整定的条件,则会先执行启动自整定,结束后再执行运行中整定,整定完成后系统进入自动模式,假如整定失败控制器会进入模式0,且在error管脚输出错误代码
PID控制器产生错误,使能Reset端为何不能让控制器重新运行?
答:当PID控制器在自动模式时发生错误,如反馈值超限,则PID控制器将会进入未激活模式,这时使能Reset只能清除错误,若想要控制器重新运行,需要将3写入sRet.i_Mode以使控制器进入自动模式,但此参数只对数值 变化响应,在大多数情况下sRet.i_Mode参数已经被设为3了,所以需要先将此参数清零后,再写入3才能使控制器进入自动模式
循环中断时间与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%未阅读,请登录查看大全章节内容
- 评论
-
分享
扫码分享
- 收藏 收藏
- 点赞 点赞
- 纠错 纠错
{{item.nickName}}