首页 上一页 1 2 3 4 5 下一页 尾页

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



wanggq

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

 

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

 




robotH

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 688回
  • 年度积分:0
  • 历史总积分:2433
  • 注册:2004年10月14日
发表于:2010-11-16 17:03:38
81楼

SFC还是少用吧,我觉得它至少有两个问题:

1、条条框框的规定太多;

2、运作原理与PLC通常的梯形图逻辑关系不同,使用SFC你得换一种思维方式,这是最大的问题,容易出现你意想不到的结果而不容易发现。

在PLC刚刚流行的上世纪八九十年代,PLC的指令不够丰富,功能不够强大,SFC功能给步进控制提供了很好的方法。但现在PLC已大大发展,功能、指令都极大丰富,步进控制完全可以用其它方法简单实现。所以,SFC已经成为鸡肋。几次我想尝试使用SFC,发现还不如用移位控制或者干脆直接用D寄存器做状态控制方便。

wanggq

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

                    

   作为一种编程语言总得要有一些语法的约定嘛,不能一遇到某些约定就说是“条条框框太多”。其实,在一些按顺序进行的“工序”控制的场合,SFC程序也是有它的一些优点的。对于复杂的机械顺序动作,单用通常的梯形图来对其他人表达控制原理的话,将是困难的。用SFC图来表达就显得容易些。每道工序中设备所起的作用以及整个控制流程都能表达得通俗易懂。因此有利于维护、规格修改,和故障排除等。而且,在STL片断之内的梯形图逻辑关系也完全是通常梯形图一样的规律!

                     

  我也没有常用SFC的习惯,谈不上对SFC熟悉。是<luw816>网友在实践中遇到了这个问题,把它贴出来向网友们求助(请参阅他的求助贴《帮忙找下问题》)。通过交流,<luw816>网友也能自己写出可以避免<plsy>指令在SFC程序里出现“隔轮有效”问题的程序来。

  参见《帮忙找下问题》第64帖的内容:

                             

  <luw816>网友知道是知道把plsy移到SFC程序外面能解决“隔轮有效”问题。但是,他还是有一点疑问:

           

“那么plsy用到步进顺控中为啥会发生这么种情况啊?”(如下所示《帮忙找下问题》第72帖中的疑问)

                  

                 

  为了让新手能够理解这个<PLSY>指令在SFC程序中的“隔轮有效”问题的成因,我想给他进一步的从原理上讲清楚。这时有人却阻拦说“又是图,又是说明,还不知(《帮忙找下问题》一帖的<luw816>)楼主能否看得明白”:

          

                         

  “又是图,又是说明”怎么啦?科技交流,有时候单用文字很难表达清其原理,图文并茂是这网上交流最好的方法!图形和文字互为补充,让网友能够从原理上把问题搞得水清理白的。不但知其然,而且还知其所以然。以后遇到这类问题就能举一反三。难道这样不好吗?!

  

wanggq

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

 

  我们不否认最早(在《帮忙找下问题》第37楼)提醒:“把PLSY移到S0之前”的人是<yjig>网友!但是,<yjig>网友并没有把<PLSY>指令“隔轮有效”的成因从“原理”上讲出来,只是怀疑<PLSY>指令在SFC程序中不能正常运行,才提出把<PLSY>指令移到S0之前去试探一下还有没有“隔轮有效”的问题。

(请参见下图所示的《帮忙找下问题》中<yjig>网友的几个帖子内容:)

 

  要知道,即便你试探着把<PLSY>指令移放到S0之前就碰巧的解决了这个“隔轮有效”的毛病,你若没从原理上去分析其成因,那你仍然是“只知其然,而不知其所以然”!所以你就不能举一反三的从理论上得到提高。

  

  用某个方法盲目的去试探,与已经明确知道用这个方法将会得到什么效果而胸有成竹的、有的放矢的去运用这个方法,有着级别段位的差异!

 

