优化安全程序优化编译时长和运行时间介绍通过编码处理进行用户编程保护是安全程序的重要组成部分(参见第 5章)。目的是检测安全程序中的任何数据损坏,从而防止非安全状态。该保护程序在编译期间生成,从而延长了编译时长。此保护程序还延长了F-CPU的运行时间,因为 F-CPU 将额外处理该程序并将结果与用户程序进行比较。您可以在 F-CPU的系统块文件夹中找到系统自动生成的保护程序。支持“RIOforFA”的模块对于支持“RIOforFA”的模块,您可以为整个模块或单个通道参数化自动重新集成。图-3-17:参数化自动重新集成不支持“RIOforFA”的模块对于不支持“RIOforFA”的模块,想要在安全程序中编程自动重新集成,可以将相应F-I/O数据块的“ACK_NEC”变量设置为“false”:手动重新集成所有钝化的 F 模块的全局重新集成要重新集成 F 运行组的所有钝化 F模块 / F通道,请使用“ACK_GL”指令:模块(或模块组)的单独重新集成在分布式工厂中,可能要求只允许本地重新集成(例如,控制柜上的独立命令设备)。为此,互连各个F-I/O数据块的“ACK_REI”变量:一些在安全程序中使用的指令对故障安全控制器的性能的影响比其他指令更大。本章展示了减少编译时间和程序运行时间的不同选项。说明根据应用的不同,不可能总是使用所有的建议。它们说明了为什么某些编程方法比程序优化前具有更短的编译时间和程序运行时间。确定运行时间TIAPortal 自动为每个 F 运行时组创建一个名称为“RTGxSysInfo”的 DB。其中,这个块包含这个 F运行时组的当前运行时间和Zui长的运行时间。可以在项目树中找到这个系统生成的块(“程序块>系统块> STEP 7Safety”)。安全程序中的跳转在标准用户程序中,从一个网络到另一个网络跳转(跳转到标签)或从块跳转(返回)是一个简单的程序分支,它在每个周期都重新计算,但这不被额外保护。这意味着,它无法检查比如由于EMC导致的内存错误,存在“false”条件,但仍会发生的跳转。这在故障安全程序中是不允许的,因为必须始终确保程序执行正确的分支。这要求在保护程序中完整地计算两个条件(跳转到标签为“true”或“false”)。安全程序中使用的跳转越多,对控制器性能的影响就越大。建议•避免安全程序中的跳转。• 在 FB中使用状态机代替二进制逻辑的跳转。定时器定时器是安全程序不可或缺的一部分,许多系统功能块比如“ESTOP1”在内部会使用定时器。如此,产生一个故障安全时间值需要大量的工作以及对每个单独的定时器块的重建。建议将定时器块的数量减少到Zui小。以下功能块中使用定时器:•EV1oo2DI• TWO_H_EN• ACK_OP• ESTOP1• FDBACK• MUT_P• TOF• TON•TP多重实例建议对故障安全功能块使用多重实例。这意味着块内部变量被集成到调用块的块接口中。优势•安全程序的标准化:不在块中使用全局数据。这允许调用块(包括集成的块)的重复使用。示例两个驱动器由同一个“LDrvSafe_CtrlT30SinaS”功能块安全控制。数据存储在具有唯一名称的多重实例中。避免数据损坏编码处理范围内的保护机制(参见第5 章节)循环地分析程序的执行以防止数据损坏。在数据损坏的情况下,一个特殊的系统功能块将触发 CPU 的F-STOP。该机制的目的是检测诸如EMC、有缺陷的组件等的影响。并在机器对人和环境构成威胁之前将系统置于安全状态。除了外部影响,不正确的编程也可能导致数据损坏。数据损坏的Zui常见原因是标准用户程序或外部设备(例如 HMI) 写入数据,而安全程序正在读取该数据。这可能在下列情况下发生:– 高优先级报警的写访问– 通过HMI/通信进行写访问– 使用时钟存储器通过更高优先级的报警更新 PPI 分区有关如何正确从标准用户程序到安全程序编程的信息,参见第3.7 章。算术函数会导致所用数据类型的上溢或下溢。必须使用合适的替代值来完成计算。无错误的计算显示在以下功能的输出 ENO引脚上:• ADD• SUB• MUL• DIV• NEG• ABS• DWORD_TO_WORD
检查清单以下检查清单可以帮助您识别和纠正由于用户导致停止的原因。表4-1:检查清单可能的原因 已检查溢出数学函数中可能发生下溢或上溢。这必须由用户在程序中捕获。请互连算术函数的ENO输出引脚。除数为 0如果安全程序中出现除以 0 的情况,F-CPU 将停止运行。请互连算术函数的ENO 输出引脚。通过 HMI访问HMI 用于写入 (修改) 安全程序中读取的数据(位存储器、数据块)。默认情况下,通信的优先级高于安全,这可能会导致数据损坏。这方面的信息可以在第 3.7 章中找到。标准程序访问 F数据标准用户程序修改故障安全变量的数据或其保护部分。F 数据的写访问只允许在安全程序中进行。指针访问 F数据等同于标准程序访问;访问可以发生在运行时,当存在不适宜的默认值来生成指针指向 F区域(输入、输出、数据块等)。为了满足冗余和差异性方面的规范要求,所有 SIMATIC F-CPU都使用“编码处理”原则。在编码处理中,安全程序由单个处理器处理两次。为此,编译器在编译期间生成不同的(编码的)安全程序,该安全程序被称为保护程序。第一次程序运行处理用户编写的未修改的安全程序。之后,处理保护程序。F-CPU比较结果。如果处理正确,将写入安全输出。如果检验失败(例如,由于数据损坏) ,F-CPU 将停止并在诊断缓冲区中生成一个条目。数据损坏数据损坏意味着安全程序的数据由于外部影响(例如,EMC) 或非法写入访问被篡改。F-CPUF-CPU 是一种适用于安全相关任务的控制器。PROFIsafePROFIsafe是基于 PROFINET 或 PROFIBUS 的一种故障安全通信协议。交叉回路交叉回路检测是评估单元的诊断功能,用于检测两个输入通道(传感器回路)之间的短路或交叉回路。例如,电缆外壳被压扁会导致交叉电路。在没有交叉电路检测的设备中,这可能意味着只有一个 NC触点出现故障 (二次错误),双通道紧急停止电路也不会跳闸。RIOforFARIOforFA (用于工厂自动化的远程 IO) 是PROFIBUS & PROFINET 国际组织的标准,描述了以下功能及其他功能:• 同步提供远程 IO的特定通道诊断,以实现高性能• PROFIsafe 远程 IO的特定通道钝化和重新集成反馈回路反馈回路用于监控具有正向作用触点或镜像触点的执行器(例如继电器或负载接触器)。只有当反馈电路闭合时,输出才能被激活。当使用冗余关断路径时,必须评估两个执行器的反馈回路。可以串联连接。复位功能/复位当安全功能被触发时,系统必须保持停止状态,直到进入到安全状态时才能重新启动。恢复安全功能和清除停止命令被称为复位功能/复位。在这种情况下,“确认安全功能”是另一个经常使用的术语。安全程序处理安全相关任务的安全程序的一部分。STEP7 Safety Basic/AdvancedSTEP 7 Safety Basic 和 Safety Advanced 是 STEP7 选件包,允许您配置 F-CPU 并创建安全程序。• STEP 7 Safety Basic 允许您配置 SIMATICS7-1200 故障安全控制器。• STEP 7 Safety Advanced 允许您配置所有 SIMATIC故障安全控制器服务我们的服务范围包括以下内容:• 工厂数据服务• 备件服务• 维修服务• 现场和维护服务• 改造和现代化服务•服务计划和合同工业在线支持应用程序使用“西门子工业在线支持”应用程序,无论您身在何处,都将获得zuijia支持。西门子工业商城是访问整个西门子工业产品组合的平台。从产品选择到订单和物流跟踪,西门子工业商城实现了完整的采购流程——直接且不受时间和地点的影响