王绍全
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看王绍全的 主题 / 回贴
楼主  发表于: 2008-12-22 18:57
PLC循环周期问题
网络1
LD   I0.1
AN   M0.1
=M0.0
网络2
LD  I0.1
=M0.1
小弟明白这是一个边沿信号产生的程序,但是不明白M0.0为什么保持1个PLC循环周期,我可能不明白循环周期这个词,执行完第一条命令后M0.0为1,执行第二条时就为0了,就这的时间差交一个循环周期吗?麻烦好心人解释一下,谢谢!


谢谢cvlsam大侠的回答,PLC程序执行顺序为从上往下,自左往右的执行。

当按下I0.0时,在扫描周期1中,程序开始由上往下的执行:
网络1
LD   I0.1   //因为按下,因此状态为1
AN   M0.1 //M0.1的状态也是为1,因为有AN的存在,因此是常闭------这里对吗?我觉的M0.1应该是0吧,M0.0   才能为1呀?M0.1为1怎么通呀?小弟愚昧,请教!
=M0.0  //此时M0.0接通    M0.0的状态为1
网络2
LD  I0.1 //因为按下,因此状态为1
=M0.1 //M0.1的值由于I0.1的值变为了M0.1=0,
那这里储存的M0.0到底是1还是0?
此时扫描周期1结束
接下来就是扫描周期2的开始:
网络1
LD   I0.1 //此时不管我们继续按下还是放开,I0.1的值根据我们是否按下而决定
AN   M0.1 //M0.1的值在上一个扫描周期结束前已经是0了
=M0.0 //因此,由于条件不能满足,M0.0变为了0

如果用户此时重新按I0.0,那么又会重复上述两个扫描周期的执行过程~~

以上,
[ 此帖被王绍全在2008-12-27 13:19重新编辑 ]
hzf647
敏研机电 http://www.minyantech.com
级别: 略有小成
精华主题: 0
发帖数量: 74 个
工控威望: 218 点
下载积分: 506 分
在线时间: 27(小时)
注册时间: 2008-01-04
最后登录: 2019-05-17
查看hzf647的 主题 / 回贴
1楼  发表于: 2008-12-24 23:03
1:PLC顺序扫描输入,放在内存,
2:再运行你的程序,输出放在内存,
3:根据输出内存对输出进行刷新.
这为一个周期,西门子简易编程手册有,
http://www.minyantech.com
上海敏研机电科技有限公司 http://www.minyantech.com 专业的控制系统设计。