wanggq

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

 

  通过认真的讨论SFC程序里用上<PLSY>指令,分别在FX1s、FX2n系列PLC上运行有不同的表现,造成这个‘差别’的“原理”,我们知道了这样的道理:SFC程序里用上<PLSY>指令,并不是在所有的PLC上运行都会出现<PLSY>指令“隔轮有效”这个毛病!譬如在FX2n系列的PLC上就不会出现这个怪毛病!这是为什么呢?这是因为有些PLC(譬如FX1s)对<PLSY>指令的“再启动”有条件限制,而另有些PLC(譬如FX2n)却对<PLSY>指令的“再启动”没有条件限制!

 

wanggq

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

 

  这个“再启动”的条件限制很清楚的写在《FX1s,FX1n,FX2n,FX2nc编程手册》第6章、第229页《使用FX1、FX1n可编程控制器》的《注意事项》之条款②中:

 

wanggq

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

 

  《注意事项》之条款②明确表述:“脉冲输出指令的‘再次启动’必须待M8147 / M8148 经过1次以上的OFF演算,方能再次执行。” 我们再来看《FX1s,FX1n,FX2n,FX2nc编程手册》第4章、第98页有这样的内容:“●如果STL触点接通,则与其相连的回路动作;如果STL触点断开,则与其相连的回路不动作。但是在一个扫描周期以后,不再执行指令(跳转状态)。”请网友们千万注意:编写这个《编程手册》的先生语文不够好,把后面一句话表达得不够准确。我认为它应该表达成:“但是,刚断开STL触点的片断在一个扫描周期以后不再执行指令(相似于跳转状态)”。

   我们就把这两个特点(<PLSY>指令的“再启动”特点和SFC程序的STL片断转移特点)结合起来就可以正确解释本主题帖所讨论的“SFC程序里用上<PLSY>指令,分别在FX1s、FX2n系列PLC上运行有不同的表现,造成这个‘差别’的‘原理’是什么?”的问题了!

                                       

wanggq

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

 

  为了使我们的讨论更简单明确,我们仍用№4楼所示的仅只两个“工序”的SFC程序来深入讨论:

 

  在开机脉冲M8002的触发作用下,一开机就进入S0的“工序”,Y0 就以设定好的频率源源不断的输出脉冲。步进电机在脉冲的驱动下开始运动,当机械运动到达设定位置触动限位开关X10,“工序”S0就告结束,转入下一个“工序”S20 ,这STL  S0 随即关断 。请网友们注意:S0关断之后,与之连通的回路还要执行一个扫描周期才关断。而且,FX1s上< PLSY>指令的“脉冲输出”(我这里并非指M8147/ M8148)即使要停止也要等待输出脉冲的“追加份”完整输出之后才能停下来。S0关断期间,与其连通的回路所有指令都不能被程序扫描运算(相似于跳转状态),这期间<PLSY >指令虽然停止了向外的脉冲输出,但是它的OFF运算也不例外的被禁止了。所以,在程序执行“工序”S20期间,M8147(Y0脉冲输出监视)仍然保持为ON状态。
              
  待“工序”S20的任务完成后,其完成标志(即“转移条件X0”)动作(ON),整个控制“工序”(指S0及S20两个片断所担负的任务)就完成了一个“轮次”,而进入下一个“轮次”,S0的“工序”又一次轮为选通状态(这一“轮”为偶数“轮次”),与之连通的<PLSY>指令在前一“轮次”的任务期间没有进行过“OFF运算”的前提下,本“轮次”对它进行的“再启动”就是无效的! 请网友们注意,本“轮次”中<PLSY>的脉冲输出虽然不能“再次启动”,但这<PLSY     K5     K0    Y0>的“监视位”M8147却在这一“轮次”的“再启动”之上升沿作用下转为“OFF状态”,为再下一“轮次”(即 奇数“轮次”)的“再启动”建立了“有效”的前提条件。有了(偶数“轮次”中建立的)这一“前提条件”,奇数“轮次”的S0“工序”中<PLSY>指令就能回归正常的输出脉冲了!
                   

