s7-200 大量数据的大小排序问题 点击:3240 | 回复:12



中空时代

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 15回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2007年9月08日
发表于:2007-12-05 10:58:00
楼主
在大约2秒的时间内,有大量的模拟量数据经模拟量输入口输入,已经转化为实际数值,每一个扫描周期来一个数,现在的问题是如何把其中最大的50个数据取出来并按由大到小的顺序依次放在相邻的存储单元里。谢谢!



中空时代

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 15回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2007年9月08日
发表于:2007-12-05 11:43:00
1楼
我用的循环比较,大于等于后一个数,小于等于前一个数时,把数写入这个位置,后面的依次移一位,可问题是最开始的五十个没法进来,我不知道怎么处理了 !



针对我的思路,大家给点意见.

中空时代

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 15回
  • 年度积分:0
  • 历史总积分:33
  • 注册:2007年9月08日
发表于:2007-12-05 11:43:00
2楼
我用的循环比较,大于等于后一个数,小于等于前一个数时,把数写入这个位置,后面的依次移一位,可问题是最开始的五十个没法进来,我不知道怎么处理了 !



针对我的思路,大家给点意见.

microtomato

  • 精华:1帖
  • 求助:0帖
  • 帖子:85帖 | 1476回
  • 年度积分:0
  • 历史总积分:2078
  • 注册:2001年11月02日
发表于:2007-12-05 20:17:00
3楼
可以找本数据结构的书翻翻,排序算法1大堆。你可以找个合适的改1下。

sangkunpeng

  • 精华:0帖
  • 求助:0帖
  • 帖子:12帖 | 72回
  • 年度积分:0
  • 历史总积分:171
  • 注册:2001年10月21日
发表于:2007-12-05 21:27:00
4楼
想问下 为啥要排序 

DIANSHAN

  • 精华:0帖
  • 求助:0帖
  • 帖子:69帖 | 337回
  • 年度积分:0
  • 历史总积分:636
  • 注册:2007年3月11日
发表于:2007-12-06 12:13:00
5楼
按着你想法,按我的理解,是否可以这样修改题目:

S7-200模拟量最大数量为30路,在一个扫描周期来可以都来,因此把你的话改为“在大约2秒的时间内,有大量的模拟量数据经模拟量输入口输入,已经转化为实际数值,每一个扫描周期来任意数,现在的问题是如何把其中10个数(为了简化只作10个)中最大的5个数据取出来并按由大到小的顺序依次放在相邻的存储单元里。!”

是否可以这样做:(降序冒泡法)
1, 模拟量传入队列,VW100。。。VW118
2, 往上排最大(降序VW100。。。VW118)
3, 其中最大的5个数(降序VW100。。。VW108)
4, 程序(梯级图)

TITLE=程序注释
Network 1 
LD     SM0.0
MOVD   0, VD20
Network 2 
LD     SM0.0
FOR    VW10, 1, 10
Network 3 
LD     SM0.0
MOVD   +2, VD20
INCD   VD20
MOVD   +98, VD24
+D     VD20, VD24
Network 4 // 网络标题
// 网络注释
LD     SM0.0
MOVD   &AIW0, LD10
+D     VD24, LD10
BMW    *LD10, VW100, 10
Network 5 
LD     SM0.0
MOVD   0, VD20
Network 6 
LD     SM0.0
FOR    VW10, 1, 10
Network 7 
LD     SM0.0
MOVD   +2, VD20
INCD   VD20
MOVD   +98, VD24
+D     VD20, VD24
Network 8 // 网络标题
// 网络注释
LD     SM0.0
MOVD   &AIW0, LD10
+D     VD24, LD10
BMW    *LD10, VW100, 10
Network 9 
LD     SM0.0
MOVD   0, VD20
Network 10 
LD     SM0.0
FOR    VW10, 1, 10
Network 11 
LD     SM0.0
MOVD   +2, VD20
INCD   VD20
MOVD   +98, VD24
+D     VD20, VD24
Network 12 // 网络标题
// 网络注释
LD     SM0.0
MOVD   &AIW0, LD10
+D     VD24, LD10
BMW    *LD10, VW100, 10
Network 13 
// 检查VW100
LD     SM0.0
LPS
AW>    VW102, VW100
MOVW   VW100, LW0
AENO
MOVW   VW102, VW100
AENO
MOVW   LW0, VW102
LRD
AW>    VW104, VW102
MOVW   VW102, LW0
AENO
MOVW   VW104, VW102
AENO
MOVW   LW0, VW104
LRD
AW>    VW106, VW104
MOVW   VW104, LW0
AENO
MOVW   VW106, VW104
AENO
MOVW   LW0, VW106
LRD
AW>    VW108, VW106
MOVW   VW106, LW0
AENO
MOVW   VW108, VW106
AENO
MOVW   LW0, VW108
LRD
AW>    VW110, VW108
MOVW   VW108, LW0
AENO
MOVW   VW110, VW108
AENO
MOVW   LW0, VW110
LRD
AW>    VW112, VW110
MOVW   VW110, LW0
AENO
MOVW   VW112, VW110
AENO
MOVW   LW0, VW112
LRD
AW>    VW114, VW112
MOVW   VW112, LW0
AENO
MOVW   VW114, VW112
AENO
MOVW   LW0, VW114
LRD
AW>    VW116, VW114
MOVW   VW114, LW0
AENO
MOVW   VW116, VW114
AENO
MOVW   LW0, VW116
LPP
AW>    VW118, VW116
MOVW   VW116, LW0
AENO
MOVW   VW118, VW116
AENO
MOVW   LW0, VW118


