您的位置  > 互联网

创建程序和功能块例程•控制过程的控制策略

串级控制在过程控制行业有着广泛的应用。 传统的级联设计有两个显着特征:有两个嵌套的反馈控制环路,以及一个次级控制环路嵌入另一个初级控制环路中。 本实验中串级控制过程的控制策略将通过Logix功能块编辑器实现对反应器单元温度的控制。串级PID控制作为快速作用的夹套温度控制回路响应反应器夹套传热液体系统内的扰动

将采取纠正措施。 最终结果是:具有慢响应特性的温度控制回路(主回路),其“偏离允许误差范围”的总时间被最小化。

本次实验内容:

• 创建程序和功能块例程

• 使用级联控制配置界面创建新的PIDE 模块。

• 使用SRTP 指令创建分程输出。

应用工艺指令进行工艺模拟。

创建程序和级联PID功能块例程

创建一个应在温度控制例程中而不是在程序中使用的“任务”任务。 创建反应器 01 温度控制程序。

1. 右键单击​​并创建新程序。 将新程序命名为“”并单击“确定”

2. 右键单击​​并创建新例程。 将新程序命名为“”

确保“类型:”选择为“块”,并且选择“输入”或“相位”。 单击“确定”关闭例程属性窗口,然后再次单击“确定”。

3. 双击该程序,打开属性窗口,然后单击“Confi”,选择它作为主例程,然后单击“确定”。

4. 双击控制器管理器中的例程以打开一个空例程。

5. 单击工具栏选项卡

出现命令菜单栏。

6、将鼠标移至命令类型的PIDE命令处

7. 在工具栏选项卡上,单击“PIDE”功能块两次,编辑区中会生成两个 PIDE 功能块。 两个 PIDE 功能块出现在图表(和)上。

8. 单击菜单栏上的“视图”>“适合”,调整编辑区域的大小。

9. 单击并拖动,使每个PIDE功能块周围有一定的操作空间。

10. 如果需要放大或缩小,请单击工具栏上的缩放按钮。

11. 将输出 CVEU 连接到设置的输入,如下所示:

单击CVEU输出引脚,然后单击该引脚并在其变绿时连接它。

查看级联 PIDE 指令的其他注意事项如下:

工艺应用注意事项

PIDE 指令具有处理级联循环的内置功能。

级联/比率模式:

次级电路可设置为级联模式或自动模式。 当二回路为级联方式时,以一回路的输出作为二回路的设定值; 当二回路处于自动模式时,可以直接输入设备夹套的温度设定值。

初始化:

如果二次回路不采用级联模式,则主回路必须停止控制,因为它不再影响控制过程,其输出应等于二次回路的设定值,以便当二次回路恢复串级模式时,主循环可以平滑过渡启动控制。

饱和:

当副回路达到输出或设定值的极限时,主回路应在极限方向停止合成。 例如,如果辅助环路达到其输出限制,则主环路不应再向前合成。 以本实验为例,如果二级回路已达到冷却阀的 100%,则主回路中没有必要继续请求更多冷却,因为二级回路无法提供更多冷却。

配置初始化和饱和参数

根据上面的描述,我们需要设置额外的参数。 首先对于主循环,需要设置和引脚可见性。 当辅助循环不处于级联模式时,这些将用于设置主循环的初始化。

1. 点击PIDE-01

按钮显示主循环的参数,点击选项卡,向下滚动找到

和参数,选中参数的可见性复选框,如下所示:

单击“应用”和“确定”关闭“PIDE 属性”对话框。

13. 显示二级回路的参数并选中参数的可见性复选框。 操作与上面相同。

14. 连接初始参数。 单击辅助环路设置输出引脚.SP,然后单击主环路引脚。

,连接初始值。 单击辅助环路引脚。 ,然后单击主环路引脚。 连接初始请求。 点击任意空白区域,编辑区域如下图所示:

注意到的连接是布尔连接(虚线),SP连接是实连接(实线)。

这些连接准备辅助循环()以向主循环()发出初始化请求,并且主循环使用当前辅助循环设置来初始化自身。 这允许从自动模式平滑过渡到级联模式。

接下来,启用 PIDE 模块的 Anti- 复位功能。

15、点击按钮,显示二级循环的参数,点击选项卡,滚动鼠标查找并

参数,单击复选框即可显示它们。

16. 对显示的 和 参数重复以上操作。

17. 将引脚连接至 的引脚,并将引脚连接至 的引脚。

