全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 嵌入式技术 >

如何在STL中的EN/ENO机制仿真示例呢?

时间:2023-09-01 09:45

人气:

作者:admin

标签: 状态机  STL 

导读:从 STL 程序块调用的程序块不提供 EN 和 ENO 参数。无论创建程序块时采用何种编程语言,都可通过状态字的 BR 位将错误语句传送到 STL 程序块中。...

程序块调用与 EN/ENO 机制

从 STL 程序块调用的程序块不提供 EN 和 ENO 参数。无论创建程序块时采用何种编程语言,都可通过状态字的 BR 位将错误语句传送到 STL 程序块中。

通过关联状态字的 BR 位 和逻辑运算结果 (RLO),即可对被调用程序块的错误状态进行评估。被调用的程序块开始执行时,RLO 的信号状态即为“1”。如果在程序块执行后未将 RLO 显式地设置为“0”,则其信号状态将保持为“1”。要将错误语句传送回调用程序块,则需将 的信号状态显式地复位为“0”。并通过指令“SAVE:将 RLO 保存在 BR 位中“和”JNB:若 RLO = 0 则跳转,并保存 RLO”,对错误语句进行置位。

在 STL 中,可对 BR 位进行错误分析。在编程语言 LAD、FBD 和 SCL 中,可根据 BR 位生成使能输出 ENO。

如果状态字中 BR 位的值为“0”,则表示在 STL 程序块调用过程中发生了错误(调用程序块是一个 STL 程序块)。

CPU 中指令的执行 BR 位 返回值 整数的符号
存在错误 0 小于“0” 负数(符号位为“1”)
无错误 1 大于或等于“0” 正数(符号位为“0”)

通过 EN/ENO 机制执行程序序列的示例

下文中举例说明了如何使用 EN/ENO 机制执行数值相加的程序段:

STL 说明
A "TagEnable" // 查询操作数“TagEnable”的信号状态是否为“1”,并与当前的 RLO 进行 AND 运算。
JNB MyLABEL // 评估使能输入 EN
// 如果 RLO =“0”,则跳转至跳转标签“MyLABEL”处,并将当前的 RLO 保存到 BR 位中。不执行以下操作。
// 如果 RLO =“1”,则执行以下操作。
L "Tag_Input_1" // 加载加法运算中的第一个值。
L "Tag_Input_2" // 加载加法运算的第二个值。
+I // 添加值
T "Tag_Result" // 将合计值传送给操作数“Tag_Result”。
AN OV // 查询是否发生溢出。
SAVE // 将 RLO 的信号状态传送到 BR 位。
CLR /// 将 RLO 复位为“0”,并结束逻辑序列。
MyLABEL:A BR // 跳转标签“MyLABEL”
// 查询 BR 位。
= "Tag_Output" // 将 RLO 的信号状态分配给操作数“Tag_Output”。

查询操作数“TagEnable”将确定前导逻辑运算 (RLO) 的结果。指令“JNB:若 RLO = 0 则跳转,并保存 RLO”将 RLO 的值保存在 BR 位中。另外,该指令还将对 RLO 的值进行评估,并根据其信号状态指向以下操作:

如果 RLO 为“0”,则程序在跳转标签“MyLABEL”处以 BR 位的查询结果继续执行。而不执行加法运算。将操作数“Tag_Output”的值分配给当前的 RLO。

如果 RLO 为“1”,则执行加法运算。通过对溢出位 (OV) 的查询,可判断加法运算过程中是否存在错误。查询结果将保存在 BR 中。指令“CLR:将 RLO 复位为 0”将 RLO 复位为“0”,并结束逻辑序列。之后,系统将查询 BR 位并将其分配给操作数“Tag_Output”。通过 BR 位的信号状态以及操作数“Tag_Output”可判断加法运算是否成功执行没有任何错误。

通过 EN/ENO 机制调用程序块的示例

下图中举例说明了如何通过 EN/ENO 回路调用程序块:

STL 说明
A "TagEnable" // 查询操作数“TagEnable”的信号状态是否为“1”,并与当前的 RLO 进行 AND 运算。
JNB MyLABEL // 评估使能输入 EN
// 如果 RLO =“0”,则跳转至跳转标签“MyLABEL”处,并将当前的 RLO 保存到 BR 位中。不执行以下操作。
// 如果 RLO =“1”,则执行以下操作。
CALL "Block name", "Block name_DB" // 调用程序块。
MyLABEL:A BR // 跳转标签“MyLABEL”
// 查询 BR 位并在 AND 运算后与 RLO 进行运算。
= "Tag_Output" // 将 RLO 的信号状态分配给操作数“Tag_Output”。






审核编辑:刘清

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信