Network 14 
// 检查VW102
LD     SM0.0
LPS
AW>    VW104, VW102
MOVW   VW102, LW0
AENO
MOVW   VW104, VW102
AENO
MOVW   LW0, VW104
LRD
AW>    VW106, VW104
MOVW   VW104, LW0
AENO
MOVW   VW106, VW104
AENO
MOVW   LW0, VW106
LRD
AW>    VW108, VW106
MOVW   VW106, LW0
AENO
MOVW   VW108, VW106
AENO
MOVW   LW0, VW108
LRD
AW>    VW110, VW108
MOVW   VW108, LW0
AENO
MOVW   VW110, VW108
AENO
MOVW   LW0, VW110
LRD
AW>    VW112, VW110
MOVW   VW110, LW0
AENO
MOVW   VW112, VW110
AENO
MOVW   LW0, VW112
LRD
AW>    VW114, VW112
MOVW   VW112, LW0
AENO
MOVW   VW114, VW112
AENO
MOVW   LW0, VW114
LRD
AW>    VW116, VW114
MOVW   VW114, LW0
AENO
MOVW   VW116, VW114
AENO
MOVW   LW0, VW116
LPP
AW>    VW118, VW116
MOVW   VW116, LW0
AENO
MOVW   VW118, VW116
AENO
MOVW   LW0, VW118
Network 15 
// 检查VW104
LD     SM0.0
LPS
AW>    VW106, VW104
MOVW   VW104, LW0
AENO
MOVW   VW106, VW104
AENO
MOVW   LW0, VW106
LRD
AW>    VW108, VW106
MOVW   VW106, LW0
AENO
MOVW   VW108, VW106
AENO
MOVW   LW0, VW108
LRD
AW>    VW110, VW108
MOVW   VW108, LW0
AENO
MOVW   VW110, VW108
AENO
MOVW   LW0, VW110
LRD
AW>    VW112, VW110
MOVW   VW110, LW0
AENO
MOVW   VW112, VW110
AENO
MOVW   LW0, VW112
LRD
AW>    VW114, VW112
MOVW   VW112, LW0
AENO
MOVW   VW114, VW112
AENO
MOVW   LW0, VW114
LRD
AW>    VW116, VW114
MOVW   VW114, LW0
AENO
MOVW   VW116, VW114
AENO
MOVW   LW0, VW116
LPP
AW>    VW118, VW116
MOVW   VW116, LW0
AENO
MOVW   VW118, VW116
AENO
MOVW   LW0, VW118



Network 16 
// 检查VW106
LD     SM0.0
LPS
AW>    VW108, VW106
MOVW   VW106, LW0
AENO
MOVW   VW108, VW106
AENO
MOVW   LW0, VW108
LRD
AW>    VW110, VW108
MOVW   VW108, LW0
AENO
MOVW   VW110, VW108
AENO
MOVW   LW0, VW110
LRD
AW>    VW112, VW110
MOVW   VW110, LW0
AENO
MOVW   VW112, VW110
AENO
MOVW   LW0, VW112
LRD
AW>    VW114, VW112
MOVW   VW112, LW0
AENO
MOVW   VW114, VW112
AENO
MOVW   LW0, VW114
LRD
AW>    VW116, VW114
MOVW   VW114, LW0
AENO
MOVW   VW116, VW114
AENO
MOVW   LW0, VW116
LPP
AW>    VW118, VW116
MOVW   VW116, LW0
AENO
MOVW   VW118, VW116
AENO
MOVW   LW0, VW118


