大家探讨探讨能否用最短的程序来实现64台电机启停 点击:2445 | 回复:91



zhouduoliang

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 156回
  • 年度积分:0
  • 历史总积分:1219
  • 注册:2007年2月14日
发表于:2009-04-07 20:42:35
楼主
假设有64台电机(或可以是N台),通过FX系列PLC 的输出Y0,Y1,Y2,....分别控制第1台,2台,3台,.., 其中X0,X1分别为第一台的启动按钮,停止按钮; X2,X3分别为第二台的启动按钮; X4,X5分别为第三台的启动按钮,停止按钮, 其余依此类推. 请问能否用最短的程序来实现?大家探讨交流.



wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-10 18:53:51
21楼

 

  受“zhouduoliang”网友的启发,我又有一个更简练的程序将在明天下午贴出来。

 

 

lijiaj

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 44回
  • 年度积分:0
  • 历史总积分:49
  • 注册:2005年11月03日
发表于:2009-04-10 19:27:30
22楼
占座关注中,看来该是好好改变一下思路的时候了

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2009-04-11 12:20:14
23楼
我说:是否可以用3U的指令.

瞎指挥

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 29回
  • 年度积分:0
  • 历史总积分:36
  • 注册:2009年4月10日
发表于:2009-04-11 13:09:45
24楼

都是些高手

 

芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2009-04-11 13:33:55
25楼

LD M8000

RST V0

RST V1

FOR K64

LD X0V0

OR Y0V1

ANI X1V0

OUT Y0V1

LD M8000

INC V0

INC V0

INC V1

NEXT

END

00爱斯基摩人

  • 精华:1帖
  • 求助:0帖
  • 帖子:5帖 | 323回
  • 年度积分:0
  • 历史总积分:1474
  • 注册:2008年4月01日
发表于:2009-04-11 14:39:19
26楼
回复内容:
对:wanggq 关于

 

  受“zhouduoliang”网友的启发,我又有一个更简练的程序将在明天下午贴出来。

 等你的程序了,现在已经下午了。呵呵!

 

内容的回复:


zhouduoliang

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 156回
  • 年度积分:0
  • 历史总积分:1219
  • 注册:2007年2月14日
发表于:2009-04-11 17:29:48
27楼
季芳网友用3U指令写出的程序更简洁!我们通过探讨旨在如何充分利用PLC现有的指令和寻找好的算法来实现我们的要求,很难想象,PLC指令都不能用好,没好的算法思路,很难想象能写出质量好的程序来。

通讯网

  • 精华:11帖
  • 求助:1帖
  • 帖子:431帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2009-04-11 17:52:17
28楼
现代孔乙己,研究些毛事

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-11 19:05:17
29楼

 

  现在贴出来也还不算过时吧?!上网就是一种休闲,我们要把自己的正事忙完了,有空的时候才得来!曾经有个叫“怒海孤芳自赏鸿”的网友评论在网上讨论编程练习的人们“真是一帮闲人!”。所言极是!不闲的人怎么会来上网呢!(“怒海孤鸿”闲得无聊了就上网谈“吃饭、喝酒、泡钮”与我们闲时上网来谈论“科技话题”形成了强烈的反差!)

 

   迄今为止,“zhouduoliang”网友的程序最好!思路最新颖!我昨日下午的一个帖子是想促使网友们努力的去思考:有没有再把“zhouduoliang”的程序进一步简化的可能?

 

  “周铎良”网友的程序已经最接近“最简”,如要再进一步做较大的“化简”是不可能的了。顶多可以在“周铎良”网友的程序的基础上再缩减一步!如下图所示:

 

 

  能够去掉“ANI     M1”这条指令是因为程序是以最后运算的结果为输出结果。把“停止Y输出”的运算放在“启动Y输出”的运算之后,就为我们减掉“ANI M1”创造了条件!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-11 20:41:53
