注册网站做网销,2012r2网站建设,伊春网站优化,今科网站建设费用PLC_博图系列☞参数实例 文章目录 PLC_博图系列☞参数实例背景介绍参数实例参数实例的工作原理创建参数实例将实例作为参数传送 关键字#xff1a;
PLC、
西门子、
博图、
Siemens 、
参数实例 背景介绍 这是一篇关于PLC编程的文章#xff0c;特别是关于西门子的博图软件…
PLC_博图系列☞参数实例 文章目录 PLC_博图系列☞参数实例背景介绍参数实例参数实例的工作原理创建参数实例将实例作为参数传送 关键字
PLC、
西门子、
博图、
Siemens 、
参数实例 背景介绍 这是一篇关于PLC编程的文章特别是关于西门子的博图软件。我并不是专业的PLC编程人员也不懂电路所以如果你希望从这里学习PLC编程技术可能会有些失望。然而因为工作需要我开始了解PLC编程特别是西门子的博图软件并记录了这些经验。随着我国工业4.0的推进相信会有更多的人从事类似的工作。如果这篇文章能对你有所帮助欢迎点赞和关注我❥(^_-)。 参数实例
在PLC编程中参数实例是一个重要的概念。它是指将函数块的实例作为输入输出参数 (InOut) 传送到另一数据块中。这个数据块可以访问已传送实例中的数据或调用关联函数块。
参数实例的优势在于
在运行过程中可以定义当前使用的实例。在程序循环中可以通过迭代方式处理不同的实例。
注意参数实例数据位于调用块的“InOut”区域中。
为了更好地理解这个概念我们可以将其与单个实例和多重实例进行比较
单个实例被调用的函数块将数据保存在自已的背景数据块中。使用单实例具有以下优势函数块可重用适用于简单程序的完美结构。但是如果重复调用会导致大量数据块不方便管理²。多重实例被调用函数块不会将数据保存在自已的背景数据块中而是保存在另一函数块的实例中。使用多重实例具有以下优势适用于复杂块的完美结构背景数据块的数量较少轻松编写本地子程序如本地定时器或边沿评估等。注意多重实例数据位于调用块的“Static”区域中。
定义
参数实例是一种特殊的实例化方式
在运行过程中可以将待使用的块实例作为 in-out 参数 (InOut) 传送到调用块中。
优势
使用参数实例具有以下优势 在运行过程中可定义当前使用的实例。 在程序循环中可通过迭代方式处理不同的实例。 说明 ARRAY 实例 要简化程序循环中实例的迭代处理过程可定义一个 ARRAY 实例。 数据类型为“DB_ANY”的 ARRAY 多重实例 ARRAY 参数实例的工作原理
下图显示了“Caller”正使用另一函数块“Valve”。“Valve”的实例将作为参数实例进行传递。为此需定义一个 in-out 参数(“#valveInstance”)用于在运行期间传送该特定实例。 创建参数实例
参数实例在调用函数块时定义。调用函数块时可在显示的对话框中指定将该函数块作为单实例、多重实例或参数实例进行调用。此外也可以在块接口中直接手动输入参数实例。
下图显示了函数块“Valve”的参数实例调用 将实例作为参数传送
每次调用较高级别函数块时本示例中为“Caller”将为被调用函数块传送一个实例本示例为“Valve”。可传送以下类型的实例 单实例 传送被调用函数块的现有背景数据块。 多重实例 传送被调用函数块现有的多重实例。 多重实例 ARRAY 的各个元素 传送多重实例现有 ARRAY 的元素。 数据类型为“DB_ANY”的变量 (S7-1200 V4.2 / S7-1500 V2.0) 将数据类型为“DB_Any”的变量传送到运行期间所分配的相应实例处。 请注意“指令”(Instructions) 任务卡中的系统块实例不支持这种参数传递方式。
下图显示了函数块“Caller”的调用。通过“valveInstance”参数传送实例“#currValve”。在运行期间将通过 #currValve 参数处未决的实例调用“Valve”。 在 S7-1200/S7-1500 系列的 CPU 中也可将位于另一函数块的背景数据块中的实例作为参数传送。
在以下示例中所传递的实例位于背景数据块“MyOtherIDB”中 (S7-1200/S7-1500) 在以下示例中所传递的实例位于背景数据块“MyOtherIDB”的 ARRAY of multi-instances 中 (S7-1200/S7-1500) 在以下示例中从数据类型为“DB_ANY”的 ARRAY 中传送来的实例位于全局数据块“DB_ValveInstances”中