浔之漫智控技术(上海)有限公司
西门子授权代理商 , 西门子授权代理商 , 西门子一级代理商
SIEMENS西门子 S120伺服电机 1FK7011-5AK74-1JH3


              通过 EN/ENO 机制调用程序块的示例 下图中举例说明了如何通过 EN/ENO 回路调用程序块:如果使用 SUB 指令激活使能输出 ENO,则所有后续指令也将激活使能输出 ENO。如果在执 行 SUB 指令时发生运算错误,ADD 指令将不执行。 DIV 指令可禁用 ENO 使能输出。即使在执行过程中发生运行时错误,MUL 指令仍将正常运行。如果操作数“TagEnable”的信号状态为“1”,则执行该程序块: • 使能输出 ENO 的信号状态取决于程序块中具体的程序代码。 • 如果操作数“TagEnable”的信号状态为“0”,则不执行该程序块调用。使能输入 EN 和使能 输出 ENO 的信号状态均为“0”。 参见 EN/ENO 机制的基本知STL 中的 EN/ENO 机制 (S7-1500) STL 中 EN/ENO 机制的概述 (S7-1500) 指令中的 EN/ENO 机制 EN/ENO 机制不适用于单个指令。该机制与语言特定的指令序列相对应,并使用状态字(BR 位)。 有关状态字的更多信息,请参见“S7-1500 的状态字 (页 210)” 更多信息,请参见“在 STL 中的 EN/ENO 机制仿真示例 (页 175)”。 程序块调用与 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 程序块)。

              在 STL 中的 EN/ENO 机制仿真示例 (S7-1500) 通过 EN/ENO 机制执行程序序列的示例 下文中举例说明了如何使用 EN/ENO 机制执行数值相加的程序段:查询操作数“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 回路调用程序块:

             SCL 中的 EN/ENO 机制 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” 使用 ENO 对于指令而言,ENO 是可选的。 更多信息,请参见“SCL 指令中使用使能输出 ENO (页 178)”。 参见 在 SCL 中启用和禁用“自动置位 ENO”(Set ENO automatically) 属性 (页 177) 影响块内的 ENO影响 SCL 块的“ENO”在 SCL 中启用和禁用“自动置位 ENO”(Set ENO automatically) 属性 说明 当“自动置位 ENO”(Set ENO automatically) 属性设置为“TRUE”时,被调用块的 ENO 值将被 转发到调用块的 ENO 值。 在块属性中启用 ENO 机制 可按照以下步骤,启用块属性中的“自动置位 ENO”(Set ENO automatically) 属性。 1. 在项目浏览器中,打开“程序块”(Program blocks) 文件夹。 2. 右键单击待显示属性的 SCL 块。 3. 在快捷菜单中,选择“属性”(Properties) 命令。 该块的属性对话框随即打开。 4. 在区域导航中,单击“属性”(Attributes) 组。 5. 激活属性“自动置位 ENO”(Set ENO automatically)。 6. 单击“确定”(OK) 进行确认。 结果:仅针对所选块启用“自动置位 ENO”(Set ENO automatically) 属性。针对所有新程序块,将“自动置位 ENO”(Set ENO automatically) 属性设置为“TRUE” 可按照以下步骤,启用程序属性中的“自动置位 ENO”(Set ENO automatically) 属性。 1. 在“选项”(Options) 菜单中,选择“设置”(Settings) 命令。 在工作区中,“设置”(Settings) 窗口随即显示。 2. 在区域导航中,选择“PLC 编程”(PLC programming) 组。 3. 选择“SCL(结构化控制语言)”(SCL (Structured Control Language)) 组。 4. 激活属性“自动置位 ENO”(Set ENO automatically)。 结果:针对所有新程序块,启用“自动置位 ENO”(Set ENO automatically) 属性。 SCL 指令中使用使能输出 ENO 说明 要运行诸如数学函数等每个 SCL 指令,都必须查询使能输出 ENO。 操作步骤 要查询使能输出 ENO,请按以下步骤操作: 1. 激活 EN/ENO 机制。 2. SCL 指令执行后,查询使能输出 ENO(如,#MyOutputBool := ENO;) 如果发生错误(如,结果溢出),则使能输出 ENO 将返回信号状态“0”。基于该信号状态时, 指令可继续执行。例如,编程指令“RETURN”、故障显示或替换值。 3. 执行下一个指令之前,先将使能输出 ENO 的信号状态复位为“1”(如,ENO :=1;)。 发生下一处错误时,该信号状态因此可复位为“0”。否则,使能输出 ENO 的信号状态将保持为 “0”。 说明 跳转到一个 SCL 块中。 跳转到一个 SCL 块中时,使能输出 ENO 的信号状态将自动置位为“1”。

             影响 SCL 块的“ENO” 说明 SCL 程序块中 ENO 的Zui后一个赋值即此块的 ENO。另外,也可退出此程序块,并同时使用 “RETURN”指令为此块的 ENO 赋值“TRUE”或“FALSE”。 操作步骤 可按照以下步骤影响此块的 ENO 的信号状态: 1. 激活 ENO 机制。 2. 然后编程: IF #n := 0 THEN RETURN FALSE; END_IF; 结果 当本地变量“#n”为“0”时,系统会返回到调用块。在这种情况下,块的 ENO 值为“FALSE”。 但无需对 RETURN 进行编程。SCL 编译器将当前 ENO 值转发到块的 ENO 值。这意味着,ENO 的Zui后一个赋值将来自块的 ENO。 影响块内的 ENO ENO 值可能会受到赋值“ENO:=TRUE”或“ENO:=FALSE”或者 BOOL 数据类型的变量的影响。如 果激活“自动置位 ENO”(Set ENO automatically) (TRUE) 块属性,则 ENO 在调用块或指令时 也会受到影响。 在 SCL 中使用 ENO 的示例 ENO 的设置示例 以下示例显示了一个 SCL 块,用于在执行除法运算前检查除数是否为 0。此时,ENO 的值将 设置为“FALSE”,同时不执行后续的除法运算。调用块可评估被调用块的 ENO 并确定是否继 续执行此程序。调用并处理程序块 (A)。被调用的程序块 (B) 反映了其 ENO 在此过程中的值。被调用的块 (B) 的 ENO 值将复制到调用块 (A) 的 ENO 中。随后将此 ENO 用于“IF”指令中。 被调用块 (B) 返回信号状态“ENO=FALSE”时,调用块 (A) 将不继续处理并返回信号状态 “ENO=FALSE”。GRAPH 中的 EN/ENO 机制 (S7-1500) GRAPH 中的 EN/ENO 机制概述 (S7-1500) 指令中的 EN/ENO 机制 这些指令的使能输出 ENO 无法访问。即,用户无法影响 GRAPH 函数块中使能输出 ENO 的 状态。但通过诸如数学函数或 LAD/FBD 指令进行转换后,可在程序状态中显示使能输出 ENO。 程序块调用与 EN/ENO 机制 根据具体情况,可使用使能输入 EN 调用程序块。仅当使能输入 EN 处的信号状态为“1”时,才 执行该程序块。

展开全文
拨打电话 微信咨询 发送询价