数据修剪平均值.rar
也蹭个平均值热度,去掉一个最小值、一个最大值后求平均值,其他人称其为中位值,但在网络上查了一下,似乎应该叫修剪平均值,真正的中位值应该是所有数据排序后取位于排序中间的数值(若为偶数采样,则取中间两个数的均值)
和https://www.ad.siemens.com.cn/club/bbs/post_1978638_64_0_16.html#anch这个程序类似,只是人家用STL,我用LAD
用S7-200 smart V3的函数块FB编写,使用LAD编写,便于查看,只是函数块会占用较多的空间,不适用于V2.8及以下版本
做过测试,但还没实际使用过,也给出了测试用的示例,只是为了方便调试监控,对计时脉冲上升沿变量在监控时手动修改,若为周期脉冲沿则可以定时采样、计算,若为AlwaysOn则若干个扫描周期(若计时长度参数为1则为每个扫描周期)采样一次、计算一次,可以随时初始化,初始化时以当前输入的输入数据填充采样数据区、并将当前输入的输入数据做为平均值输出,修改采样数据数量时也相当于初始化,若禁用平均值,则输出当前输入数据,若有计时脉冲上升沿,同时采样新数据、计算平均值,但输出时只输出当前输入数据,也就是可以随时禁用平均值,也可随时启用平均值
V3的函数块导入、导出可能会出错,所以建议在导出后再导入时,在导入的程序里打开函数块并删除导入进来的程序(主要是保留参数),然后也打开原函数块,将原函数块里的所有东西复制到新程序里的函数块内,并将所有参数类型重新设置一遍(先修改为其它类型,再修改回去),郁闷吧,V3就这尿性
或者就在该程序上直接修改或添加你的控制程序