“奇妙”的逻辑 点击:1178 | 回复:17



秦君_1

    
  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-02-20 16:43:13
楼主

随便给出了一个题目:按钮按下或者解除时,Y0输出翻转。

顺手写了一个程序测试(台达DVP14SS2上机测试),结果大跌眼镜。于是一口气连续写了N多变种逻辑测试,有些测试结果解释不通,不能理解,望坛内高手不吝赐教,在此先行谢过!

  1. 下图逻辑为首先第一个写出来的,不论X0怎样变化,Y0不会有输出。

按钮(X0)按下时,Y0不置位;释放时当然也谈不上复位了。

为什么Y0没有输出?

 

 

  1.  接着下图逻辑,Y0还是没有输出。

看来与上升沿、下降沿并联没有关系(记得200不容许这样做)。

 

 

  1.  下图逻辑,X0每按下一次,Y0输出就会翻转。

这个是我们经常习惯性做法,不知道为什么必须要使用中间变量?

 

 

  1. 下图逻辑,完全实现了题目的逻辑要求。

再一次证明上升沿与下降沿可以并联使用。

 

 

  1.  下图逻辑,不论X0怎样变化,Y0置位后就不再变化。

还是疑惑:为什么是这样?

 

 

  1.  下图逻辑,不论X0怎样变化,Y1置位后就不再变化,Y0始终不变。

为什么?

 



楼主最近还看过



yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2014-02-20 19:48:35
1楼

将你有疑问的梯形图转换为指令表,你将茅塞顿开。

候鸟在飞

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 460回
  • 年度积分:0
  • 历史总积分:656
  • 注册:2013年11月06日
发表于:2014-02-20 21:09:08
2楼

这是由于PLC程序循环扫描所造成的现象。

阿水--王者之师

  • 精华:25帖
  • 求助:348帖
  • 帖子:1617帖 | 22281回
  • 年度积分:37
  • 历史总积分:98482
  • 注册:2007年3月22日
发表于:2014-02-20 22:22:38
3楼

   有些 没有看明白, 是不是 上升沿与下降沿 条件启动不同引起

江湖混混-余辉

  • [版主]
  • 精华:53帖
  • 求助:44帖
  • 帖子:3351帖 | 28451回
  • 年度积分:603
  • 历史总积分:131640
  • 注册:2006年4月25日
发表于:2014-02-21 07:15:09
4楼

引用 候鸟在飞 的回复内容: 这是由于PLC程序循环扫描所造成的现象。



帝国时代-王者之师

  • 精华:0帖
  • 求助:3帖
  • 帖子:28帖 | 3047回
  • 年度积分:0
  • 历史总积分:7188
  • 注册:2006年5月16日
发表于:2014-02-21 09:25:46
5楼

引用 候鸟在飞 的回复内容: 这是由于PLC程序循环扫描所造成的现象。


是不是可以这样理解,PLC从左到右,从上到下扫描,一个周期内只能有最后一个状态被保存

工控勤哥

  • 精华:0帖
  • 求助:1帖
  • 帖子:6帖 | 64回
  • 年度积分:0
  • 历史总积分:221
  • 注册:2009年7月14日
发表于:2014-02-21 09:46:33
6楼

受从左到右,从上大下扫描周期影响!不用M0的时候在同一个扫描周期前面置位后面就复位掉Y0了。

用了M0后,Y0的触点情况需要在下一个扫描周期反映,所以不会复位掉MO。所以有效!

个人拙见了。

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-02-21 09:57:40
7楼

回复内容:

对: 工控勤哥  受从左到右,从上大下扫描周期影响!不用M0的时候在同一... 内容的回复!


 以第一种情况为例:从上到下,从左到右扫描,由于Y0常闭点接通,SET指令执行,常开点断开,RST指令不执行,所以有沿信号的那个周期结束,应该是SET Y0,之后如果没有检测到沿信号,Y0输出保持,检测到沿信号,执行RST指令,Y0复位。

可是实际上Y0压根不会有输出。

为什么?

第五纪冰川

  • 精华:3帖
  • 求助:5帖
  • 帖子:37帖 | 4224回
  • 年度积分:3
  • 历史总积分:12263
  • 注册:2005年2月18日
发表于:2014-02-21 13:33:14
8楼

回复内容:

对: 秦君_1  回复内容:对: 工控勤哥  受从左到右,从上大下扫描周... 内容的回复!


 你对PLC的扫描原理还没掌握,你不懂汇编语言,所以一些简单的问题你就想不通。

以1为例,X0上升沿和下降沿“或”运算,按下或放开都会触发(一个扫描周期)后面的指令,初始时Y0 不动作为0(断开),Y0 的常闭触点没动作,所以执行SET Y0 ,Y0当然会闭合,所以常开触点地Y0闭合,执行RST Y0 ,Y0立即被复位了。