wanggq

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

 

  “STL”片断中含有<PLSY>指令的SFC程序之所以在FX2n系列PLC上运行不会发生“隔轮有效”的毛病,是因为FX2n对<PLSY>指令的没有“再启动”之条件限制,它对<PLSY>指令的驱动条件的运算是以驱动条件的“ON / OFF ”状态为根据的,而不是像FX1s / FX1n那样以驱动条件的“前/ 后沿”为依据。

 

wanggq

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

 

  我们把<PLSY>指令从STL 片断中移出来放在非SFC程序的部分,其目的就为了让<PLSY>指令在每一个周期里都能被程序扫描。在<PLSY>指令原来所在的STL片断OFF期间,让移出来的<PLSY>指令做“OFF运算”,以建立<PLSY>指令“再次启动有效”的前提条件。

 

  我们这样有明确“目标”的把<PLSY>指令移放到STL片断之外。并不是等于在“抄袭”<yjig>网友“把【PLSY   K5    K0    Y0】放到程序的最前端(SO之前),看看顺控是否影响脉冲输出”的试探方法!这“STL片断之外”的概念不单是“S0之前”,它还包括“RET 之后”。

          

  “把<PLSY>指令移放到STL片断之外”的另一个做法如下图所示:

wanggq

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

 

  只要我们从原理上弄懂了<PLSY>指令在STL片断中发生“隔轮有效”的成因,即便我们不采用这个“将<PLSY>指令移放到STL片断范围之外”的方法,我们也是能够圆满解决这个“隔轮有效”毛病的!

 

  “隔轮有效”的成因是<PLSY>指令在SFC程序中所处的“工序”转移之后没有进行<PLSY>指令的“OFF运算”。所以,对于那些处理<PLSY>指令“再启动”需要有前提条件的PLC(譬如 FX1s)来说,<PLSY>指令未经“OFF运算”就不能在“偶数轮次”中,再次启动<PLSY>指令的“脉冲输出”。

 

  所以,我们在<PLSY>指令的驱动条件上设定一个“OFF运算”的环节,为<PLSY>指令的“再启动”建立必要的“前提条件”。即可圆满解决“隔轮有效”的毛病!

 

  具体做如下图所示:

 

  “工序”S20的任务执行完毕之后“转移条件X0”成立,于是“工序”进入第2轮将“工序”S0再次选通,“工序”S20随即自动关断。请网友们注意:S20关断后,与之连通的输出Y1的“ON”状态还要持续一个扫描周期才会OFF,我们就是利用SFC程序的这一个特点让S0片断中的<PLSY>指令有一个周期的“OFF运算”!

 

 

wanggq

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

 

  №90楼的为<PLSY>指令设计一个“OFF运算”环节的方法实际上是利用<PLSY>指令所处STL片断的前一个“工序”片断中驱动的输出位的闭接点来做<PLSY>指令的驱动必要条件之一。在只有两个“工序”的SFC程序里,循环工作的两个“工序”首尾相接无所谓“前 / 后”,即在循环过程中S20既是S0的“后工序”也是下一“轮”S0的“前工序”。

 

  为了让网友们避免误解循环中“工序”的前/ 后关系,我引用《编程手册》第101页的例子并稍作改动,贴出来供网友们参考:

wanggq

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


  我今天看到《工控网》把我自主决定的“奖分”分配情况给显示出来了!

  №23楼的<abysmal >网友获得“奖分”20分;№32楼的<danny604> 网友获得“奖分”30分。


  谢谢《工控网》能够采纳网民的正确意见!!!

老菜鸟

  • 精华:22帖
  • 求助:0帖
  • 帖子:301帖 | 8609回
  • 年度积分:0
  • 历史总积分:24924
  • 注册:2003年6月15日
发表于:2010-11-21 15:40:23
93楼
非常不错的帖子,学习了。。。。。。

wanggq

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

 

  感谢<老菜鸟>网友的支持!!!

        


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 3 4 5 下一页 尾页