试回答:造成这个“差别”的原理是什么? 点击:2332 | 回复:94



wanggq

    
  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-10-29 07:44:58
楼主

 

  在某些系列的PLC上,SFC程序的“状态S片断”中<PLSY>指令在对应“状态S”之每一轮导通中都可以正常输出脉冲,而另一些系列的PLC上却会发生“隔轮输出”的现象?

 




wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-11-11 14:43:11
61楼

 

  可否向《工控网》申请延期“结帖”?!!

        

wanggq

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

 

  SFC程序里用上<PLSY>指令,分别在FX1s、FX2n系列PLC上运行有不同的表现,造成这个‘差别’的“原理”既不是№2楼<陈华工控>说的“PLC的硬件数字逻辑信号寻址控制方式”,也不是№52楼<newchp >说的“1ms定时器动作时序不同”!

 

  而是:FX1s和FX2n两种不同PLC系统编译程序对<PLSY>指令之“再启动”的处理方式上有不同,再加上SFC程序运行时,未被选通的STL片断中的所有指令都不做运算处理。当含有<PLSY>指令的STL片断“S0”在首次被选通时,<PLSY>指令在FX1s上运行是完全没有问题的,当“S0”工序任务结束,转移至下一个工序任务的“S20”时,“S0”自动关断,其STL片断中的所有指令都被“程序扫描”给跳过不运算。即,其中的<PLSY>指令不可能在“S0”片断被关断期间进行OFF运算。

 

  恰好FX1s的“再次启动”必须有“至少经OFF运算过1个周期”的前提条件。当第2轮次应该执行“S0”工序任务时,没有“再启动”必需的前提条件,<PLSY>指令就无法“再次启动”也就无法正常输出脉冲!而FX2n的“再启动”不需要这个“前提条件”,所以,<PLSY>指令在FX2n上不存在“隔轮有效”的问题!

       

  FX1s上<PLSY>输出管理中有M8147 / M8148 ( Busy / Ready ) 而FX2n上<PLSY>输出管理中却不需要、也不存在这两个特殊M;FX1s上<PLSY>输出是一份一份的输出“周波”,前半周是OFF,后半周才是‘脉冲’,而FX2n上<PLSY>输出前半周立即就是‘脉冲’;FX1s上<PLSY>输出脉冲的停止不是立即停止的,必需待“追加份”完整的输出之后才停止。但FX2n上脉冲输出却是随<PLSY>指令运算的停止而立即停止的,并不能保证正在输出中的一个脉冲的完整性!
        

wanggq

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

 

  SFC程序里用上<PLSY>指令,分别在FX1s、FX2n系列PLC上运行有不同的表现,造成这个‘差别’的“原理”既与<陈华工控>说的“软件一周”无关,又与他所谓的“硬件一周”无关!

 

  还有,造成这个‘差别’的“原理”也跟№51楼〈xinqishi007〉说的“每一种PLC有自己不同的扫描时间”毫无关系!<PLSY>指令的脉冲输出过程根本不受PLC扫描时间的制约!因为它是由一个独立于扫描周期之外的“脉冲输出硬件电路”来完成的。

 

wanggq

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

 

  今天是“结帖”期限的最后一天了!还没有人贴出一个正确回答本“悬赏题”的跟帖来。我这50分还真没办法送出去!总不可能叫我把这50分送给那些不合格答案的作者吧!

 

  现在降低标准!如果有谁最先引用我给出的正确答案(№62帖),并明确的表示与这一个答案有相同的观点。我就把这50分送给他!!!!!!!!!!!

        

wanggq

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

 

  <饶歌>版主指点我:在“矮子里面挑个高的”!

 

   因为按《工控网》的规则,今天必须结帖,在没有中意的跟帖的前提下,我只好退而求其次了!



wanggq

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


  我按<饶歌>的指点:在“矮子里面挑个高的”,把50分的“悬赏分”划分成一个20分,一个30分,分配给两个帖子来结的帖。

  然后,我重新打开论坛的页面,我却看不到这两个帖子得到“奖分”的分配呢?!

  我看到的这两个帖子的情况如下图所示:


liuyong870917

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 10回
  • 年度积分:0
  • 历史总积分:59
  • 注册:2010年6月24日
发表于:2010-11-12 17:46:09
67楼

此贴子火硝味好重哦!!!!!

wanggq

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

 

  本主题帖所讨论的问题“SFC程序里用上<PLSY>指令,分别在FX1s、FX2n系列PLC上运行有不同的表现,造成这个‘差别’的‘原理’是什么?”的正确答案是第62楼的回复帖内容。

 

  倘若有哪位网友对№62帖的解释持有异议,也请对№62帖尽情的批评!

 

