三菱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-07 19:58:16
121楼

 

  接下来的梯形图是符合:“再把每个计数器里的当值相加”的。请见下图:

 

lg1987

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 26回
  • 年度积分:0
  • 历史总积分:27
  • 注册:2008年12月11日
发表于:2009-04-07 20:18:37
122楼
真是大开眼界!各位同仁的精神值得学习啊!佩服!

wanggq

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

 

  请“ zhouduoliang ”网友把您在№121楼提出的新问题另立一个主题帖子来讨论。这样比集中主题。我乐意到您的新主题帖下跟帖!

wanggq

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

 

  楼主所用PLC是FX1n系列的PLC,支持接点的“上升沿检出”及“下降沿检出”。所以,实现“使每个输入X产生一脉冲输出,然后由每个脉冲输出来驱动计数器C”的这同一功能的程序可以改成:由输入X信号的上升沿来计数。这样可以比№122楼的梯形图程序内容节省16步。

 

  改成如下的样子:

 

芳季

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

3u可以使用LD X0V0。

我在8。0的编程软件上变换通过,但是没有机试。上面有人说SIEMENS的可以。据我知好象200的就不行。300 400的曾经看过有点印象。

wanggq

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

 

  对于№123楼的“把每个计数器里的当值相加”的程序,只能在1个扫描周期执行才是正确的。但是,PLC的运行特点是循环反复执行的。所以№123楼的“把每个计数器里的当前值相加”的程序在每一个周期里执行的结果是:程序疯狂地循环重复累积各计数器里的当前值。(“saitc701”的方案中没有谈及怎样避免这种重复的累计错误!)

 

  我们用程序的运行监视图片来看“saitc701”方案的毛病:

 

wanggq

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

                                

gequan

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2007年6月22日
发表于:2009-04-07 23:26:45
128楼

有关三菱计数控制的指令请教

gequan

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 3回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2007年6月22日
发表于:2009-04-07 23:32:12
129楼

正向计数到最大值后要重零开始变负向计数

wanggq

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

<紧接第129楼的内容> 

 

  虽然改掉了重复累计各计数器里的当前值的毛病,“saitc701”方案仍然是错误的!因为程序中没有在输入点上的“报警信号”消除后对计数器中的数据“1”进行“清零”的措施。所以,,“saitc701”方案中数据寄存器D0 所统计出来的数据只是程序运行过程中“K2X10”出现报警的“点次”数据(或称“个次”数据),譬如:在程序运行的过程中“X10”出现过23次;“X16”出现过34次,则D0中统计的数据就是“57”。而并不是“当前报警点的个数”。

 

芳季

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

看来任何的错误都逃脱不了W网友的法眼了。还有谁敢乱说话。

回过来。W网友也不要太注意人家的一点错误。复位的工作这是想当然的工作了。我理解当初作者应该是知道的,只是没有把全盘程序解释出来罢了。这个谁都能理解。不就加个复位就得了吧。兄台,大丈夫不拘小节。得饶人处且饶人。

 

wanggq

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

 

  那好吧,就让他们泛泛而谈好了!我不再做任何的批评了,因为受到批评(哪怕你是用讲道理的方法来批评)总是会使有些人不高兴的!

  

笨笨猫

  • 精华:1帖
  • 求助:3帖
  • 帖子:70帖 | 1517回
  • 年度积分:0
  • 历史总积分:2257
  • 注册:2008年6月15日
发表于:2009-04-13 22:33:18
133楼

好帖子,建议版主加精!

学到了不少东西!

zhouduoliang

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 156回
  • 年度积分:0
  • 历史总积分:1219
  • 注册:2007年2月14日
发表于:2009-04-27 11:27:15
134楼

如果单单要求X10~X17那么可以用以下指令完成,先按顺序把0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4这16个数据存在D300开始的16内存中。

 

 

wanggq

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

 

      “周铎良”网友的这个程序太妙了!!学习了!学习了!!

 

 

