PLC程序的简写 点击:920 | 回复:8



szlixiangyang

    
  • 精华:2帖
  • 求助:9帖
  • 帖子:12帖 | 31回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2008年7月24日
发表于:2012-09-14 22:51:43
楼主

在使用三菱PLC FX3U时,当M0置ON时,【MOV D0 D100】,

                                   当M1置ON时,【MOV D1 D101】,

                                    当M2置ON 时 【MOV D2 D102】

                                              ......

                                     当M10置ON时,【MOV D10 D110】

                                              .......

当用多组输入时,如一个个的输入,则会显得很繁锁。

请问:有没有简单的方法,或可以简化的方法?

                                         请赐教!  谢谢!




yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2012-09-14 23:57:22
1楼
当M0置ON时,【MOV D0 D100】,

                                   当M1置ON时,【MOV D1 D101】,

                                    当M2置ON 时 【MOV D2 D102】

                                              ......

                                     当M10置ON时,【MOV D10 D110】

                                              .......

对源继电器M*进行解码,【ENCO M0  D*  K4】,从而解得D*分别=1、2、3…(可能错开了一位,M0=0,M1=1,你自己可处理一下),然后将D*中的数值MOV到 变址 Z 中去,即:【MOV D*   Z】,然后再进行【MOV D0Z  D100Z】即可。

以上程序未经测试,不过,按理说应该可以。

余 辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3350帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2012-09-15 07:49:32
2楼
楼上的方法楼主可以试一试   实践是检验真理的唯一标准

szlixiangyang

  • 精华:2帖
  • 求助:9帖
  • 帖子:12帖 | 31回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2008年7月24日
发表于:2012-09-17 09:00:13
3楼

楼上说得很好,测试了一下,OK!

                                谢谢!

阿水--王者之师

  • 精华:23帖
  • 求助:347帖
  • 帖子:1611帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2012-09-17 14:00:30
4楼
现在抗日期间,所有日系产品不给与回答啦

冯工abc

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 9回
  • 年度积分:0
  • 历史总积分:89
  • 注册:2011年8月01日
发表于:2012-09-28 15:00:24
5楼
回复内容:
对:yjig关于当M0置ON时,【MOV D0 D100】,                                   当M1置ON时,【MOV D1 D101】,                                    当M2置ON 时 【MOV D2 D102】                                              ......                                     当M10置ON时,【MOV D10 D110】                                              .......对源继电器M*进行解码,【ENCO M0  D*  K4】,从而解得D*分别=1、2、3…(可能错开了一位,M0=0,M1=1,你自己可处理一下),然后将D*中的数值MOV到 变址 Z 中去,即:【MOV D*   Z】,然后再进行【MOV D0Z  D100Z】即可。以上程序未经测试,不过,按理说应该可以。内容的回复:

您好!您的方法很好。我有个疑问,如果源继电器M*中不止一个为ON 时,有什么好的方法吗?

zxmsjj

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 455回
  • 年度积分:0
  • 历史总积分:4054
  • 注册:2009年5月26日
发表于:2012-10-04 22:29:38
6楼
楼上的方法楼主可以试一试   实践是检验真理的唯一标准

索泰克

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 388回
  • 年度积分:0
  • 历史总积分:1041
  • 注册:2007年7月09日
发表于:2012-10-07 06:58:31
7楼
用解码译码指令,如果M0开始是连续的,可以读出具体是第几个ON了,条件是一次只能一个ON才有效,然后把第几个的位置用Z来替代,应该就可以简化一些了。

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2012-10-11 10:02:55
8楼

先把 MO~M* 编码,到一个字中D90,在用循环处理,当 D90 AND 01 为真时,即是当前位 M0 ~M* 闭合,再把D100赋值给D1000, 其他的一次类推,循环次数就是你的 条件点数.....

 


热门招聘
相关主题

官方公众号

智造工程师