当前配置如下图:

此外,当辅助环路达到其极限时,这些连接将限制主环路的操作。

18. 单击主工具栏上的

图标,验证例程。

您将在结果窗口中看到以下错误消息:

检查功能框图,您会发现主回路 PIDE 模块和辅助回路 PIDE 模块上都有“X”标记。

工艺应用注意事项

在功能块中,执行流程从二次循环到数据流至关重要。 其实执行流程是由数据流决定的。如下

如图所示,功能框图展示了输出过程中对数据的中间计算和操作。

指令的实际执行顺序仅取决于数据流路径。 当操作(指令)从“上游”到“下游”执行时,指定指令的实际执行顺序不再重要。

“X”表示模块上存在错误。 在这种情况下,错误的原因是数据流出现问题。 每当你从数据流“下游”的模块获取反馈作为输入时,你必须根据执行顺序的规则来确定应该首先处理哪个输入,从而确定哪个模块先执行。

19. 右键单击​​来自 的反馈行。 到 。 并选择数据。

20. 对连接到 的剩余 3 个连接重复上述操作。 这样就解决了执行顺序问题并验证了例程。 完成后,每行都会有箭头,如下:

一些基本的操作参数需要在PIDE指令中设置。 级联设置功能只能通过设置参数来激活。

21. 单击省略号按钮查看模块属性打开属性界面,然后单击/Ratio 选项卡。 单击复选框 / 激活此模式。

22. 现在将 I/O 连接添加到例程中。 单击工具栏上的输入参考符号和输出参考符号,可插入两个输入参考值和一个输出参考值。 每次单击工具栏时,都会添加参考值。

23. 拖动模块进行重新排列,如下图所示,将输入连接到 PV 引脚和 PV 引脚,将输出连接到 CV 引脚。

项目的标签已创建为控制器范围标签,但它们在例程中被引用。

24. 输入“PV”输入,或双击并从下拉菜单中找到它。

25. 输入 '' 作为 PV 输入,或双击并从下拉菜单中找到它。

26. 从简历类型中搜索“”或双击并从下拉菜单中搜索。 配置效果如下:

1. 单击省略号按钮查看命令上的模块属性

,打开属性界面,点击Tag选项卡,并重命名

指令的标签。

将标签名称更改为“.

28. 要在 PIDE 命令上设置工程单位校准,请单击 EU/选项卡并输入以下值:

• 100% 时的 PV 最大值跨度设置为“250”

• 0% 处的 PV 最小值的跨度设置为“0”

• SP 上限值设置为“250”

• SP 下限值设置为“0”

由于该 PID 的输出用于创建级联设定点输出,因此按如下方式设置 CV 工程单位范围,以使夹套温度控制器的“级联模式”设定点范围达到预设值:

• 100% 输出时最大 CV 值设置为“200”

• 0% 输出时最大 CV 值设置为“0”

29. 单击“Confi”选项卡,设置PID初始比例积分增益,以获得一定的初始位移。 后面实验中的自动调整功能将会代替这些操作,点击确定。

30. 单击指令上的省略号按钮查看模块属性,打开属性界面,单击标签选项卡,并重命名指令的标签。

将标签名称更改为“”。

31. 要在 PIDE 命令上设置工程单位校准,请单击 EU/选项卡并输入以下值:

• 100% 时的 PV 最大值跨度设置为“250”

• 0% 处的 PV 最小值的跨度设置为“0”

• SP 上限值设置为“250”

• SP 下限值设置为“0”

该PID的输出以输出需求CV工程单位%的形式输出,如下:

• 100% 输出时的最大 CV 值设置为“100”

• 0% 输出时的最大 CV 值设置为“0”

32. 单击“Confi”选项卡,设置PID初始比例积分增益,以获得一定的初始位移。 自动调整功能将在后续实验中替代这些操作,点击确定。

33、双击PIDE模块右下角的标签输入框,为两条PIDE指令分配自动调整标签。

34. 单击下拉框,然后双击菜单中的选项卡。

35. 单击主菜单栏

图标来验证例程。 在结果窗口中,您将看到以下错误消息:

使用比例范围时间 (SRTP) 指令

在我们的示例应用中,有一个必须控制反应器温度的典型场景。 这些包括从环境温度加热至所需的操作温度以及在反应过程中冷却。 本例中的反应是放热的,因此在反应过程中使用冷却来维持所需的反应器温度至关重要。

