要开始了解V2适配器脚本的概述,请访问这个知识库文章.
一个变量生成的一段命名数据将其他数据在适配器脚本中可用。变量定义在一个叫做变量.一些你可能用变量解决的问题的例子是:
- 将传感器信号转换为执行状态
- 对脉冲信号进行部件计数
- 将多个信号组合成一个状态
这是一种变量的示例,其基于模拟输入计算零件,每次进行几秒钟后转换到高电压状态:
变量:
part-count:
——来源:AIN0
-阈值:5
——前沿
——数
使用上面的例子,变量是由唯一名称part-count定义的,变量的主体是列表的操作.从短划线开始的每一线都是一个操作.操作可以被认为是一个接一个执行的工作步骤。每个步骤都将前一步的结果作为其输入,对其执行一些工作,然后将其输出供下一个步骤使用。part-count变量可以描述为这一系列步骤。
- 等待AIN0引脚的变化。当一个变化被注意到,然后把它传递给…
- 一个阈值操作,当值高于或低于阈值时,该操作将值转换为true或false。将阈值传递给…
- 一个前沿检测器操作,用于监视值从false到true(从低到高)的变化。这将修改输入,仅在转换发生时为真,其他时间为假,本质上标志事件发生的时间点。将可数值传递给…
- 一个数操作,在前一步骤中检测到的每个“事件”的递增。没有步骤将计数器值传递给,因此将其分配为变量的结果。
列表中的第一个操作表示一种特殊情况,因为之前没有向它传递值的操作。第一个操作仅限于一小组能够监视其他数据变化的操作。当发生更改时,将运行操作链。这些支持的“starter”操作的列表如下源,表达式,状态.
最后一个操作也很特殊,因为没有后续操作来传递其结果。相反,结果变成了变量本身的值,可以在适配器脚本的其他部分引用它。
看到表达式文档有关变量和其他数据源如何相互引用并导致级联更新的更多信息。
操作参考
操作参考被组织成若干组:
表达式操作
表达式操作处理各种输入,并允许使用复杂的数学或逻辑表达式定义输出。的源Operation是一种特殊类型的表达式操作,必须在每个变量定义的开头使用。
源
语法
——来源:标识符或表达式
每个变量定义都从一个源操作开始。源行标识将提供后续操作序列的数据源。根据配置的设备,有效的数据源可以是大头针、寄存器或标记名。源也可以是另一个变量名,在这种情况下,已命名变量的最终输出将提供给新变量操作链的开始部分。
源可以是简单的名称,也可以是引用一个或多个有效数据源标识符的复杂表达式。当引用的任何数据源被更新时,将计算表达式,并将结果传递到下一阶段。
例子
——来源:pin-0
——来源:另一个变量
-源:引脚1 +引脚2
表达式
语法
-表达式:表达式
一个表达式运算将一个数学(或在有限的情况下,非数学)表达式应用于其输入。计算表达式的结果是操作的输出。
表达式值可以识别特殊关键字这,表示从上一个操作输入的值。适配器脚本中的其他有效标识符(可能来自源代码或其他变量定义)也可以在表达式中使用。
有关表达式的完整能力,请参阅相关表达式支持文档。
例子
——来源:pin-0
-表达式:这个* 9 / 5 + 32
和
语法
- - -:表达式
一个和操作是一般的特殊形式表达式操作,其中输入值通过逻辑隐式地与表达式结果混合和操作。它相当于:
-表达:this and (表达式)
例子
- source: pin-0 >
- and: pin-1 >
或
语法
(或:表达式
一个或操作是一般的特殊形式表达式操作,其中输入值通过逻辑隐式地与表达式结果混合或操作。它相当于:
-表达:this or (表达式)
例子
- source: pin-0 >
-或:pin-1 > 2
状态
语法
紧凑语法:
- 状态:
-结果1:表达式1
-结果2.:表达式2
-结果3:表达式3.
扩展的语法:
- 状态:
-选择:结果1
当:表达式1
-选择:结果2
当:表达式2
-选择:结果3
当:表达式3.
一个状态Operation是一种控制结构,它允许在测试一系列表达式的基础上将常量值赋给变量(或发送给链中的下一个操作)。State类似于其他编程语言中的if/else语句。
状态操作可以有任何数量的结果/表达对。当任何状态的表达式中的任何变量或数据源都发生变化时,将通过按所提供的顺序评估每个表达式来重新计算整个状态。如果表达式评估为true,则将捕获相关结果,并且不会发生进一步的评估。如果表达式评估为false,则将检查列表中的下一个表达式。如果所有表达式评估为FALSE,则状态操作的结果将是从先前的链中传递到其中的值,或者不可用如果这是第一次手术。
状态规则中的表达式可以引用适配器脚本中的任何其他变量或数据源。如果状态操作不是第一个操作,则指定特殊值这也可供使用,并保存从先前操作中传递的值。
您通常应该更喜欢此操作的紧凑语法。如果您尝试分配更复杂的值并且可能会干扰yaml结构,则使用扩展语法。
例子
#获取基本的执行值
- 状态:
—ACTIVE: is-powered和is-cutting
-准备好了:真正的
#重写执行值
——来源:执行
- 状态:
- READY:这个== "ACTIVE"和in-warm -program
样操作
重组
注意:基于时间的,当前的订购安全问题,避免使用,直到解决。
模拟操作
模拟操作主要消耗模拟输入并产生模拟输出。的阈值操作是产生数字(布尔值)输出的异常。
阈值
语法
-阈值:价值
如果值低于或等于阈值,则将先前操作的输出转换为数字高(True),或者如果值低于阈值,或者数字低(假)。
除了通用表达式运算外,阈值运算是将模拟输入转换为数字输出的唯一运算。
例子
——来源:pin-0
-阈值:2.5
平均
语法
——平均:
数:样本窗口大小
对于每个传入的样本,输出前一个样本的平均值数
看到样品。
例子
——来源:pin-0
——平均:
数:100
最大限度
语法
——马克思:
计数:样本窗口大小
对于每个传入的样本,输出前一个样本中最大的数看到样品。
一个最大限度操作可以过滤掉输入中的短滴,并将延迟识别传入样品中的下降。对应于最大限度是延迟断开操作。
例子
——来源:pin-0
——马克思:
数:100
最小值
语法
-最小值:
数:样本窗口大小
对于每个传入的样本,输出前一个样本的最小值数看到样品。
一个最小值操作可以滤除输入中的短上升,并将延迟识别传入样品的增加。对应于最小值是不容错过操作。
例子
——来源:pin-0
-最小值:
数:100
min-delta
语法
- min-delta:价值
什么时候min-delta获取它的第一个样本,它将记住该值并在新样本进入时继续输出该值,除非样本和所记住的值之间的差超过最小-delta值。当超过差异时,min-delta将输出并记住新的样本。
这个操作的效果是将输入量化为更小的离散值集,尽管它不能保证总是选择相同的值。较小的最小-delta值对于去除较小的信号噪声和减少从操作链流出的数据量非常有用。
例子
——来源:pin-0
- min-delta:1
数字业务
数字运算主要消耗数字输入并产生数字输出。当应用于模拟输入时,它们通常将任何非零值视为真值,零值视为假值。
反
语法
——反
的反操作不采取任何参数。它反转了先前操作的输出,使得真为false,并且false变为真实。
如果前面的操作产生一个模拟值,那么0的值将变为真,其他任何值将变为假。
例子
——来源:pin-0
-阈值:4
——反
不容错过
语法
——不容错过:窗口大小
输出一个假值,直到上一阶段的输入在指定的时间内(以秒为单位)保持一个真值,此时输出将切换到真值。任何下降到假输入,即使是瞬间,将切换回假输出和复位延时计数器。
例子
——来源:pin-0
-阈值:4
-不容错过:0.5
延迟断开
语法
-延迟断开:窗口大小
输出一个真值,直到上一阶段的输入在指定的时间内(以秒为单位)保持一个假值,此时输出将切换到假值。任何上升到真在输入,即使是瞬间,将切换输出到真和复位延时计数器。
例子
——来源:pin-0
-阈值:4
-延迟断开:0.5
防反跳
语法
-防反跳:窗口大小
的防反跳运算过滤掉数字输入中持续时间小于指定窗口大小(以秒为单位)的简短变化。解除将帮助锁定信号进入其主导状态。
设置反弹类似于设置不容错过和延迟断开同时。
例子
——来源:pin-0
-阈值:4
-防反跳:0.25
事件操作
事件操作检查特定事件的输入信号,例如从低到高电平的状态转换,每次找到事件时输出0长的真态。在所有其他时候,这些操作输出错误状态。随着休延延迟的事件操作之后,将为其他无限短的事件脉冲提供长度。
边缘
语法
- 边缘
的边缘操作不接受任何参数。它观察一个数字输入,并在每次输入从高到低或从低到高的转换时发出一个事件脉冲。
例子
——来源:pin-0
-阈值:2.5
- 边缘
下降沿
语法
——下降沿
的下降沿操作不接受任何参数。它观看数字输入,每次输入从高到低电平时都会发出事件脉冲。
例子
——来源:pin-0
-阈值:2.5
——下降沿
前沿
语法
——前沿
的前沿操作不接受任何参数。它监视一个数字输入,并在每次输入从低到高的转换时发出一个事件脉冲。
例子
——来源:pin-0
-阈值:2.5
——前沿
价值变化
语法
——价值变化
的价值变化操作不接受任何参数。它观看有关任何变化的输入,每次看到改变时都会发出事件脉冲。
对于未过滤的模拟输入,可以像每个样本一样频繁地发出事件。
例子
——来源:pin-0
- min-delta:1
——价值变化
value-decrease
语法
- 值减少
的value-decrease操作不接受任何参数。它观看模拟输入,每次值减小时都会发出事件脉冲。
降低值的一个应用是检测计数器输入复位到较低的值。
例子
——来源:pin-0
- min-delta:1
- 值减少
值使用
语法
- 增值
的值使用操作不接受任何参数。它监视一个模拟输入,并在每次数值增加时发出一个事件脉冲。
值递增的一个应用是检测计数器输入的增量,同时忽略对较低值的复位。
例子
——来源:pin-0
- min-delta:1
- 增值
柜台业务
计数器操作是一组特殊的操作,它们监视输入并维护内部计数器以响应某些事件。每次计数器改变时,它的值都会作为输出发出。计数器输出被认为是一种模拟类型,在特殊情况下可以由其他模拟操作进一步处理。
数
语法
——数
的数操作不接受任何参数。计数操作旨在遵循任何记录的事件操作,但它们可以由输入中从低到高的任何转换触发。
每次触发count时,其内部值加1,然后输出该值。当适配器重新启动时,内部计数值被重置为0。
例子
——来源:pin-0
-阈值:2.5
——下降沿
——数
窗口计数
语法
-窗口计数:窗口大小
的窗口计数Operation监视输入的任何触发事件,并维护在前一个窗口大小(以秒为单位)内看到的所有事件的计数。
当事件进出被监视的窗口时,窗口计数的内部值将上下波动。每次内部计数器改变时,计数将输出。
例子
——来源:pin-0
-阈值:2.5
——下降沿
- - - - - -窗口计数:1
文本操作
文本(也称为字符串)操作允许检查或转换文本数据源,例如程序名称。在通用表达式操作中已经提供了一些基本文本支持。例如,可以通过使用==运算符来测试变量或数据输入保持文本是否与特定单词匹配。
的要求
语法
- 模式匹配:正则表达式
- 模式匹配:
模式:正则表达式
组:捕获集团
其他:默认字符串
的的要求操作允许在文本中搜索模式并捕获与该模式匹配的文本部分。
的图案参数是强制性的。它的值可以是一个简单的字符串,例如一个单词或一个数字。该值也可以是一个完整的正则表达式,允许进行更复杂的匹配。正则表达式应该总是用一对斜杠(/)括起来。斜线不会被视为模式本身的一部分。
的集团参数是可选的,仅当匹配的模式是正则表达式时使用。正则表达式允许使用括号创建“捕获组”,这是较大模式中的较小模式。当捕获组出现在模式字符串中时,它们被分配一个以1开头的数字。将group参数设置为捕获组的数量将导致操作只捕获模式的那一部分。默认情况下,将捕获整个模式。
的其他的参数是可选的。如果在输入字符串中找不到匹配,则操作的结果将改为else中指定的值。如果指定了否则值,则结果是空字符串。
模式匹配是一个高级技术主题。如果您打算捕获比精确的字符串匹配更复杂的模式,那么您应该熟悉常见的正则表达式语法和规则。
例子
——来源:程序名
- 模式匹配:
模式:WARMUP1
输入:CNCpart1
结果:
输入:WARMUP1
结果:WARMUP1
输入:WARMUP2
结果:
——来源:程序名
- 模式匹配:
模式:/ O7 [0 - 9] + /
输入:O8003
结果:
输入:O7005
结果:O7005
——来源:程序名
- 模式匹配:
模式:/ O (7 [0 - 9] +) /
组:1
其他:1
输入:O8003
结果:1
输入:O7005
结果:7005
pattern-replace
语法
- pattern-replace:
模式:正则表达式
:更换
其他:默认字符串
的pattern-replace操作允许在文本中搜索模式,并用另一个值替换与模式匹配的文本部分。
的图案参数是强制性的。它的值可以是一个简单的字符串,例如一个单词或一个数字。该值也可以是一个完整的正则表达式,允许进行更复杂的匹配。正则表达式应该总是用一对斜杠(/)括起来。斜线不会被视为模式本身的一部分。
的与参数是强制性的。这是模式匹配的每个实例的替代品。整个匹配值本身可以用作符号作为替代的一部分$0.如果在模式中使用了括号(表示模式的部分),那么那些匹配的部分可以通过使用符号在替换中使用$1,$2,$3等等分配了括号组从左到右出现的顺序分配。
的其他的参数是可选的。如果在输入字符串中找不到匹配,则操作的结果将改为else中指定的值。如果没有指定其他值,则结果是原始的未修改字符串。
模式匹配是一个高级技术主题。如果您打算替换比精确的字符串匹配更复杂的模式,那么您应该熟悉常见的正则表达式语法和规则。
例子
——来源:程序名
- pattern-replace:
模式:O7001
: O7003
输入:O8000
结果:O8000
输入:O7001
结果:O7003
——来源:程序名
- pattern-replace:
模式:/ o([0-9] +)/
: 1美元
输入:O9013
结果:9013
输入:OX123
结果:ox123
——来源:程序名
- pattern-replace:
模式:/ o([0-9] +)/
: 1美元
其他:0
输入:O9013
结果:9013
输入:OX123
结果:0
格式测试
语法
-格式测试:正则表达式
的格式测试操作测试是否存在带有文本的模式。如果模式存在一次或多次,则pattern-test的结果为true,否则为false。
模式测试的参数可以是一个简单的字符串,例如单词或数字。该值也可以是一个完整的正则表达式,允许进行更复杂的匹配。正则表达式应该总是用一对斜杠(/)括起来。斜线不会被视为模式本身的一部分。
模式匹配是一个高级技术主题。如果您打算替换比精确的字符串匹配更复杂的模式,那么您应该熟悉常见的正则表达式语法和规则。
例子
——来源:程序名
-格式测试:热身
输入:WARMUP1
结果:真正的
输入:O7003
结果:假
——来源:程序名
-格式测试:/ O [0 - 9] + /
输入:O7003
结果:真正的
输入:9001
结果:假
Misc操作
杂项操作不能清晰地归入其他类别,也不能被MachineMetrics内部使用。
日志文件
语法
日志文件:的名字
日志文件:
名称:的名字
格式:格式字符串
repeat-values:真正的或假
的日志文件操作是MachineMetrics有时使用的内部操作,通过将数据记录到磁盘以供稍后检查,帮助诊断集成的问题。它们并不打算由最终用户编写,但您仍然可能在适配器脚本中遇到它们。
可以在一个变量定义中使用多个日志文件操作。日志文件操作的任何输入都将透明地传递给下一个操作。一个适配器脚本中的每个日志文件操作都必须是唯一的的名字.有速记和手写表格。
在普通语法中,a格式可以提供字符串。格式字符串支持特殊占位符:
- 美元的价值—日志操作输入的格式化值。
- 美元的时间戳—记录值的十进制Unix时间戳。
- DATETIME美元-一个格式化的ISO日期和时间的值被记录。
如果没有提供,默认格式字符串是:时间戳\ t美元价值
缺省情况下,日志中的值不重复。这种行为可以通过repeat-values选择。
日志记录限制为10MB的数据或24小时数据,以速度迅速疲惫。
例子
——来源:pin-0
日志文件:sample1.log
——来源:pin-0
日志文件:
名称:sample2.log
格式:$ DateTime - $ Value
repeat-values:真
有问题吗?
接触support@machinemetrics.com额外的帮助。
评论
0评论
请登录留下评论。