登录
首页 PLC论坛 PLC论坛
回帖 发帖
正文

主题:用S7-200编写“暴强的题目”帖的程序及对程序解析

点击:1415 回复:21

用S7-200编写“暴强的题目”帖的程序及对程序解析
   网上有一“暴强的题目”帖,其内容为:
1路PLC输入控制8路PLC输出
要求:
第1次按下X0,Y0启动;
第2次按下X0,Y1启动;
第3次按下X0,Y2启动;
第4次按下X0,Y3启动;
第5次按下X0,Y4启动;
第6次按下X0,Y5启动;
第7次按下X0,Y6启动;
第8次按下X0,Y0-Y3停止;
第9次按下X0,Y4-Y7停止;
第10次按下X0,Y0-Y3启动;
第11次按下X0,Y4-Y7启动;
第12次按下X0,Y0-Y7停止;
第13次按下X0,Y0-Y7启动;
第14次按下X0,Y0-Y7停止;
第15次按下X0,Y0启动
以下如此循环
最关键的是,此题目要求不准使用计数器、定时器、其他任何应用功能指令,只能用简单的与或非指令完成!
   此题目看上去好像没有实用价值,但从锻炼我们的编程思路与技巧来说,仍可为好帖。如想实现此贴的控制动作,编程并不难,难在按题目要求去编,即 “此题目要求不准使用计数器、定时器、其他任何应用功能指令,只能用简单的与或非指令完成!”
编程思维:如仅用简单的与或非指令编程,必须掌握这样一个原则:
  1、将第一次按钮使Y0启动的程序语句放在程序的最后,第二次按钮使Y1启动的程序语句放在第一次程序语句的前面,第三次按钮使Y2启动的程序语句放在第二次程序语句的前面……即由后向前编程,这样当程序运行时,按下X0,其输出Y1~Y7因不满足启动条件而不动,扫描到最后一条由于满足启动条件,使Y0启动输出,Y0=1,使Y1满足启动条件,但由于在这一扫描周期里对Y1的扫面判断已过去,故Y1无启动,等第二个扫描周期到来时,如再按X,才使Y1启动……。
  2、选用M0.0~M0.7作为判断位,在启始的头8次按钮, M0.0=0,程序依次使Y0、Y1、Y2…Y7启动。当按第9 次时,使M0.0=1且自锁。再按扭将以次使M0.1、M0.2…M0.6为1,共形成不同的7种状态,最后一次按下,使M0.7=1, 而M0.7=1使M0.0=0.由于Y7=1不自锁,只保留一个扫描周期。用这7种状态控制上述的第8~第14次按下X0时Y0~Y7的输出状态。从而实现后7种输出功能。
  说明:1、该帖在第7与第8步之间少了一步,即第8次应为按下X0,Y7启动;第9步才是现在的第8步(即以后各步下窜一步)。本程序填上这一步。2、本程序经过上机运行,证明动作无误,由于语句串联触点(位变量)太多,使语句太长,无法截取全图,故用绘图软件重画梯形图并截图贴出,供大家参考。见梯形图:
附件
附件
附件
附件
附件
    本文到此结束,如有不妥之处,请给于指正,本人深表感谢!
12-07-03 22:29
“只能用简单的与或非指令完成”,作为一种思维练习或者用于限于条件下的控制吧。
12-07-04 07:14
不觉得有什么意义。。。
12-07-04 07:57
太强人了,程序这样写会累死的,看得眼睛也花了,还不知道是怎么回事。
用一个加减法,一个比较,很小的几步就解决这个问题。
12-07-04 09:08
意义不大,但是很好的练习题!
12-07-04 10:30
楼主好像把我在工控网的帖子贴过来了啊 这个是不难 但是比较复杂 我的一个离心机工程就是这么完成的 甲方技术人员看着程序都傻眼了
12-07-04 10:56
这样的程序太强大了。
12-07-04 11:50
看得眼睛也花了
12-07-04 16:06
一切都是数学,对数学和数电来说,这个题目不过是要求用与非门搭出来进位或者计数功能而已.
楼主这样写,未免太复杂了.假如第一次得出状态放在m0.1里...第15次放在m1.7里(如同移位),按照后面的对前面的复位,会简单清晰很多.
12-07-05 11:37
太强了
12-07-05 19:20

上一页下一页

工控新闻

更多新闻资讯