西门子PLC上升沿

我是初学者,想问下关于西门子PLC的跳变指令的问题。如下图:
书里说接通一个扫描周期,那就是说在按下开关I0.1之后,M0.2和M0.3都
应该接通。但是书里又输只有M0.2会接通,M0.3不会接通。请问是为什么?

关于跳变信号,有几点需要说明的是:
首先你不能在第一个扫描周期使用。其次所谓接通一个周期的定义并不准确。
我们假设有一个关于跳变信号的堆栈,在首个扫描周期,先要将跳变信号状态存入堆栈,然后在执行到该语句是去比较堆栈的值,不同才触发相应条件。我不知道别的plc是不是,至少200的plc还会做一步,那就是把相应的改变值同时写入堆栈。也就是说,如果在同一个扫描周期内有两个访问相同语句的跳变信号,你可能获得不同的结果。这个很好实验,在一个for-next循环做一个跳变信号累加,就可以明确的看到,这个循环内(同一个扫描周期)跳变信号只能执行一次。
具体到你的这个程序,跟跳变信号关系已经不大了。你写的程序,就是全通,因为后两个network的触发条件是m0.1,只要m0.1接通了,跟跳变信号已经没有关系了。
你确定书上就是些语句吗?不是你自己理解错了?
如果真的是这样,我建议你看西门子s7-200系统手册。把你手里这本书仍掉。追问

你好,我是初学者,你讲的有点深,不大明白。原图是这样子的,因为太麻烦没贴出来,可能是我理解有误。

这个程序利用M0.6来实现单步跟非单步的模式的。非单步的时候,M0.6一直处于接通,可以连续运行。而单步的时候,只能通过按I2.6来启动,每按一次I2.6,就执行一步(书里说的,我就是这个不理解。按照定义所说,接通一个周期,不是按下I2.6之后,会连续不断地运行吗?为什么是按一次执行一步)。

追答

是单步或者连续是由I2.2控制的。
单步时m0.6直接通一个扫描周期。每一步执行的条件都是以上一步执行完为条件的,所以当I2.2为单步状态时,每按一次i2.6执行一步。
书上的程序没问题。
我有个小建议,你需要看看s7-200系统手册的最初的第四章和第五章,详细了解PLC的运行机理。不建议一开始就学习命令,还是要把基础打好才行。这两章很浅显。容易理解,容易忽视,其实这才是最基础的,对于最终写出好程序也是最重要的。

追问

你好,我还是不懂。比如现在按一下M0.6,那么M2.0就执行一次并自保持,那么M2.1就会跟着执行一次并自保持,同时M2.0断开,一直这样下去,不是吗?你说“每一步执行的条件都是以上一步执行完为条件的”,请用上面的例子说明一下可以吗?
另外,我不是直接学命令的哦,我有看PLC的工作机理,但是太抽象,看不懂,所以我本着边看实例边回头看理论的方法学习。现在就是看到这里对前面的扫描周期的理论有怀疑了

追答

还有其它的到位信号要触发呢,比如i0.1、t37、i0.2等等都保证了在一个扫描周期内不会触发两步操作。
怀疑就实践,当然实践的结果也可能是片面的,不准确的,只有反复的失败才会成长。
好好看看200的系统手册,很多网上的问题,都可以用上面的话回答。那是最权威、最准确的教材。我学plc只看了200的手册,现在学dsp我也只看datasheet,其它的教材,怎么说呢,能借鉴的只是实例,(实例还有可能不准确)。
相信我没有比系统手册、datasheet更准确的教材,因为那是开发这个产品的人写的。

追问

那请问I0.6后面为什么要加上个上升沿呢?不用上升沿效果不是也一样吗

追答

通用的标准做法了,防止按钮抖动,也防止按键时间过长造成误动作。不用的效果不完全一样。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-18
除了M0.1接通一个扫描周期,M0.2和M0.3都能接通并自保。
第2个回答  2013-07-17
你按I0.1立刻松手,m0.1和m0.2都通,m0.3不通,你按住i0.1不放,m0.1,m0.2,m0.3全通。
这个就是P脉冲信号的作用。
第3个回答  2013-07-18
书上全文不知道如何,可能你理解错了,也可能书错了,反正你这个例子0.2 0.3是都会接通的。
尽信书不如无书,获得基础后批判地看。
第4个回答  推荐于2017-09-01
M0.1在检测到上升沿的时候接通一个周期,在这个周期时,M0.1同时把M0.2和M0.3均接通。执行完后,程序到下一个周期。注意,此时M0.1不再接通,因为没有上升沿了。而此时M0.2和M0.3在上个周期已经接通,按照逻辑M0.1=0,M0.2=1,两者做或运算然后输出给M0.2,因此M0.2此后会一直接通。同理,M0.3在以后的周期也均接通。
结果是:M0.1接通一个周期后不再接通,而M0.2和M0.3在接通后会一直接通。追问

你好,书里原题是这样的:程序利用M0.6来实现单步跟非单步的模式的。非单步的时候,M0.6一直处于接通,可以连续运行。而单步的时候,只能通过按I2.6来启动,每按一次I2.6,就执行一步(书里说的,我就是这个不理解。按照定义所说,接通一个周期,不是按下I2.6之后,会连续不断地运行吗?为什么是按一次执行一步)。

追答

按一次只执行一次是因为M0.6之前串联的条件不会同时满足,因为它们是位置开关,一个机器不可能同时在不通的位置同时接通所有的输入I点,否则会出现所有步均执行。因此当机器到达不通的位置时,会自动的走到下一步,我现在没看到你的具体的开关位置,所以不好举例,你自己看一下真实的位置开关,你就明白了,这个程序和你一开始提问的其实不太一样,因为这里的步条件更多,M0.6仅仅代表按了一下开关,但是具体走到哪一步依赖于M0.6前面串联的条件。

追问

哦,我有点明白了。那请问I0.6后面为什么要加上个上升沿呢?不用上升沿效果不是也一样吗

追答

你说的是I2.6吧,不加上升沿就完全不一样了,因为PLC的扫描很快,当你按下I2.6的时候PLC都能扫描很多个周期了,这样M0.6就会接通很多个周期,这样就相当于你同时的按了很多下(加P的话可以避免按钮引起的不正常动作).当然,如果你的机器运行很慢的话,影响不大。当运行很快,特别是当人操作时开关坏了造成一直接通,会造成机器误动作(这样就不是单步运行而是连续不断的运行了)。而且程序的逻辑运行会受影响。

本回答被提问者采纳
相似回答