芳季

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

我的天啊!

楼上上的这位兄弟用程序都算用得尽了。汁啊渣啊灰都被你渣得出油了。太狠了太绝了。

“迄今为止……”这句话应该会再次出现了。

芳季

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

引用4月23日我的话:<请程序用调用数据的原始数据的块大小也列出来。因为这也是程序的不可分割部分。应该计算列入程序空间。>

相信,通过上面这个程序W网友应该有所理解。数据块只是实施你的程序的另外一种演绎方式,他仍然是程序。不要太孤立数据块,数据块不是单纯记录数据。程序块通过调用可以令数据有了生命,活活灵活现地表达作者的意图。变化会令程序换然一新。

wanggq

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

 

  “迄今为止” 这个词的作用是一个“时间限制”。它指“已经过去的一段历史”,或指“当前的已有记录”(请注意:其意所指,不包括“将来”)。

  我在几个相关帖子中曾几次用到过这个词,其目的就是把我当时的一些“观点”限以一个时间上的区间。这是一种“严谨的态度”。


wanggq

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

 

  迄今为止,“周铎良”网友在第137楼的这个“用非‘ON位总数(SUM)’指令来求:字节的ON位总数”的编程思维是最新颖的!他才是真正让我

 

们大“开眼界”了!!

  “周铎良”网友的这个程序再一次证明了:PLC程序所表现出的“笨”、“傻”及“灵活”根本不在于PLC,而是在于给PLC写程序的人!!对于编

 

程技巧来说,PLC只是展现编程人员思维和智慧的一个平台。在同一指定档次的平台上,谁能用最简短的程序来实现题目所指定的功能,谁的编程技巧就

 

最“灵活”!谁能在同一程序量(大小)之内,实现更丰富、更强大的功能,谁的编程水平就最高!!并不是谁使用了一个什么高档一些、昂贵一些的

 

PLC,就表明他的思维是高级的灵活的思维!

  曾经有一个叫“怒海孤鸿”的商人,在他经销日系品牌PLC的时期,他就不提“抵制日货”、不提“三菱系列PLC很笨”。但到了他经销西门子PLC

 

的时候,就高喊“除了女人和武器,抵制一切日货”,强烈要求工控人都来用西门子的产品。说什么“三菱PLC产品的编程思维是‘很笨的直上直下的纵

 

向思维’而西门子PLC产品的编程思维是‘高级的灵活的横向思维’三菱PLC的程序无法与西门子PLC的程序相匹敌” 。在我看来,这些论调只不过是商

 

人们的“在商言商”罢了!并不表明他们有什么“爱国情结”。他为什么不说“国产PLC的编程思维比日本鬼子的PLC的编程思维更灵活”呢?!我想

 

“周铎良”网友的这个程序写到国产的“艾默生”PLC上,依然不失为“最灵活”的实现“用非SUM指令来求:字节的ON位总数”的优秀答卷!!而

 

“周铎良”网友的这个程序却不是用西门子的编程语法来写就的程序!他把“半个字节”的内容(4位的2进制数)与16个10进制数据对应起来、又将这

 

16个10进制数据与半个字节内“1”的个数联系起来。“周铎良”网友的这种灵活的思维形式难道也不算是一种“灵活的横向思维”吗?!

 

 

winter938

  • 精华:1帖
  • 求助:0帖
  • 帖子:55帖 | 945回
  • 年度积分:0
  • 历史总积分:3418
  • 注册:2005年6月12日
发表于:2009-04-28 12:49:13
140楼
引用zhouduoliang 的回复内容:

如果单单要求X10~X17那么可以用以下指令完成,先按顺序把0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4这16个数据存在D300开始的16内存中。

再次证明了算法的重要性,数据空间变成了程序空间是个好主意,我偶尔也这么干,呵呵......

 

 






热门招聘
相关主题

官方公众号

智造工程师