0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-09-01 09:45 次阅读

程序块调用与 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”。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STL
    STL
    +关注

    关注

    0

    文章

    85

    浏览量

    18213
  • 状态机
    +关注

    关注

    2

    文章

    486

    浏览量

    27182
  • 逻辑运算器
    +关注

    关注

    0

    文章

    4

    浏览量

    2355

原文标题:西门子博途:在 STL 中的 EN/ENO 机制仿真示例

文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    何在电路解决EMC的问题?有什么方法

    何在电路解决EMC的问题?有什么方法
    发表于 09-08 15:28

    何在Cadence搭建仿真电路去仿真摆率?

    设计的全差分运放,如何在Cadence搭建仿真电路去仿真【摆率】【 建立时间】【输入共模范围】【输出摆幅】?还请做过全差分运放的同仁,画个草图传上来,单纯的文字语言显得晦涩难懂,希望
    发表于 06-24 06:39

    怎样去解决swp口与eno0之间切换出的问题

    你好,我在使用OK1028A板子时发现一个问题:配置了一个bridge,把所有口(eno0,swp0-3)都加入这个网桥。将PC先接到swp0上,bridge fdb show里面查到了两条mac表
    发表于 12-31 06:48

    何在proteus里完成51单片机的仿真

    何在proteus里完成51单片机的仿真?其仿真步骤有哪些
    发表于 01-24 06:17

    X-CUBE-STL与ARM的STL的区别是什么?

    大家好,我正在做一些关于 STL 的研究。STM 的 X-CUBE-STL 产品与 ARM STL 库有何不同?你为什么要用一个而不是另一个?
    发表于 12-02 07:18

    我如何在LWIP HTTP服务器的示例更改电源配置

    PWR_SMPS_DIRECT_SUPPLY,但我没有重新配置电路板的工具。有人可以解释我如何在示例更改此选项吗?我尝试直接这样做,但它在其他地方有更多的依赖关系,并且没有 .ioc 配置来自动生成它。一般来说,我是 STM
    发表于 01-03 08:22

    ls1028A如何启用eno3?

    我想启用 eno3 接口。 根据手册: 内部连接(MAC 到 MAC)到 swp5。这用于在交换机和 Linux 网桥之间传输交换机控制的流量。如果在 RCW 设置了第 851 位,则此接口存在
    发表于 05-06 07:22

    永华ENO-88电磁炉电路图

    永华ENO-88电磁炉电路图,原理图,图纸。
    发表于 01-15 18:28 118次下载
    永华<b class='flag-5'>ENO</b>-88电磁炉电路图

    C++ STL的概念及举例

      本篇文章是作者本人使用STL 后的一些看法, 对於想要靠此文章学习STL, 是不可能的. 建议叁后面介绍的一些书入门.   STL的概念   在STL 中, 大至上分三个主要的
    发表于 08-30 11:39 1307次阅读

    通过各种指令中的EN/ENO机制,可以检测运行错误

    为该块互连了 EN/ENO 机制。如果执行期间没有任何错误,则 ENO 使能输出的信号状态将为“1”。如果执行期间发生错误,则 ENO 使能
    的头像 发表于 03-02 14:36 3966次阅读

    探究S-1500激活ENENO机制

    通过各种指令中的 EN/ENO 机制,可以检测运行错误,并避免程序崩溃。 默认情况下,新插入的 ENO 指令已被禁用。随后可以激活 ENO
    的头像 发表于 04-16 11:25 1578次阅读
    探究S-1500激活ENENO<b class='flag-5'>机制</b>

    简述西门子SCL语言-输入参数EN/输出参数ENO

    必在块或函数的声明部分声明。 因为EN是一个输入参数,故不能在块内改变EN。 如果没被调用(EN : FALSE),函数的返回值是不定的。 例子(Example) -输出参数ENO
    的头像 发表于 04-30 16:31 8857次阅读
    简述西门子SCL语言-输入参数<b class='flag-5'>EN</b>/输出参数<b class='flag-5'>ENO</b>

    使用 EN/ENO 机制可避免程序崩溃

    简介 使用使能输出 ENO,可检测和处理某些运行系统错误。后续指令的执行取决于该使能输出的信号状态。使用 EN/ENO 机制可避免程序崩溃。块状态将以布尔型变量的形式进行传递。
    的头像 发表于 06-28 16:21 1232次阅读
    使用 <b class='flag-5'>EN</b>/<b class='flag-5'>ENO</b> <b class='flag-5'>机制</b>可避免程序崩溃

    SCL中的 EN/ENO 机制概述

    SCL 中的 EN/ENO 机制概述 在 SCL 程序段中,可以通过赋值来改变 ENO。为此,请写入“ENO:=TRUE”或“
    的头像 发表于 08-23 10:08 1276次阅读

    西门子博途示例:如何使能指令的ENO输出呢?

    在梯形图(LAD)和功能块图(FBD)中有些指令具有 ENO (使能输出) 。
    的头像 发表于 01-15 09:22 842次阅读
    西门子博途<b class='flag-5'>示例</b>:如何使能指令的<b class='flag-5'>ENO</b>输出呢?