全国服务热线 15801815554

SIEMENS西门子 中国西安市智能化工控设备代理商

更新时间:2024-12-04 08:00:00
价格:请来电询价
西门子:代理经销商
模块:全新原装 假一罚十
德国:现货 实体经营
联系电话:15801815554
联系手机: 15801815554
联系人:邓经理
让卖家联系我
详细介绍

         性能在本章中描述了高性能用户程序开发的规则和建议。PE001 建议:禁用“创建扩展状态信息”禁用 “创建扩展状态信息”可以使生产运行达到更好的性能。 在开发过程中,为了调试用户程序,激活此设置可能是有益的。图 10-1PE002 建议:避免“在 IDB 中设置”为了允许块优化,并且为了完全符号编程,应避免在块接口中使用“在 IDB 中设置”的功能。说明:使用“在 IDB 中设置”会导致系统创建一个由优化和非优化数据区域组成的混合DB。 访问这些数据会导致系统将这些数据复制到其他数据格式中。注意: “在 IDB 中设置”主要与“AT 结构”结合使用。可以使用片段访问或系统函数SCATTER 和 GATHER 替代。PE003 建议:使用引用传递结构化参数为了保证Zui大性能(内存和运行zuijia)的将数据传递到块接口的形参中,建议使用“按引用调用”模式。说明:调用块时,将传递对实际参数的引用,不复制实际参数。注意: 使用这种方法,可以修改原始数据。在调用块时,如果将优化的数据传递给禁用了“优化的块访问”属性的块(反之亦然),则该数据总是作为复制进行传递。 如果块包含许多结构化参数,这会导致块的临时内存区域溢出。 您可以通过为两个块设置“优化”访问类型来避免这种情况。DA009 规则:仅保留使用过的代码在发布的程序中,只应包含正在 PLC 中执行的代码。违规示例:• 从未调用过的块或工艺对象• 从未使用的变量或常量• 从未使用的参数• 从未执行的程序代码• 注释掉的代码• 从未访问过的 PLC 变量• 从未使用过的用户常量• 外部源文件注意: 在不同时间点所需的生产代码具体取决于选项,不受此影响。DA010 规则:根据 PLCopen 开发异步块PLCopen 组织已经定义了运动控制块的标准。 这个标准可以应用于所有异步块。从这个角度讲,在多个周期内处理的所有块都遵循此标准,例如用于通信,闭环控制或运动控制块。说明: 应用此标准可以简化编程和实现应用。DA011 规则:带“enable”的连续异步执行仅启动和初始化一次,之后仍保持运行以响应输入的块具有“enable”输入参数。示例: 通信块(充当服务器)在初始化后等待来自客户端的连接请求。 在成功的数据交换之后,服务器等待其他的连接请求。注意: 可以在通用函数库(LGF)的主副本中找到带 enable 的模板:设置参数“enable”将启动异步任务的执行。 如果“enable”保持设置,则任务执行将保持活动状态,并且正在接受和处理新的值。当“enable”参数被复位时,作业结束。诊断信息(诊断)将在“enable”上出现新的上升沿时复位。如果根据 PLCopen 实现该块并使用“enable”输入参数,则必须至少提供输出参数“valid”,“error”和“busy”。标识符 数据类型 描述输入参数enable Bool 所有参数由输入的“enable”上升沿激活且随时可以被不断的修改。为电平触发激活(TRUE)和禁用(FALSE)。输出参数valid Bool 输出“valid”和“error”为互斥的;如果输入使能且输出值是有效的,则参数“valid”输出,一旦检测到“error”则输出“valid”复位。busy BoolFB 正在执行命令。 新输出值计算中。只要 FB 执行命令,参数“BUSY”设置为输出。参数“BUSY”设置为输出输出“busy”会在 enable 的上升沿置位,并在 FB 命令执行过程中保持置位状态。error Bool 输出“valid”和“error”为 互斥的。输出的上升沿表示在执行 FB 期间发生错误。commandAborted Bool 可选输出,它表示当前执行的 FB 任务被另一功能或同一对象的另一任务取消。示例:一个轴正在定位,而另一个函数块在执行停止该轴。这时定位函数块将输出“commandAborted”这个参数,表停止命令。示定位命令被停止命令中止。status Word 可选输出:函数块中的错误和状态信息,此参数的命名来自系统函数(根据“PLCopen 标准为“errorID”)。diagnosticsPLC datatype 可选输出:详细的错误信息。在这里,所有的错误信息和警告都会储存。诊断信息的结构在建议“传递底层的状态信息”中进行了描述。) 当“error”为 TRUE 时,将复位“valid”,并停止块内的所有功能。 由于错误可以由块本身处理,所以“busy”标志保持活动状态。b) 清除错误原因(例如重新建立连接)后,“valid”再次变为激活状态。c) 发生只能由用户清除的错误时,必须置位“error”,并复位“valid”和“busy”。d) 必须由用户纠正的未决错误只能通过“enable”处的下降沿进行确认。e) “valid”为 TRUE 表示块已激活,没有错误并且 FB 的输出有效。f) 如果“enable”复位为 FALSE,则“valid”和“busy”也必须复位。只要信号“enable”被置位,“commandAborted”,“error”和“done”就必须被置位至少一个执行周期。

       DA012 规则:带“execute”的单次异步执行一次处理的块具有输入参数“execute”。示例: 一个通信块(客户端)只请求一次服务器的数据。 这是由输入信号“execute”处的边沿触发的。 在响应被处理之后,处理结束。若需重新触发需要“execute”的下一个边沿信号。注意: 带有“execute”的块模板可以在通用函数库(LGF)中的主副本中找到:execute”的上升沿启动任务,输入参数处的值被应用。任务开始后对值所做的任何更改只有在新任务开始后才会生效,除非正在使用“continuousUpdate”。参数“execute”的复位不会停止当前任务的执行,但对运行状态的显示持续时间有影响。 如果“execute”在当前任务完成之前被复位,那么参数“done”,“error”和“commandAborted”将只被置位一个周期。诊断信息(“diagnostics”)只有在“execute”出现新的上升沿时才会被清除。完成任务后,“execute”的新上升沿是启动新任务所必需的。这可确保每次启动任务时,块都处于其初始状态,并且该函数的处理独立于先前的任务。如果根据 PLCopen 标准实现该块,并且使用“execute”输入参数,那么必须使用输出参数“busy”,“done”和“error”。标识符 数据类型 描述输入参数execute Bool 无“continuousUpdate”参数的“execute”:所有参数均在“execute”上升沿后执行且函数块启动。当输入参数更改时,需要一个新的“execute”上升沿才可生效。有“continuousUpdate”参数的“execute”:所有参数均在“execute”上升沿后执行,如果“continuousUpdate”为 TRUE 时参数值调整即生效。continuousUpdate Bool 可选 输入:参见“execute”输入。输出参数done Bool 输出“done”,“busy”,“commandAborted”和“error”是 互斥的。如果命令执行成功则参数“Done”输出。busy Bool 输出“done”,“busy”,“commandAborted”和“error”是 互斥的。FB命令未执行完成,意味着会有新的输出值。“execute”的上升沿时,“busy”置位;当输出“done”、“commandAborted”或“error”之一置位时,“busy”复位。标识符 数据类型 描述error Bool 输出“done”,“busy”,“commandAborted”和“error”是 互斥的。输出的上升沿表示错误在 FB 的执行期间发生。commandAborted Bool输出“done”,“busy”,“commandAborted”和“error”是 互斥的。可选输出,指示当前执行的命令被同目标的其它功能或其它命令终止.示例:一个轴正在定位,而另一个函数块在执行停止该轴,这时定位函数块将会输出“commandAborted”这个参数,表示定位命令被停止命令中止。status Word可选 输出:函数块中错误和状态信息该参数是根据现有的系统函数命名的。(根据 PLCopen为“errorID”)diagnostics PLC data 可选 输出:详细的 error 信息。type 在这里,所有的错误信息和警告都会储存。诊断信息的结构在建议“传递底层的状态信息”中进行了描述。

          a) “done”,“error”和“commandAborted”将在“execute”的下降沿复位。b) FB 的功能不会因“execute”的下降沿终止。c) 如果“execute”已为 FALSE,则“done”,“error”和“commandAborted”仅置位一个周期。d) 当前一个命令仍在执行(“busy”=TRUE)时,一个的新的命令请求被“execute”的上升沿发起,上一个命令应使用以前使用的参数完成,或者上一个命令应中止并使用新的参数重新启动。具体的执行应参考不同的应用场景来判断且必须详细说明记录。e) 如果命令的执行被具有相同或更高优先级的另一个命令(来自另一个块/实例)中断,则该块参数“commandAborted”输出且立即停止执行的任何剩余命令。 当发出紧急停止,同时轴执行定位命令时,可能会发生这种情况。DA013 规则:通过“status”/“error”返回状态/错误块在其输出参数“status”处报告唯一的状态,该参数提供有关块内部状态的信息。这些值必须定义为块接口中的局部符号常量,以避免重复使用并增加可读性。块发生错误时,应使用输出参数“status”和“error”。 按照下面状态概念的描述,“error”参数是“status”的Zui高位(位 15)。 其余位用于指示错误代码,从而可以识别错误的原因。出于与 SIMATIC 系统块兼容的原因,输出“errorID”(在 PLCopen 标准中是强制性的)被输出“status”替换。说明:这允许通过输出“status”传递关于块状态的进一步详细信息,其中可以不包含任何错误信息。DA015 建议:传递下层信息如果一个块调用其他子函数,这些子函数报告详细的状态和可能的诊断信息,那么它们必须复制到输出参数“diagnostics”处的诊断结构中。 此外,该诊断结构可以包含用于诊断附加值,例如运行时信息。注意: 诊断结构可能进行掉电保持,即使在电源故障之后也可以进行诊断。

       变量“timeStamp”包含错误发生的时间点。在“stateNumber”中存储内部状态机的当前内部状态。如果系统函数或被调用的 FB/FC 出现错误,其状态应存储在变量“subfunctionStatus”中。输出参数的唯一错误代码应复制到诊断结构的变量“status”中。可以使用适当的数据类型将修正错误的附加变量(也是基础变量)添加到诊断结构中,例如借助“additionalValueX”,其中“X”由从 1 开始的递增数代替。DA016 建议:用 CASE 指令代替 ELSIF 分支在可能的情况下,使用 CASE 指令而不是带有多个 ELSIF 分支的 IF 指令。说明:程序变得更易读。DA017 规则:在 CASE 指令中创建 ELSE 分支CASE 指令必须始终具有 ELSE 分支。说明:这起到报告错误的作用,这些错误可能在运行时发生。DA018 建议:避免跳转和标签尽可能避免程序内的跳转。 只有在例外的情况下,如没有其他可能实现程序的方法,跳转才是允许的。说明:跳转可能导致这些指令从程序内部的来回跳转,因此很难保证程序正常运行。

联系方式

  • 地址:上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201100
  • 电话:15801815554
  • 联系人:邓经理
  • 手机:15801815554
  • 微信:15801815554
  • QQ:190755061