文章目录
- 1 实验原理
- 1.1 实验目标
- 1.2 实验要求
- 1.3 相关模块介绍
- 2 实验过程
- 2.1 启动平台
- 2.2 添加组件
- 2.3 设置组件属性
- 3 实验结果
- 3.1 温度比较控制
- 3.2 正反馈控制
- 3.3 水泵轮流工作
- 4 实验过程中存在的问题及解决方案
- 5 实验总结
1 实验原理
1.1 实验目标
在Workplace中利用时间表及模拟函数,实现对温度的比较控制。配合
1.2 实验要求
参照实验练习手册实验练习4的要求,对照完成利用时间表实现热水泵控制。使用Lead Lag Runtime组件来平衡每个设备的运行时间。
1.3 相关模块介绍
本次实验需要用到Lead Lag Runtime组件,该组件用来平衡每个设备的运行时间,根据累计运行时间,控制运行时间少的设备启动。它可以提供2到10个设备的控制,并使一次只有一个受控设备处于活动状态。Lead Lag Runtime属性如下表1-1所示。
属性 | 含义 |
---|---|
In | 是StatusBoolean类型的输入,用于控制否应该打开受控设备。如果此输入为True,根据运行时间的计算一个输出将处于活动状态。 |
Numeric Outputs | 设置受控制设备(输出)的数量。 |
Max Runtime | 最大运行时间 |
Feedback | 是StatusBoolean类型的输入,用于提供受控设备启动的正反馈。如果反馈值在反馈延迟时间内未显示为True,则当前受控输出将显示反馈信号警报,并且LeadLagRuntime的输出将切换到下一个受控设备。此值设置为将禁用反馈警报功能。 |
Feedback Delay Time | 用于评估所控对象的反馈延迟时间(如果存在反馈输入的情况)。 |
Out A~J | StatusBoolean输出,该输出通常连接到带有DiscreteTotalizerExt 扩展功能的BooleanWritable点上。输出通常用于控制某种类型的负载。 |
Runtime A~J | 这些是RelTime输入,用于受控对象运行时间的输入。这些输入通常链接到受控对象的DiscreteTotalizerExt扩展功能的ElapsedActiveTime属性,该属性会测量相应的运行时间。 |
DiscreteTotalizerExt | 是控制点扩展,用于累记运行时间,即二进制或枚举值的状态变化次数。 |
2 实验过程
2.1 启动平台
首先在Niagara软件中启动平台。输入用户名和密码进入platform,并在Application Director界面,将站点启动。如下图2.1所示。
站点启动后,双击站点名并输入密码可以进入该站点。
2.2 添加组件
进入PumpControl文件夹的Wire Sheet界面,断开时间表与热水泵之间的连接。
在Palette界面的
将其中的LeadLagRutime添加到Wire Sheet界面,并命名为
双击PumpLL组件设置其属性,将
将时间表PumpSchedule组件的Out端口连接到PumpLL模块上的
2.3 设置组件属性
打开HotWaterPump_1的属性面板,将Palette界面
对HotWaterPump_2也进行相同的扩展操作,添加扩展并将Change of State Count Transition属性设置为To Action。
回到Wire Sheet界面,右键单击HotWaterPump_1,选择Composite。在Composite Editor界面添加
添加
对HotWaterPump_2执行相同的操作,添加两个组件并重命名。
回到Wire Sheet界面,将HotWaterPump_1组件的RunTime输出引脚连接到PumpLL的
从KitControl调色板的
将该组件命名为
将OR的输出Out连接到PumpLL的Feedback输入。
打开PumpLL的属性页面,将Feedback设置成
右键单击PumpLL,选择
右键单击OR组件,选择
将InB设置为
最终的效果如下图所示。
3 实验结果
本次实验主要实现了两部分内容,一个是以Tstat组件为中心的温度阈值比较部分;另一个是以Lead Lag Runtime组件为中心的时间表自动控制部分。
3.1 温度比较控制
阈值比较部分由Ramp组件产生斜坡函数数据,用来模拟室外的温度数值。利用Tstat组件将模拟的温度数据与设定的温度阈值进行比较,将比较结果输入到热水泵的In5引脚。该部分主要组件如下图3.1红框中所示。
当室外温度高于设定的温度时,Tstat组件输出为Null,即输出为空,不去控制热水泵;当室外温度低于设定温度时,Tstat组件输出为True,控制热水泵为开启状态。
3.2 正反馈控制
自动控制部分是由PumpSchedule日程表作为输入,由日程表的设定控制热水泵的启动状态。PumpSchedule将输出连接至Lead Lag Runtime组件,Lead Lag Runtime组件可以用来收集组件的运行时间,并且可以通过设置正反馈、调节反馈时间等方式,控制两个热水泵交替运行。该部分的主要组件如下图3.2红框中所示。
由于该部分的控制输出是输入到了In16引脚,其优先级比In5引脚低,所以只有当室外温度高于设定的阈值时,自动控制部分才能起作用。
自动控制部分的核心组件是Lead Lag Runtime组件,其In引脚用于输入控制指令;Runtime用来收集不同组件的运行时间;Out用来输出自动控制的结果。Feedback用来设置组件的正反馈调节,Feedback Delay用来设置反馈时间。
正反馈的意思是,如果热水泵A或B中有任意一个处于开启状态,那么只要这个已开启的水泵不被意外停止,它就会一直保持开启状态。可以在Lead Lag Runtime组件中开启反馈功能,如下图3.3所示。
当开启反馈功能后,可以用“逻辑或”组件收集当前的热水泵启动状态,并将逻辑运算结果输入到Lead Lag Runtime的Feedback引脚。只要有一个热水泵开启,逻辑运算结果就是true,此时Lead Lag Runtime会维持输出状态,也就是会让某个热水泵一直加热。只有当这个处于开启状态的热水泵被强制关闭,导致两个热水泵都处于关闭状态时,逻辑运算结果输出false,此时如果在反馈调节时间内没有任何热水泵开启,那么自动控制就会将启动指令输出到下一个热水泵,并显示警报。这是一种正反馈调节,一直让某个水泵工作,直到这个水泵被意外关闭。
3.3 水泵轮流工作
如果关闭反馈功能,只用反馈时间和警报功能,就可以实现让两个水泵在规定时间内轮流工作,平衡两水泵的运行时间。设置Lead Lag Runtime组件的属性,调节反馈时间和警告清除时间,如下图3.4所示,就可以让两个水泵在规定时间内轮流工作。
设置完成后,切断由“逻辑或”到Feedback的输出,
经过反馈延时时间后,警告信号清除,输出信号转到下一个热水泵,并重新发出警告信号。如下图3.6所示。
这样,两个热水泵就会以反馈时间为间隔,循环开启并轮流工作。
4 实验过程中存在的问题及解决方案
平台启动失败问题及解决方案
在打开软件启动平台时,有可能会因为Niagara服务尚未运行而导致平台启动失败。如下图4.1所示。
解决办法是在任务管理器中找到Niagara服务并启动,如下图4.2所示。
5 实验总结
本次实验在原有的热水泵控制实验基础上,实现了对热水泵的温度阈值控制和时间表自动控制两种控制方式。温度阈值控制是利用Tstat组件,比较室外温度和设定的阈值温度,实现水泵的开关控制。时间表自动控制是利用时间表组件设置的计划开关时间,自动控制水泵的开闭。时间表配合Lead Lag Runtime组件,收集热水泵的运行时间,并通过设置反馈调节时间实现两水泵的轮流工作。Feedback属性可以设置水泵运行的正反馈调节,使某个水泵一直工作。
关于反馈功能的应用,目前我还不太熟悉,课后需要继续练习。
原文链接:https://blog.csdn.net/ZHJ123CSDN/article/details/106444822