拓冰建站拓冰建站
首页 / 资讯中心 / 正文

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

我把博客正文完整读了一遍。这篇《硬核阅读理解620行梯形图》目前有几处关键理解需要修改其中最后关于“M0导致复位程序每个扫描周期重新执行”的结论是明显不对的。(CSDN博客)1. 第 0、4 行基本正确但“异步计时”这个词建议换掉博客写的是X01 开始异步计时 T0X00 开始异步计时 T1。(CSDN博客)想表达的意思没问题定时器不会阻塞 PLCPLC启动/更新T0后会继续向下扫描程序。但“异步计时”容易让软件开发者理解成另开线程/异步任务。建议改成X0001 时 T0 开始计时X0000 时 T1 开始计时。定时器计时不会阻塞 PLC 程序扫描PLC 会继续执行后续梯形图。这样更准确。2. 第 8 行这里有一个关键错误不是“T0/T1/M19任何一个 BOOL1”博客目前写“不管T0、T1还是M19只要有任何一个BOOL值为1则可以进行下一步操作。” (CSDN博客)这里不对。因为截图里三个都是上升沿触点。正确应该是T0、T1、M19 三者中任何一个发生0→1的上升沿时第8行左侧并联条件在当前扫描周期成立一次。也就是↑T0 OR ↑T1 OR ↑M19而不是T01 OR T11 OR M191区别非常重要。例如T0一直保持 1扫描100T0 0→1 → ↑T0成立 扫描101T0 1 → ↑T0不成立 扫描102T0 1 → ↑T0不成立所以建议这一段必须改。3. 对 M0 的理解目前属于“合理推测”但博客写得太确定你写“如果当前已经处于复位中了那么就不要再次进来了。” (CSDN博客)根据↑T0 ↑T1 ── OR ── /M0 ── SET M0 ↑M19 SET M1再结合M0注释“复位指示灯”确实很像这个意思复位触发事件 AND 当前没有复位 ↓ SET M0 SET M1但单凭这一段最好写“结合 M0 的‘复位指示灯’注释暂时推测 M0 同时承担‘复位进行中/复位状态’标志后续继续通过 M0 的引用位置验证。”因为“指示灯”不一定严格等于“复位中状态”。你这篇文章本身就是“硬读陌生代码”我反而建议保留这种推理过程【已确认】 ↑T0 / ↑T1 / ↑M19 → 复位触发事件 【推测】 M0可能代表复位进行状态 【待验证】 寻找RST M0及M0其他引用这会比直接下结论更专业。4. “PLC启动后不管手动还是自动都先复位一遍”目前基本可以作为强推测你写“plc程序启动后不管当前是手动模式还是自动模式都先执行一遍复位流程。” (CSDN博客)从 T0/T1 互补条件来看X000 1 → T0计时 X000 0 → T1计时确实总有一个定时器具备计时条件。到时以后产生↑T0 或者 ↑T1触发 M0/M1。所以如果上电时 T0/T1 初始状态为0、相关定时器行为符合我们现在的理解确实会触发一次。更准确写法“从当前程序推测PLC进入运行后无论 X000 当前处于手动还是自动状态T0/T1 中都会有一个满足计时条件到时产生上升沿从而触发一次复位流程。”5. 关于SET M1 → 另起一行继续写现象看对了但概念建议升级你写“SET M1这种写法应该是很通用的手法……让M11然后另起一行继续写逻辑。” (CSDN博客)这个观察很有价值但不能把SET M1本身理解成“另起一行”。更准确地说作者在使用 M1、M2、M10、M11……作为复位流程的“步骤状态/步进标志”。例如触发复位 ↓ SET M1 M1 ↓ 执行步骤1 ↓ RST M1 SET M2 M2 ↓ 执行步骤2 ↓ RST M2 SET M10 M10 ↓ 执行步骤3 ↓ RST M10 SET M11这其实已经出现了一个状态机 / 步序控制而不是单纯为了“换一行写”。这个认知升级很重要。6. 所以你说“SET M2多余直接SET M10不就行了吗”——现在不能这么判断博客里写“再上面一段的代码没必要用SET M2直接SET M10不就行了吗。” (CSDN博客)这个结论现在下得太早。因为M1 → M2 → M10意味着至少强制跨了扫描周期/步骤边界具体还要看相关程序结构。作者可能有意把复位过程拆成Step M1 ↓ Step M2 ↓ Step M10即使 M2 目前看起来只RST M2 SET M10也可能是在刻意维持统一的步序编号、扫描节拍或者给以后扩展留位置。可以质疑它“目前从可见逻辑看M2步骤似乎没有执行实际设备动作可能存在简化空间。”但不要直接判定多余。7. 最大的问题是最后这一段需要删除并重写博客最后写“这个PLC程序是一直再跑复位程序的……每个扫描周期都需要执行一次复位操作……下个扫描周期中再开始下一轮的复位操作。” (CSDN博客)这个结论是错的。关键就在你前面已经认识的↑T0 ↑T1 ↑M19它们是上升沿。假设自动模式X000 1 ↓ T0计时 ↓ T0到时 ↓ T00→1 ↓ ↑T0成立一个扫描周期 ↓ 触发复位复位结束RST M0但是此时T0仍然 1所以下一个扫描周期↑T0 FALSE不会再次触发复位。必须以后发生新的事件例如手自动再次切换导致相应定时器重新经历0 → 计时 → 1或者M190→1才会再次进入复位。所以整个程序更可能是【复位触发源】 手→自动 自动→手 屏幕复位 │ │ │ T0 T1 M19 │ │ │ ↑T0 ↑T1 ↑M19 └──────────────┼─────────────┘ ↓ M0 0 ↓ YES SET M0 SET M1 ↓ M1步骤 ↓ M2步骤 ↓ M10步骤 ↓ M11…… ↓ 复位完成 ↓ RST M0 【等待下一次复位事件】所以M0的意义很可能是防止一次复位流程尚未结束时又响应新的复位触发事件。而不是“防止当前扫描周期重复复位然后下一扫描周期再复位。”还有一个很值得保留的地方你这篇文章的阅读方式其实挺有价值边读、边猜、再通过后面的代码验证前面的猜想。真正需要改的不是这种写法而是把文章里的判断明确区分成事实 → 推测 → 后文验证 → 最终结论。尤其陌生 PLC 项目特别适合这样读。目前我给这篇文章的技术审核结果是大方向读对了已经识别出这是一个由 M1/M2/M10/M11 推进的复位步序但“上升沿”的解释、M2是否多余、以及最后“每扫描周期重复复位”的结论需要修改其中最后一个属于关键逻辑错误。(CSDN博客)你改完以后这篇就会从“边看边猜的学习记录”明显提升成一篇比较靠谱的陌生 PLC 梯形图逆向阅读实录。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门