有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

下爪哇岛和三角洲

嘿,我正在尝试编写一个程序,从日历中获取一周中的某一天(baja:string),并根据动态设置的时间(baja:time)停止空气处理器。它需要输出一个时间值(baja:time)

如果是星期天,那么下午2点停止 如果是周一,那么就在晚上8点停下来


共 (1) 个答案

  1. # 1 楼答案

    完成AHU每周调度的最简单方法是使用BooleanScheduleEnumSchedule对象(取决于占用率变量是枚举的还是布尔的)。两者都可以在“时间表”模块中找到

    这些时间表(以及类似的NumericScheduleStringSchedule对象)有一个“调度器”视图,允许您根据一周中的哪一天自定义转换发生的时间。有关如何有效使用调度程序视图的更多信息,请在尼亚加拉帮助中搜索“每周调度程序视图”

    通常,可以使用EnumScheduleBooleanSchedule的输出槽直接控制设备,但如果确定需要baja:Time,则可以操纵来自任何调度对象的输出来获得它

    提取下一个“休息”时间将利用新日程上的两个时段:nextTime和nextValuenextTime是一个baja:AbsTime对象,它总是显示下一次状态更改的时间,无论新状态是“关闭”还是“打开”nextValue给出下一次转换后计划输出的值

    假设您使用的是尼亚加拉3.6。x或更高,您可以将nextTime插槽连接到NumericLatch(从kitControl调色板)的输入,尼亚加拉将自动将baja:AbsTime对象转换为数字时间戳。然后可以使用逻辑将nextValue连接到锁存器的“时钟”插槽,这样它只会在下一个“关闭”时间更新。每当你的周计划处于“开”状态时,这将用下一个“关”时间的timstamp更新闩锁的输出

    最后,要返回baja:Time,需要将数字时间戳转换回时间对象。同样,假设您使用的是3.6。x或更高版本,您可以使用Expr(来自KIT控制模块)组件来执行以下操作:

    1. 将一个Expr添加到你的接线板上,然后打开它的槽板
    2. 添加一个名为“timestain”的baja:StatusNumeric类型的槽,并确保选中了Summary和Execute On Change标志
    3. 添加一个名为“absTimeOut”的类型为baja:AbsTime的插槽,并确保选中了摘要和只读标志
    4. 打开Expr对象的属性页,在Expr属性中键入“timestain.value as'absTimeOut'”(不带双引号)

    此时,您有一个自定义的Expr,它将数字输入转换为baja:AbsTime。将它连接到闩锁的输出,就可以得到每周计划的下一个计划活动时间的baja:AbsTime

    baja:Timebaja:AbsTime不是完全一样的东西,但是AbsTime实现了baja:Time中的所有函数。但是,如果您确实需要baja:Time,您可以向baja:Time类型的Expr组件添加另一个插槽,然后在表达式中添加第二行,将baja:AbsTime转换为baja:Time(您不能直接转到baja:Time,因为数字时间存储了日期和时间信息,无法正确转换为baja:Time)。在第一行末尾加一个逗号,然后加一行

    absTimeOut as 'timeOut'