gmajvfhpa 发表于 2018-12-23 15:25:17

请教一个西门子S7-200的梯形图执行结果的疑惑


本人初学,没PLC实物,在仿真软件上的结果是Q0.0 为接通状态,没有我想象的是 300毫秒闪烁状态。有知道问题出在哪里的吗,希望能指点一下

gmajvfhpa 发表于 2018-12-23 15:30:17

T52是每隔300毫秒保持一个扫描周期的打开状态,在T52打开状态的周期内,只有一个Q0.0的置位或复位会被执行。但现在的仿真结果好像Q0.0的置位或复位被同时执行了。为什么会这样呢

jjl3 发表于 2018-12-23 15:56:19

Q0.0只是一个2进制输出,接通为1,断开为0,Q0.0的常开,常闭全接到Q0.0,当然只有一种输出了

gmajvfhpa 发表于 2018-12-23 16:14:43

jjl3 发表于 2018-12-23 15:56
Q0.0只是一个2进制输出,接通为1,断开为0,Q0.0的常开,常闭全接到Q0.0,当然只有一种输出了 ...

假设某个扫描周期内,T52刚打开(为1)经过|P|(上升沿)。再径过Q0.0|| 或 Q0.0| / |。这两个不可能同时导通的,要看Q0.0的当前状态 ,如果Q0.0当前为导通,则执行 q0.0(R) 复位操作,如果Q0.0当前为导通,则执行 q0.0(s) 置位操作。之后要在下一个扫描周期再执行了,但下个扫描周期内,T52已关闭。要过300毫秒后,T52才会再次打开

lujianfeng2001 发表于 2018-12-23 17:07:47

第一个延时扫描周期,没有问题,Q0.0可以置位为1,第二个延时扫描周期的时候,出了问题,T52第二次导通的时候,程序先执行Q0.0(R),这时Q0.0的寄存器已经复位,本周期内接着执行下一条,也就是Q0.0(S),最终Q0.0还是1,最后输出刷新,只有1,没有0

gmajvfhpa 发表于 2018-12-23 19:01:31

lujianfeng2001 发表于 2018-12-23 17:07
第一个延时扫描周期,没有问题,Q0.0可以置位为1,第二个延时扫描周期的时候,出了问题,T52第二次导通的时 ...

谢谢,看了你的分析,我是把扫描顺序理解错了。应该先输入采样,再从左到右,再从上到下一行一行扫描执行。上一行执行结果会影响下一次的执行,最后才刷新输出。根据这个理解,把Q0.0先保存到m0.0后,再执行Q0.0的置位或复位,运行结果符合要求了

liuchengliaaa 发表于 2018-12-24 12:34:17

程序中,最好少用置位和复位指令。
我也发现书上讲的都喜欢用置位和复位,其实直接用线圈就不会出现混乱了。

sunbest80 发表于 2019-4-11 09:44:07

可以用取反
页: [1]
查看完整版本: 请教一个西门子S7-200的梯形图执行结果的疑惑