三菱plc指令请教 点击:16580 | 回复:165



tiger-auto

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:27帖 | 39回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2003年11月05日
发表于:2005-07-16 19:34:00
楼主
我现用FX1N的三菱PLC做一个案子,其中有连续的8个输入点X10-X17为故障信号,我想得到一个故障发生的总数量,三菱的指令有一个数据ON位数求和,FNC43(SUM),可该指令仅适合FX2N和FX2NC,请问有其他方法可以实现吗?谢谢!


楼主最近还看过



wanggq

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

 

  “Wanggq ”很热心帮助大家!如果“Winter938 ”不嫌“Wanggq”的“在校学历”低,“Wanggq”可以为您讲解!

 

 

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2009-04-01 22:24:01
82楼

手册上找到点相关内容,希望Wanggq继续补充

 

wanggq

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

 

  对于“跳转”指令的讲解,手册上都是讲从前面向后面跳转(从步序号码较小的地方往步序号码较大的地方跳转)。这主要是为了避开“死循环”(发生死循环时,程序从循环中跳不出来,造成看门狗定时器出错,PLC报警并停止运行)。

 

  很多人在处理向前“跳转”时容易出现“死循环”!所以手册不给大家讲“向前跳转”的应用。其实,“跳转”是可以向前跳转的,只要设法控制好“向前跳转”的次数就行了!待会儿,我忙完手头的活儿就给您做一个“向前跳转”构成“循环”的实例供您参考。

wanggq

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

 

  以这一页№52楼的程序为例,其中的“循环段落”改成由“向前跳转”来构成循环语句的功能:

 

wanggq

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

                                

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2009-04-02 18:02:53
86楼
谢谢楼上的热心讲解!

wanggq

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

                                                                                                                              

wanggq

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

                                                                                                                               

   程序在“循环段”里,每循环一次,数据寄存器D0就逐次统计“K2X10”字节的1位“位元件”的状态。经过8次的循环,D0中的数据就是“K2X10”字节中为“ON”的“位数和”。满足了楼主提出的“在没有‘SUM(ON位数)’指令的FX 1n系列PLC中用非‘SUM’指令来实现‘SUM’指令的功能”这一编程题目的要求。

wanggq

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

 

                                                                                          

 

 

 

YSC1

  • 精华:3帖
  • 求助:2帖
  • 帖子:129帖 | 2487回
  • 年度积分:88
  • 历史总积分:8018
  • 注册:2002年6月07日
发表于:2009-04-02 20:19:47
90楼
引用wanggq 的回复内容:

 

  “Wanggq ”很热心帮助大家!如果“Winter938 ”不嫌“Wanggq”的“在校学历”低,“Wanggq”可以为您讲解!

 

 看的出"Wanggp"处了有热心、知识之外,还是有更多的时间进行整理讲解。

强烈要求斑竹将次贴加精





CFL666

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 89回
  • 年度积分:0
  • 历史总积分:197
  • 注册:2008年10月21日
发表于:2009-04-02 20:22:31
91楼

高手!学习了!                            

wanggq

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

 

  谢谢网友们的支持!! 

 

  人要有一颗“平等之心”才有可能客观正确的评判他人的学术水平!《工控论坛》才能有一个“和谐的学术交流氛围”。

 

  在上个世纪30年代初,当时只有初中文凭的华罗庚在上海的《科学》杂志上发表了一篇数学论文,指出:某大学教授的代数五次方程的解法不能成立。当时的清华大学算学系主任熊庆来教授并没有因华罗庚的文凭太低而对华罗庚的这篇论文不屑一顾,相反,还是以非常认真的态度研读了华罗庚的这篇论文。

 

  无论谁的“在校学历”如何,在学术面前都应该是一律平等的!“文凭”不等于“水平”,“学历”不等于“学问”!

 



  “学历”与“学问”相比、“文凭”与“水平”相比,“学历”和“文凭”仅仅是“皮毛”,而“学问”和“水平”才是真髓!

   我们提倡“尊重知识、尊重人材”。但是,我们决不只尊重“学历”、只尊重“文凭”!

 

 

wanggq

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

 

   预留一个空间,待有充足的时间再来做详细的补充。

wanggq

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



  指针“P0”与“END”命令之间写设备的主要功能的程序。我们现在是做练习,为了便于观察程序的运行状况,可以在指针“P0”与“END”命令之间写“K2X10”和“K2M1”这两个字节的各个“位元件”接点串联的片断。



  下面是№86楼的用“向前跳转”构成“循环”功能的程序例子在PLC上运行时的监视图片:




  上图是“X10、X12、X15、X16 ”这4个点出现“报警”信号时程序运行的情形。

wanggq

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

 

   楼主的这个编程题目是在2005年7月16日发表的。距今将近4年了,我偶然发现了这个陈旧的帖子。我把它顶起来是因为这个“希望使用非‘SUM(ON位总数)’指令去实现‘SUM ’的功能”的编程题目在过去的3年多时间里还没有讨论出高水平来,就有人提议停止这一题目的讨论,说“这个程式也可以告一段落了,我看基本上也差不多了”。但是,我认为任何编程题目的讨论,只要不是毫无新意的重复贴出前面其他网友贴出过的东西,只要有一点点与众不同的创意,那就值得交流!

 

 

  我借这个编程题目逐步提出新的要求,从而一步步引人入胜。希望以此进一步培养我们分析问题和解决问题的能力!

 

  我再给这个编程题目提出一个新的要求:能不能在不用“循环语句”,也不用“跳转语句”的前提下,写出更简练、更巧妙的“统计‘K2X10’字节中的ON位总数”的程序来?!

wanggq

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

 

  两个小时过去了,还没出现回应的帖子!

 

  那我就直接把“既不用‘循环语句’,也不用‘跳转语句’,更简练、更巧妙的实现‘统计 K2X10字节中的ON位总数’功能”的一个程序例子贴出来供大家参考:

 

    

 

 

linkonglaw

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:58
  • 注册:2009年3月07日
发表于:2009-04-03 12:07:24
97楼
用计数器指令最容易实现,但应当用上升沿

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2009-04-03 12:39:04
98楼
这段程序的目的是要获取D0中的值,然而D0在M9置位的数个扫描周期中正在计算是变化的,那么后续程序用这个值就得小心,所以追求短扫描周期是有代价的:这个D0的实时性在K2X010状态发生变化时是比较差的,适用于非实时控制的慢信号处理(比如人机对话的信号)

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2009-04-03 12:45:15
99楼
我个人比较喜欢22楼的做法,简单易懂,点数少的时候还是蛮好的.做程序算法比较关键,虽然结果可能都做得到.Wanggq的热心和专注值得大家学习,希望他坚持下去!

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2009-04-03 12:50:23
100楼
引用linkonglaw 的回复内容:用计数器指令最容易实现,但应当用上升沿



  “用计数器指令”最笨!  相互交流时,最好不要泛泛而谈,要把问题落到实处。比如您要把您所说的程序实际写出来,接受网友们的点评!没有实质的程序例,别人怎么和您做细致的交流呢?!您又怎么可能从粗略的泛泛而谈的对话中受益呢!

热门招聘
相关主题

官方公众号

智造工程师