在西门子STEP7编程中关于FC的ENO使用的容易产生的误解

前两天在为头条写的一个关于FC的ENO的使用容易产生误解的地方,很多朋友私信询问关于这方面的问题。

今天跟大家详细来聊聊这个问题:

首先,关于ENO的机制的问题大家可以参考“S7-300 和 S7-400 编程的梯形图(LAD)参考手册”,这个手册可以在西门子全球资源库下载。

那么他的机制是什么呢?

1、ENO = EN AND NOT (框错误)
什么意思呢?也就是说当EN 与 FC块没有错误,这样的话ENO=EN(也就是说EN为1则ENO为1)、

那么当FC块中有错误呢?

即使EN为1,ENO=EN(1)and NOT 1=0;

这就解释了我微头条中的那个小程序(如下图所示),因为超过了范围,所以,FC105有错误。

在西门子STEP7编程中关于FC的ENO使用的容易产生的误解

2、EN/ENO 机制用于:

? 数学运算指令、

? 传送和转换指令、

? 移位和循环移位指令、

? 块调用。

该机制不用于:

? 比较、

? 计数器、

? 定时器。

3、在框的实际指令周围,为 EN/ENO 机制生成附加的 STL 指令,这些指令依赖于现有的在此之前和之后的逻辑运算。 使用一个加法器实例,

a、. 连接了 EN 和 ENO 的加法器

1 A I 0.0 // EN 连接

2 JNB _001 // 将 RLO 移入 BR,并在 RLO = 0 时跳转

3 L in1 // 框参数

4 L in2 // 框参数

5 +I // 实际加法

6 T out // 框参数

7 AN OV // 错误识别

8 SAVE // 将错误存入 BR

9 CLR // 首次检查

10 _001: A BR // 将 BR 移位到 RLO 中

11 = Q 4.0

在第 1 行后,RLO 包含在此之前的逻辑运算的结果。 JNB 指令将 RLO 复制到 BR 位,并设置第一个
校验位。

? 当 RLO = 0 时,程序跳转到第 10 行,继续执行 A BR。 不执行加法指令。 在第 10 行,重新将 BR
复制到 RLO 中,然后给输出赋值 0。

? 当 RLO = 1 时,程序不跳转,表示执行加法指令。 在第 7 行中,程序判断是否在执行加法指令期间发生了错误,然后在第 8 行存储到 BR 中。 第 9 行设置第一个校验位。 现在,在第 10 行中将BR 位复制回 RLO,因此,输出显示是否成功执行了加法指令。
第 10 行和第 11 行不改变 BR 位,因此,也显示是否成功执行了加法指令。

来源:跟我动手学电气

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月5日
下一篇 2020年2月5日

相关推荐