请教如何用S-200实现20个数的排列组合 点击:464 | 回复:11



zw24307

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2009年5月21日
发表于:2009-06-10 10:38:18
楼主
请教各位大虾:如何用S-200实现20个数的排列组合,并且每运行一次,排列组合顺序都不相同,小弟先谢了,在线等



erics_zhao1983

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 119回
  • 年度积分:0
  • 历史总积分:336
  • 注册:2009年2月04日
发表于:2009-06-10 11:11:33
1楼

具体要求是啥啊?

没弄明白

zw24307

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2009年5月21日
发表于:2009-06-10 11:19:36
2楼

就拿1到5,5个整数打比方吧,我要对其进行无规则排列,结果可能为"3,5,1,2,4"也可能为"2,5,3,1,4"等等,想通过程序实现,每运行一次,排列的结果都不一样

cgyu54112

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 22回
  • 年度积分:0
  • 历史总积分:76
  • 注册:2009年6月08日
发表于:2009-06-10 11:59:08
3楼

实际上用VB做很简单,用PLC,不会做

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2009-06-10 15:48:29
4楼

排列P/组合C会产生大量的组数,P(20,20)=20*19*18。。。。*1     这么多组数!

如果让PLC做,它是扫描式的,一个扫描周期就完成,不可能!

如果一个扫描周期完成一组输出,这要多少个周期才能完成?

 

只要高级语言能完成的算法,都能设法移植到S7-200中,因为

S7-200有高级语言的设施:  变址相当于数组,FOR循环etc.

 

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2009-06-10 15:55:03
5楼
楼主:你在S7-200上做排列/组合干什么用呢

plq

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1076回
  • 年度积分:0
  • 历史总积分:1442
  • 注册:2008年3月16日
发表于:2009-06-10 19:21:39
6楼

哥德巴赫猜想,哥德巴赫猜想!

zw24307

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2009年5月21日
发表于:2009-06-11 08:23:27
7楼

回复4楼:可以多个周期的扫描完成一个结果的输出, 并且不需要列出所有的排列组合, 只需条件触发一次, 运行多个扫描周期后产生一个结果就行

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2009-06-11 08:44:41
8楼
一个扫描周期一个输出是可以,但你不需要所有的输出,要哪此输出呢

zw24307

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2009年5月21日
发表于:2009-06-11 08:46:46
9楼
任意一组,就好像2楼我所举的例子

[明月夜]

  • 精华:3帖
  • 求助:0帖
  • 帖子:114帖 | 3593回
  • 年度积分:0
  • 历史总积分:7688
  • 注册:2008年3月16日
发表于:2009-06-11 09:14:24
10楼

我编过C语言的排列与组合子程序,算法很简单。

移植到S7-200不成问题,但也要花半天时间才行,

主要觉得用处不大。你只给提示一下:

算法:

       要安排N个单元,相当于数组,从数组初值开始,输出下一组

比上一组大一点点的那一组,如比 1,2,3 大一点的就是 1,3,2

比1,3.2再大的就是2,1,3,再大的就是 2,3,1,如此而已

 

1,2,3            下一组比它的大的最小组是1,3,2

1,3,2           下一组比它的大的最小组是2,1,3
2,1,3         

2,3,1

3,1,2

3,2,1

也就是由小到大的排列输出 ,很简单吧,两重循环就能搞定

 

 

 

 

 

 

zw24307

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 4回
  • 年度积分:0
  • 历史总积分:7
  • 注册:2009年5月21日
发表于:2009-06-11 09:22:03
11楼

非常感谢你的提示,我试下先


热门招聘
相关主题

官方公众号

智造工程师