您现在所在的是:

西门子SIEMENS

回帖:4个,阅读:1105 [上一页] [1] [下一页]
644
fkkfly
文章数:8
年度积分:50
历史总积分:644
注册时间:2014/3/18
发站内信
发表于:2014/8/4 10:53:25
#0楼
附件 T7%QS@WCUF_U`Z4RZ7LQM5W.jpg
根据例程所讲:如果输入信号S_IN出现上升沿,则对S_OUT取反,然后将S_OUT的信号状态送LED显示;否则,程序直接跳转到LP1,将S_OUT的信号状态送LED显示。
可是按照理论来讲,NET2是取反的程序语句,当S_IN输入检测到上升沿时,就直接跳转到LP1了,NET2被跳过并没有执行,这跟例程所讲完全不符啊,还有不管根据理论还是仿真,S_OUT一直在以PLC的扫描周期做正负跳变,根本出不了图中的脉冲显示啊!
由于刚接触西门子300,所以很多地方不懂,求大神讲解,小弟不甚感激啊!
附件 1.jpg
1570
hongzhan2013
文章数:139
年度积分:53
历史总积分:1570
注册时间:2013/11/26
发站内信
发表于:2014/8/4 14:16:19
#1楼
1.F_P边沿检查指令,输出只有1个扫描周期,因此出这个周期时间外NOT取反都为1,所以实际跳转都调到同一指令上;
2.程序段2:是何意?接通线圈马上又断开,一直循环?
3.边沿检查指令-(P)-在FC块中最好用全局变量;若程序调用的块多个的话,用临时变量上升沿检查是很容易出错的。
因为调用程序时同一级FB、FC的临时变量公用同一片地址区,前面调用的块的临时变量会被后面调用的块的临时变量覆盖,所以上升沿检测指令不能正常运行。
644
fkkfly
文章数:8
年度积分:50
历史总积分:644
注册时间:2014/3/18
发站内信
发表于:2014/8/5 9:14:11
#2楼
回复 #1楼 hongzhan2013
这段程序是s7-300的例程案例里面的,我也不清楚是否正确
1.可是JMPN是0跳转啊,JMP才是1跳转,按照程序这样的话能出图中的时序图吗?
2.第二段程序是取反指令,按照案例的初衷应该就是想让PLC检测到上升沿时,S_OUT输出部分进行一次电平的跳变,使其产生上图中的时序。
3.谢谢楼主的解析,这点我真的没有去注意过,以后一定要记住这一点,受教了。
1570
hongzhan2013
文章数:139
年度积分:53
历史总积分:1570
注册时间:2013/11/26
发站内信
发表于:2014/8/5 10:55:54
#3楼
回复 #2楼 fkkfly
1.你可以仿真一下,我觉得程序段1的结果JMPN的状态都是1,仅仅检查到上升沿后的1个扫描周期为0(几十毫秒)。
2.S_OUT的自己常闭触点如何线圈S_OUT,线圈S_OUT应该是LED吧
我是看不出可以实现那个时序图啦
644
fkkfly
文章数:8
年度积分:50
历史总积分:644
注册时间:2014/3/18
发站内信
发表于:2014/8/6 8:59:06
#4楼
回复 #3楼 hongzhan2013
恩!我试了下,把-<NOT>-拿掉之后,仿真出来的结果就对了。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004