如何在GRAFCET中强制执行一个命令?

问题描述 投票:0回答:1

我想在我的 "GRAFCET "中强制执行一条命令。grafcet 使用 Fluid SIM.

  1. 如果第80号国家目前只处于活动状态。80目前只处于活动状态 G90 局部的抓取应该运行
  2. 如果国家号 81号国家目前只处于活动状态 G90 局部的抓取应该运行

我在关注 本教程. 问题是,我不能阻止我的。partial grafcets. 我不知道为什么,但是 问题在 我的情况是,它们都是并行执行的,即使是 G82 挡住Grafcet应该在 INIT 由州号。80.

G

parallel-processing plc
1个回答
-1
投票

声明 : "问题是...他们 并行...虽然G82的grafcet应该被阻止在... INIT 由州号。80."

这一说法主要是错误的。

他们可以,根据 T1-条件被满足,恰好开始执行。G90{state:INIT} , 某个非零时间 之后 G82{state:90} 创办,所以只是共同出现在环境中同时做一些事情。绝对不是 真-[PARALLEL]-执行,并期望左上角的FSA没有明确的阻塞(除非一些确实讨厌的技巧被隐藏在FSA-状态转换变量中,有效地导致相互(死)阻塞,否则只是时间约束(如果存在的话)有限状态自动机有条件变量控制的 纯粹SEQUENCE 的设计状态转换。

Grafcet "前端 "为PLC编程(掩盖了PLC的主要特性)。SEQUENTIAL在最大限度的弱协调性下,有限状态自动机(Finite-State-Automata)有一些原则,这些原则必须反映在易于勾画(然而,复杂的)-FSA设计规则中。其中之一是 "如何封杀,类似MUTEX" :

如果一个步骤后有几个转换,则使用替代分支。顾名思义,替代序列可以用它来实现。然而,只有一个过程被执行。出于这个原因,分支到各个序列的转折条件必须是 相互排斥. 备用分支的各个序列也称为部分序列。... ...程序员必须定义 以下每个过渡条件 以便只能满足一个条件。 因此,过渡条件必须是相互排斥的。 如果不是这种情况,那么行为就没有定义即无法预测哪一个部分序列将被执行。在Grafcet-Studio中,首先启动过渡的部分序列将被执行。 enter image description here


如何使自主的FSA-s至少运行一个序列?有点儿[PARALLEL]?

样注意到这两个 "阻塞 "BARRIERS,并严格把,期望没有明确的时间-协调状态转换条件-变量'造成相互死锁检查碰撞避免内只是共同的。"平行" FSA控制 [SEQUENCE]-s :

A 并行道 用于在一个过渡后同时启动几个局部序列时。在这里,部分序列中的第一个步骤是由一个过渡同时启动的。因此,这些局部序列是同步启动的,这就是为什么平行分支的符号也被称为同步符号的原因。然后,各部分序列仍然相互独立,即它们是并行运行的。最后,局部序列流回一个同步符号和一个后续过渡。只有当所有的部分序列全部处理完毕后,这个过渡才会被释放。因此,部分序列在最后也是同步的。 enter image description here


RESUMÉ 。

enter image description here左上角的FSA引入了一个强制性的、自重复的流转的 SEQUENCE 的步骤。第一 强行 SEQ_G82-(jump_into_state:82),接下来只有在这之后,并在满足FSA-状态转换的基础上 "变量" T1 条件,迫使 SEQ_G80-(jump_into_state:INIT)接下来 循环到"第一"

© www.soinside.com 2019 - 2024. All rights reserved.