【非标自动化】硬核阅读理解620行梯形图(0~69行)

📅 2026/8/10 8:13:49
【非标自动化】硬核阅读理解620行梯形图(0~69行)
这个程序段落有个注释“复位程序”那么我们暂且认为接下来的逻辑是执行复位的。结合第0行和第4行来看如果X0 1则开始异步计时T0如果X0 0则开始异步计时T1对于X0来说要么等于0要么等于1那么T0和T1的计时肯定有一个要执行的。然后再结合第8行代码也就是说不管T0、T1还是M19只要有任何一个BOOL值为1则可以进行下一步操作正当我觉得要开始激动的复位操作时发现有一个程咬金就是M0定睛一看要求的是如果M0 0则往下执行然后再看看这个M0的注释“复位指示灯”ok也就是说如果当前已经处于复位中了那么就不要再次进来了这个猜想再SET M0语句就可以得到验证因为相当于是如果当前M00进到下一个步骤了那么马上把M0 SET下这样就不用再重复进来了。也就是说plc程序启动后不管当前是手动模式还是自动模式都先执行一遍复位流程。然后我觉得SET M1这种写法应该是很通用的手法这样就不用把代码一路写下去而是换行继续写就行了也就是让M1 1然后另起一行继续写逻辑就行了。我的猜想果然没错看17行代码就是如此的设计。ZRST M10 M499ZRST M501 M1000这种操作应该就是一种将平时用到的M状态值全部清空掉的意思。然后经典的那个手法又出现了17段的代码是由于前面的代码对M1做了SET操作才进来的现在既然进来了那么没必要每个扫描周期都进来一次所以要做一个关闭的操作也就是RST M1然后SET M2是什么操作呢跟M1是一样的都是为了另起一行写代码咯。。。。。这个写法就让我有点觉得这个代码有点多余了。当M21的时候进来继续执行但是这里面主要就是把M2这个条件关上也就是RST M2除了这个就是一行SET M10也就是说又另起一行写接下来的代码了。我的意思是说其实再上面一段的代码没必要用SET M2直接SET M10不就行了吗。RST Y那就是真实的物理世界的重置了但是这里只是RST了Y4、Y0和Y7通过查看软元件注释可以看到Y0到Y7都有映射继续看代码依然是那种手法关闭M10然后另起一行继续写代码用M11来做标记。然后要注意的是前面放置了一个T2计时器也就是可以理解成先RST了Y4、Y0和Y7然后其他的Y可以需要稍微做下延迟。刚刚说了先RST了Y4、Y0和Y7然后这段代码就是RST了Y6然后等T8延时就将剩下的Y全部重置掉了。ZRST Y000 Y007也就是说先RST Y4、Y0、Y7然后就是 Y6再接着是 Y1、Y2、Y3、Y5。然后依然是ZRST M系列但是这里有一个要特别注意的是这里将复位指示灯M0也复位了。ok现在可以讨论一下这个复位程序了首先plc程序是从上到下从左到右执行的通过这个M0标志位的SET和RST可以知道其实这个PLC程序是一直再跑复位程序的M0的作用不是为了让PLC程序自启动后只复位一次而是每个扫描周期都需要执行一次复位操作。M0只是为了让如果目前正在“复位中”就不要再次从头又开始执行复位代码要等这一次的复位操作执行完之后下个扫描周期中再开始下一轮的复位操作。