博途STL语言SAVE用法

博途STL语言SAVE用法
A #ActA.Motor -- 判断 #ActA.Motor 这个条件 #Motor_ENO -- 把这个条件输出给 #Motor_ENO (此时 RLO 依然是 #ActA.Motor 的值)SAVE -- 把当前的 RLO 保存到 BR 位A #ActA.Transfer -- 开始判断下一个条件 (重新开启一个新的RLO)在早期的 S7-300/400 设备上非常流行一种编程习惯“通过判断 FC 的ENO输出来决定后续程序是否继续执行”。这段代码的设计者可能是想表达“只有当#ActA.Motor这个电机指令正常成立时这个 FC 才算是执行成功了。如果#ActA.Motor没激活那么本 FC 就算执行失败ENO 就断开后续的调用全停。”从梯形图LAD来看ENO就是“能流”的开关如果主程序里用的是梯形图调用一个编写好的FC或FB功能块时这个块的顶部会有EN和ENO两个引脚ENEnable输入使能。左边有电这个块才去执行。ENOEnable Output输出使能。可以把它简单理解为“这个块执行得好不好能不能让电流传下去”。如果这个块执行顺利ENO通电输出为1能流可以顺着线走到下一个块。如果这个块执行出错了比如发生了除以零或者内部逻辑判定为故障ENO断电输出为0电流就断在这里它后面的所有程序都不会再执行。STL 语言中没有办法直接写 #ENO这个指令。那么 STL 怎么告诉上层调用它的梯形图“我执行得好不好”呢答案就是利用SAVE来修改BR位。西门子的硬件规则状态字里的BR位在 STL 函数执行结束后直接等同于它露出在外面的ENO引脚的状态。公式SAVE把当前结果存进BR位 ➡️BRENO输出。