Tutorial Task 3.2 - Add Area Restriction PLC Logic
任务概述
在本任务中,您将学习如何使用“获取变量”活动来获取光电传感器变量的状态。您将设计一个仿真系统,其中光电传感器会相互通信,以限制物料流向特定区域。光电传感器将使用“获取变量”活动来判断限制区域是否清空并可接收物料。如果未清空,电机将停止运行,直到该区域再次清空。
完成后,仿真模型将类似于下图所示:

步骤 1编辑 3D 模型
在此步骤中,您将编辑 3D 模型,添加第二条与第一条汇合的输送线。您还将添加一个独立的电机来控制该输送线,以及其独立的源头、处理器和终点。最后,您需要将两条输送线设置为不同颜色,以便在视觉上轻松区分。完成后,您的模型应类似于下图:

构建此模型的步骤如下:
- 确保您的 3D 模型窗口已打开并处于活动状态。从库中,将以下 3D 对象拖入模型:
- 一个源头
- 一个直线输送机(位于传送带)
- A处理器
- A收集器
- A电机(位于传送带下方
- 移动传送带2(新增的传送带)的尾部,使其旋转90度,从而与另一条传送带垂直。
- 移动传送带2使其与传送带1相交。
- 点击处理器2以选中它。在属性中,将其Z轴旋转
更改为-90.00. - 添加一个光电眼(位于传送带下)到传送带1上,将其放置在传送带2交汇处稍后的位置。
- 向传送带2添加两个额外的光电眼对象,一个放置在传送带1交汇处稍前的位置,另一个放置在稍后的位置。
- 为清晰起见,请将光电眼重命名如下:
- 在以下对象之间创建端口连接(A型连接):
- 从电机2到传送带2
- 从源2到传送带2
- 从传送带2到处理器2
- 从处理器2到汇点2
- 点击源2在右侧显示其属性。在属性面板中,位于源部分,检查抵达时间框。
- 在到达间隔时间框中,删除当前文本
并输入
10。 - 在工具箱的输送系统组下, 右键点击输送带类型1以打开菜单。选择复制来创建此输送带类型的副本。
- 点击复制的输送带类型以在右侧打开其属性。
在直线输送带部分,点击属性按钮
以弹出输送带属性类型窗口。 - 在顶部的名称框中,将此输送机类型重命名为ConveyorType2。
- 在侧裙板组中的可视化选项卡上,将颜色更改为红色。
- 点击确定按钮以保存更改并关闭窗口。
- 在工具箱中,双击ConveyorType1以打开其属性窗口。
- 在侧裙板组中的可视化选项卡上,将颜色更改为浅蓝色。
- 点击确定用于保存更改并关闭窗口的按钮。
- 在3D模型中,点击Conveyor2以选中它。在属性中,点击输送机类型菜单并选择ConveyorType2。
| 对象 | 新名称 |
|---|---|
| 传送带1上位于交汇处前的光电眼 | 光电眼1A |
| 传送带1上位于交汇处后的光电眼 | 光电眼1B |
| 传送带2交汇点前的光电传感器 | 光电传感器2A |
| 传送带2交汇点后的光电传感器 | 光电传感器2B |



确认您的仿真模型与本步骤开头显示的图像相似。
步骤2向流程流添加活动和变量
在此步骤中,您将编辑控制第一条输送机仿真逻辑的流程流。您将添加并重命名多个不同的形状、活动和仿真变量。完成后,您的流程流应类似于下图:

目前,您只需将这些活动添加到流程流中并进行连接。后续步骤中,您将通过编辑属性来添加功能。
要添加这些活动和变量:
- 在流程流打开且处于活动状态的情况下,将传感器(输入)形状重命名为传送带1:检查区域是否空闲。
- 在此形状的正下方,添加另一个流程形状。
- 将新形状重命名为传送带1:指示区域何时空闲。
- 在传送带1:检查区域是否空闲形状中,点击堆叠的活动块,并点击取消链接按钮,
以切断与设置变量:电机为0和延迟:5秒活动的连接,使它们不再与堆叠块相连。 - 删除延迟:5秒活动。
- 创建一个新的堆叠块,以源:光电传感器处的物品活动。添加以下活动,将它们追加到末尾:
- A获取变量(位于共享资产下)
- A决策(位于基础下)
- 您将创建另一个堆叠块,这次以设置变量:电机为0活动开始。在其后添加一个等待事件(位于基础下)。
- 将堆叠块(以设置变量:电机为1开始)添加到此堆叠块的末尾。
- 创建另一个包含以下活动的堆叠块:
- 一个事件触发源(在令牌创建下)
- 一个设置变量(在共享资产下)
- 一个汇点(在基础下)
- 在活动右侧,添加一个汇点(在基础下)。
- 将活动和共享资产重命名如下:
- 创建两个从该判断:PhotoEye 2A 是否清空?活动出发的连接线。第一条连接线应连接至设置 变量:Motor1为0活动。第二条连接线应连接至汇点:物品继续活动。
- 点击连接线1以选中它。在属性面板的名称框中,输入
否。 - 点击连接器2以选中它。在属性面板的名称框中,输入
是。 - 在传送带1:指示区域已清空形状中,
创建一个包含以下活动的堆叠活动块:
- 一个事件触发源(位于令牌创建下)
- 一个设置变量(位于共享资产下)
- 一个汇点(位于基础下)
- 在这个新的堆叠活动块的右侧,添加一个变量(在共享资产下)。
- 请将这些活动重命名如下:
- 在控制(输出)形状中,点击变量:电机以选中它。将其重命名为变量:电机1。
- 按 Ctrl+C 复制变量:电机1。点击形状中的空白区域,并按 Ctrl+V 粘贴副本。请确认新变量名称为变量:电机2.

| 活动 | 新名称 |
|---|---|
| 源:光电传感器处的物品 | 源:光电传感器 1A 处的物品 |
| 获取变量 | 获取变量:光电传感器 2A 状态 |
| 决策 | 判断:PhotoEye 2A是否清空? |
| 设置变量:Motor为0 | 设置变量:Motor1为0 |
| 等待事件 | 等待事件:PhotoEye2A清空 |
| 设置变量:Motor为1 | 设置变量:Motor1为1 |
| 变量:Photo Eye | 变量:PhotoEye1A |
| 汇点 | 汇点:物品继续 |
| 活动 | 新名称 |
|---|---|
| 源 | 源:PhotoEye1B 已清空 |
| 设置变量 | 设置变量:PhotoEye1A 为清空 |
| 汇点 | 汇点:Conveyor1 区域已清空 |
| 变量 | 变量:PhotoEye 1B |
考虑在此刻保存您的仿真模型。
步骤3复制并调整输送带2的逻辑
在此步骤中,您将复制控制第一条输送带仿真逻辑的流程段,并将其调整用于第二条输送带。完成后,您复制的流程段应看起来类似于以下图像:

目前,您只需将这些活动添加到流程图中并连接起来。您将在后续步骤中编辑属性以添加功能。
要复制并重命名这些活动和变量:
- 点击输送带1:检查区域是否空闲形状以选中它。按Ctrl+C进行复制。点击流程图的空白区域,然后按Ctrl+V创建副本。
- 将新复制的形状重命名为输送带2:检查区域是否空闲。
- 在属性中,将新复制形状的颜色更改为红色(以匹配输送带2的颜色)。
- 在传送带2:检查区域是否通畅形状中,为清晰起见,请重命名以下活动和共享资产:
- 点击传送带1:指示区域何时通畅形状 以选中它。按Ctrl+C进行复制。点击流程图的空白区域,然后按Ctrl+V创建一个副本。
- 重命名新复制的形状输送机2:指示区域何时清空。
- 在属性中,更改颜色将新复制的形状颜色改为红色(以匹配输送机2的颜色)。
- 现在,只需删除变量:光电传感器1B1变量。您稍后将创建此变量。
- 在输送机2:指示区域何时清空形状中, 重命名以下活动和共享资产以提高清晰度:
| 活动 | 新名称 |
|---|---|
| 变量:光电传感器1A1 | 变量:光电传感器2A |
| 来源:光电传感器1A处的物品 | 来源:光电传感器2A处的物品 |
| 获取变量:光电传感器2A状态 | 获取变量:光电传感器1A状态 |
| 判断:光电传感器2A是否通畅? | 判断:光电传感器1A是否通畅? |
| 设置变量:Motor1为0 | 设置变量:Motor2为0 |
| 等待事件:光电传感器2A通畅 | 等待事件:光电传感器1A通畅 |
| 设置变量:Motor1为1 | 设置变量:Motor2为1 |
| 活动 | 新名称 |
|---|---|
| 源:光电传感器1B已清空 | 源:光电传感器2B已清空 |
| 设置变量:光电传感器1A为清空 | 设置变量:光电传感器2A为清空 |
| 汇点:输送机1区域已清空 | 汇节点:传送带2区域已清空 |
建议此时保存仿真模型
步骤4更新变量链接与连接
在此步骤中,您将更新所有仿真变量共享资产,使其连接到OPC DA连接变量。同时需确保所有变量正确链接至3D模型中的对应对象,且参数设置无误。具体操作如下:
- 在控制(输出)图形中,单击变量:Motor2选中该变量。确认选中时,会显示一条蓝色连线将其与OPC DA连接变量相连。
- 在属性面板的关联对象框旁,单击采样器按钮
进入采样模式。 - 在3D模型中,单击Motor2(连接到红色传送带的电机)以进行采样。
- 在传送带1:检查区域是否畅通形状中,点击变量:光电传感器1A以选中它。确保选中时,显示一条蓝色线条将其连接到OPC DA 连接变量。
- 在属性中,检查关联对象框是否显示为
PhotoEye1A。 - 在写入事件组中,位于在未覆盖时事件旁边,点击删除按钮
以删除此事件。 - 在传送带2:检查区域是否畅通形状中,点击变量:光电传感器2A以选中它。确保当它被选中时,会显示一条蓝色连线将其连接到OPC DA 连接变量。
- 在属性面板中,位于关联对象框旁边,点击采样器按钮
进入采样模式。 - 在3D模型中,点击光电传感器2A(红色传送带上的第一个光电传感器)以对其进行采样。
- 在写入事件组中,位于On Uncover事件旁边,点击删除按钮
以删除此事件。 - 在传送带1:指示区域已清空形状中,点击变量:PhotoEye 1B以选中它。在 属性中,点击变量或值框旁边的箭头以打开菜单。指向内部模拟变量,然后选择OPC DA传感器标签。
- 在连接框旁边,点击采样器按钮
以进入采样模式。 - 在服务器连接形状中,点击OPC DA连接变量以对其进行采样。
- 在关联对象框旁边,点击采样器按钮
以进入采样模式。 - 在3D模型中,点击PhotoEye1B(蓝色传送带上的第二个光电传感器)进行采样。
- 在写入事件组中,点击添加按钮
以打开菜单。选择On Uncover。 - 在写入值框中,删除当前文本并输入
0。 - 选中PhotoEye 1B后,按Ctrl+C复制此变量。点击传送带2:指示区域何时清空形状内的空白处,然后按Ctrl+V将变量粘贴到此形状中。
- 将复制的变量重命名为变量:PhotoEye 2B。
- 点击变量:PhotoEye 2B以选中它。在
属性面板中,位于关联对象框旁边,点击采样器按钮
进入采样模式。 - 在3D模型中,点击PhotoEye2B(红色传送带上的第二个光电传感器)进行采样。





建议此时保存您的仿真模型。
步骤 5创建区域限制逻辑
在这一步中,您将编辑属性,为传送带1添加区域限制逻辑。以下是“检查区域是否空闲”形状中每个活动功能概述:
| 活动 | 说明 |
|---|---|
| 来源:在光电传感器1A处的物品 | 这是一个事件监听活动,将监听与第一条传送带上PhotoEye1A关联的变量中的事件。您在此步骤中不会更改此逻辑,所以只需记住您将监听关于变更事件, 意味着它会监听PhotoEye1A被物料遮挡的任何时刻。 当光电传感器被遮挡时,它会向服务器写入值1。该源头 会监听光电传感器变量的任何变化。当值1被写入 服务器时,源头将向下游活动释放一个令牌。您 无需对此活动进行任何更改,因为您已经设置好了它的 逻辑。 |
| 获取变量:光电传感器 2A 状态 | 获取变量活动可以从连接到服务器的其他变量读取信息。 在本例中,您将获取PhotoEye2A变量的值,并将 该值存储在一个名为PhotoEyeState的令牌标签中。如果值为1, 则意味着PhotoEye2A被遮挡。如果值为0,则意味着PhotoEye2A 是畅通的。 |
| 决策:光电传感器2A是否畅通? | 此活动将使用PhotoEyeState标签来决定应将当前令牌发送到哪个 连接器。如果PhotoEyeState标签的值为1,则意味着该值为真并且 PhotoEye2A 被遮挡。换言之,受限区域未清空。决策器 会将令牌发送至一系列停止电机的活动,从而使 流动项目等待直至区域清空。若标签值为0, 流动项目可继续前进,令牌将被发送至连接至 连接器2的汇点活动。 |
| 设置变量:电机为0 | 此活动将电机变量设为0,这将停止3D模型中的传送带 电机。您无需对此活动进行任何更改,因为 您已设置其逻辑。 |
| 等待事件:PhotoEye2A 清空 | 此活动将持有令牌,直至PhotoEye2A变为0,即表示其 已清空。一旦PhotoEye2A变为0,它将释放令牌至下一个 下游活动。 |
| 设置变量:电机为1 | 此活动随后将电机变量设回1,这将恢复 传送带的运行。您无需对此活动进行任何更改, 因为您已设置其逻辑。 |
以下是每个活动在指示区域何时清空形状中的功能概述:
| 活动 | 说明 |
|---|---|
| 源:PhotoEye 1B 已清空 | 该活动会监听PhotoEye 1B的任何状态变化,无论是从畅通变为遮挡,还是从遮挡变为畅通。当变化发生时,它将释放一个令牌。 |
| 设置变量:PhotoEye1A为畅通 | 该活动在接收到令牌时,会将PhotoEye 1A设置为畅通状态。 |
| 汇点:传送带1区域已畅通 | 该活动将从流程流中移除令牌,并且流程项会继续沿传送带移动。您将使用此活动的默认设置。 |
您还需要将此逻辑复制到第二条传送带的活动上。
要进行这些更改:
- 在传送带1:检查区域是否畅通形状中,点击获取变量:PhotoEye 2A状态活动以选中它。在属性中,位于变量引用框旁边,点击采样器按钮
进入采样模式。 - 在传送带2:检查区域是否畅通形状,点击变量:PhotoEye 2A变量以进行采样。
- 在分配至选项下方的框中,删除当前文本并输入
token。PhotoEyeState。 - 对获取变量:PhotoEye 1A 状态活动(在传送带2:检查区域是否清空形状中)重复之前的步骤,将其变量引用更改为变量:PhotoEye1A。确保您也将分配至标签名称更改为
token。PhotoEyeState。 - 点击判定:PhotoEye2A 是否已清空?活动以选中它。在属性面板中,点击发送令牌至框旁边的箭头以打开菜单。选择条件判定以打开其选项列表。
- 在条件框中,删除当前文本并输入
令牌。PhotoEyeState。 - 对判定:PhotoEye1A 是否已清空?活动重复上述步骤(该活动位于输送线2:检查区域是否清空形状内)。
- 点击等待事件:PhotoEye2A 清空活动以选中它。在属性面板中,位于对象点击取样器按钮
进入取样模式。 - 在传送带2:检查区域是否空闲形状中,点击变量:光电眼2A变量以打开菜单。选择变量:光电眼2A:变更时。
- 在属性中,于标签分配/匹配值表格中,点击位于新值行下方,在标签名称或值列下的单元格。输入0。
- 点击位于新值行下方,在操作点击匹配值。
- 对等待事件:光电眼1A 清空活动(位于传送带2:检查区域是否 清空形状中)重复上述步骤,但将其对象更改为变量:光电眼 1A。
- 在传送带1:指示区域清空时形状中,
点击来源:光电眼 1B 已清空活动以选中
它。点击该活动旁边的感叹号按钮
以进入
采样模式。 - 点击变量:光电眼 1B以打开菜单。选择变量:光电传感器 1B:状态变化时.
- 对以下内容重复上述步骤:源:光电传感器 2B 状态为 空闲活动(位于输送机 2:检查区域是否空闲图形中),但采样变量:光电传感器 2B替代。
- 在输送机 1:指示区域空闲时图形中,
点击设置变量:将光电传感器 1A 设为空闲活动以
选中它。点击该活动旁边的感叹号按钮
进入采样模式。 - 点击变量:光电传感器 1A(位于输送机 1:检查区域是否空闲图形中)以进行采样。
- 对以下内容重复上述步骤:设置变量:PhotoEye 2A 为 清除状态(在传送带2:检查区域是否已清空的形状中),但示例变量:PhotoEye2A代替。





重置并运行模型:

注意,当流动实体到达传送带2上的第一个光电传感器(红色的那个)时,它会触发停止电机的逻辑,然后在传送带1上的第二个光电传感器(蓝色的那个)清空时,重新启动电机。你可以尝试调整不同的源到达时间,看看这如何影响队列等待时间。
结论
至此,你已经学会了如何在Flexsim中模拟基本的PLC逻辑。如果你正在构建一个实际的制造系统,你可以通过这种方式为多个不同的PLC编程任意数量的变量,然后将其交给PLC程序员,让他们编写最终将在系统中使用的实际PLC逻辑。
一旦PLC程序编写完成,您便可以利用FlexSim在制造系统实际部署前,验证其编程是否正确。为验证该逻辑,您需要通过OPC DA连接属性,将FlexSim连接至真实的OPC DA服务器。同时,需将所有仿真变量对应分配至服务器上的相应标签ID。随后,在FlexSim中将OPC DA连接共享资产设为"激活"状态,使其能够对实际服务器进行数据读写操作。
此时可运行仿真模型,测试PLC在仿真环境中的运行是否符合实际系统要求。理论上,您已在FlexSim中构建了未来业务系统的仿真模型。因此,PLC将直接控制仿真模型中的各个元素。通过观察实际PLC的编程逻辑,并与PLC直接连接3D模型前的仿真运行效果进行比对,即可完成验证。关于PLC逻辑验证的详细说明请参阅相关技术文档。
Cookie preferences
May we collect and use your data?
Learn more about the Third Party Services we use and our Privacy Statement.THIRD PARTY SERVICES
Strictly necessary – required for our site to work and to provide services to you
Improve your experience – allows us to show you what is relevant to you
Customize your advertising – permits us to offer targeted advertising to you
Are you sure you want a less customized experience?
Your experience. Your choice.
May we collect and use your data to tailor your experience?
Explore the benefits of a customized experience by managing your privacy settings for this site or visit our Privacy Statement to learn more about your options.


微信扫一扫,打赏作者吧~