发布于: Jan 12, 2021

AWS IoT SiteWise 现在支持通过统一函数调用语法 (UFCS) 在公式表达式中使用方法。

用户之前可以使用嵌套函数在 AWS IoT SiteWise 中定义转换和指标的表达式,但从今天开始,他们还可以通过将方法调用与 UFCS 功能链接起来以实现此操作。此语法有助于实现 AWS IoT SiteWise 资产模型中用于指标和转换的复杂公式的可读取性和可追溯性。UFCS 可与 AWS IoT SiteWise 中支持的所有当前函数类型一起使用 – 通用、比较、条件、字符串、聚合和时间函数。UFCS 可在 AWS IoT SiteWise 控制台或命令行界面 (CLI) 中使用。要了解有关 UFCS 和函数类型的更多信息,请访问 AWS IoT SiteWise 公式表达式。 

现在,UFCS 功能允许用户使用方法调用将 AWS IoT SiteWise 中的任何可用函数 f(n) 作为 n.f() 引用。更概括地说,用户可以使用方法链接的语法将函数 f(a,b,c...) 替换为 a.f(b,c..),其中“a”可以是变量,也可以是函数 a= f1(x)。例如,其中一个客户使用案例是:如果用户想要定义一个指标,以返回余弦函数 log(cos(a)) 的对数,则他们现在可以使用 UFCS 将其表示为 cos(a).log()。AWS IoT SiteWise 还支持使用 UFCS 链接 if-else 函数,从而更轻松地定义和跟踪多层嵌套条件逻辑。作为通用格式,嵌套 if 语句之前写为:

if(condition1, on_true_1, if(condition2, on_true_2, on_false_2))

现在还可以使用 if-elif 嵌套函数以 UFCS 格式写为:

if(condition1, on_true_1). elif(condition2, on_true_2, on_false_2)

例如,如果可再生能源现场操作员想要测试太阳能电池板的功率输出是否在特定范围内(1-4 千瓦),则他们可以灵活地通过两种方式对其进行编码 – 如果使用 UFCS,效率 = if(power.lt(1000),0).elif(power.gt(4000),0,1);或如果使用嵌套函数,效率 = if(lt(power, 1000), 0, if(gt(power,4000), 0,1))。此外,UFCS 还可用于字符串运算的方法链接。例如,用户可以检测 JSON 消息中的设备状态:如果使用嵌套函数,状态= contains(lower(jp(message, ‘$.status’)),‘fail’);或如果使用 UFCS 语法,状态 = message.jp(‘$.status’).lower().contains(‘fail’)。这使得在使用多个函数的计算中可以实现更佳的可追溯性并提高故障排查能力。 

AWS IoT SiteWise 是一种托管服务,可从工业设备中大规模收集、存储、整理和监控数据。 要了解更多信息,请访问 AWS IoT SiteWise 网站开发人员指南。有关 AWS IoT SiteWise 支持区域的列表,请访问 AWS 区域。