登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:PLC程序在第一次读取Q0.0的值时,是1还是0,为什么?

点击:2499 回复:26

小弟初学PLC
对于图中这个程序,以下是俺的理解
第一步:读取I0.0的值,这个值由外部电路状态决定,外部电路接通,则为1,断开则为0;
第二步:读取Q0.0的值,这个值究竟是多少?为什么?这个是输出寄存器的值,还没有写!
第三步:将I0.0和Q0.0的值做或运算
第四步:把上面的值与I0.1做与运算
第五步:把结果写给Q0.0,这步完成才有了Q0.0的值,所以第二步就读,感觉矛盾!
看了好多资料,都没有解释的
恳请各位帮忙解释一下,感恩!
附件 777.jpg
最后修改:2020/2/24 15:41:34
20-02-24 15:39
看看继电控制的自锁回路就明白了
20-02-25 07:55

引用 448187990 在 2020/2/24 15:39:20 发言【内容省略】

正确的理解是通过扫描周期去理解:
第一个扫描周期,外部开关接通,所有的状态没有变化。
更新输入输出映像区。
第二个扫描周期,I0.0=1,I0.1=1,做与运算,将结果输出给Q0.0,请注意,此时 Q0.0仍然为0
更新输入输出映像区。
第三个扫描周期,Q0.0为1
所有的输入输出只有在更新输入输出映像区后才改变状态,为啥要这么设计,因此可以确保在整个扫描周期期间,I,Q的状态保持一致性。
如果你希望马上改变I,Q状态,请使用立即更新映像区指令,例如直接输出指令,但是程序员需要清楚2点:
1、I,Q指令在本扫描周期内的状态不一致。
2、直接输出将延长扫描周期时间,因为要更新输入输出映像区。
Good Luck~
20-02-25 07:58
先扫描输入.
填输入映像(内存).
输出内存初始状态都为0(一般情况,有定义,有保持的除外).
用映像进行逻辑运算.
再输出并填输出映像.
重复.
20-02-25 09:09
我觉得还是应该转换成语句表来看,从语句表的逻辑上就可以很容易理解。
再说那个起保停继电器电路中就是这样画的,那个能不能理解?要是那个都理解不了,那就不好说了!
20-02-25 10:02
感谢版大回复!赞!
关于第2个扫描周期,我想请教一下
I0.0=1,接下来应该先和 Q0.0做 或运算才对呀!为何版大直接与I0.1做与运算呢?
这段程序翻译语句表:
LD I0.0
O  Q0.0
AN  I0.0
=   Q0.0
20-02-25 12:57
谢谢版大,俺想请教,
PLC扫描的时候应该只扫描输入端的状态值吧,
输出端是程序写的,可以这样理解吗?
另想问下:关于俺在楼顶写的程序,
第二步是不是读取Q0.0的值?
想请版大帮忙把这个程序完整执行顺序写一下,
感谢!
20-02-25 13:03
不是可以在软件上模拟的吗
20-02-25 15:52
手册讲扫描部分楼主看不仔细才会这样问
20-02-25 21:30
关于顶楼第二步,可以按逻辑关系理解;
对Q0.0接点的状态,若前一个扫描周期为0,则此时为0。
最后修改:2020/2/26 12:02:11
20-02-26 11:59

上一页下一页

工控新闻

更多新闻资讯