plc s7-200梯形图,要求一个采样周期采样十个数据,去掉最大和最小值,剩余的8个取均值,输
plcs7-200梯形图,要求一个采样周期采样十个数据,去掉最大和最小值,剩余的8个取均值,输出均值。最好有每步骤解释(VW0VW2VW4.......AIW0.EM23...
plc s7-200梯形图,要求一个采样周期采样十个数据,去掉最大和最小值,剩余的8个取均值,输出均值。最好有每步骤解释(VW0 VW2 VW4....... AIW0. EM231. 还有循环比较大小……我不懂→_→但可能用到),梯形图手画,电脑图片都可以😭😭😭谢谢!
展开
展开全部
你说的这个问题比较复杂,我早几年前遇到这样的需求,但是没去验证,最近程序已写完,还没验证。
楼主可以从以下几个思路解决。
1、通过200的填表指令。FIFO,具体查看系统手册或指令手册。因为AIW刚好是字类型,可以直接用填表指令,每个规定的计时脉冲,触发一次填表指令。
数据填充完成,如果要去除最大值最小值,需要用到排序,具体算法可以参考冒泡法,需要用到指针,即间接寻址。
求平均值可以通过指针,也可以直接地址运算。(前提是你的数据放在某一个固定区域)
2、通过指针运算。存储数据通过指针变址存储,可针对不同数据类型,比如B,WORD,DINT,REAL,然后再通过上面说的排序,去除最大值,最小值,求中间的平均值。(排序和求平均值参考上面描述)
原来设计这个程序的目的是为了在线称重,去除传送带等其他偶然误差和固定误差。
程序未加注释,不贴了。冒泡法排序用到了FOR NEXT指令。
楼主可以从以下几个思路解决。
1、通过200的填表指令。FIFO,具体查看系统手册或指令手册。因为AIW刚好是字类型,可以直接用填表指令,每个规定的计时脉冲,触发一次填表指令。
数据填充完成,如果要去除最大值最小值,需要用到排序,具体算法可以参考冒泡法,需要用到指针,即间接寻址。
求平均值可以通过指针,也可以直接地址运算。(前提是你的数据放在某一个固定区域)
2、通过指针运算。存储数据通过指针变址存储,可针对不同数据类型,比如B,WORD,DINT,REAL,然后再通过上面说的排序,去除最大值,最小值,求中间的平均值。(排序和求平均值参考上面描述)
原来设计这个程序的目的是为了在线称重,去除传送带等其他偶然误差和固定误差。
程序未加注释,不贴了。冒泡法排序用到了FOR NEXT指令。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询