¿Qué es un simulador?

Los simuladores, en este caso, son programas escritos en el lenguaje de programación LOGO preparados para ser utilizados por el compilador en español de MSWLogo versión 6.5a proporcionado por el ISFTIC. La misión de un simulador es emular el comportamiento de un determinado aparato (semáforo, barrera de tráfico, etc,…) cuando éste está conectado a una controladora determinada (CNICE, ENCONOR) y es manejado con las primitivas desarrolladas para manipular los aparatos o robots a través de dichas controladoras (M1 “I, CONECTA 1, etc). Con el simulador no es necesario tener construido el aparato ni tener la controladora, simplemente escribiendo en el compilador de MSWLogo las órdenes o primitivas que por ejemplo, activan/desactivan las salidas digitales o que leen las entradas digitales, será suficiente para ver qué comportamiento tendría el aparato si realmente estuviese conectado a una controladora. Otra posibilidad es escribir un programa en LOGO que contenga dichas primitivas y cargarlo en el compilador después de haber cargado el simulador, para ser ejecutado y así ver si el programa está bien escrito al ver el comportamiento del simulador según se vayan ejecutando las sentencias del programa.

Simuladores de aparatos para controladoras

Cuando se abre el compilador en español de MSWLogo versión 6.5a proporcionado por el ISFTIC aparece la siguiente ventana:


En ella se puede elegir entre tres opciones distintas:

  1. Usar una controladora: permite trabajar en un entorno de trabajo para una controladora determinada.
  2. Simuladores: permite trabajar en un entorno de trabajo para simuladores.
  3. Programar: permite utilizar el compilador de MSWLogo sin haber cargado ningún entorno de trabajo especial.

Centrémonos en la segunda opción, que es la que nos interesa en estos momentos.

Trabajar con simuladores

Una vez que se ha seleccionado la opción de trabajar con un simulador se presentan dos opciones:

  1. Usar un simulador: si se selecciona esta opción se podrá o trabajar con uno de los simuladores que se proporcionan con el compilador de MSWLogo como ejemplo o trabajar con los que ha cargado el usuario.
  1. Dar de alta un simulador: esta opción permite dar de alta o cargar un simulador “creado” por el usuario.
    En primer lugar se solicita al usuario el nombre que debe tener el simulador (Ej.: SEMAFOR_CNICE, BARRERA_ENCONOR). Es importante saber que el nombre que se le de al simulador debe coincidir con el nombre del archivo principal del simulador. Por ejemplo, si se quiere dar de alta un simulador para un puente levadizo que funcione con la controladora CNICE, si el fichero de LOGO se llama PUENTE_CNICE.LGO se deberá llamar al simulador PUENTE_CNICE.
    El nombre del simulador se guarda en un fichero de nombre SIMULADORES.txt, el cual almacena todos los nombres de los simuladores disponibles.

El siguiente paso es introducir la ruta en la que se encuentran los archivos del simulador.

Una vez seguidos los pasos anteriores se procede a copiar mediante el nuevo comando de MSWLogo COPIADIRECTORIO los archivos del simulador en la ruta donde se haya instalado el compilador de MSWLogo, en una carpeta que tendrá el mismo nombre que se le haya dado al simulador (de ahí la importancia de que el nombre que se le da al simulador coincida con el nombre del archivo principal del simulador). Por ejemplo, si se ha instalado el compilador de MSWLogo en:

C:\Archivos de programa\MSWLogo

el simulador del puente levadizo se copiará en:

C:\Archivos de programa\MSWLogo\bc5\ENTORNO\SIMULADORES\PUENTE_CNICE

A partir de este momento se trabajará con los ficheros copiados, es decir, no se trabajará con los ficheros originales del usuario sino sobre la copia.

La próxima vez que el usuario ejecute el compilador de MSWLogo el nuevo simulador dado de alta estará disponible en la opción Usar un simulador .

A partir de este momento, tanto si se ha elegido la opción 1 como la 2, se procede a la carga del simulador correspondiente. No obstante, antes de cargar el archivo de LOGO del simulador, el compilador avisa de que se puede perder la información que tenga el usuario en memoria (programas definidos por el usuario, definición de variables, etc.).

Simuladores proprocionados con el compilador de MSWLogo

Con el compilador de MSWLogo se proporcionan una serie de simuladores para que el usuario pueda hacer uso de ellos. Estos simuladores están preparados para emular el comportamiento con las controladoras CNICE y ENCONOR.

