网淘吧来吧,欢迎您!

第5章:Plant Simulation建模——信息流

2026-04-12 新闻来源:网淘吧 围观:90
电脑广告
手机广告


第5章:信息流——TableFiles、属性与SimTalk方法实践

本章将介绍Plant Simulation中的信息流对象和用户自定义控制功能。学习本章后,您将能够:

  • 在表格文件中存储信息并在仿真中调用
  • 理解Plant Simulation编程语言SimTalk
  • 通过用户自定义控制功能扩展模型

表格文件

Plant Simulation提供多种列表和表格对象用于存储信息。这些对象既可为仿真运行提供输入数据,也可用于记录仿真结果。

TableFile 是一种多列列表。表格中的每个单元格通过行号和列号进行索引,支持独立访问。此外,TableFile中的表格还能包含嵌套表格。

CardFile QueueFile 以及StackFile TableFile类似,但它们仅包含一列。

练习:从 TableFile 设置 MU 属性

在本练习中,我们将使用TableFile扩展之前的模拟。我们将在 TableFile 中定义三种不同类型的 MU,并将 Source 连接到 TableFile,使其根据表中定义的属性生成 MU。与之前的练习类似,强烈建议您仅对文件夹中的框架进行更改。**设施区域**在类库中。

**逐步操作:**

  1. 打开**工厂**导航到**信息流**在工具箱中的选项卡。插入一个TableFile对象从工具箱拖放到Source旁边的框架中,并将其重命名为“SourceTable”
  2. 如果双击SourceTable,您会看到当前每一列的数据类型都相同。您可以通过列表 功能区选项卡中的数据类型图标来显示/隐藏列和行的数据类型。
  3. Plant框架中,将SourceTable拖放到Source上以建立链接。
  4. 双击Source要打开它。在属性选项卡中,您会发现,现在不再直接引用物料单元,而是通过引用源表来创建物料单元。将物料单元选择更改为“百分比”
  5. 双击源表将其打开。您会注意到表格的结构已经改变。当表格文件链接到另一个对象时,表格的结构及其数据类型将根据链接的对象自动格式化。
  6. 从类库中的物料单元文件夹中,将钣金件实体拖放到第一列下方的行中。在比例数量如图所示,将其命名为名称。该应在50%的时间内生成一个原始部件A,30%的时间内生成一个原始部件B,以及20%的时间内生成一个原始部件C
  7. 对于Attributes列的每一行,将值设置为“x”。这将自动为每一行创建子表,以便进一步指定MU属性。请设置属性名称修改为“Type”并在第四列输入对应的字符串类型属性。
ch5_fig29_table_file

图 29:用于定义 MU 属性的 TableFile

  1. 打开装配文件夹中的框架设施区域在类库中。双击第一条生产线该生产线将零件从进料缓冲区运输到装配工位。
  2. 导航至出口将策略更改为“物料单元属性”并点击应用。您将能够通过列表进一步指定属性类型。将属性类型设置为“字符串”并点击应用
  3. 点击按钮打开列表。我们希望将属性类型为“A”的零件分配到第一个后续工位(装配工位1) 以及具有属性类型的部件“B”“C”传送到第二个后续工位 (装配2)。在表中输入属性“类型”,并根据下图设置数值。点击应用/确定
  4. 返回工厂框架并运行仿真。您注意到有什么不同吗?
ch5_fig30_exit_strategy

图30:基于移动单元属性的退出策略

下载:

本练习到此为止的仿真模型最终状态可在此处下载教程模型_06

方法

方法 代表一个在仿真运行期间执行的控制对象。您可以使用方法编程特定的操作或定义自定义行为。方法也可以作为入口或出口控制内置在物料流对象中。在这种情况下,每次有移动单元进入或离开物料流对象时,该操作都会被执行。

还有特殊类型的方法,由事件控制器调用。它们通过特殊图标表示:

  • 初始化方法 在重置仿真模型后启动时执行。
  • 仿真结束方法 在仿真运行结束时执行。
  • 重置方法 在您点击事件控制器中的重置仿真按钮时执行。

