Guía de Programación para Visual Basic™ 6

Anuncio
Innova Service Tecnología
w w w. iste c.cl
Guía de Programación para Visual Basic™ 6
Versión 1.1
Indice
Introducción………………………………………………………………………………………………….1
Instalación y Enlace a Proyecto Visual Basic………………………………………………………….3
Consideraciones Generales
Nombres de funciones y procedimientos…………………………………………………………5
Uso de puerto COMM (RS232) o USB…………………………………………………………...5
Valores de retorno de las funciones y condiciones de error……………………………………6
Tabla Resumen de Funciones y Subrutinas Visual Basic…………………………………………..8
Referencia de Funciones y Subrutinas
A. Rutinas de Inicialización y Término………………………………………………………...10
B. Funciones de entradas y salidas……………………………………………………………13
C. Funciones especiales………………………………………………………………………...21
QUADRALAB
Introducción
Microsoft™ Visual Basic™ es uno de los lenguajes de programación Windows más difundidos
actualmente. Combina facilidad de uso, programación atractiva y recursos adecuados tanto para
principiantes como para programadores expertos.
Figura 1. Ejemplo del entorno Visual Basic 6.0 en Windows XP.
La primera versión se presentó a principios de los ’90, hasta llegar a la actual, que forma parte de
Visual Studio 2005. No obstante, para muchas aplicaciones se sigue utilizando la versión 6.0
(aparecida en 1998) debido a la gran cantidad de licencias adquiridas para esa versión y a la
preferencia de muchos programadores por sobre versiones posteriores más complejas.
QuadraLab utiliza una librería DLL especial para permitir su control y administración vía Visual
Basic:
Guía de Programación en Visual Basic™ 6
Pag.1
QUADRALAB
PC Compatible
Entorno de programación
Visual Basic 6
DLL de control
Puerto COM
o USB
QuadraLab
Figura 2. Estructura conceptual de la comunicación via DLL.
Como se puede ver en el esquema, el DLL administra los detalles de la comunicación, actuando
como una “capa protectora” entre el programador Visual Basic y el hardware del módulo. Mediante
el DLL es posible:
•
Acceder a las entradas y salidas de QuadraLab, tanto digitales como análogas.
•
Programar algoritmos complejos de control, permitiendo a QuadraLab comportarse como
una interface industrial.
•
Acceder a información especial del módulo, como número de serie y nombre del equipo.
Los detalles de la comunicación serial son enmascarados por el DLL, ofreciendo un conjunto de
funciones de alto nivel como ‘leer entrada’ o ‘cambiar salida’. Sólo se requiere que el programador
invoque una función especial de inicialización y proporcione el número de puerto COM (Virtual USB
o puerto COM físico) y lo demás es realizado automáticamente por el DLL.
Nota: El software de control del DLL requiere para su correcto funcionamiento la versión SP6 de Visual Basic
6.0. Este parche puede descargarse desde msdn.microsoft.com
El DLL ha sido especialmente diseñado para Visual Basic, por tanto no requiere que el
programador declare explícitamente sus funciones y subrutinas. Esto aumenta la sencillez de uso y
permite que el programador se concentre exclusivamente en la construcción y depuración del
software de control.
Guía de Programación en Visual Basic™ 6
Pag.2
QUADRALAB
Instalación y Enlace a Proyecto Visual Basic
► Instalación del DLL. El DLL no requiere de un programa especial de instalación. Sólo se
requiere copiarlo a la carpeta System, dentro de la carpeta WINDOWS (en Windows™ XP) o
dentro de la carpeta WINNT (en Windows™ 2000). Asegúrese de que Visual Basic no está
ejecutándose al momento de instalar el DLL.
En www.istec.cl/quadralab se encuentra siempre la versión más actual del DLL, que incluye
depuración de posibles errores y mejoras.
Una vez que el DLL está instalado en la carpeta de sistema, es necesario “enlazarlo” con el
proyecto Visual Basic (VB) para poder acceder a todos sus recursos y funciones. A continuación se
explica el procedimiento necesario; esto debe realizarse para cada nuevo proyecto VB creado.
► Para enlazar la biblioteca DLL a un proyecto Visual Basic:
1) En el menú Proyecto, hacer click en el ítem Referencias…
2) Seleccionar Quadralab_VB6.dll en la lista de referencias (si no está en la lista, debe
localizarse manualmente el DLL con el botón [Examinar] ):
C:\WINDOWS\SYSTEM\
En el ejemplo, el DLL se ha instalado en la carpeta de sistema de Windows XP en la unidad C:
Guía de Programación en Visual Basic™ 6
Pag.3
QUADRALAB
Una vez seleccionada esta referencia, las funciones y subrutinas del DLL estarán disponibles al
proyecto Visual Basic sin necesidad de declaraciones u otros pasos.
► Cómo comprobar la instalación y enlazado correcto del DLL.
Para comprobar si el DLL está enlazado correctamente, puede llamarse a la función
ql_version_dll, que mostrará la versión del DLL de control en una caja de mensajes.
; Ejemplo: Se ha creado un botón de comando llamado command1 en el formulario del proyecto.
Haciendo doble clic sobre el mismo, al momento del diseño, se tipea el siguiente código para el
botón:
Private Sub Command1_Click()
ql_version_dll True
End Sub
Al momento de ejecutar el proyecto y hacer click sobre el botón, debiera aparecer el siguiente
mensaje:
Cualquier mensaje de error indica que el DLL no está correctamente enlazado al proyecto.
Notar que no es requerido llamar a esta función para inicializar al módulo y operarlo; se ha previsto esta función como una
manera de verificar la instalación del DLL y la posibilidad de obtener la versión del mismo.
Para comprobar el correcto funcionamiento de la comunicación y del módulo, se recurre a las
funciones de inicialización, a discutir en la siguiente sección: Referencia de Funciones y
Subrutinas.
Guía de Programación en Visual Basic™ 6
Pag.4
QUADRALAB
Consideraciones Generales
Antes de proceder con la referencia completa de procedimientos y funciones disponibles en el DLL,
se recomienda estudiar con cuidado la siguiente información:
► Nombres de funciones y procedimientos.
Todos los procedimientos y funciones del DLL empiezan con el prefijo ql_, tal como ql_inic() o
ql_leer_ent_dig(). Esto permite evitar confusiones de nombres con funciones ya existentes,
independientes de QuadraLab. Los nombres están en lenguaje español para facilitar el aprendizaje
de los mismos.
► Uso de puerto COMM (RS232) o USB.
La biblioteca DLL administra de manera transparente al programador la comunicación,
independientemente de si se está usando un puerto COM virtual-USB o un puerto DB-9 físico. Al
momento de inicializar el módulo, mediante la función ql_inic(), se especifica al DLL qué puerto
COM se utilizará y éste intentará inicializar la comunicación por esa vía. Recuérdese que el control
por USB se realiza por medio de un puerto COM virtual; esto se explica en el capítulo de
Comunicaciones del Manual de Usuario.
No obstante lo anterior, el uso de un puerto COM virtual-USB tiene complicaciones particulares de
rendimiento que no son problemas del DLL o del módulo QuadraLab en sí mismo, sino que de la
manera en que el hardware USB administra la comunicación. En líneas generales, si se envían
demasiadas peticiones secuenciales de lectura o escritura al módulo, el tráfico por USB tenderá a
atascarse haciendo el rendimiento del programa VB lento.
Para paliar este inconveniente (inexistente cuando se usa un puerto COM RS-232 ‘verdadero’), el
DLL ofrece un modo ‘burst’ especial que permite leer el estado de todas las entradas y salidas del
módulo con un solo comando, reduciendo así en gran medida el tráfico USB. Esta característica se
explica detalladamente en la sección de Referencia de Funciones y Procedimientos.
Guía de Programación en Visual Basic™ 6
Pag.5
QUADRALAB
No olvidar que es necesario especificar en el mismo módulo QuadraLab explícitamente si el control
vía PC será por su puerto USB o RS-232. Para ello, referirse al capítulo de Comunicaciones del
Manual de Usuario.
► Valores de retorno de las funciones y condiciones de error.
Existen básicamente tres tipos de funciones disponibles en la biblioteca DLL para QuadraLab:
•
Funciones de lectura
•
Funciones de escritura
•
Funciones especiales
Las funciones de lectura en su mayoría se refieren a las entradas digitales y análogas del
módulo. No obstante, algunas de ellas también leen valores escritos en las salidas e información
especial, como nombre del equipo.
La mayor parte de las funciones de lectura devuelven valores numéricos iguales o mayores que 0,
en formato entero (Integer, 16 bits) o bien formato punto flotante (Single, 32 bits), según el caso. Si
hay una condición de error, como un fallo en la comunicación, estas funciones devuelven un -1.
Las funciones de escritura, aunque por concepto no leen valores desde el módulo, retornan un
tipo boolean (verdadero o falso) para indicar que la operación se realizó en forma correcta. Si no se
requiere estricta certeza de que la operación se realizó, entonces puede ignorarse el valor de
retorno (False indica error en la operación).
Para una mayor sencillez en aplicaciones de laboratorio, es posible “omitir” el valor de retorno y
usar estas funciones simplemente como comandos:
todo_ok = ql_cambiar_sal_v1(2.5)
‘ejemplo usando valor de retorno, se guarda en
la variable tipo boolean todo_ok
o bien,
ql_cambiar_sal_v1(2.5)
‘ejemplo ignorando el valor de retorno
La primera forma se recomienda en aplicaciones donde la seguridad de la conexión sea un
Guía de Programación en Visual Basic™ 6
Pag.6
QUADRALAB
problema crítico.
Notar que la versión simplificada (la de abajo) no lleva paréntesis, esto es por características
propias de Visual Basic. Los ejemplos de este manual están dados en esta forma simplificada.
La naturaleza de las funciones especiales y sus valores de retorno serán discutidas en detalle
según el caso.
Se provocará un error al intentar ejecutar funciones de lectura / escritura sin haber
inicializado la comunicación con el módulo.
Guía de Programación en Visual Basic™ 6
Pag.7
QUADRALAB
Tabla Resumen de Funciones y Subrutinas Visual Basic para el módulo QuadraLab, Versión 1.0
Categoría
Inicialización y
Término
Entradas y
Salidas
Nombre
Func /
Tipo de
Sub
retorno
Comentarios
ql_dll_version
Function
String
Devuelve y/o muestra en pantalla la versión del DLL de control.
ql_inic
Function
Boolean
Inicializa el módulo en el puerto COM (virtual USB o físico) especificado.
ql_terminar
Function
Boolean
ql_leer_ent_dig
Function
Byte
Devuelve el estado lógico de la entrada digital especificada.
ql_leer_ent_v1
ql_leer_ent_v2
Function
Single
Devuelve la lectura de la entrada de voltaje v1 o v2, en volts.
ql_leer_ent_i1
ql_leer_ent_i2
Function
Single
Devuelve la lectura de la entrada de corriente i1 o i2, en miliamperes.
ql_leer_pot_datos
Function
Single
Devuelve la posición absoluta de la perilla Datos del módulo, en %.
ql_leer_sal_dig
Function
Byte
Devuelve el estado lógico de la entrada digital especificada.
ql_leer_sal_v1
ql_leer_sal_v2
Function
Single
Devuelve la lectura de la salida de voltaje v1 o v2, en volts.
ql_leer_ent_i1
ql_leer_ent_i2
Function
Single
Devuelve la lectura de la salida de corriente i1 o i2, en miliamperes.
Guía de Programación en Visual Basic™ 6
“Cierra” la comunicación y libera al puerto COM usado. Devuelve false si
la operación falló.
Pag.8
QUADRALAB
Entradas y
Salidas (cont.)
Funciones
Especiales
ql_cambiar_sal_v1
ql_cambiar_sal_v2
Function
Boolean
Programa el voltaje especificado en las salidas de voltaje.
ql_cambiar_sal_i1
ql_cambiar_sal_i2
Function
Boolean
Programa la corriente especificado en las salidas de corriente.
ql_cambiar_sal_dig
Function
Boolean
Programa la salida digital especificada.
ql_set_burst
Sub
--
ql_leer_burst
Function
Boolean
Sub
--
Establece si se mostrarán o no mensajes de error en cajas de mensaje.
ql_leer_nombre
Function
String
Retorna el nombre del equipo (12 caracteres) como un string.
ql_leer_OS
Function
String
Retorna la Versión de Sistema instalada en el módulo como un string.
ql_leer_modelo
Function
String
Retorna el modelo del equipo como un string.
ql_set_msg
Guía de Programación en Visual Basic™ 6
Permite activar o desactivar el modo burst para lectura de entradas y
salidas.
Refresca el burst buffer del PC con la información de las entradas y
salidas del módulo.
Pag.9
QUADRALAB
Referencia de Funciones y Subrutinas
A. Rutinas de Inicialización y Término
Public Function ql_version_dll(msg As Boolean) As String
Esta rutina retorna la version del DLL de control instalado en el sistema, lo que puede ser
útil en la medida en que nuevas versiones del DLL pueden ofrecer carácterísticas de
control adicionales y depuración de errores. Si el argumento msg=True, se muestra una
ventana con la información de versión en pantalla. Por ejemplo, al tipear desde Visual
Basic:
ql_version_dll(True)
se muestra una ventana como la siguiente:
El valor de retorno corresponde a la versión en forma de String. Por ejemplo, “1.0” o
“2.3”.
Public Function ql_inic(puerto As Byte) As Boolean
Esta rutina es fundamental, por cuanto ejecuta la inicialización del protocolo para utilizar las
características del módulo. Ninguna otra función o subrutina relacionada con el módulo
responderá si no se ha ejecutado correctamente esta rutina.
El argumento puerto corresponde al puerto COM (virtual-USB o RS-232) al que se
encuentra conectado la interface. Por ejemplo, para inicializar la interface en el puerto
COM3, se tipea lo siguiente:
Guía de Programación en Visual Basic™ 6
Pag.10
QUADRALAB
ql_inic(3)
Con lo que aparece una ventana similar a ésta:
La información que aparece en esta ventana es enviada directamente por el
microcontrolador del módulo.
Se mostrará una ventana con un mensaje de error si no es posible comunicarse con la
interface:
Esta función retorna True si la inicialización fue exitosa, o False si hubo un error de
comunicación u otro tipo. En caso de que la comunicación se haya establecido, el puerto
COM utilizado no estará disponible para otras aplicaciones hasta “cerrarlo” como es explica
inmediatamente.
Condiciones de error comunes son:
o
Error en el puerto COM: Este mensaje indica que el puerto no pudo abrirse. Ello
puede deberse a que es un puerto inexistente, que ha sido ocupado por otra
aplicación
o
o
que
un
puerto
COM
virtual-USB
está
mal
instalado.
Comunicación fallida: Entre las causas posibles están: se intentó inicializar el
puerto equivocado, cables dañados o no conectados, o que la comunicación está
desactivada en el módulo QuadraLab.
Guía de Programación en Visual Basic™ 6
Pag.11
QUADRALAB
Durante la fase de inicialización, se envía información importante hacia el PC anfitrión, tal
como nombre del equipo (puede cambiarse, hasta 12 caracteres de largo), identificación de
manufactura, número de serie, etc. Esta información puede luego leerse usando funciones
especiales del DLL.
El LED naranjo del módulo se enciende permanentemente cuando la comunicación con PC
está inicializada y por tanto disponible para las operaciones de entrada / salida.
Public Function ql_terminar() As Boolean
Esta función "cierra" el puerto y desconecta al módulo del software anfitrión.
Ninguna operación sobre QuadraLab se ejecutará hasta no inicializar la comunicación
nuevamente, usando la función ql_inic().
La función retorna True si la operación de "cierre" fue exitosa, o False si hubo un
error de comunicación u otro tipo. Esta función debiera ser llamada siempre que se va a
descargar el proyecto o formulario que invoca las funciones de QuadraLab.
Ejemplo:
ql_terminar
Nota: Todas las funciones que intenten comunicarse con el módulo mostrarán un mensaje
de error en pantalla cuando la comunicación se pierda. Para evitar este mensaje, debe
invocarse a la subrutina ql_set_msg(False), con lo que no aparecerán más mensajes en
pantalla.
Guía de Programación en Visual Basic™ 6
Pag.12
QUADRALAB
B. Rutinas de Entradas y Salidas
Public Function ql_leer_ent_dig(n as Byte) As Byte
Esta función retorna el estado de la entrada digital especificada por n (n es un entero entre
1 y 8). El valor es '0' si la entrada no está conectada a tensión alguna, o '1' si está
conectada a una tensión entre 12 y 24V. Si la comunicación con el módulo se ha perdido o
no se ha inicializado, el valor de retorno es -1.
El siguiente ejemplo controla el estado de un control checkbox llamado "chk_ejemplo" de
acuerdo al valor de la entrada DIn2:
chk_ejemplo.value = ql_leer_ent_dig(4)
En este caso, cuando se conecte tensión a la entrada digital 4, el checkbox mostrará un
ticket al ponerse su propiedad value en 1 (que es el valor retornado por
ql_leer_ent_dig). Si la tensión leída es 0 V, el ticket no se mostrará al ser su propiedad
value=0.
Esta función lee la entrada desde el hardware en el momento de ser llamada, si el modo Burst no está activo. Si
el modo está activado, la función retornará el último estado leído con el comando ql_leer_burst().
Public Function ql_leer_ent_v1() As Single
Public Function ql_leer_ent_v2() As Single
Estas funciones leen el voltaje presente en las entradas de voltaje v1 o v2, respecto a uno
de los terminales de tierra G. El valor de retorno es un número en punto flotante (single, 32
bits) entre 0.0 y 5.0 V, usando 10 bits de precisión.
Si se desea reducir la cantidad de decimales, puede utilizarse la función round() de Visual Basic.
El siguiente ejemplo muestra el voltaje de la entrada 1 (con todos sus decimales) en una
etiqueta llamada etiq:
etiq.caption = ql_leer_ent_v1()
Guía de Programación en Visual Basic™ 6
Pag.13
QUADRALAB
; Estas funciones retornan -1 si ocurrió un error.
Esta función lee la entrada desde el hardware en el momento de ser llamada, si el modo Burst no está activo. Si
el modo está activado, la función retornará el último estado leído con el comando ql_leer_burst().
Public Function ql_leer_ent_i1() As Single
Public Function ql_leer_ent_i2() As Single
Estas funciones leen la corriente presente en las entradas de corriente i1 o i2.
El valor de retorno es un número en punto flotante (single, 32 bits) entre 0.0 y 20.0 mA,
usando 10 bits de precisión.
El siguiente ejemplo muestra la corriente de la entrada 2 en una etiqueta llamada etiq:
etiq.caption = ql_leer_ent_i2()
; Estas funciones retornan -1 si ocurrió un error.
Esta función lee la entrada desde el hardware en el momento de ser llamada, si el modo Burst no está activo. Si
el modo está activado, la función retornará el último estado leído con el comando ql_leer_burst().
Public Function ql_leer_pot_datos() As Single
Esta función retorna la posición absoluta de la perilla de datos. La posición es un número
tipo Single entre 0.0% (perilla en tope izquierdo) y 100.0% (perilla en tope derecho)
Esta función es útil para variar parámetros en el formulario VB de manera continua, desde
el mismo hardware, tal como barras de progreso, deslizadores, etc.
El siguiente ejemplo varía una barra de progreso (Progress Bar) llamada progbar. Esta
barra tiene sus propiedades min=0 y max=100, respectivamente:
ProgBar.Value = ql_leer_pot_datos()
Si la comunicación con el módulo se ha perdido o no se ha inicializado, el valor de retorno
Guía de Programación en Visual Basic™ 6
Pag.14
QUADRALAB
es -1.
Esta función lee la salida desde el hardware en el momento de ser llamada, si el modo Burst no está activo. Si el
modo está activado, la función retornará el último estado leído con el comando ql_leer_burst().
Public Function ql_leer_sal_dig(n as Byte) As Byte
Esta función retorna el estado de la salida digital especificada por el parámetro n (n es un
entero entre 1 y 8). El valor es '0' si la salida está abierta y '1' si está conectada.
Si bien parece contradictorio leer una salida, ello tiene sentido por cuanto el modo Monitor
o una aplicación corriendo en QuadraLab puede modificar las salidas. Por tanto, esta
función permite que el software VB “actualice” su registro de las salidas activas e inactivas.
El siguiente ejemplo controla el estado de un control checkbox llamado "chk_ejemplo" de
acuerdo al valor de la salida digital 8:
chk_ejemplo.value = ql_leer_sal_dig(8)
Si la comunicación con el módulo se ha perdido o no se ha inicializado, el valor de retorno
es -1.
Esta función lee la salida desde el hardware en el momento de ser llamada, si el modo Burst no está activo. Si el
modo está activado, la función retornará el último estado leído con el comando ql_leer_burst().
Public Function ql_leer_sal_v1() As Single
Public Function ql_leer_sal_v2() As Single
Estas funciones leen el último voltaje ajustado en las salidas v1 o v2, respecto a uno de los
terminales de tierra G. El valor de retorno es un número en punto flotante (single, 32 bits)
entre 0.0 y 5.0 V, usando 10 bits de precisión.
Si bien parece contradictorio leer una salida, ello tiene sentido por cuanto el modo Monitor
o una aplicación corriendo en QuadraLab puede modificar las salidas de manera ajena a
Guía de Programación en Visual Basic™ 6
Pag.15
QUADRALAB
Visual Basic. Por tanto, esta función permite que el software VB “actualice” su registro de
las salidas de voltaje.
El siguiente ejemplo muestra el voltaje de la salida 1 en una etiqueta llamada etiq:
etiq.caption = ql_leer_sal_v1()
Una manera simple de comprobar esta función consiste en diseñar un formulario VB donde
el valor de una salida sea leído continuamente desde QuadraLab y mostrado en una
etiqueta o cuadro de texto. Cuando esta salida sea modificada desde el modo Monitor, este
cambio también será mostrado en pantalla de manera inmediata.
; Estas funciones retornan -1 si ocurrió un error.
Esta función lee la salida desde el hardware en el momento de ser llamada, si el modo Burst no está activo. Si el
modo está activado, la función retornará el último estado leído con el comando ql_leer_burst().
Public Function ql_leer_sal_v1() As Single
Public Function ql_leer_sal_v2() As Single
Estas funciones leen el último voltaje ajustado en las salidas v1 o v2, respecto a uno de los
terminales de tierra G. El valor de retorno es un número en punto flotante (single, 32 bits)
entre 0.0 y 5.0 V, usando 10 bits de precisión.
Si bien parece contradictorio leer una salida, ello tiene sentido por cuanto el modo Monitor
o una aplicación corriendo en QuadraLab puede modificar las salidas. Por tanto, esta
función permite que el software VB “actualice” su registro de las salidas de voltaje.
El siguiente ejemplo muestra el voltaje de la salida 1 en una etiqueta llamada etiq:
etiq.caption = ql_leer_sal_v1()
Una manera simple de comprobar esta función consiste en diseñar un formulario VB donde
el valor de una salida sea leído continuamente desde QuadraLab y mostrado en una
etiqueta o cuadro de texto. Cuando esta salida sea modificada desde el modo Monitor, este
cambio también será mostrado en pantalla de manera inmediata.
Guía de Programación en Visual Basic™ 6
Pag.16
QUADRALAB
; Estas funciones retornan -1 si ocurrió un error.
Esta función lee la salida desde el hardware en el momento de ser llamada, si el modo Burst no está activo. Si el
modo está activado, la función retornará el último estado leído con el comando ql_leer_burst().
Public Function ql_leer_sal_i1() As Single
Public Function ql_leer_sal_i2() As Single
Estas funciones leen la corriente presente en las salidas de corriente i1 o i2.
El valor de retorno es un número en punto flotante (single, 32 bits) entre 0.0 y 20.0 mA,
usando 8 bits de precisión.
El siguiente ejemplo muestra la corriente de la salida 1 en una etiqueta llamada etiq:
etiq.caption = ql_leer_sal_i1()
; Estas funciones retornan -1 si ocurrió un error.
Esta función lee la salida desde el hardware en el momento de ser llamada, si el modo Burst no está activo. Si el
modo está activado, la función retornará el último estado leído con el comando ql_leer_burst().
Guía de Programación en Visual Basic™ 6
Pag.17
QUADRALAB
Public Function ql_cambiar_sal_v1(v as Single) As Boolean
Public Function ql_cambiar_sal_v2(v as Single) As Boolean
Estas funciones programan el voltaje en las salidas v1 o v2.
Los valores aceptados estan entre 0.000 y 5.000 volts; valores fuera de este rango serán
aproximados al límite más cercano. Por ejemplo, si se intentan colocar -3 V en la salida v1,
el equipo colocará 0 V.
El siguiente ejemplo establece la salida v2 en 3.14 volts:
ql_leer_cambiar_sal_v2(3.14)
El valor programado siempre puede revisarse en el modo Monitor.
Public Function ql_cambiar_sal_i1(i as Single) As Boolean
Public Function ql_cambiar_sal_i2(i as Single) As Boolean
Estas funciones programan la corriente en las salidas i1 o i2.
Los valores aceptados estan entre 0.0 y 20.0 miliamperes; valores fuera de este rango
serán aproximados al límite más cercano. Por ejemplo, si se intentan colocar 100 mA en la
salida v1, el equipo colocará 20 mA.
El siguiente ejemplo establece la salida i1 en 12.3 mA:
ql_leer_cambiar_sal_i1(12.3)
El valor programado siempre puede revisarse en el modo Monitor.
Guía de Programación en Visual Basic™ 6
Pag.18
QUADRALAB
Public Function ql_cambiar_sal_dig(n As Byte, v As Byte) As Boolean
Estas función programa una de las 8 salidas digitales al valor especificado:
-
Si v = 0, entonces la salida es desconectada (circuito abierto)
-
Si v = 1, entonces la salida es conectada (circuito cerrado).
El parámetro n especifica la salida a programar, desde 1 a 8.
El siguiente ejemplo conecta la salida digital 3:
ql_leer_cambiar_sal_dig(3,1)
El siguiente ejemplo desconecta la salida digital 7:
ql_leer_cambiar_sal_dig(7,0)
El estado es inmediatamente mostrado en los LEDs verdes de las salidas digitales.
El valor programado siempre puede revisarse en el modo Monitor.
Guía de Programación en Visual Basic™ 6
Pag.19
QUADRALAB
Guía de Programación en Visual Basic™ 6
Pag.20
QUADRALAB
C. Funciones especiales.
Public Sub ql_set_burst(x as Boolean)
Nota Este comando y el modo burst tienen sentido cuando se quiere mejorar el rendimiento por puerto virtual
USB.
Este comando permite establecer de qué forma serán leídas las entradas y salidas del
módulo con las funciones correspondientes.
Si x=True, se activa el modo burst: todos los valores de entradas y salidas de QuadraLab
serán leídos desde el burst buffer en el PC, aumentando de esta forma el rendimiento del
modo USB. Ello implica que estos valores deben ser refrescados manualmente con
regularidad, usando el comando ql_leer_burst().
Si x=False, se desactiva el modo burst: todos los valores de entradas y salidas de
QuadraLab serán leídos usando peticiones de comunicación individuales. En este caso, el
tráfico sobre el puerto COM virtual USB puede atascar bastante la aplicación. Este es el
modo por defecto cuando se llama al DLL.
Como se ha dicho antes, si la aplicación VB está controlando al módulo vía puerto COM
RS232 real, el modo burst no aporta grandes beneficios respecto a la complejidad de su
uso.
Si bien no es recomendado, el modo puede cambiarse “sobre la marcha”, una vez que la
aplicación VB está corriendo.
Public Function ql_leer_burst() as Boolean
Nota Este comando y el modo burst tienen sentido cuando se quiere mejorar el rendimiento por puerto virtual
USB.
Esta función refresca o actualiza el burst buffer presente en el PC, con la información de
todas las entradas y salidas del módulo, de una sola vez. Corresponde a un “muestreo” de
estos valores y esto queda presente en memoria, para lectura instantánea de las funciones
correspondientes, sin cargar el tráfico USB con excesivas peticiones de lectura
individuales.
Guía de Programación en Visual Basic™ 6
Pag.21
QUADRALAB
Nota Para que las funciones de lectura utilicen esta facilidad, es necesario que el modo burst esté activo.
Debe tenerse la precaución de ejecutar esta función cada vez que se quiera leer un nuevo
grupo de valores de las entradas y salidas. De otro modo, estas funciones siempre
arrojarán el mismo valor “muestreado” anteriormente con ql_leer_burst().
La aparente complicación de este modo queda compensada por la notable mejora en
rendimiento en la comunicación USB.
Por ejemplo, es posible programar un timer en Visual Basic que ejecute esta función cada
1/50 de segundo. Ello implica que los estados de las entradas y salidas del módulo serán
actualizados en el PC cada 20 mS. Entre una actualización y la siguiente, todas las
funciones de lectura, como ql_leer_ent_v1 o ql_leer_ent_dig, leerán sus valores
desde el buffer del PC y con ello no saturarán el tráfico USB.
Public Function ql_leer_nombre() As String
Esta función retorna el nombre del equipo (12 caracteres) como un string.
El siguiente ejemplo muestra una caja de mensajes con el nombre del equipo:
m=msgbox(ql_leer_nombre)
Si la comunicación con el módulo se ha perdido o no se ha inicializado, el valor de retorno
es “” (string vacio).
Public Function ql_leer_OS() As String
Esta función retorna la Versión de Sistema instalada en el módulo como un string.
El siguiente ejemplo muestra una caja de mensajes con esta información
m=msgbox(“Version de Sistema:” + ql_leer_OS)
Guía de Programación en Visual Basic™ 6
Pag.22
QUADRALAB
Si la comunicación con el módulo se ha perdido o no se ha inicializado, el valor de retorno
es “” (string vacio).
Public Function ql_leer_modelo() As String
Esta función retorna el modelo del equipo como un string. En la presente versión de
hardware, todos los módulos corresponden al modelo “QuadraLab”.
Si la comunicación con el módulo se ha perdido o no se ha inicializado, el valor de retorno
es “” (string vacio).
Public Function ql_set_msg(x as Boolean)
Este comando determina si se mostrarán mensajes de error en pantalla (vía cajas de
mensaje) cuando éstos se produzcan en la operación del módulo.
Si x=True, los errores de comunicación serán mostrados en pantalla. Este es el modo por
defecto cuando se llama al DLL.
Si x=False, no se mostrarán mensajes de error de comunicación.
Independientemente de este ajuste, los valores de retorno de error (en la mayor parte de
los casos es -1) siempre funcionarán de la misma manera.
Guía de Programación en Visual Basic™ 6
Pag.23
QUADRALAB
Notas:
Innova Service Tecnología
www.istec.cl
QuadraLab es un producto desarrollado por
ISTEC Innova Service Ltda.
Sta. Magdalena 75 of. 412, Providencia, Santiago
Fono (02)-2444082
Microsoft™, Windows™ y Visual Basic™ son marcas registradas de Microsoft Corporation.
Guía de Programación en Visual Basic™ 6
Pag.24
Descargar