Barreras

Este simulador emula el comportamiento de una barrera de tráfico, haciéndola subir o bajar mediante las primitivas de control según se vayan “activando/desactivando” las salidas digitales a las que ésta esté conectada. La diferencia entre el SEMAFORO_CNICE y el SEMAFORO_ENCONOR está en las salidas digitales a las que hay que conectar el motor que permitirá mover la barrera y en el funcionamiento interno de las primitivas.

Es importante tener en cuenta que no todas las primitivas de control van a tener el comportamiento que tendrían en el entorno real. Por ejemplo, las primitivas para las entradas analógicas SAW, SAX, SAY, SAZ, SA? y SD?, SD y leeanalogica no tendrán ningún efecto puesto que el simulador no puede saber su valor. En el caso de las primitivas para la lectura de las entradas digitales SD?, SD y entrada no se puede saber el valor real de las entradas digitales a las que no esté conectada la barrera, por ello se devuelve el valor “?” o “VALOR NO DISPONIBLE PARA EL SIMULADOR” respectivamente cuando se consulta el valor de una entrada digital que no se corresponde con el tope superior o inferior de la barrera.

Barrera_CNICE

Este simulador sirve para emular el comportamiento de una barrera conectada a la controladora CNICE.

En primer lugar se pide al usuario que seleccione las entradas digitales de los topes de la barrera y la detección de automóviles (en realidad esta última entrada no se va a controlar en el simulador, puesto que no se ha contemplado la posibilidad de simular la llegada de vehículos) y las salidas digitales a las que se debe "conectar" el motor de la barrera. Por defecto se seleccionan las entradas E1, E2 y E3 para el tope superior, tope inferior y detector de coches respectivamente y el motor 1 (salidas S0-S1 de la controladora).

No se puede elegir, como es lógico, la misma entrada digital para realizar varias funciones, es decir, si se elige, por ejemplo, E1 como tope superior de la barrera no se podrá seleccionar también para detectar el tope inferior. En caso contrario, se mostrará un mensaje de error.

Como solo es necesario un motor para mover la barrera, se permite elegir al usuario las salidas digitales a las que éste estará conectado, siendo las posibilidades disponibles las siguientes:

  1. M1 --> Salidas digitales S0 y S1
  2. M2 --> Salidas digitales S2 y S3
  3. M3 --> Salidas digitales S4 y S5
  4. M4 --> Salidas digitales S6 y S7

Una vez seleccionadas las entradas y salidas digitales se carga el fichero BARRERA_CNICE.LGO donde se encuentra el código escrito en lenguaje LOGO necesario para implementar el simulador de la barrera para la controladora CNICE, el cual se encuentra donde se haya instalado el compilador de MSWLogo, en la subruta:

/ENTORNO/SIMULADORES/BARRERA_CNICE/BARRERA_CNICE.LGO

A partir de ese momento se podrá comenzar a probar el simulador, bien directamente a través de la línea de comandos, bien cargando un programa escrito por el usuario para comprobar su funcionamiento.

Barrera_ENCONOR

Este simulador sirve para emular el comportamiento de una barrera conectada a la controladora ENCONOR.

En primer lugar se pide al usuario que seleccione las entradas digitales de los topes de la barrera y la detección de automóviles (en realidad esta entrada no se va a controlar en el simulador, puesto que no se ha contemplado la posibilidad de simular la llegada de vehículos) y las salidas digitales a las que se debe "conectar" el motor de la barrera. Por defecto se seleccionan las entradas E1, E2 y E3 para el tope superior, tope inferior y detector de coches respectivamente y el motor 1 (salidas S1-S5).

No se puede elegir, como es lógico, la misma entrada digital para realizar varias funciones, es decir, si se elige, por ejemplo, E1 como tope superior de la barrera no se podrá seleccionar también para detectar el tope inferior. En caso contrario, se mostrará un mensaje de error.

Como solo es necesario un motor para mover la barrera, se permite elegir al usuario las salidas digitales a las que éste estará conectado, siendo las posibilidades disponibles las siguientes:

  1. M1 --> Salidas digitales S1 y S5
  2. M2 --> Salidas digitales S2 y S6
  3. M3 --> Salidas digitales S3 y S7
  4. M4 --> Salidas digitales S4 y S8