我们的应用示例使用通常的分程控制方案,其中单个控制器的输出在两个调节阀之间分配。 在分程控制策略中,如果夹套温度控制器的输出在0%到50%之间,冷却CTW阀门将打开; 如果夹套温度控制器的输出在 50% 到 100% 之间,阀门将打开。

比例范围时间(SRTP)指令采用百分比输入值(0%~100%)并将其转换为占空比离散输出。 例如,如果输入值设置为 50%,命令周期设置为 5 秒,离散输出将有 2.5 秒打开,2.5 秒关闭。 当开启时间以总循环时间的百分比形式输入时,循环将重复。 SRTP指令一般应用在大功率电热丝的温度控制中。 在这些应用中,功率的模拟控制要么不切实际,要么成本太高。 时间比例继电器或类似设备可以向加热器供电,无需连续模拟调节。 同样,通常采用脉冲电磁阀来控制冷却剂流量以实现冷却。

该指令还具有模拟输出。 模拟输入信号可以分为两个不同的模拟输出,其范围由时间比率决定。 该功能可用于某些应用中,相同的模拟信号控制两个执行器,并且两个执行器需要不同的比例标度。 (例如,在反应堆温度控制应用中,既有加热阀执行器,也有冷却阀执行器)。

通常,从输入 (%) 到输出 (%) 的映射如下所示:

请注意,'' 可以小于或大于 '' 参数。 这对于一端或两端的反向控制很有用。 (例如:加热/制冷配对控制中制冷控制的输入值下限较高)

工艺应用注意事项

“可以小于或大于”功能使得该指令对于粗略/精细控制策略非常有用。 粗略/精细控制策略使用一大一小两个控制阀 (CV),在过程中发挥互补作用。 一份大的简历可以快速响应需求的变化,

但通常分辨率较低。 小 CV 提高了分辨率并增强了可调节性。

配置SRTP

现在我们来看看如何配置SRTP命令。 SRTP指令参数确定输入值和每个输出值的最小值和最大值,并确定离散输出的周期(循环时间)。

该实验过程是一项执行缓慢的任务,因为过程变量是容器温度并且不能经历快速的物理变化。 通常SRTP指令在更快、优先级更高的周期性任务中执行,以保持高分辨率和精确的脉冲输出。 尽管本实验中未使用脉冲输出,但 SRTP 指令用于快速 10ms 周期性任务,其中包含需要快速执行时间的例程。

36 在 的 Area 任务中打开 rol 程序。

37. 双击打开SRTP例程。

例程工具栏中的处理功能命令集包含用于多个循环的SRTP命令。

38、在表单工具栏的描述框中输入“Range”,确定当前活动的表单()。

39. 单击下拉菜单中的“工作表 2”,然后选择“工作表 2”。

40. 在表单工具栏的描述框中输入“Split Range”以确定当前活动的表单(Sheet 2 0f 2)。 输入表单的描述。

41. 单击 SRTP 模块上的省略号按钮以访问其参数。

42. 单击按钮,

重置命令参数。 理想的运行情况如下图所示:

对 SRTP 参数使用以下“映射”关系:

• = 50%(当 PIDE.CV=50%、Heat%=0% 时)

• = 100%(当 PIDE.CV=100%、Heat%=100% 时)

• = 50%(当 PIDE.CV=50%、Cool%=0% 时)

• = 0%(当 PIDE.CV=0%、Cool%=100% 时)

• 如果需要脉冲输出,还必须满足以下参数:

• = 0 秒 0 秒的最短加热时间对应于 0% 加热

• = 10 秒 10 秒的最大加热时间相当于 100% 加热

• = 0 秒 0 秒的最小冷却时间将对应于 0% 冷却时间

• = 10 秒 最大冷却时间为 10 秒,相当于 100% 冷却时间

SRTP 功能块必须具有以下定义的参数才能运行: , , , 。

如果需要分程控制,则运行前需要输入以下参数: 、 、 。

无论何种应用,为了使模块正常工作,参数必须具有非零值。

其余参数可以保留其默认值。

由于“零”点(无加热、无冷却)位于 PIDE.CVEU=50%,因此使用 PIDE 在程序中将 PIDE 设置为初始化为 50%。 PIDE 中的参数。

43. 根据上述必要参数,由于周期参数和参数都是必需的,因此在参数值中输入“10”。 根据下图设置参数。

44. 确保参数设置为 1,单击“确定”,然后关闭“属性”对话框。 SRTP指令将单个PIDE输出分为两个模拟范围,如下所示:

