PE004 建议:避免 Variant 形参为了避免由于使用Variant 造成的性能损失,建议为不同的数据类型设置单独的块。仅在以下情况下才需要使用 Variant。例如,需要将用于通信的数据传输到块内部调用的通信系统函数,或需要做序列化。PE005 建议:避免形参“mode”避免开发根据输入参数(例如“mode”)操作不同功能的块。说明:这可以防止不需要的代码片段(“死代码”),因为模式参数通常是静态连接的。您应该将不同功能分到不同的程序块:•这减少了内存消耗,并通过减少代码来提高性能• 它通过更好的区分和更好的命名来增加可读性•它通过更小的代码片段来增加可维护性,这些代码片段彼此独立PE006建议:shouxuan临时变量如果变量仅在当前周期中需要,则应将它们声明为临时变量。临时变量在块中可提供zuihao的性能。如果经常访问 Input 或 In/Out参数,则应使用一个临时变量作为缓存,以改善执行时间。 注意: 不能在监视表或强制表中监视或强制临时变量。PE007建议:将重要的测试变量声明为静态重要的测试变量应该静态声明,这些变量必须提供关于函数状态的足够信息。说明:在块已完成执行之后,静态测试变量的当前值仍保留,以用于诊断目的。SIMATICS7-1200/S7-1500 编程风格指南条目 ID: 109478084,v2.0,05/2020 54©Siemens AG2020 版权所有10 性能PE008建议:将控制/索引变量声明为“DInt”对于循环,迭代和数组访问的控制和索引变量,建议使用数据类型“DInt”。说明:这种数据类型具有Zui高的处理器处理性能,因为不必进行类型转换。数组大小和循环限值的定义也应创建为“DInt”数据类型的常量。PE009建议:避免多个相同的索引访问为了避免重复访问数组的同一索引,应使用临时变量作为缓存。说明:这种方法将数组边界的内部系统检查和超过边界的检查减少到Zui小。PE010建议:使用片段访问代替掩码应使用片段访问来访问单个位,而不是使用掩码来访问几个独立位。说明:这种方法提高了源代码的性能和可读性。PE012建议:根据预期对 IF/ELSIF 分支进行排序IF/ELSIF语句,则应按低可能性的方式排序,Zui有可能的情况应排在前面,依此类推。说明:这避免了对不太可能的情况的评估,从而提高了效率。示例:假设程序流无错误地执行,并且理想情况已知,则评估Zui可能的情况。PE013建议:避免内存密集型指令会使存储空间占用率过高的指令(内存密集型指令),如:• “GetSymbolName”•“GetSymbolPath”• “GetInstanceName”• “GetlnstancePath”应尽量避免使用。说明:使用上面提到的指令会导致存储器空间需求大幅增加,指令的调用频率越高,符号标识符越长,对存储器的空间要求也就越大。PE014建议:避免运行时密集指令应将运行时密集指令的使用减少到Zui低限度。运行时密集指令是处理大量数据的指令,如“Serialize”和“Deserialize”或者访问存储卡的指令。系统函数“WRITE_DBL”,“READ_DBL”,“FileRead”和“FireWrite”访问相对较慢的SIMATIC 存储卡,通常是异步完成的,可能需要几个循环。由于要传输大量数据,使用这些系统函数会对整个程序的运行时间产生负面影响。访问 SIMATIC 存储卡的更好的方法是DataLog 和 Recipe 函数。PE015 建议:SCL/LAD/FBD用于运行时间敏感的应用对于时间要求严格的程序/程序部分和算法,建议使用三种编程语言 SCL,LAD 或FBD中的一种。说明:GRAPH 作为编程语言生成额外的诊断信息,这些信息需要额外的运行时间。 推荐使用 GRAPH对机器流程进行顺序编程。PE016建议:检查Zui小循环时间的设置对于没有高通信负载的时间关键应用,可以关闭“Zui小循环时间”,以允许快速响应时间。高通信负载可以通过启用并提高“Zui小循环时间”来实现更高的通信吞吐量。
12.1服务和支持行业在线支持你有问题还是需要支持?通过行业在线支持,您可以 24/7访问完整的服务和支持诀窍以及我们的服务产品。行业在线支持是提供有关我们产品,解决方案和服务的信息的中心地址。产品信息,手册,下载,常见问题和应用程序得案例,所有信息仅仅需要点击下几次鼠标即可:技术支持西门子工业的技术支持为您提供各种量身定做的产品,以快速和胜任的方式满足所有的技术要求-从基本支助开始直至个人支助合同。向技术支持提出的请求可以通过网页发送:SITRAIN-工业培训我们在全球范围内为我们的产品和解决方案提供培训,我们以创新的学习方法和定制的概念支持您。有关提供的培训和课程以及我们的地点和日程安排的更多信息,请访问:服务我们提供的服务包括以下内容:•工厂数据服务• 备件服务• 修理服务• 现场和维护服务• 改装和现代化服务•服务计划和合同有关我们提供服务的详细信息,请参阅我们的服务目录:行业在线支持App使用“西门子工业在线支持”应用程序,您将获得zuijia的支持,在未来该应用程序在组态故障安全控制器2.1 选择合适的F-CPU选择 F-CPU 取决于以下因素:• 安全程序的运行时间• PROFIsafe 通信时间• 安全功能的响应时间•所需输入和输出的数量• 连接的 I/O 设备数量•程序所需内存响应时间的评估如果您已经对想要使用的自动化系统有了一个大致的概念,您可以使用 SIMATICSTEP 7响应时间表来评估您的安全程序的响应时间,或者通过各种场景来选择合适的 F-CPU:安全程序的循环时间(cycletime)对标准用户程序的影响设置较大的安全程序循环时间会减慢安全功能的响应时间,但会留出更多的时间来处理标准用户程序。设置较小的安全程序循环时间减少了安全功能的响应时间,但会增加处理标准用户程序的时间。西门子股份公司2021版权所有2组态故障安全控制器SIMATIC S7-1200/1500 安全编程指南ID: 109750255, V1.2, 09/20217下图显示了事件类循环中断的安全程序的循环时间对可用于处理标准用户程序的时间的影响。说明 请注意,较高优先级的组织块(如循环中断 OB或运动控制 OB)可以以与图 2-2中所示的相同方式中断安全程序。为了确保安全程序不会被中断,您可以在适当的 OB属性中自定义优先级。注意 循环周期必须大于安全程序的执行时间,否则 CPU 将切换到停止状态。也请遵守手册 SIMATIC安全-组态和编程-5.2 中的信息F-change 历史记录F-change历史记录的行为与标准程序更改历史记录的行为相同。在项目导航的“公共数据>日志”下,创建各个 F-CPU 的 F-change历史记录。建议由于更改历史记录与 CPU 名称相关联,当您开始组态或Zui迟当您定义了Zui终项目特定的 CPU名称时,请激活更改历史记录。优势• 通过比较 CRC 的在线和离线状态,确保加载了Zui后一次更改。•在多用户项目中,可以跟踪哪个用户更改或下载了安全程序。• CPU 和 PG/PC 之间无需在线连接即可匹配在线和离线状态。 注意F-change 历史记录不得用于检测安全程序中的更改或验收 F-I/O 配置中的更改说明 也请遵守手册 SIMATIC安全-组态和编程-第 11 章中的信息2.3 F-CPU 一致性上载TIA Portal V14 SP1 及更高版本允许您将故障安全SIMATIC S7-1500 CPU 自动化系统上载到 TIAPortal。建议只有在项目已经发布的情况下,才能从自动化系统上载。开始组态时,选中 TIA Portal 安全管理(SafetyAdministration)中的“一致性上载”复选框。优势负责此系统的程序员可以将相应的程序加载到他的 PG上,从而减少服务工作量。说明 F-CPU 一致性上载选项的激活延长了加载安全相关项目数据的时间。F-CPU需要更多的装载存储区内存。专有技术保护STEP 7 Safety V14 及更高版本允许您激活故障安全块( FC 和 FB)的专有技术保护。无论 F-CPU 和安全程序的访问保护如何,专有技术保护可防止未授权人员访问特定程序部分。没有密码,不能查看或修改FC 或 FB 的内容。建议在项目阶段,确定保护安全程序块免受第三方访问的合理程度。优势• 保护您在程序部分内容中的专有技术。•不能修改已验收的块。附加说明以下文档提供了针对不同使用场景使用专有技术保护的说明。
安全编程方法程序结构建议当创建一个程序时,确保您的程序是可重用的。编程规则和建议可在 SIMATICS7-1200/S7-1500 编程风格指南文档中找到定义程序结构建议• 将程序代码按模块划分,例如– 按检测、评估、执行或–按安全功能或– 按工厂单元• 预先为每个模块创建一个规范(基于风险评估的要求)。• 避免复杂的信号路径。优势• 降低复杂性。•减少编程错误。• 可以在不运行程序的情况下分析/测试程序代码(例如,代码检查或PLCSIM)。• 更容易扩展和简化了重复验收过程。•无需重复验收的可重用程序段。•可以提前测试和验收完成的程序部分。示例下图展示了一个安全应用,该应用被分为三个机器区域(安全区)。由于一些传感器信号是跨区域互连的(例如,全局中的急停功能),它们被分为“Sensor”FB(也可以按物理或逻辑区域来拆分)。使用标准化功能块(如“GuardDoor”)对各个传感器进行评估。移动面板的程序块也在这里被调用。为每个机器区域创建单独的逻辑和执行FB块。使用标准化功能块(例如,“ContactorControl”)控制各个执行器。示例结构只是一个样例。根据安全程序的规模和复杂程度,您也可以选择不同的结构。例如,在较小的应用中,也可以在一个功能块中实现逻辑和执行器控制。F-FB/F-FC的调用层级对于安全程序,您Zui多可以使用八个调用层级。超过此限制时会出现警告,并且会为 FC 和多重实例调用显示错误消息。说明在系统端的保护程序中,FC 被映射为具有一个多重实例的 FB;这就是为什么对于超过八个调用层级的 FC调用链也会显示错误消息的原因。图 3-1中的程序结构展示了保持调用级别相对平稳的一种方法,以便安全程序保持在限制范围内。主安全程序中块的调用顺序建议在主安全块中,按以下顺序调用程序块:1.从其他 CPU 接收信号的程序块(F-CPU-F-CPU 通信)2. F 模块 / F通道的错误确认/重新集成(Reintegration)3. 传感器的评估程序块4. 操作模式评估程序块5.逻辑运算、计算、评估等程序块6. 安全执行器的控制块7. 向其他 CPU 发送信号的程序块(F-CPU-F-CPU 通信)优势•CPU 总是使用Zui新的值• 有利于主安全程序的定位说明 通过预处理/后处理,您可以选择在 F运行组之前或之后直接调用F-compliant 型 PLC 数据类型对于安全程序,也可以使用 PLC 数据类型优化数据结构。建议•创建 F-compliant 型 PLC 数据类型,以便在安全程序中结构化数据。• 使用 F-compliant 型 PLC数据类型来传输大量的变量到程序块。• F-compliant 型 PLC 数据类型支持嵌套。优势• PLC数据类型的更改会自动更新到用户程序的所有使用点。• 通过数据结构化提高透明度。说明 尝试尽可能模块化地设计 F-compliant 型PLC 数据类型,以实现数据类型和块的可重用性。也请遵守手册 SIMATIC 安全-组态和编程-第 5.1.5章中的信息示例以下示例显示了两种 F-compliant 型 PLC 数据类型的使用。F-UDT 的“typeMachine”(图2-1)包含与机器相关的数据。通过使用其他FUDT“typeInterface”、“typeParameter”以及“typeDiag”和嵌套来构建数据。图 3-3显示了如何访问相应的数据。