分享关于SMART200数据排序问题

已锁定

迷失中原

  • 帖子

    466
  • 精华

    5
  • 被关注

    47

论坛等级:侠圣

注册时间:2013-01-18

钻石 钻石 如何晋级?

分享关于SMART200数据排序问题

2991

12

2024-09-10 18:21:59

    这两天现场调试仪表通讯,遇到一个问题,仪表232转485读取称重数据,连续发送,发过来的数据偶尔有无效数据,导致数据异常,遂采用排序取中间值将无效值排除。

     其实排序算法,论坛里有许多老贴了,写的已经很完善了!闲着没事,瞎琢磨一个,分享给有需要的人。

     祥细程序就细贴了,说一下思路、功能和注意事项。

     1、基本算法还是“冒泡法”。程序设置Flag标志位,当无数据交换,立即退出循环。

     2、每一次内循环后,由于最后面的数据永远是最大或者最小的,因此下一周期,不再参与交换,太高了效率。

     3、本程序自动多周期异步计算。假如100个数据,10个周期处理完成;200个数据可能自动分配50个周期;大于400个数据可能就需要400个周期处理完处理;目的就是要保证周期时间不超时。

     4、可以设置升序、降序;设置输入排序、输出排序。

     5、支持字节、整数、双整数、浮点数四种排序。

     6、如需测试请通过EXCEl向VB区域填充数据。


     欢迎大家指正!

   

      测试500个浮点数如下。



      注意事项:

     1、本程序内部设定最大500个数据,实际测试500个浮点数据对PLC来说,时间已经很长了!对控制系统来说,风险还是比较大的。如需要更多数据,请自行子程序里更改。

     2、本程序未内置看门狗复位指令。以上测试程序均为空程序下500浮点数测试结果。如有其它控制程序,则总时长可能会加长。请自行测试最终周期时间,防止超时停机。

     3、排序期间,数据禁止刷新。

     4、用户自行保证排序数据与数据类型一致。

     5、程序需要占用15BYTES V区用以内部计算。


冒泡排序测试 SBR -0910.rar


分享关于SMART200数据排序问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200 SMART

共有8945条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。