模拟实验概述

以下部分显示了一些功能块指令,突出了 Logix 平台及其编程语言的灵活性。

该实验室中的模拟是基础的,但它为工程师提供了可用于许多复杂应用和流程解决方案的各种工具。 由于本实验中没有 I/O,为此,我们创建了特殊的任务和程序,其中包含模拟逻辑的例程,以生成输入和输出标签数据、闭环、对过程变化做出反应,并模拟电机等设备,阀门和泵。

大多数非积分控制过程可以通过一系列死区延迟和一阶滞后环节来模拟。 在我们的实验中,两个模拟循环是慢速响应的“”循环和快速响应的“”循环。

用于仿真的功能块指令是“死区”(DEDT)模块、超前-滞后(LDLG)模块和函数发生器(FGEN)。 死区 (DEDT) 指令提供延迟并反映过程死区时间或滞后时间。 超前-滞后 (LDLG) 指令提供处理滞后时间。 函数发生器 (FGEN) 指令用于表征输出并将信号转换为过程工程单位。

检查和编辑温度模拟逻辑

1. 单击任务并选择

2. 右键单击​​功能模块例程,然后单击“打开”,打开例程逻辑。

3. 单击表单工具栏上的下一页,进入例程的下一页。

4. 确保窗体工具栏指示框内容为S Range,以验证温度模拟。

您将看到下面的功能块逻辑。

由于SRTP提供两个独立的输出,并且它们的“过程特性”是独立的,因此分别为加热过程和冷却过程创建一组死区和滞后指令。 在这个实验中我们规定它们是相同的。 两者的综合效果被传递到函数信号发生器,该函数信号发生器表征输出并缩放设定温度范围,模拟快速响应的“辅助”夹套温度。 然后反馈到另一组死区和滞后命令,模拟反应较慢的主反应堆温度。

5. 单击省略号按钮并在“属性”对话框中选择“Tab”,打开“死区模块参数”对话框。

6. 确保模块的死区时间为“3.0”,增益为“1.25”,单击“确定”。

7. 双击省略号按钮,选择属性对话框中的选项卡,并对死区模块参数重复上述步骤。 将死区时间设置为“3.0”秒,将增益设置为“1.25”。

8. 单击省略号按钮并选择“属性”对话框中的选项卡以打开“超前-滞后模块参数”对话框。

9. 确保滞后值为 15 秒,增益为 1.0。

10. 对模块重复上述步骤。

函数信号发生器指令提供独立的输入变量 (X_In),并通过 XY 图形定义“曲线拟合”输出 (Y_Out)。 图形是通过数组与指令组合得到的。 X值包含在一个单维数组()中,对应的Y值包含在另一个单维数组()中。 这些数组是在指令之前确定的。 当输入一个输入值时,函数生成器将在 X_ 数组中查找该值(或在输入框中添加),并返回 Y_ 数组中相应的值(或添加)作为输出。

11. 该例程包含过程指令组中的函数信号发生器指令。

12. 单击省略号按钮打开函数信号发生器模块参数对话框。

13. 滚动鼠标指针指向参数描述并保持指向。

该参数值表示输出曲线上可以显示的段数。 单击“确定”关闭对话框。

14. 右键单击​​输出标签数组

15.选择“”打开标签编辑器

1. 在监控选项卡窗口中单击

,扩大输出。

该数组定义了函数信号发生器输出曲线段和模拟输出范围。

17. 在监视标签窗口中,向上搜索标签并展开输出数组。

该数组定义了输入曲线段对应的函数信号发生器的输入范围。

18. 双击功能块例程返回到原始例程。

19. 单击省略号按钮并选择“属性”对话框中的选项卡以打开“死区模块参数”对话框。 请注意,死区时间大于次级或夹套温度。 这是从夹套到反应器产物的热传递的静止延迟时间。

20. 单击“确定”关闭对话框。

21. 单击主工具栏上的

图标来验证例程。 您将在结果窗口中看到以下错误消息:

22. 单击工具栏上的“保存”图标以保存项目。

23. 保存项目后,单击控制器状态栏上的控制器图标,然后选择下载,将项目下载到控制器。

24. 当出现下载提示对话框确认项目和目标控制器时,选择。

25、工程下载完成后,返回控制器状态栏,点击控制器图标,从下拉菜单中选择,将控制器设置为运行模式。

26. 然后在确认对话框中单击“是”。

状态和例程窗口边缘变为绿色