Una vez seleccionadas las entradas y salidas digitales se carga el fichero BARRERA_ENCONOR.LGO donde se encuentra el código escrito en lenguaje LOGO necesario para implementar el simulador de la barrera para la controladora ENCONOR, el cual se encuentra donde se haya instalado el compilador de MSWLogo, en la subruta:

/ENTORNO/SIMULADORES/BARRERA_ENCONOR/BARRERA_ENCONOR.LGO

A partir de ese momento se podrá comenzar a probar el simulador, bien directamente a través de la línea de comandos, bien cargando un programa escrito por el usuario para comprobar su funcionamiento.

Semáforos

Este simulador emula el comportamiento de un semáforo de tráfico, encendiendo y apagando sus luces según se vayan “activando/desactivando” las salidas digitales a las que estén conectadas dichas luces mediante las primitivas de control. La diferencia entre el SEMAFORO_CNICE y el SEMAFORO_ENCONOR, al igual que ocurría con los simuladores de las barreras de tráfico, está en las salidas digitales a las que hay que conectar las luces del semáforo (puesto que las salidas digitales en la controladora ENCONOR son del tipo conmutador de cruce y las de CNICE no) y en el funcionamiento interno de las primitivas.

Es importante tener en cuenta que no todas las primitivas de control van a tener el comportamiento que tendrían en el entorno real. Por ejemplo, las primitivas para las entradas analógicas SAW, SAX, SAY, SAZ, SA? y leeanalogica o las primitivas para leer las entradas digitales SD?, SD, VE? y entrada no tendrán ningún efecto puesto que el simulador no puede saber su valor.

Semáforo_CNICE

Este simulador sirve para emular el comportamiento de un semáforo conectado a la controladora CNICE.

En primer lugar se pide al usuario que seleccione las salidas digitales en las que estarán conectados las luces del semáforo. Por defecto se seleccionan las salidas S1, S2 y S3 para la luz roja, ámbar y verde respectivamente.

No se puede elegir, como es lógico, la misma salida digital para realizar varias funciones, es decir, si se elige, por ejemplo, S1 para la luz roja no se podrá seleccionar también como luz verde. En caso contrario, se mostrará un mensaje de error.

Una vez seleccionadas las salidas digitales se carga el fichero SEMAFORO_CNICE.LGO donde se encuentra el código escrito en lenguaje LOGO necesario para implementar el simulador del semáforo para la controladora CNICE, el cual se encuentra donde se haya instalado el compilador de MSWLogo, en la subruta:

/ENTORNO/SIMULADORES/SEMAFORO_CNICE/SEMAFORO_CNICE.LGO

A partir de ese momento se podrá comenzar a probar el simulador, bien directamente a través de la línea de comandos, bien cargando un programa escrito por el usuario para comprobar su funcionamiento.

Semáforo_ENCONOR

Este simulador sirve para emular el comportamiento de un semáforo conectado a la controladora ENCONOR.

En primer lugar se pide al usuario que seleccione las salidas digitales en las que estarán conectados las luces del semáforo. Por defecto se seleccionan las salidas S1, S2 y S3 para la luz roja, ámbar y verde respectivamente. Hay que tener en cuenta que las salidas de tipo conmutador de cruce S5, S6, S7y S8 no se pueden utilizar por razones obvias.


No se puede elegir, como es lógico, la misma salida digital para realizar varias funciones, es decir, si se elige, por ejemplo, S1 para la luz roja no se podrá seleccionar también como luz verde. En caso contrario, se mostrará un mensaje de error.

Una vez seleccionadas las salidas digitales se carga el fichero SEMAFORO_ENCONOR.LGO donde se encuentra el código escrito en lenguaje LOGO necesario para implementar el simulador del semáforo para la controladora ENCONOR, el cual se encuentra donde se haya instalado el compilador de MSWLogo, en la subruta:

/ENTORNO/SIMULADORES/SEMAFORO_ENCONOR/SEMAFORO_ENCONOR.LGO

A partir de ese momento se podrá comenzar a probar el simulador, bien directamente a través de la línea de comandos, bien cargando un programa escrito por el usuario para comprobar su funcionamiento.

Otros simuladores

Además de los simuladores explicados anteriormente, el compilador incluye los simuladores para la controladora ENCONOR realizados por Pedro Ruiz Fernández.

Hay que tener en cuenta que estos simuladores están preparados para ser utilizados exclusivamente con las primitivas nativas proporcionadas por ENCONOR.

Estos simuladores son:

 

Abrir archivo pdf: simuladores.pdf