模拟值典型程序块 Ana04W_S

时间:2021-08-02点击次数:78

模拟值典型程序块 Ana04W_S

功能

将 4 个模拟值以 16 位值的形式发送

Ana04W_S 交替传送 4 个模拟值:

作为瞬时值

在传送过程中,将采集当前未决的模拟值,并将其传送给伙伴。

作为平均值

将以一定的时间间隔(可选)积累未决模拟值。在传送过程中,从总值得到平均值,并将平均值传送给伙伴。


提示

四个模拟值的常见处理

处理参数(例如阈值、滤波系数等)在每个典型程序块中只存在一次。这些参数共同应用于全部 4 个模拟值;换言之,无法为单个模拟值设置这些参数。因此,每个典型程序块都只能采集处理方式相同的模拟值。



参数

参数:

PartnerNo

PartnerObjectNo

Enabled

ImageMemory

Conditional

Unconditional

有关说明,请参见重现参数部分。

参数:

TimeStamp

有关声明、数据类型、值范围、默认值和功能的信息,请参见重现参数部分。

特定于典型程序块的功能

设置为 TRUE 时,时间戳取决于参数“MeanValueGeneration”的设置:

MeanValueGeneration = FALSE

瞬时值传送到数据帧中。

数据帧中的时间戳为数据帧中瞬时值的采集时间。

MeanValueGeneration = TRUE

数据帧中包含平均值。

时间戳为平均值计算完成时的时间。

平均值计算的开始时间不包含在数据帧中,但这一时间等于之前传送的平均值帧的时间戳。

参数:

ThresholdIntegration

声明:

INPUT

数据类型:

BOOL

取值范围:

TRUE / FALSE

默认值:

FALSE

说明:

根据积分原理处理阈值

可利用此参数*是否在阈值处理过程中使用积分原理。

如果是默认值 FALSE,则计算阈值时不使用积分原理。这种情况下,远程控制线路上的数据通信量以及 CPU 与 TIM 之间的本地数据通信量更少一些。

如果 MeanValueGeneration = TRUE(模拟值作为平均值发送),“ThresholdIntegration”参数没有意义。

参数:

ZeroLimitation

声明:

INPUT

数据类型:

BOOL

取值范围:

TRUE / FALSE

默认值:

TRUE

说明:



零限制

如果此参数激活,将禁止使用负数,负数被替换为 0。

参数:

TriggerInput

声明:

INPUT

数据类型:

BOOL

取值范围:

TRUE / FALSE

默认值:

FALSE

地址范围:

输入

I 0.0 ... I n.7

存储器位

M 0.0 ... M n.7
L 0.0 ... L n.7

数据位

DBm.DBX 0.0 ... n.7

说明:

触发器输入

“TriggerInput”输入的沿变化为 0 → 1 时,可以在所需时间触发模拟值帧的传送。

示例:
带时间戳的时间驱动模拟值传送,用于在控制中心提供模拟值归档。

确保将“ImageMemory”参数设置为 FALSE,以防止在 TIM 站上保存时覆盖这些带时间戳的数据帧。

如果数据块计算平均值,则计算周期的持续时间由“TriggerInput”输入决定。每次此输入触发传送时,当前周期结束,新周期开始。相邻两次数据帧触发的间隔决定了平均值计算周期的持续时间。

FC Trigger 块可用于通过“TriggerInput”以时间驱动方式触发传送。

如果不需要此参数,保留不处理即可。然后应根据“ThresholdValue”和“ThresholdIntegration”阈值参数触发传送。

 

“TriggerInput”实际上只是间接触发传送。“TriggerInput”沿变化为 0→1 时,数据帧将与其当前值/平均值放到一起,并传送到本地 TIM 中。TIM 负责实际传送给伙伴。对于专线或无线网络,可以直接进行传送。对于拨号连接,数据帧可以先保存在 TIM 上,并在稍后的时间发送。例如,原因可以是数据帧已标记为“有条件自发”,参见参数“Conditional”。