PistoN

  • 精华:0帖
  • 求助:1帖
  • 帖子:23帖 | 13107回
  • 年度积分:18
  • 历史总积分:40065
  • 注册:2009年5月22日
发表于:2010-11-12 20:12:38
69楼
没看出来这50分到底给谁了

wanggq

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

引用<PistoN >的内容:

  “没看出来这50分到底给谁了 ”

 


 

 

  回复:

 

  就是嘛,这《工控网》怎么不把楼主自主决定的“奖分”之分配情况给显示出来呢?!

 

  我给№23帖分配了20分的奖分,因为这个帖子指出了:“如果是普通S0触点而不是STL触点,应该就不存在隔轮输出的问题”!这个答案是与题目要求的答案有点沾边了,比起那些回答“是逻辑信号寻址控制方式,逐一扫描和间隔扫描,”以及回答“每一种PLC有自己不同的扫描时间,不能做比较的”这类与主题所指的“原理”毫不相干的回复来说要好很多!也比那个回答“是PLC内核编译程序不同所致。两种不同的PLC,相同的定时精度(如都是1MS),同样的启动条件,随着时间的推移,会出现不同的动作时序。”要具体,准确些!

 

  另外30分的“奖分”分配给了№32帖,这个帖子虽然没有回答主题所指的“原理”,但是<danny604> 网友有正确的“是非观”,能够旗帜鲜明的支持“以学术态度对待科学技术”的好帖。所以我给他的奖分比例要高一点!

 

  这两个获得奖分的帖子都不是理想的回答出主题所指“原理”的帖子,但是,迄今没有一个(非楼主的)“跟贴”符合要求。根据《工控网》的规则在期限之内必须“结帖”,否则将由《工控网》代你作主,不分青红皂白的把“奖分”奖给第1个(非楼主的)“跟帖”。我如果再不把这个奖分给处理掉,那《工控网》岂不要把这50分“奖给”№2楼的那个与主题所指“原理”毫不相干的错误答案?!所以,我不得不退而求其次!

 

wangyf0705

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:121
  • 历史总积分:176
  • 注册:2009年2月15日
发表于:2010-11-13 09:17:52
71楼
脉冲输出后不会加个结束标志M8029去触发下一步啊

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-11-13 16:30:50
72楼

 

  是啊,是不能用“加个M8029去触发下一步”的方法来达到解决FX1s或FX1n系列PLC上<PLSY>指令在STL片断中遇到的“隔轮有效”问题之“目的”啊!!

 

  如若不信,您可以自己用实践去检验一下嘛!您相不相信这句名言:“实践是检验真理的标准”?!!

 

  实践时,请以№4楼所示的STL程序为例,看你会怎样“加一个M8029去触发”含有<PLSY>指令的STL片断之“下一步(状态S20)”?!

 

  只要把你的方案落实到这个具体的程序上,立马就能让你露相,立马就能看到:你也“不会加个结束标志M8029去触发下一步啊”!

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-11-14 16:57:16
73楼

 

  经过一天了,№71楼的<0705>你实践过了没有?实验得到的事实是不是告诉你:用“加个结束标志M8029去触发下一步”方法对于以№4楼所示的程序来说是解决不了<PLSY>指令在STL片断中运用遇到的“隔轮有效”问题的?!

 

wanggq

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

 

  其实,对于这里讨论的例程(№4楼所示)来说,真正的“内行”用不着去“试”,一眼就能看出你这句“脉冲输出后不会加个结束标志M8029去触发下一步啊”落实到实践中是一定要失败的,是很可笑的啊!

 

wanggq

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

 

  我们在这里讨论的例程中的<PLSY>指令是这样的:“ PLSY      K5         K0      Y0 ”。

 

  请网友们注意:该<PLSY>指令的第2源操作数“ K0 ”表达的是对输出脉冲没有数量的指定。既然没有指定它要输出多少个脉冲,哪来什么指标去衡量它执行的任务是否“完成”?又哪来什么“结束标志”的动作?!

 

  在该例程中的<PLSY>指令在程序运行过程中根本就不可能让M8029动作。如果在转移条件上加一个M8029,意图去触发下一步,则STL程序的“转移链”必定被这个加进来的M8029给切断!整个STL程序将死在<PLSY指令>所在的一个STL片断上,不可能让“工序”继续往下传递。

 

wanggq

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

 

  与其在SFC程序的“转移条件”上做文章,还不如在<PLSY>指令的“驱动条件”上做文章!

 

  下面是具体的做法:

 

