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

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

点击:2499 回复:26

感谢再次回复!关于你说的第3点和第4点,完全理解
或运算,只要有一个是1,那么结果肯定是1,所以可以不管其它位,
与运算,只要有一个是0,那么结果肯定是0;所以可以不管其它位。
事实上,CPU执行程序时有没有管还真不知道
回头看俺这个程序,
因为I0.0刚启机时是0,
所以这个时候必须要知道Q0.0的值才能有结果!
这也是我一直在求证Q0.0=0的原因!
最后修改:2020/2/27 14:13:44
20-02-27 13:53
还想再次请教老大一个问题,
PLC上电后,所有程序都会运行吗?即CPU会读取所有的指令吗?
也就是所有的指令都有值了???
是这样的吗?
20-02-27 13:58

引用 448187990 在 2020/2/27 13:58:35 发言【内容省略】

上面问题就不单独回答了.
首先你要弄清楚指令和数据一般是分开的.
指令是执行(操作)的,数据是用来操作的.
你应该说的是数据.数据其实就是内存存放的内容.在硬件上电的时候,一般是清0.也就是你说的q0.0也是内存的某个存放内容,它开始是被清了0的.
另外,并非所有的输出都是只出不读的,有些是先读后写的.
plc不过是数字化的软设备,它也必须有个初始的状态.这个是计算机理论里面的.如果你还不能理解,你就想着q是一个继电器,它带的触点就是引用它的状态--继电器触点.
最后修改:2020/2/27 14:49:10
20-02-27 14:46
其实,只要你相信PLC在冷启动后会执行一次对映像区的初始化,全部清零(或者初始化为设置值),就应该没有疑问了。PLC并不是真正的并行执行,还是会一条一条的执行指令的(可以认为是语句表)。在绝对的第一次扫描Q值为0(假设你没有指定其他的初始化值),这样所有的I/Q值都是确定的,这样就完全能够理解了。
20-02-27 23:00
感谢再次回复!现在完全理解了!
也知道程序执行的时候是按照语句表来执行的
20-02-28 08:39
不要用输出做软节点,你可以用输出映像作节点,就可以避免要第二轮扫描了。
20-02-28 08:58

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

以节点为界,从上往下,从左往右。第1个扫描周期q值为0,第二个周期q值为第一个周期的计算结果。
20-03-10 21:24

上一页 上一页

工控新闻

更多新闻资讯