Baja Java和Tridium

时间:2015-08-11 21:14:59

标签: java

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

如果是星期天,则在下午2点停止 如果星期一然后在晚上8点停止

1 个答案:

答案 0 :(得分:1)

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

这些计划(以及类似的NumericScheduleStringSchedule对象)具有“计划程序”视图,允许您根据星期几自定义转换发生的时间。有关如何有效使用调度程序视图的更多信息,请在Niagara帮助中搜索“每周调度程序视图”。

通常,您使用EnumScheduleBooleanSchedule的输出槽直接控制设备,但如果您确定需要baja:Time,则可以操纵任何计划对象的输出得到它。

提取下一个“关闭”时间将使用新计划中的两个插槽:nextTime和nextValue。 nextTime是一个baja:AbsTime对象,它始终显示下一次状态更改的时间 - 新状态是“关闭”还是“打开”。 nextValue给出了下一次转换后计划输出的值。

假设您使用的是Niagara 3.6.x或更高版本,您可以将nextTime插槽连接到NumericLatch的输入(来自kitControl面板),Niagara会自动将baja:AbsTime对象转换为数字时间戳。然后,您可以使用逻辑将nextValue连接到锁存器的“时钟”插槽,这样它只会在下一次“关闭”时更新。当您的每周时间表处于“开启”状态时,这将使用下一个“关闭”时间的timstamp更新锁存器的输出

最后,要获得baja:Time,您需要将数字时间戳转换回时间对象。同样,假设您使用的是3.6.x或更高版本,您可以使用Expr(来自kitControl模块)组件来完成这项工作:

  1. 在您的电线表上添加Expr,然后打开它的插页。
  2. 添加名为“timestampIn”的baja:StatusNumeric类型的插槽,并确保选中“摘要”和“更改时执行”标志。
  3. 添加名为“absTimeOut”的baja:AbsTime类型的插槽,并确保选中Summary和Readonly标记
  4. 打开Expr对象的属性表,并在Expr属性中键入“timestampIn.value为'absTimeOut'”(不带双引号)
  5. 此时,您有一个自定义Expr,可将数字输入转换为baja:AbsTime。将它连接到您的闩锁输出,您的每周时间表的下一个预定活动时间为baja:AbsTime

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

    baja:Time