Network 17 
// 检查VW108
LD     SM0.0
LPS
AW>    VW110, VW108
MOVW   VW108, LW0
AENO
MOVW   VW110, VW108
AENO
MOVW   LW0, VW110
LRD
AW>    VW112, VW110
MOVW   VW110, LW0
AENO
MOVW   VW112, VW110
AENO
MOVW   LW0, VW112
LRD
AW>    VW114, VW112
MOVW   VW112, LW0
AENO
MOVW   VW114, VW112
AENO
MOVW   LW0, VW114
LRD
AW>    VW116, VW114
MOVW   VW114, LW0
AENO
MOVW   VW116, VW114
AENO
MOVW   LW0, VW116
LPP
AW>    VW118, VW116
MOVW   VW116, LW0
AENO
MOVW   VW118, VW116
AENO
MOVW   LW0, VW118


Network 18 
// 检查VW110
LD     SM0.0
LPS
AW>    VW112, VW110
MOVW   VW110, LW0
AENO
MOVW   VW112, VW110
AENO
MOVW   LW0, VW112
LRD
AW>    VW114, VW112
MOVW   VW112, LW0
AENO
MOVW   VW114, VW112
AENO
MOVW   LW0, VW114
LRD
AW>    VW116, VW114
MOVW   VW114, LW0
AENO
MOVW   VW116, VW114
AENO
MOVW   LW0, VW116
LPP
AW>    VW118, VW116
MOVW   VW116, LW0
AENO
MOVW   VW118, VW116
AENO
MOVW   LW0, VW118
Network 19 
// 检查VW112
LD     SM0.0
LPS
AW>    VW114, VW112
MOVW   VW112, LW0
AENO
MOVW   VW114, VW112
AENO
MOVW   LW0, VW114
LRD
AW>    VW116, VW114
MOVW   VW114, LW0
AENO
MOVW   VW116, VW114
AENO
MOVW   LW0, VW116
LPP
AW>    VW118, VW116
MOVW   VW116, LW0
AENO
MOVW   VW118, VW116
AENO
MOVW   LW0, VW118
Network 20 
// 检查VW114
LD     SM0.0
LPS
AW>    VW116, VW114
MOVW   VW114, LW0
AENO
MOVW   VW116, VW114
AENO
MOVW   LW0, VW116
LPP
AW>    VW118, VW116
MOVW   VW116, LW0
AENO
MOVW   VW118, VW116
AENO
MOVW   LW0, VW118
Network 21 
// 检查VW116,VW118
// 
LDW>   VW118, VW116
MOVW   VW116, LW0
AENO
MOVW   VW118, VW116
AENO
MOVW   LW0, VW118

andy-wen

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 155回
  • 年度积分:0
  • 历史总积分:377
  • 注册:2004年8月31日
发表于:2007-12-06 12:22:00
6楼

andy-wen

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 155回
  • 年度积分:0
  • 历史总积分:377
  • 注册:2004年8月31日
发表于:2007-12-06 12:26:00
7楼
用循环指令,象VB里面一样,两个比较,大的存放在一个寄存器,要比较的寄存器号加2再比较,一个简单的程序就搞定了,用得着这么多程序吗?

想起时正是忘记

  • 精华:0帖
  • 求助:0帖
  • 帖子:42帖 | 1651回
  • 年度积分:0
  • 历史总积分:1960
  • 注册:2007年1月26日
发表于:2007-12-06 15:27:00
8楼
难道是工艺要求取前50吗?光这50个数的处理,可能要占你2-5mS以上。

  按你的思路:50个位置初值全为0,对于新采的一个数据,对第一个位置比较的时候,只要大于第一个数,即可循环右移,把新来的数放于此位。如果小于第一个数,再往后比较。

想起时正是忘记

  • 精华:0帖
  • 求助:0帖
  • 帖子:42帖 | 1651回
  • 年度积分:0
  • 历史总积分:1960
  • 注册:2007年1月26日
发表于:2007-12-06 15:32:00
9楼
要节约运算时间,可做优化处理

初级电工没考上

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 374回
  • 年度积分:0
  • 历史总积分:896
  • 注册:2007年4月13日
发表于:2007-12-06 21:31:00
10楼
冒泡法

KingLion

  • 精华:2帖
  • 求助:0帖
  • 帖子:86帖 | 1155回
  • 年度积分:0
  • 历史总积分:2681
  • 注册:2002年2月26日
发表于:2007-12-11 12:59:00
11楼
这么麻烦的程序最好用结构文本形式下的指针来做

KingLion

  • 精华:2帖
  • 求助:0帖
  • 帖子:86帖 | 1155回
  • 年度积分:0
  • 历史总积分:2681
  • 注册:2002年2月26日
发表于:2007-12-11 13:02:00
12楼
补充:S7-200是可以在梯形图中利用指针来寻址的

热门招聘
相关主题

官方公众号

智造工程师