Una máquina de estados finitos virtual ( VFSM ) es una máquina de estados finitos (FSM) definida en un entorno virtual. El concepto VFSM proporciona un método de especificación de software para describir el comportamiento de un sistema de control utilizando nombres asignados de propiedades de control de entrada y acciones de salida .
El método VFSM introduce un modelo de ejecución y facilita la idea de una especificación ejecutable. Esta tecnología se utiliza principalmente en aplicaciones complejas de control de máquinas , instrumentación y telecomunicaciones .
La implementación de una máquina de estados requiere la generación de condiciones lógicas (condiciones de transición de estado y condiciones de acción). En el entorno de hardware, donde las máquinas de estados encontraron su uso original, esto es trivial: todas las señales son booleanas . En cambio, las máquinas de estados especificadas e implementadas en software requieren condiciones lógicas que sean multivaloradas per se :
Además, las señales de entrada pueden ser desconocidas debido a errores o fallos de funcionamiento, lo que significa que incluso las señales de entrada digitales (consideradas como valores booleanos clásicos) son en realidad 3 valores: Bajo, Alto, Desconocido.
Un álgebra lógica positiva resuelve este problema a través de la virtualización , creando un entorno virtual que permite la especificación de máquinas de estados para software que utiliza variables multivalor.
Una variable de estado en el entorno VFSM puede tener uno o más valores que son relevantes para el control ; en tal caso, es una variable de entrada. Esos valores son las propiedades de control de esta variable. Las propiedades de control no son necesariamente valores de datos específicos, sino más bien ciertos estados de la variable. Por ejemplo, una variable digital podría proporcionar tres propiedades de control: VERDADERO, FALSO y DESCONOCIDO según sus posibles valores booleanos. Una variable de entrada numérica (analógica) tiene propiedades de control como: BAJO, ALTO, OK, MALO, DESCONOCIDO según su rango de valores deseados. Un temporizador puede tener su estado OVER (se agotó el tiempo de espera) como su valor de control más significativo; otros valores podrían ser DETENIDO o EN EJECUCIÓN.
Otras variables de estado en el entorno VFSM pueden activarse mediante acciones; en este caso, se trata de una variable de salida. Por ejemplo, una salida digital tiene dos acciones: Verdadero y Falso. Una variable de salida numérica (analógica) tiene una acción: Establecer. Un temporizador que es a la vez una variable de entrada y de salida puede activarse mediante acciones como: Iniciar, Detener o Reiniciar.
El entorno virtual caracteriza el entorno de ejecución en el que opera una máquina virtual . Se define mediante tres conjuntos de nombres:
Los nombres de entrada crean condiciones virtuales para realizar transiciones de estado o acciones de entrada. Las condiciones virtuales se crean utilizando el álgebra lógica positiva . Los nombres de salida activan acciones: acciones de entrada, acciones de salida , acciones de entrada o acciones de transición.
Las reglas para construir una condición virtual son las siguientes:
El estado de una entrada se describe mediante nombres de entrada que crean un conjunto :
Anames = {A1, A2, A3}
Bnames = {B1, B2}
Cnames = {C1, C2, C3, C4, C5}
etc.
La entrada virtual VI
es un conjunto de elementos mutuamente excluyentes de nombres de entrada. A VI
siempre contiene el elemento always
:
VI = { siempre }VI = { siempre , A1 }VI = { siempre , A1 , B2 , C4 }
&
La operación (AND) es un conjunto de nombres de entrada:
A1 y B3 y C2 =>{A1, B3, C2}
|
La operación (OR) es una tabla de conjuntos de nombres de entrada:
A1 | B3 | C2 =>
~
(Complemento) es un complemento de un conjunto de nombres de entrada:
~ A2 ={A1, A3}
Una expresión lógica es una tabla OR de conjuntos AND (una forma normal disyuntiva ):
A1 y B3 | A1 y B2 y C4 | C2 =>
Las expresiones lógicas se utilizan para expresar cualquier función lógica.
El valor lógico (verdadero, falso) de una expresión lógica se calcula probando si alguno de los conjuntos AND en la tabla OR es un subconjunto de VI
.
El estado de una salida se describe mediante nombres de salida que crean un conjunto:
Xnames = {X1, X2}
Ynames = {Y1, Y2, Y3}
La salida virtual VO
es un conjunto de elementos mutuamente excluyentes de nombres de salida.
El nombre virtual y la salida virtual completados por los nombres de estado crean el entorno virtual VE
donde se especifica el comportamiento.
Un subconjunto de todos los nombres de entrada definidos, que solo pueden existir en una situación determinada, se denomina entrada virtual o VI
. Por ejemplo, la temperatura puede ser "demasiado baja", "buena" o "demasiado alta". Aunque hay tres nombres de entrada definidos, solo uno de ellos puede existir en una situación real. Este crea el VI
.
Un subconjunto de todos los nombres de salida definidos, que solo pueden existir en una determinada situación, se denomina salida virtual o VO
. Esta se crea mediante las acciones actuales de VFSM.
La especificación del comportamiento se construye mediante una tabla de estados que describe todos los detalles de todos los estados del VFSM.
El ejecutor VFSM se activa por VI
y el estado actual del VFSM. Teniendo en cuenta la especificación de comportamiento del estado actual, VO
se establece.
La figura 2 muestra una posible implementación de un ejecutor VFSM. En función de esta implementación, se deben considerar las características típicas del comportamiento.
Una tabla de estados define todos los detalles del comportamiento de un estado de un VFSM. Consta de tres columnas: la primera columna nombra el estado, la segunda enumera las condiciones virtuales creadas a partir de nombres de entrada utilizando el álgebra lógica positiva y la tercera columna contiene los nombres de salida:
Lea la tabla de la siguiente manera: las dos primeras líneas definen las acciones de entrada y salida del estado actual. Las líneas siguientes, que no proporcionan el siguiente estado, representan las acciones de entrada. Finalmente, las líneas que proporcionan el siguiente estado representan las condiciones de transición de estado y las acciones de transición. Todos los campos son opcionales. Un VFSM combinatorio puro es posible solo en los casos en que se utilizan acciones de entrada, pero no se definen transiciones de estado. La acción de transición se puede reemplazar por el uso adecuado de otras acciones.