GRUA

 

PROGRAMACIÓN TARJETA ENCONOR


Tarjeta ENCONOR - Programación en MSWlogo

La programación de este caso se estructura en los siguientes pasos.

Se crea un procedimiento para crear la ventana gráfica principal del programa. Para crear la ventana utilizamos la función creaventana, dentro de la ventana se crean los botones con la función creaboton. Dentro de cada botón se establecerán entre los corchetes las funciones que se han de ejecutar una vez presionado el botón. Uno de los botones creados será el que se utiliza para salir de la aplicación, para lo cual se utiliza la orden adios.

Ej:

creaventana "Principal "grua [Grua] 40 42 190 200 []
creaboton "grua "Girar_izquierda "Girar_izquierda 20 20 75 20 [proc_girarizquierda control]
creaboton "grua "Salir "Salir 65 150 75 20 [proc_salir adios]

En este procedimiento se crea y se inicializa a 0 una variable que llamaremos bucle, y que nos servirá para poder leer las entradas digitales de manera continuada.

Dentro de este procedimiento se leerá una vez las entradas digitales por si hay algún sensor de contacto que este presionado.

Se crean procedimientos para activar las salidas digitales que activan los 3 motores en uno u otro sentido, para desactivar los motores y salir de la aplicación creada. En estos procedimientos se va a utilizar la función M seguida delnúmero que indique el par de salidas digitales a activar, y tras esto se pondrán unas comillas con la letra D o I que indicará que el motor gire a la derecha (activa la salida 1 y desactiva la salida 0) o que el motor gire a izquierda (activa la salida 0 y desactiva la salida 1), con la letra P se le indica al motor que se detenga (desactiva las 2 salidas digitales).

Ej:

para proc_girarizquierda
M1 "I
fin

Para poder leer las entradas digitales se necesita crear un bucle, para que este continuamente leyendo el valor de las entradas digitales. Para crear un bucle utilizamos la orden mientras y asignamos a una variable un valor, el cual se cambiará al dar al botón salir, para poder salir del bucle y poder salir así de la ejecución del programa.

Para leer las entradas digitales se utiliza la función ve? la cual nos devuelve el valor que hay en ese momento en las entradas, este valor lo guardaremos en una variable a la que llamamos entrada. Luego, según el valor que tengan las entradas, activará unos motor u otro en un sentido o en el otro, para lo cual se utilizarán condicionales.

Se leerán las entradas para saber si se ha pulsado algún botón físico del ascensor o cuando pasa la cabina del ascensor por los imanes.

para control
mientras [:bucle=0] [
haz "entradas ve?
;Ahora se comprueba si se ha pulsado algún sensor#######
si (:entradas=1) [M1 "I]
si (:entradas=2) [M1 "D]
si (:entradas=4) [M2 "D]
si (:entradas=8) [M2 "I]
si (:entradas=16) [M3 "I]
.
.
.

]

Se llama al procedimiento que crea la ventana gráfica fuera de cualquier procedimiento, para que se cargue la aplicación gráfica nada más cargar el fichero de logo.

Puede descargarse desde este enlace que viene a continuación el archivo programado en mswlogo.

 

Tarjeta ENCONOR - Programación en Visual Basic

La programación de este caso se estructura en los siguientes pasos.

Se crea un nuevo proyecto EXE Estándar.

Agregar un Modulo Existente, éste será un modulo para la programación en Visual Basic que nos proporciona Enconor. El modulo se denomina “Enconor”.

Además se agregará un modulo nuevo, en el cuál se creará un procedimiento denominado “Motor” que llamará a la función “enviar” del modulo Enconor. En este módulo se agregaran tres variables denominadas “motor1”, “motor2” y “motor3” que serán las que guardaran los valores de las salidas digitales para utilizarlas sobre los tres motores que se utilizan. El motor1 corresponde al giro horizontal de la grúa, el motor2 corresponde al motor que recoge la cuerda de la grúa, y el motor3 corresponde al desplazamiento horizontal de la barra.

Public Sub Motor(led)
Enviar (led)
End Sub

Hay que agregar un objeto del tipo “Microsoft Comm Control 6.0”, dentro del formulario donde trabajaremos. Si en la barra de herramientas no existe un objeto del tipo MSComm, identificado por un icono de un teléfono, deberá añadirlo a la barra de herramientas del siguiente modo:

1.- Seleccionar el menú “Proyecto”.

2.- Elegir la opción “Componentes”.

3.- Buscar el componente del tipo “Microsoft Comm Control 6.0”.

4.- Aceptar.

Suponiendo que utilizaremos el puerto serie COM 1, se actuará de la siguiente manera: (para cualquier otro puerto, los valores deberán adecuarse con el puerto elegido).

Todas las órdenes referidas a la comunicación con el puerto, tienen el siguiente formato:

Nombre_Formulario.Nombre_Objeto_MSComm.Operación = Valor_Operación

Por ejemplo, nosotros asumiremos lo siguiente, aunque el usuario podrá ponerlo a su gusto:

Nombre_Formulario = FormEnconor

Nombre_Objeto_MSComm = ENCONOR

De esta manera, en el procedimiento Form_Load del formulario FormEnconor, se inicializará el puerto COM1:

Private Sub Form_Load()
‘Se elige el Puerto COM1 mediante la propiedad CommPort
FormEnconor.ENCONOR.CommPort = 1
‘Se establece el modo de comunicación a 9600 baudios, sin paridad, 8 bits de ‘datos y 1 bit de parada mediante la propiedad Settings
FormEnconor.ENCONOR.Settings = "9600,N,8,1"
'Indicar al control que lea todo el búfer al usar ' Input.
FormEnconor.ENCONOR.InputLen = 0
' Abrir el puerto, poniendo a True la propiedad PortOpen
FormEnconor.ENCONOR.PortOpen = True
End Sub

En el formulario creado, en el código de carga del formulario se introducirá el siguiente comando “canal = DetectarPuerto()” para que la aplicación a crear se pueda comunicar con la controladora Enconor.

Dentro del formulario se crearán varios botones para que realicen distintas acciones, como por ejemplo que la grúa gire a la izquierda. Para ello cada botón llamará a la función “Motor” creada en el modulo. A continuación mostramos el código del botón girar izquierda.

Private Sub Command1_Click()
motor1 = 1
Call Motor(motor1)
End Sub

También en el formulario se creará un procedimiento de control, el cual interpreta el dato leído en las entradas digitales para a continuación realizar la acción que corresponda a ese dato, activando las salidas digitales adecuadas. Por ejemplo, si el dato leído en las entradas digitales indica que la grúa ha llegado al tope izquierdo, entonces se activarán las salidas digitales adecuadas para que la grúa gire en el sentido contrario.

El procedimiento de control incluye un Timer para que vaya leyendo el valor de las entradas digitales continuamente. A continuación mostramos parte del procedimiento.

Private Sub Timer1_Timer()
x = Recibir()
Dato = ValorEntradas
Select Case Dato
Case 1
motor1 = 1'La grúa gira a la izquierda
Call Motor(motor1)
.
.
End Sub

Una vez terminado el proyecto, éste se guarda y pulsa F5 o el botón Iniciar para ejecutar la aplicación.

Una vez comprobada que la aplicación funciona, se creará un archivo ejecutable del proyecto creado.

Puede descargarse desde este enlace que viene a continuación los diferentes archivos que forman todo el proyecto.

6. PROYECTOS > Grua