Y0会“闭合”一点时间,2步程序时间就复位了。并且Y0的物理触点是需要在程序扫描结束才输出的,所以Y0的物理输出是不会有动作的。

1楼说得最清楚不过,你看下指令表,就明白了。

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-02-21 15:27:21
9楼

回复内容:

对: 第五纪冰川  回复内容:对: 秦君_1  回复内容:对: 工控勤哥 ... 内容的回复!


非常感谢您的回复!

看来对扫描周期以及刷新的概念有误解,您讲的逻辑过程如果使用在M上,那么我没有任何异议,可问题是对于Y是在扫描周期结束才刷新的,扫描过程中不会刷新,在第一个沿信号触发周期内,由于Y0的常闭点接通,执行SET Y0,这个没有问题;接下来Y0的常开点会马上接通吗?我理解应该等到下个扫描周期才能接通,本周期内Y0常开点不会接通,不会执行RST Y0指令。在下一个周期,Y0的触点才能转换,触点转换后,在下一次沿信号到来后就又会执行RST Y0指令,不会执行SET Y0指令,这样就能完成Y0状态的改变。

事实是我的分析与测试结果不符,难道真的输出信号Y0触点会在同一个扫描周期改变?那么输出在结束时刷新又作何理解?

 

 

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-02-21 15:34:51
10楼

回复内容:

对: 第五纪冰川  回复内容:对: 秦君_1  回复内容:对: 工控勤哥 ... 内容的回复!


按您的分析第五幅图先复位后置位,Y0置位后再也不会有变化也能讲得通,看来输出Y0在程序中的触点在扫描过程中是即时刷新的。

sjygm

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 22回
  • 年度积分:0
  • 历史总积分:93
  • 注册:2008年12月25日
发表于:2014-02-21 22:37:52
11楼

是不是对PLC扫描方式有点误区

应该是这样三个步骤:
开始:将上一次的扫描结果+本次扫描前的输入I/O状态为状态条件,从程序的开始部分扫描并将状态条件加入到程序运算中
过程:有上到下和从左到右的过程开始扫描,扫描的运算结果立即加入状态条件往下扫描,即当前发生的结果会影响到后面的结果,不会影响前面的结果
结束:除非有立即输出,否则会将扫描的结果到程序最后,需要的实际物理输出才输出,最后的状态条件作为下一次扫描的状态条件

这样分析应该就比较清楚了

第五纪冰川

  • 精华:3帖
  • 求助:5帖
  • 帖子:37帖 | 4224回
  • 年度积分:3
  • 历史总积分:12263
  • 注册:2005年2月18日
发表于:2014-02-22 12:16:54
12楼

回复内容:

对: 秦君_1 回复内容:对: 第五纪冰川  回复内容:对: 秦君_1... 内容的回复!


Y0也是变量,所谓扫描结束刷新,只不过是把这个变量刷新到物理端口,内部是实时动作的。

也可以利用立即刷新指令,这个指令一结束,指定的物理端口及被刷新,不需等待程序扫描结束。

你看一下西门子S7-200编程手册中关于的存储器结构的介绍,就能够非常明白PLC的特殊性了。

秦君_1

  • 精华:8帖
  • 求助:22帖
  • 帖子:148帖 | 4867回
  • 年度积分:1651
  • 历史总积分:39896
  • 注册:2005年6月28日
发表于:2014-02-22 17:55:01
13楼

再次谢谢大家!

今天周末赶紧补课,原来白字黑字清清楚楚。

邵-王者之师

  • 精华:1帖
  • 求助:39帖
  • 帖子:81帖 | 861回
  • 年度积分:0
  • 历史总积分:2844
  • 注册:2011年3月24日
发表于:2014-02-22 19:22:34
14楼

中断好用啊。状态变化只进入扫描一次程序。

我觉得中断最好用的就是前后二次触发的时间比较、位置比较。

 

芜湖

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 227回
  • 年度积分:3
  • 历史总积分:649
  • 注册:2012年3月07日
发表于:2014-02-22 20:49:35
15楼

有些有输出但是相应速度快  你看不出来就断开  

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 455回
  • 年度积分:0
  • 历史总积分:1000
  • 注册:2008年1月09日
发表于:2014-02-25 20:38:35
16楼

Y0一通,后面的复位指令又执行了,所以Y0又复位了,而内存的Y0是变化了,但实际的输出触点而没有动,因为实际输出只在程序执行完后才刷新输出,所以你看不到实际的输出

DrMai

  • 精华:0帖
  • 求助:2帖
  • 帖子:8帖 | 59回
  • 年度积分:28
  • 历史总积分:212
  • 注册:2013年5月30日
发表于:2015-07-21 20:51:23
17楼

Y的物理输出是在程序扫描完成一个周期后响应的,但是地址数据是随程序执行就刷新的


热门招聘
相关主题

官方公众号

智造工程师