设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
在 SCL 中使用 ENO 的示例
返回列表
发新帖
[西门子]
在 SCL 中使用 ENO 的示例
[复制链接]
76075
|
0
|
2024-2-28 09:01:45
|
显示全部楼层
|
阅读模式
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”。
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
机器人及PLC
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』