参数:

MeanValueGeneration

声明:

INPUT

数据类型:

BOOL

取值范围:

TRUE / FALSE

默认值:

FALSE

说明:


生成平均值

如果参数已启用,则要采集的模拟值将作为平均值传送。

如果选择生成平均值,则会循环采集当前未决的模拟值并将其累加。采集周期取决于“SamplingPeriod”参数(例如 500 ms,另请参见此参数的说明)。传送一经“TriggerInput”输入触发,就会根据累加值计算平均值。随后,再次开始累加,以便计算下一个平均值。

如果模拟值帧传送是由常规请求或者单个请求所触发,也可以计算平均值。此时平均值计算周期的持续时间为:从上一次传送(例如,通过 TriggerInput 触发)的时间开始到发出常规请求或单个请求的时间。再次重新开始累加,以便计算下一个平均值。

如果采集到的模拟值**或者低于允许范围 (7FFFH bzw.8000H),可立即将该值用于平均值计算,或者在平均值计算期间禁用该值。可利用“FaultSuppressionTime”参数确定所需响应:

 

FaultSuppressionTime = 0

如果采集的值**过范围或低于欠范围,将立即取消平均值计算。当前平均值计算周期中将 7FFFH 或 8000H 值保存为无效平均值,并在触发下一个模拟值帧时发送。然后开始进行新的平均值计算。如果模拟值仍在过冲或下冲范围内,则会再次将该新值保存为无效平均值,并在下一帧触发时发送。

FaultSuppressionTime > 0

如果采集到的模拟值位于过冲或下冲范围内,则将在 FaultSuppressionTime 所定义的较长持续时间,从平均值计算中排除这些无效值。如果**出该时间,则将 7FFFH 或 8000H 值保存为无效平均值,并在触发下一个模拟值帧时发送。在各个新平均值计算周期的平均周期内,该过程均相同,换言之,在“FaultSuppressionTime”的周期内,将再次禁用无效值。

“FaultSuppressionTime”的周期还间接决定了每个平均值计算周期中的无效值比例。例如,如果每 15 分钟计算一次平均值,并将“FaultSuppressionTime”设置为 5 分钟,则在当前平均值计算周期内,如果采集的模拟值中有**过 1/3 的值**过冲或低于下冲,则平均值只能作为无效值发送。

参数:

AnalogInput_1 ... _4

声明:

INPUT

数据类型:

WORD

取值范围:

请参见地址范围

默认值:

