模拟值典型程序块 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 | |
数据位 | 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 | |
说明: | 模拟量输入字 对于数据帧中要传送的每一个模拟值,均可* 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 时立即进行发送,同时还发送平均值计算(作为当前平均值计算周期的无效平均值)。 |
shtxjd.cn.b2b168.com/m/