西门子工业软件代理总经销商RE_TRIGR 指令用于在单个扫描循环期间重新启动扫描循环监视定时器。结果是从Zui后一次执行RE_TRIGR 功能开始,使允许的Zui大扫描周期延长一个Zui大循环时间段。说明对于 S7-1200 CPU 固件版本 2.2之前的版本,RE_TRIGR 限制为从程序循环 OB 执行,并可能用于无限期地延长 PLC 扫描时间。如果从启动 OB、中断 OB或错误 OB 执行 RE_TRIGR,则不会复位监视狗定时器且 ENO = FALSE。对于固件版本 2.2 及以上版本,可从任何OB(包括启动、中断和错误 OB)执行 RE_TRIGR。PLC 扫描时间Zui长只能延长到已组态Zui大循环时间的 10 倍。设置PLC Zui大循环时间可以在设备配置的“循环时间”(Cycle time) 下组态Zui大扫描循环时间值。表格 8-146循环时间值循环时间监视 Zui小值 Zui大值 默认值Zui大循环时间 1 ms 6000 ms 150ms监视狗超时如果Zui大扫描循环定时器在扫描循环完成前达到预置时间,则会生成错误。如果用户程序中包含时间错误中断 OB (OB80),则 CPU 将执行时间错误中断 OB,该中断可包含程序逻辑以创建具体响应。如果用户程序不包含时间错误中断OB,则忽略第一个超时条件并且 CPU 保持在 RUN 模式。如果在同一程序扫描中第二次发生Zui大扫描时间超时(2倍的Zui大循环时间值),则触发错误会导致切换到 STOP 模式。在 STOP 模式下,用户程序停止执行,而 CPU系统通信和系统诊断仍继续执行。8.8.7 STP(退出程序)表格 8-147 STP 指令LAD/FBD SCL 说明STP();STP 可将 CPU 置于 STOP 模式。CPU 处于 STOP模式时,将停止程序执行并停止过程映像的物理更新。有关详细信息,请参见:组态从 RUN 切换到 STOP 时的输出 (页96)。
与西门子品牌合作,只为能给中国的客户提供值得信赖的服务体系,我们
的业务范围涉及工业自动化科技产品的设计开发、技术服务、安装调试、销售及配套服务领域。建立现代化仓
储基地、积累充足的产品储备、引入万余款各式工业自动化科技产品,我们以持续的卓越与服务,取得了年销
售额10亿元的佳绩,凭高满意的服务赢得了社会各界的好评及青睐。其产品范围包括西门子S7-SMART200、S7-200CN、S7-300、S7-400、S7-1200、S7-1500、S7-ET200SP等各类工业自动化产品。西门子授权代理商、西门子一级代理商 西门子PLC模块代理商﹐西门子模块代理商供应全国范围:
我们还提供。
西门子中国授权代理商——浔之漫智控技术(上海)有限公司,本公司坐落于松江工业区西部科技园,西边和全球zhuming芯片制造商台积电毗邻,
东边是松江大学城,向北5公里是佘山国家旅游度假区。轨道交通9号线、沪杭高速公路、同三国道、松闵路等
交通主干道将松江工业区与上海市内外连接,交通十分便利。
目前,浔之漫智控技术(上海)有限公司将产品布局于中、高端自动化科技产品领域,
PLC模块S7-200、S7-1200、S7-300、S7-400、ET200分布式I/O等
HMI触摸屏、SITOP电源、6GK网络产品、ET200分布式I/O SIEMENS驱动产品MM系列变频器、G110 G120变频器、直流调速器、电线电缆、
驱动伺服产品、数控设备SIEMENS低压配电与控制产品及软起动器等
如果 EN = TRUE,CPU 将进入 STOP 模式,程序执行停止,并且 ENO状态无意义。否则,EN= ENO = 0。8.8.8 GET_ERROR 和 GET_ERROR_ID(获取本地错误信息和获取本地错误ID)指令获取错误指令提供有关程序块执行错误的信息。如果在代码块中添加了 GET_ERROR 或GET_ERROR_ID指令,便可在程序块中处理程序错误。GET_ERROR表格 8-148 GET_ERROR 指令LAD/FBD SCL描述GET_ERROR(_out_); 指示发生本地程序块执行错误,并用详细错误信息填充预定义的错误数据结构。表格 8-149参数的数据类型参数 数据类型 描述ERROR ErrorStruct 错误数据结构:可以重命名该结构,但不能重命名结构中的成员。表格8-150 ErrorStruct 数据结构的元素结构组件 数据类型 描述ERROR_ID Word 错误 IDFLAGS Byte显示块调用期间是否出错。• 16#01:块调用期间出错。• 16#00:块调用期间未出错。REACTION Byte 默认响应:•0:忽略(写入错误),• 1:以替代值“0”继续(读取错误物理输出点不存在操作默认情况下,CPU通过将错误记录到诊断缓冲区来响应块执行错误。如果在代码块中放置一个或多个 GET_ERROR 或 GET_ERROR_ID指令,即将该块设置为在块内处理错误。在这种情况下,CPU 不在诊断缓冲区中记录错误。而是在 GET_ERROR 或GET_ERROR_ID 指令的输出中报告错误信息。可以使用 GET_ERROR 指令读取详细错误信息,或使用GET_ERROR_ID指令只读取错误标识符。因为后续错误往往只是第一个错误的结果,第一个错误通常Zui重要。在块内第一次执行 GET_ERROR 或GET_ERROR_ID 指令将返回块执行期间检测到的第一个错误。在块启动到执行 GET_ERROR 或 GET_ERROR_ID期间随时都可能发生该错误。随后执行GET_ERROR 或 GET_ERROR_ID 将返回上次执行 GET_ERROR 或GET_ERROR_ID 以来发生的第一个错误。不保存错误历史,执行任一指令都将使 PLC系统重新捕捉下一个错误。可以在数据块编辑器和块接口编辑器中添加 GET_ERROR 指令所使用的 ErrorStruct数据类型,这样程序逻辑便可以访问这些值。从数据类型下拉列表中选择 ErrorStruct 以添加该结构。您可以使用唯一的名称创建多个ErrorStruct 元素。不能重命名 ErrorStruct 的成员。ENO 指示的错误条件如果 EN = TRUE 且GET_ERROR 或 GET_ERROR_ID 执行,则:• ENO = TRUE 表示发生代码块执行错误并提供错误数据• ENO= FALSE 表示未发生代码块执行错误可以将错误响应程序逻辑连接到在发生错误后激活的ENO。如果存在错误,该输出参数会将错误数据存储在程序能够访问这些数据的位置。GET_ERROR 和 GET_ERROR_ID可用来将错误信息从当前执行块(被调用块)发送到调用块。将该指令放置在被调用块程序的Zui后一个程序段中可以报告被调用块的Zui终执行状态 要测量整个程序的运行时间,请在 OB1中调用指令“测量程序运行时间”。第一次调用时开始测量运行时间,在第二次调用后输出 RET_VAL将返回程序的运行时间。测得的运行时间包括程序执行期间可能发生的所有 CPU进程,如,由更gaoji别的事件或通信所引发的中断。“测量程序运行时间”指令读取 CPU 的内部计数器并将值写入 IN-OUT 参数MEM。该指令根据内部计数器频率计算当前程序运行时间并将其写入输出RET_VAL。如果要测量单个块或单个命令序列的运行时间,您需要三个单独的程序段。在程序内的单个程序段内分别调用指令“测量程序运行时间”。在首次调用该指令时设置运行时间测量的起点。在下一程序段中调用所要测量的程序块或命令序列。在另一个程序段中,第二次调用“测量程序运行时间”指令,如同在第一次调用该指令那样,为IN-OUT 参数 MEM 分配相同的内存。在第三个程序段中,“测量程序运行时间”指令读取内部 CPU计数器,根据内部计数器频率计算程序块或命令序列的当前运行时间并将其写入输出RET_VAL。“测量程序运行时间”指令使用内部高频计数器来计算时间。如果计数器溢出,该指令返回值<=0.0。请忽略此类运行时间值。说明CPU不能准确确定某个命令序列的运行时间,因为在程序的优化编译期间,命令序列内的指令序列会发生变化。表格 8-155 参数的数据类型参数数据类型 说明MEM LReal 运行时间测量的起点RET_VAL LReal 测得的运行时间(以秒为单位)示例:RUNTIME指令以下示例显示如何使用 RUNTIME 指令来测量函数块的执行时间当程序段 1中的“Tag_1”操作数的信号状态为“1”时,RUNTIME指令执行。在首次调用该指令时设置运行时间测量的起点,并作为第二次调用该指令的参考值缓冲到“Mem”操作数中。函数块 FB1 在程序段2 中执行。当 FB1 程序块完成并且“Tag_1”操作数的信号状态为“1”时,程序段 3 中的 RUNTIME指令执行。第二次调用该指令时将计算程序块的运行时间并将结果写入输出 RET_VAL_2。8.8.10 SCL程序控制语句结构化控制语言 (SCL, Structured Control Language)提供三类用于结构化用户程序的程序控制语句:• 选择语句: 选择语句可将程序执行转移到备选语句序列。• 循环:可以使用迭代语句控制循环执行。 迭代语句指定应根据某些条件重复执行的程序部分。• 程序跳转:程序跳转是指立刻跳转到特定的跳转目标,跳转到同一块内的其它语句。