0 (W#16#0)

地址范围:

I/O 字

PIW0 ... PIWn

存储器字

MW0 ... MWn

数据字

LW0 ... LWn
DBm.DBW0 ... n

说明:

模拟量输入字

对于数据帧中要传送的每一个模拟值,均可* FB 获取模拟信息的位置。可以根据需要将模拟输入模块的 I/O 字、数据块的数据字以及存储器字混合。

如果不需要这些参数,保留不处理即可。对于数据帧中的这些模拟输入,将传送值 0。

参数:

SamplingPeriod

声明:

INPUT

数据类型:

INT

取值范围:

0 ... 32767 [ms]

默认值:

500

说明:

模拟输入的采集间隔(毫秒)。

以下参数需要采集间隔:

根据积分原理形成阈值(阈值积分)

模拟输入值滤波(滤波系数)

生成平均值

必须选择足够高的值,以确保新值是在模拟输入的加密时间内所采集。*的间隔至少要与选定分辨率(8 ... 15 位)情况下所使用的模拟输入模块的编码时间相同。

还必须大量选择值,这样,即使分辨率较高,模拟模块的输入数量也较高,仍然可以采集到模拟值。

如果计算平均值,则 SamplingPeriod 应不小于 500 ms。如果计算非常长的时间段的平均值,时间必须以下列方式增加:

平均值计算周期 12 小时:SamplingPeriod = 1000 [ms]

平均值计算周期 24 小时:SamplingPeriod = 2000 [ms]

如果*的“SamplingPeriod”过短,可能导致内部累加计数器溢出。不得**出双精度整数的较大值 2 147 483 647。检测到溢出时,将传送当前平均值计算周期的无效平均值 8000H。

参数:

ThresholdValue

声明:

INPUT

数据类型:

INT

取值范围:

0 / 1 ... 32767

默认值:

270

说明:

阈值

*阈值时,要将模拟值的加密范围考虑在内。来自 S7 模拟输入的原始值始终在 0 ... 27648 (= 0 ... 100 %) 或者 + 27648 (= + **) 的范围内编码。根据模拟输入的分辨率,该值从 128(8 位分辨率)或 1(15 位分辨率)跳跃。如果采集的模拟值编码范围不同,则*针对此种情况的阈值。

如果未组态参数,则使用默认值 270。该值约为正常 S7 模拟原始值范围的 1%。

应注意“ThresholdValue” = 0 的情况

不会根据阈值检查更改。模拟值帧只会在以下情况下发送:

当有通过“TriggerInput”输入进行的触发时(通常是时间驱动触发或者事件驱动触发)。

当对站常规请求或单独请求数据帧时。

当模拟值移动到过冲或下冲范围内时(7FFFH 或 8000H)(可能在为“FaultSuppressionTime”设置的禁用时间过去之后)。

当 MeanValueGeneration = TRUE 时,例如,模拟值作为平均值发送,“ThresholdValue”参数没有意义。

参数:

SmoothingFactor

声明:

INPUT

数据类型:

INT

取值范围:

1 (无滤波)

4 (弱滤波)

32 (中滤波)

64 (强滤波)

默认值:

1

说明:



滤波系数

当 MeanValueGeneration = TRUE 时,例如,模拟值作为平均值发送,“ThresholdValue”参数没有意义。

使用滤波系数,可以根据系数将快速波动的模拟值滤波到更高或更低的范围。因此可以选择更窄的阈值区间 (ThresholdValue)。

这些滤波系数与针对一些 S7 模拟量输入模块所组态的滤波系数完全相同。计算滤波时使用的公式与在输入模块上使用的公式相同:

yn = 当前周期 n 中的滤波值

yn-1 =上一周期 n-1 中的滤波值

xn = 当前周期 n 中的采集值

k = 滤波系数

参数:

FaultSuppressionTime

声明:

INPUT

数据类型:

INT

取值范围:

0 ... 32767

默认值:

0

说明:



故障抑制时间(秒)。

在此处所*的时间段内,将禁止传送位于过冲范围或下冲范围(7FFFH 或 8000H)的模拟值。只有在这段时间过去后,才发送值 7FFFH 或者 8000H(如果仍处于未决状态)。如果在这段时间内,值再次恢复为低于 7FFFH 或** 8000H,则会立即按正常情况发送。下次采集到 7FFFH 或 8000H 时,将在整个持续时间范围内再次启动抑制时间。

这通常用于暂时抑制大功率泵和电机启动时可能产生的电流值。在某些情况下,模拟量输入可能会多次**出较大范围。抑制值可防止这些值作为控制中心系统的故障值发送。

抑制值将调整为由 S7 模拟量输入模块作为原始值所采集的模拟值。这些模块将返回针对所有输入范围(也包括非零较小输入)*的上溢或下溢范围值。如果提供了现成的值,则当出现过冲或者下冲时,仅当这些值也采用值 7FFFH 或者 8000H 时,才能执行故障抑制。否则,不需要为参数输入任何值。

该参数也可以与平均值计算结合使用,用于暂时抑制值 7FFFH 或者 8000H(请参见参数 MeanValueGeneration)。

如果没有*参数,则默认使用 0 秒。**检测到采集值 7FFFH 或 8000H 时立即进行发送,同时还发送平均值计算(作为当前平均值计算周期的无效平均值)。


http://shtxjd.cn.b2b168.com

上一篇:冗余 备用

产品推荐