Tarjeta CNICE - 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 nuevo.
En el modulo añadido, se tendrán que poner las siguientes declaraciones de llamadas a las funciones de la biblioteca “IO.DLL”. También se incluirá la función que permite activar las salidas digitales de la controladora.
Public Declare Sub PortOut Lib "IO.DLL"
(ByVal nPort As Integer, ByVal nData As Integer)
Public Declare Function PortIn Lib "IO.DLL"
(ByVal Port As Integer) As Integer
También se incluirá la función que permite activar las salidas digitales de la controladora. Esta función o procedimiento se denominará “Activar”.
Public Sub Activar (led)
PortOut &H37A, &H7
PortOut &H378, Dato
End Sub
Se declararán 3 variables globales (rojo, amarillo y verde), las cualescontienen en valor decimal, el valor que hay que poner en las salidas digitales. Estas variables se inicializan con unos valores para las salidas digitales, a las cuales se las sumará el valor de la salida digital que activará el funcionamiento automático del semáforo.
También en el módulo se creará una función o procedimiento para leer las entradas digitales de la controladora, a este función se la denominará “LeeDigital”. Este procedimiento comprueba si hay algún dato en las entradas digitales, si lo encuentra, lo transforma a base decimal.
Public Sub LeeDigital (ENTERO: BitsBajos, BitsAltos, TotalBits)
PortOut &H37A, 3
b = PortIn(&H379)
PortOut &H37A, 1
a = PortIn(&H379)
b = (b And &H78) / 8
b = Not b
b = b And 15
a = (a And &H78) / 8
a = Not a
a = a And 15
d = (a * 16) Or b
End Sub
En el formulario se crearán 2 botones, uno para cada modo de funcionamiento del semáforo, cada botón cargará distintas imágenes en el formulario.
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. Por ejemplo, si el dato leído en las entradas digitales es la que activa el color verde (1) del semáforo, entonces se cargará una imagen del semáforo en verde.
El procedimiento de control quedaría dela siguiente forma, para lo cual se pone un Timer para que vaya leyendo el valor de las entradas digitales continuamente.
Private Sub Timer1_Timer ( )
Call LeeDigital (BitsBajos, BitsAltos, TotalBits)
Select Case BitsBajos
Case 3,4
Picture1.Picture = LoadPicture (App.Path & “\verde.jpg”)
Case 5,2
Picture1.Picture = LoadPicture (App.Path & “\amarillo.jpg”)
Case 6,1
Picture1.Picture = LoadPicture (App.Path & “\rojo.jpg”)
Case 0,7
Picture1.Picture = LoadPicture (App.Path & “\semaforo.gif”)
End Select
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. |