30楼

 

  “竟走”项目的比赛,冠军应该是“最先到达终点”且不违反比赛规则的人。如果在比赛过程中采用“跑”来实现“最先到达终点”不但不能算“冠军”,而且连获得名次的资格也没有!

 

  譬如《三菱plc指令请教》一帖的楼主需要请教的内容是:在FX1n上用“非SUM指令”来实现“SUM指令”的功能,把发生在“K2X10”字节中的“ON”位的总数统计出来。而该主题帖下第4楼跟帖的“rain1”给出一个程序“MOV  K2X10  D0  SUM  D0  D1”只用两条指令就搞定!这个程序虽然能够完成“K2X10”字节中“ON”位的数量的统计任务,而且还比较简单。但是,这个程序却不符合楼主的条件限制(在FX1n 中完成统计任务)。而该主题下第114楼的“zhouduoliang”网友用了11条指令来完成相同的统计任务,比“rain1”的程序还多用了9 条指令。但是,“zhouduoliang”的程序才是符合楼主要求的最简练的程序!

 

  

  在本《探讨》主题下第16楼跟帖的“鸡蛋饼”网友贴了一个程序仅仅只用了9 条指令和 1 个指针就把 64 个输出位的“启动”和“停止”功能来搞定!但是,他的程序不能在FX2n及之下档次的PLC中实现!所以,在他理解了第17楼的内容之后,他自己便把贴在第16楼的不符合楼主所限定之规则的梯形图给删除了。

 

   我由衷的感谢 “鸡蛋饼”网友能够理解第17楼帖子的内容!

 

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-12 17:28:07
31楼

 

  我想“鸡蛋饼”网友不会介意我把您在第16楼展示过的梯形图程序再贴出来与别人的程序作个比较吧!我完全是出于相互交流的目的,并不是故意要挑您的毛病!因为我就不介意别人挑我的毛病,而且还真诚的欢迎网友们认真的挑挑我的毛病!但有条件:就是请您用讲道理的方式,有根有据的挑出我的毛病,并讲出您挑出的毛病为什么能称之为“毛病”它到底违背了哪些规矩?切记不要“不负责任、不讲道理的掷烂砖砸人”(就如象“通讯网”先生那样掷烂砖砸人是最无耻的!)

 

  下面我就把“鸡蛋饼”在第16楼贴出过的梯形图再展现出来与第25楼的程序相比较。如果我们忽略楼主的题目之规则限制,则“鸡蛋饼”网友的程序就是比第25楼的程序更为“简练”的程序!

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-12 18:18:03
32楼

 

  我为什么把“鸡蛋饼”网友在第16楼贴出过的程序与第25楼的程序相比较呢?是因为这两个程序都是没有遵循楼主的题目之规则的程序,所以它们相互之间才有“可比性”。如果把它们与楼主在第19楼贴出来的程序相比,那就完全没有“可比性”!

 

 

小蝦米

  • 精华:0帖
  • 求助:0帖
  • 帖子:28帖 | 346回
  • 年度积分:0
  • 历史总积分:620
  • 注册:2006年5月12日
发表于:2009-04-12 18:24:40
33楼
呵呵一个看似简单的问题引申出了那么高手的回答,受教啦。。。

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-12 19:22:23
34楼

                                      

  为了和第25楼的程序相比,“鸡蛋饼”网友的梯形图要做一点小小的等效变换。

 

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-12 19:27:28
35楼

 

  我们再把第25楼“芳季”网友的指令表程序表达成梯形图:

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-12 19:34:19
36楼

 

  再以“指令表程序”的形式对比:

 

baohb

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2006年11月02日
发表于:2009-04-12 19:35:27
37楼
高手高手高手高手高手高手高手

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-12 19:45:45
38楼

 

  这对比的两个程序都不可能在楼主的题目之规则所限定的FX2n及之下档次的PLC上得到实现!如果忽略规则的限制,则,“鸡蛋饼”网友的程序比“芳季”网友的程序要“简练”得多!

 

  不过话说回来,再怎么“简练”也都是不合题意的“错误答案”!譬如:400米跨栏的项目,如果有人不遵守规则,把自己的一条跑道上的栏架统统撤去,并骑一辆摩托车与别人比赛谁最先冲到终点!即便骑摩托车的人比其他遵循比赛规则的运动员早了许多时间冲线,也不可能算他是跑得最快的运动员!!

 

邪恶的方丈

  • 精华:1帖
  • 求助:0帖
  • 帖子:8帖 | 81回
  • 年度积分:0
  • 历史总积分:152
  • 注册:2008年10月25日
发表于:2009-04-12 20:07:10
39楼

学习了

变址寄存器用的少一时半会还看不懂,不过我想问一下MOV   K1X000V     K1M0      假如V是2那么M0-M4是什么状态?如果V是5又是什么状态?

转角掉进下水道

  • 精华:0帖
  • 求助:3帖
  • 帖子:26帖 | 1175回
  • 年度积分:2
  • 历史总积分:2157
  • 注册:2007年3月13日
发表于:2009-04-12 20:11:43
40楼
好贴,搜藏了                    

热门招聘
相关主题

官方公众号

智造工程师