xadzka
级别: 探索解密
精华主题: 0
发帖数量: 20 个
工控威望: 146 点
下载积分: 939 分
在线时间: 14(小时)
注册时间: 2013-10-05
最后登录: 2017-02-15
查看xadzka的 主题 / 回贴
楼主  发表于: 2015-04-16 15:21
[attachment=134084]
这是一个试验程序,X0是按纽设定初值,X1是时间继电器,Y015是时间继电器复位.M0到M3代表设备的4个工作状态.
原意是每当时间继电器接通瞬间 ,设备由前一个状态转换到下一个工作.
但实际运行起来当时间继电器上升沿来临时候,程序从语句3到语句18都执行了一遍,最后始终M0保持为1.
请教高手,这是为什么呢?
xadzka
级别: 探索解密
精华主题: 0
发帖数量: 20 个
工控威望: 146 点
下载积分: 939 分
在线时间: 14(小时)
注册时间: 2013-10-05
最后登录: 2017-02-15
查看xadzka的 主题 / 回贴
1楼  发表于: 2015-04-16 19:27
引用
引用第1楼liaohianbin于2015-04-16 18:22发表的  :
这程序很明显的,按钮一按,程序条件一步步都成立了,最后结果只能以最后一条程序为准了。这个其实做个用时间继电器上升沿做个循环移动指令,按一个起动按钮,驱动M0,以后来一个上升沿,左循环一下就行


为什么会一个周期内都一步步都成立呢? 比如第一周期,按纽按下后又松开M0置1,等时间继电器闭合X1变1的瞬间,程序扫描把M1置1的语句,但M1必须等刷新阶段才会置1,本周期内M1还根本不会变1,那么后面的语句根本不满足条件怎么可能执行呢? 只有下个周期读取阶段把M1已经是1的情况读出来,再等时间继电器闭合再次闭合程序扫描把M2置1的语句才能在输出阶段把M2置1吧。