学习用西门子step7 写了一段程序,不能正常运行
发布网友
发布时间:2022-11-28 13:07
我来回答
共2个回答
热心网友
时间:2023-10-23 01:59
看了你的 博客
我分析问题是这样的
因为PLC 是从上向下扫描的
所以如果你在一段程序中 多次写一点 那么,下面的 有权覆盖上面的(在西门子PLC中,如果在松下中重复写一点他会报错)。
结合你的程序,你后来删的那段是给Q2.0复位的。
而之后这段是给Q2.0置位 的
所以,在你的程序运行中,你Q2.0是一会为 1 一会为 0
只是因为为PLC的扫描周期太快(几毫秒)所以看不出来。
热心网友
时间:2023-10-23 01:59
问1:为什么图2这一段会影响图1的第一段?
这是因为你出现了双线圈驱动,如果是编译的话会出错.双线圈的意思就是作为输出驱动的同一个线圈在程序中2次或多次使用,就是图1中的(Q0.2),图2中再次出现了.这样的情况只能在使用置位 复位指令时才会出现.你可以选择把图2这段程序并联到图1的Q0.2下面,不是指简单的并联,是要把这些逻辑关系添加到控制输出图1中的Q0.2.
问2:程序越简单越好,是将图3分拆之后的“简单”,还是就象图3那样一个梯形图完成一个响应(包括两个输出)“简单”?也就是说,当合并和分拆的梯形图达到的目的如果一样的话,是合并好还是分拆好?为什么?
从程序执行的速度上来说是没有多大差别的,因为PLC的循环扫描时间本身就短,何况是中间这段的差别呢?在保证不出错的情况下都可以,但是一般情况下我们选择拆分的,这样避免因为线路复杂而出错,而且易于读程序.