梦幻天堂草
级别: 探索解密
精华主题: 0
发帖数量: 12 个
工控威望: 103 点
下载积分: 601 分
在线时间: 8(小时)
注册时间: 2015-03-03
最后登录: 2015-07-25
查看梦幻天堂草的 主题 / 回贴
楼主  发表于: 2015-03-03 14:06
比如在普通梯形图中:
LDI X0
OUT Y0
LD X0
OUT Y0
Y0先是1后变0,最后结果Y0为0

简单SFC中:
步S0中使Y0置1,转移条件成立进入步S10,步S10里执行Y0=0,结束。

现在问题来了:
SFC中正常运行到最后,Y0是为0的,那如果我使转移条件不成立,那么S10里的指令还会执行吗?Y0最后是1还是0??

还请帮忙
wengine
级别: 家园常客
精华主题: 0
发帖数量: 60 个
工控威望: 633 点
下载积分: 955 分
在线时间: 84(小时)
注册时间: 2015-03-02
最后登录: 2024-10-15
查看wengine的 主题 / 回贴
1楼  发表于: 2015-03-03 14:58
LDI X0
OUT Y0
LD X0
OUT Y0
这个是不允许的,属于线圈重复输出,就是说Y0不能被重复输出两次以上,容易造成程序运行混乱,Y0最后的状态甚至有可能变为不确定,就是无法预测它是0还是1。

PLC指令是不停的在扫描,当转移条件不成立时,下面的状态不执行。

SFC中正常运行到最后,Y0是为0的,那如果我使转移条件不成立,那么S10里的指令不会执行,Y0最后是1
wengine
级别: 家园常客
精华主题: 0
发帖数量: 60 个
工控威望: 633 点
下载积分: 955 分
在线时间: 84(小时)
注册时间: 2015-03-02
最后登录: 2024-10-15
查看wengine的 主题 / 回贴
2楼  发表于: 2015-03-03 16:26
程序是不断扫描的,而不是说停在哪一个状态上。当某一步的条件成立的时候,就显示其结果。
在每个扫描周期都会对整个程序进行扫描,当扫描到输入条件改变时就输出相应的结果。
当转移条件不成立的时候,只执行条件以前的程序,条件后面的程序不执行,然后重新扫描,而不是停了。
从结果来说,你只能看到条件之前程序步的执行结果,看起来就是程序停在上一个状态。
本帖最近评分记录:
  • 下载积分:+2(梦幻天堂草)