方法包含用SimTalk编程语言编写的源代码。一个方法的结构通常包括参数声明、返回值的数据类型、局部变量以及操作本身的源代码。

您可以使用SimTalk 1.0语法或更新的SimTalk 2.0语法编写代码语法。一个模型可以同时包含使用 SimTalk 1.0 或 SimTalk 2.0 编写的多个方法,因为它们可以并行运行。也可以将使用旧语法编写的方法转换为新语法。在 SimTalk 2.0 中,is-do-end 结构已过时,这使得代码更加简洁和简单。下图展示了 SimTalk 1.0 和 SimTalk 2.0 的语法示例。

ch5_fig31_simtalk_1.0_2.0

图 31:SimTalk 1.0(左)与 SimTalk 2.0(右)的语法对比

SimTalk 包含内置方法和标准结构,例如循环和条件分支。为了引用仿真中的对象或查询对象的路径,SimTalk 提供了以下匿名标识符:

  • “@”指触发控制的移动单元(MU)。这可能是进入对象的 MU 或准备退出对象的 MU。
  • “root”指模型框架层次结构中最顶层的(根)框架。
  • “current”指被调用的Method对象所在的当前框架。
  • “?”指触发控制的物流对象或Method。
  • “self”指当前正在执行的Method。

练习:使用Method设置MU属性

在本练习中,我们将扩展之前的模拟,并基于通过Method创建的MU属性来建模流程控制。在之前的练习中,我们在QualityGate中模拟了制造区域,以区分次品和良品,并仅允许良品通过。这次我们将不再使用QualityGate现在,我们需要随机分配一个属性,以确定物料单元(MU)是否满足质量要求,并根据物料单元当前的属性做出决策。

与之前的练习类似,强烈建议您仅对类库中以下文件夹内的框架进行修改:设施区域(FacilityArea)在类库中。

分步指南:

  1. 打开类库中设施区域(FacilityArea)文件夹下的制造(Manufacturing)框架。在工具箱中导航到信息流(Information Flow)选项卡。从工具箱中插入一个方法(Method)对象到框架中,并将其重命名为“CheckPartOK”
  2. CheckPartOK方法拖放到清洗(Washing)工位上。该方法(Method)的图标应变为出口控制方法(Method)的图标。双击清洗(Washing)工位,并导航到控制(Controls)选项卡。确保在出口(Exit)字段中正确输入了CheckPartOK方法。
  3. 双击CheckPartOK方法,并输入以下 SimTalk 源代码,如下图所示。每当有物料单元离开该工位时,该方法(Method)都会被执行。
ch5_fig32_source_code_method

图 32:出口控制方法的源代码

  1. 双击质量门(QualityGate)流控制对象。导航到……退出策略将策略更改为“MU属性”并点击应用。将属性类型设置为“布尔值”并点击应用
  2. 点击按钮打开列表。我们希望将属性“PartOK”的零件分配到后续装配区域,而将属性“PartOK”的零件分配到废品排放口。如下图中所示,在表格中输入数值。点击应用/确定
ch5_fig33_exit_strategy_flowcontrol

图33:流量控制的退出策略

  1. 双击质量门流量控制对象。导航到退出策略将策略更改为“MU属性”并点击应用。将属性类型设置为“布尔值”并点击应用
  2. 打开工厂框架并运行仿真。您是否注意到与之前仿真运行的不同之处?
  3. 尝试为if-else条件设置不同的阈值,观察其对仿真结果的影响。您可以打开控制台窗口,查看模拟生成的随机值。
下载:

本练习的模拟模型最终状态可在此处下载Tutorial_Model_07。您的模拟模型应类似于下图。

ch5_fig34_final_model

图28:本章最终模型

免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏

文章底部电脑广告
手机广告位-内容正文底部

相关文章

遇到问题?请给我们留言

请填写您的电话号码,我们将回复您电话

您是本站第616767名访客 今日有0篇新文章/评论