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

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

3天内不再提示

SCL中的 EN/ENO 机制概述

机器人及PLC自动化应用 来源:机器人及PLC自动化应用 2023-08-23 10:08 次阅读

SCL 中的 EN/ENO 机制概述

在 SCL 程序段中,可以通过赋值来改变 ENO。为此,请写入“ENO:=TRUE”或“ENO:=FALSE”,或使用 BOOL 数据类型的变量。当激活“自动置位 ENO”(Set ENO automatically) 块属性时,编译器会添加程序代码来计算 ENO,类似于编程语言 LAD 和 FBD。添加的程序代码会增加运行时间,因此默认情况下禁用“自动置位 ENO”(Set ENO automatically) 属性。 更多信息,请参见:“在 SCL 中启用和禁用“自动置位 ENO”(Set ENO automatically) 属性” 在 SCL 程序段中,无法为 FC 的 EN 参数赋值。但是可以在条件语句中调用 FC,这意味着需要将其置于“IF”指令中。这意味着块调用不会执行,也不会改变 ENO。此行为与编程语言 LAD 和 FBD 中的行为不同。 SCL 指令中使用使能输出 ENO

说明

要运行诸如数学函数等每个 SCL 指令,都必须查询使能输出 ENO。

操作步骤

要查询使能输出 ENO,请按以下步骤操作:

激活 EN/ENO 机制。
SCL 指令执行后,查询使能输出 ENO(如,#MyOutputBool := ENO;)
如果发生错误(如,结果溢出),则使能输出 ENO 将返回信号状态“0”。基于该信号状态时,指令可继续执行。例如,编程指令“RETURN”、故障显示或替换值。
执行下一个指令之前,先将使能输出 ENO 的信号状态复位为“1”(如,ENO :=1;)。
发生下一处错误时,该信号状态因此可复位为“0”。否则,使能输出 ENO 的信号状态将保持为“0”。
说明
跳转到一个 SCL 块中。
跳转到一个 SCL 块中时,使能输出 ENO 的信号状态将自动置位为“1”。
影响 SCL 块的“ENO”

说明

SCL 程序块中 ENO 的最后一个赋值即此块的 ENO。另外,也可退出此程序块,并同时使用“RETURN”指令为此块的 ENO 赋值“TRUE”或“FALSE”。

操作步骤

可按照以下步骤影响此块的 ENO 的信号状态:

激活 ENO 机制。

然后编程:

IF #n := 0 THEN

RETURN FALSE;

END_IF;

结果

当本地变量“#n”为“0”时,系统会返回到调用块。在这种情况下,块的 ENO 值为“FALSE”。

但无需对 RETURN 进行编程。SCL 编译器将当前 ENO 值转发到块的 ENO 值。这意味着,ENO 的最后一个赋值将来自块的 ENO。

ENO 值可能会受到赋值“ENO:=TRUE”或“ENO:=FALSE”或者 BOOL 数据类型的变量的影响。如果激活“自动置位 ENO”(Set ENO automatically) (TRUE) 块属性,则 ENO 在调用块或指令时也会受到影响。

ENO的设置示例

以下示例显示了一个 SCL 块,用于在执行除法运算前检查除数是否为 0。此时,ENO 的值将设置为“FALSE”,同时不执行后续的除法运算。调用块可评估被调用块的 ENO 并确定是否继续执行此程序。

IF #Divisor = 0 THEN
ENO:=false;
RETURN;
END_IF;
#Quotient:=Dividend/Divisor;

通过 ENO 评估程序块调用的示例

以下示例显示了程序块 (A) 的调用过程,还程序块用于处理被调用块 (B) 的 ENO。

"BlockName_DB"( ENO => ENO );
IF ENO = false THEN
RETURN;
END_IF;

调用并处理程序块 (A)。被调用的程序块 (B) 反映了其 ENO 在此过程中的值。被调用的块 (B) 的 ENO 值将复制到调用块 (A) 的 ENO 中。随后将此 ENO 用于“IF”指令中。

被调用块 (B) 返回信号状态“ENO=FALSE”时,调用块 (A) 将不继续处理并返回信号状态“ENO=FALSE”。

审核编辑:彭菁

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

    关注

    8

    文章

    7002

    浏览量

    88938
  • 程序
    +关注

    关注

    117

    文章

    3785

    浏览量

    81001
  • 编译器
    +关注

    关注

    1

    文章

    1623

    浏览量

    49107
  • 机制
    +关注

    关注

    0

    文章

    24

    浏览量

    9782
  • SCL
    SCL
    +关注

    关注

    1

    文章

    239

    浏览量

    17057

原文标题:在 SCL 中使用 ENO 的示例

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

收藏 人收藏

    评论

    相关推荐

    博图SCL语言FOR循环的用法及典型案例

    SCL
    YS YYDS
    发布于 :2023年06月25日 00:06:13

    ENO方案控制器xc846

    ENO方案控制器xc846
    发表于 08-20 08:51

    EXTI外部中断触发机制概述

    There is no disputing about tastes.  人各有所好外部中断(EXTI)的实现中断概述EXTI外部中断触发机制外部中断~中断线的映射NVICNVIC 特性嵌套向量
    发表于 08-17 08:10

    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电磁炉电路图

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

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

    探究S-1500激活ENENO机制

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

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

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

    SCL编程示例:控制传送带

    SCL(Structured Control Language,结构化控制语言)是一种基于 PASCAL 的高级编程语言。这种语言基于标准 DIN EN 61131-3(国际标准为 IEC 1131-3)。
    的头像 发表于 09-26 10:47 1475次阅读

    SCL与STL的区别是什么?SCL常见问题及解决办法!

    OB,FC,FB,DB,UDT。在 S7 程序,S7-SCL 块可以与其它STEP7 编程语言生成的块互相调用。S7-SCL 可以被编译成 STL, S7-SCL 生成的块也可以作为
    的头像 发表于 01-17 14:27 3108次阅读

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

    可用于以下两个方面: LAD 和 FBD 支持 EN/ENO 机制,可调用程序代码的简单指令和高级指令。 使用 EN/
    的头像 发表于 06-28 16:21 2499次阅读
    使用 <b class='flag-5'>EN</b>/<b class='flag-5'>ENO</b> <b class='flag-5'>机制</b>可避免程序崩溃

    调用SCL函数块-事例

    在以下部分,将在组织块“Main” 调用 SCL 函数块“SCL_Best_before_date” 并互连输入和输出参数。
    的头像 发表于 08-10 09:51 854次阅读
    调用<b class='flag-5'>SCL</b>函数块-事例

    SCL编程示例:控制传送带

    SCL(Structured Control Language,结构化控制语言)是一种基于 PASCAL 的高级编程语言。这种语言基于标准 DIN EN 61131-3(国际标准为 IEC 1131-3)。
    的头像 发表于 08-10 14:38 821次阅读
    <b class='flag-5'>SCL</b>编程示例:控制传送带

    如何在STLEN/ENO机制仿真示例呢?

    从 STL 程序块调用的程序块不提供 ENENO 参数。无论创建程序块时采用何种编程语言,都可通过状态字的 BR 位将错误语句传送到 STL 程序块
    的头像 发表于 09-01 09:45 1058次阅读

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

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