登录
首页 PLC论坛 欧姆龙OMRON
回帖 发帖
正文

主题:请教一个欧姆龙比较问题

点击:1023 回复:4

需要比较30个数据,D100-D130,我想要给这30个数据排名,找出前3名,我用FOR循环和地址偏移倒是可以找出最大的数据,但是第二和第三不知道如何编写,不知道哪位大侠能帮下忙?
17-12-19 14:37

引用 初心zYabnJic 在 2017/12/19 14:37:20 发言【内容省略】

使用MAX指令得到一个数据列的最大值,MAX指令会返回这个最大值的数值以及其在内存中的地址。
通过地址可以将这个最大值保存下来,同时将数据列中这个寄存器清零,此时你只有30个数据了,因为最大值已经被取出了。
接下来继续执行MAX指令,你得到的数据就是数据队列中第二大的了,接着继续执行MAX,你可以获得第三大,第四大。
Good Luck~
17-12-19 14:46
谢谢,但是现在这30个数据是会变化的,不过变化不是特别快,而且数据是不能清零,请问大大有没有办法能实现排序啊
17-12-19 15:00

引用 初心zYabnJic 在 2017/12/19 15:00:19 发言【内容省略】

你难道已经将PLC中的数据寄存器的全部用完了么?排序的效率会更低……为什么呢,因为数据是变化的,比较走一个循环,排序至少要走队列数的一半数据循环。
如果你看不懂上面的回帖,我通俗的讲,你不能得到一个数据列的副本,用副本进行操作?
Good Luck~
17-12-19 15:31
明白了,一下没转过弯陷入误区了,谢谢
17-12-19 15:38

工控新闻

更多新闻资讯