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
Para activar las salidas digitales, en el módulo se incluirá un procedimiento con el nombre “Motor”, en la cual se incluirá una variable a la que llamaremos “led”, la cual indicará el valor de la salida digital en formato binario. Y para desactivar las salidas digitales, en el módulo se incluirá un procedimiento con el nombre “Parar”.
Public Sub Motor (led)
PortOut &H37A, 7
PortOut &H378, led
End Sub
Public Sub Parar ()
PortOut &H37A, 7
PortOut &H378, 0
End Sub
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 botones, en los cuales se crearán procedimientos que llamen a la función “Motor”. Por ejemplo:
Private Sub Command1_Click()
motor1 = 1
Call Motor(motor1 + motor2 + motor3)
End Sub
En el formulario también se creará un procedimiento para que lea el valor de las entradas digitales, para lo cual se incluirá una función “Timer”, que lee continuamente el valor de las entradas digitales. Según el valor de la entrada digital, los motores se activarán en un sentido o en otro. A continuación mostramos parte del código del procedimiento, para ver todo el contenido hay que descargarse el código desde el enlace que damos más adelante
Private Sub Timer1_Timer()
Call leedigital(b, a, d)
Dim E As Byte
E = d
Select Case E
Case 1
motor1 = 1
Call Motor(motor1 + motor2 + motor3)
Case 2
motor1 = 2
Call Motor(motor1 + motor2 + motor3)
.
.
.
.
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. |