文件标准偏差 (STD)
下表列出了支持此指令的控制器和应用程序。
架构 | 标准应用程序 | 安全应用程序 |
|---|---|---|
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 | 否 |
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 是 | 是 |
STD 指令用于计算 Array 某一维数中一组值的标准偏差,并将结果存入 Destination。
可用语言
梯形图

功能块
此指令不可用于功能块中。
结构化文本
此指令不可用于结构化文本中。
操作数
指令中混用数据类型时,需遵从相关的数据转换规则。请参见“数据转换”部分。
梯形图
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
Array | SINT INT DINT REAL | 数组标签 | 计算此数组中各值的标准偏差 指定计算标准偏差所用的元素组中的第一个元素 |
Dimension to vary | DINT | 立即数 (0、1、2) | 要使用的维度 维度的顺序是:array[0,1,2] |
Destination | REAL | 标签 | 运算结果 |
Control | CONTROL | 标签 | 运算的控制结构 |
Length | DINT | 立即数 | 计算标准偏差所用的数组的元素数目 |
Position | DINT | 立即数 | 指定数组的偏移量,用于标识指令正在访问的当前元素。 初始值通常为 0 |
长度和位置(对应于控制标签中的 .LEN 和 .POS)是伪操作数。有关详细信息,请参阅 伪操作数初始化。
CONTROL 结构
助记符 | 数据类型 | 说明 |
|---|---|---|
.EN | BOOL | 使能位,指示 STD 指令是否使能。 |
.DN | BOOL | 完成位,指令对数组中最后一个元素进行运算后置位。 |
.ER | BOOL | 错误位,指令发生溢出时置位。指令停止执行,直到程序将 .ER 位清零。.POS 值存储导致溢出的元素的位置。 |
.LEN | DINT | 长度字,用于指定参与指令运算的数组元素数目。 |
.POS | DINT | 位置字,为指定数组的偏移量,用于标识指令正在访问的当前元素。 |
说明
标准偏差的计算公式如下:

其中:
start = 数组操作数的 dimension-to-vary 下标
xi = 数组中的变量元素
N = 数组中指定元素的数目
AVE = 

重要提示:
确保 Length 值不会导致指令超出指定的 Dimension to vary。如果发生超出的情况,Destination 将不正确。
如果在对表达式求值期间发生溢出,或者指令执行读操作时超过数组的末尾,则指令会将 ER 位置位并停止执行。
影响数学状态标志
控制器 | 影响数学状态标志 |
|---|---|
CompactLogix 5380、ControlLogix 5580、Compact GuardLogix 5380、GuardLogix 5580 和 ControlLogix 5590 控制器 | 在一定条件下影响,具体取决于编程语言。请参见“数学状态标志”部分。 |
CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370 和 GuardLogix 5570 控制器 | 是 |
严重/轻微故障
在以下情况下会发生严重故障: | 故障类型 | 故障代码 |
|---|---|---|
.POS < 0 或 .LEN < 0 | 4 | 21 |
Dimension to vary > 维度数 | 4 | 20 |
有关操作数相关的故障,请参见“通用属性”。
执行
梯形图
条件/状态 | 执行的操作 |
|---|---|
预扫描 | .EN 位清零。 .DN 位清零。 .ER 位清零。 |
梯级输入条件为假 | .EN 位清零。 .ER 位清零。 .DN 位清零。 .POS 值清零。 梯级输出条件为假。 |
梯级输入条件为真 | 在内部,指令使用 FAL 指令计算平均值: 表达式 = 标准偏差计算 模式 = 所有 |
后扫描 | 不适用。 |
示例
示例 1
计算 arrayDint(即 DINT[4,5])的标准偏差。


梯形图

示例 2
计算 dint_array(即 DINT[4,5])的标准偏差。

梯形图

提供反馈