wanggq

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

 

  我用这个“悬赏题”来讨论<PLSY> “隔轮有效”的问题是<luw816>网友在实践中遇到的问题。

                                     

 

  在他的求助贴《帮忙找下问题》主题帖中提出的问题原本是这样的:

                                        

请大家帮忙看一下以下这段程序中的问题啊,不合理的地方帮忙找出来,告诉小弟!不胜感激!!!

0 ld x000
1 or y05
2 Ani X1
3 OUT Y5
4 LD M8002
5 SET S0
7 STL S0
8 LD Y5
9 SET S20
11 STL S20
12 RST Y2
13 RST Y3
14 RST Y4
15 LD X3
16 AND X5
17 AND X7
18 SET S21
20 STL S21
21 OUT T0 K10
24 MPS
25 AND TO
26 RST Y1
27 MRD
28 ANI X11
29 AND Y5
30 PLSY K100 K0 Y0
37 MPP
38 ANI Y01
39 ANDP X11
41 MPS
42 ANI X12
43 SET S22
45 MPP
46 AND X12
47 SET S24
49 STL S22
50 OUT Y7
51 OUT T1 K10
54 LD T1
55 SET S23
57 STL S23
58 OUT T2 K1O
61 SET Y2
62 SET Y3
63 SET Y4
64 SET Y1
65 LD T2
66 OUT S0
68 STL S24
69 OUT Y7
70 OUT T3 K10
73 LD T3
74 SET S25
76 STL S25
77 SET Y2
78 SET Y3
79 SET Y4
80 OUT T4 K3
83 LD T4
84 SET S26
86 STL S26
87 OUT T5 K20
90 RST Y2
91 RST Y3
92 RST Y4
93 LD X10
94 AND X13
95 SET Y1
96 AND T5
97 AND Y5
98 OUT S21
100 RET
101 END

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-11-15 17:18:49
78楼

 

  我把他遇到的这个实际问题抽象出来,让问题的主要内容凸显出来,使问题更具有代表性。把非主流的枝节去掉以便大家把讨论的注意力集中到问题的核心上。

 

  尽管这样,有的人也要偏离问题的实质,去扯什么“逻辑信号寻址”、“软件一周,硬件一周”…… 

 

  为了使讨论不偏离方向,我还给大家提示:这个“隔轮有效”问题的原理蕴涵在《FX1s、FX1n、FX2n、FX2NC编程手册》的第4章-《步进梯形图指令说明》及第6章-《应用指令说明》之“脉冲输出注意事项”(编程手册第229页)中。 只要认真的领会这两章的相关内容,要正确的回答这个<PLSY>指令在两种PLC上有无“隔轮有效”问题的“差异”的“原理”是完全没有困难的!但是接下来的回复帖子仍然没有从我提示的两个方面的内容去寻找线索。

 

  №52楼的回答用了一个很宽泛解释“是PLC内核编译程序不同所致”,如果仅仅用这一句来解释那还真不能说这个回答说错了,FX1s(或FX1n)系列与FX2n系列PLC的“内核编译程序”确实对<PLSY>指令的“运算处理”是有些“不同”的!但是,紧接在这一句宽泛解释后面用“定时器精度”及“动作时序”来对“隔轮有效”问题进行稍具体一些的解释,这就彻底的显现出№52楼的回答偏离了正确方向!

 

  <938>的“支持编译不同会造成差异”,我认为<938>的这个“支持”肯定是冲“定时器时序差异”来的,而不是冲着<PLSY>指令在两种PLC上有无“隔轮有效”问题的“差异”来的!因为我相信以<938>网友的知识水平还不至于看不懂我的提示:“隔轮有效”问题是FX1s(或FX1n)上<PLSY>的“再启动”必须在<PLSY>的“OFF运算”之后才会“有效”!以及STL程序在“关断”期间不进行“扫描运算”的特点共同来决定的! 

             

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-11-15 21:44:01
79楼

 

  关于“定时器的动作时序”原理,根本上与<PLSY> 指令的“再启动”的前提毫不相干!所以,我不想在这里讨论它。如有空余时间,可以另立一个主题来讨论“定时器的动作时序”原理。

 

wanggq

  • 精华:2帖
  • 求助:0帖
  • 帖子:24帖 | 5342回
  • 年度积分:0
  • 历史总积分:10407
  • 注册:2004年8月21日
发表于:2010-11-16 16:40:47
80楼

 

  只要你以“交流的态度”与我认真的讨论,是一定会受益的。我不仅授人以鱼,而且还无私的授人以渔!没有把自己的知识和经验掖着藏着一点,完全与你共享!

 


热门招聘
相关主题

官方公众号

智造工程师