请教:队列排序问题
刘玉蓉
发布于2014-10-15 17:05
2
0
标签:
请教:队列排序问题:
具体工况:是通过条形码采集上来的数据存储在1×10的一维数组,数据类型为byte。
(第1位为起始位,定义为“S”.ASCII码为“83”,第10位为结束位,定义为“E”ASCII码为“69”,第2~9位为阿拉伯数字,每一位也是用ASCII码表示。PLC采集到的数是以
ASCII码来表示的。)
正确采集上来的条形码数据格式为:
"S***E"的形势。("X"代表任一0~9的阿拉伯数字)
通过计算我已经把ASCII码转换成了“S***E”形势。
不过出现了问题。
举例:
例如一组数,正确的形势是“S72234534E”形势。不过采集完后会出现这些排列:
“ES72234534”
“4ES7223453”
“34ES722345”
“534ES72234”
“4534ES7223”
“34534ES722”
“234534ES72”
“2234534ES7”
“72234534ES”
“S72234534E”(这是需要的数)
这些组合式随机出现的,即数列的顺序是不变的,只是各自的位置随机变化。我通过梯形图实现了队列数据的从新排列(即将队列数据按照需要的格式从新排列),但是感觉梯形
图实现起来非常的繁琐,由于程序编写的非常繁琐,上传比较麻烦,也感觉没有参考价值,觉的这种功能应该通过STL实现,在网上搜了一下相关帖子,还是没有思路,
请问:STEP7中使用STL如何实现如上功能?
佳答案
当然,用stl或scl编程比较方便。其实梯形图也麻烦不到哪里。
关键是你说了可以保证数列的顺序不会错,所以可以简化为找S的位置x,另建一个10byte的一维数组存储结果,个固定为S,后一个固定为E,剩下的2-8个用源数组的第x+1、x+2...填充,下标大于9时从0开始。