Guía de Programación para Visual Basic 6



Documentos relacionados
Edición de Ofertas Excel Manual de Usuario

Instalación del Software Magaya

SOFTWARE DE RECUENTO DE DINERO

Guía Rápida de Inicio

Control de accesos autónomo por huella dactilar

V i s i t a V i r t u a l e n e l H o s p i t a l

PIC MICRO ESTUDIO Timer Monoestable/Biestable ajustable hasta 99H 59M 59S Timer 2T Clave:

Samsung Drive Manager Preguntas frecuentes

Manual de Instalación. Sistema FECU S.A.

Notas para la instalación de un lector de tarjetas inteligentes.

Instalación Tacotel Lector Documentación Sistemas

Printer Driver. Esta guía describe la instalación del controlador de la impresora en Windows Vista y Windows XP.

Acronis License Server. Guía del usuario

- 1 - ÍNDICE. PASO 3: Primero le hará falta elegir su lengua en esta pantalla:

Manual de operación Tausend Monitor

ACCESS CONTROL. Aplicación para control y gestión de presencia. (Versión. BASIC) 1 Introducción. 2 Activación del programa

Cuando termines, simplemente cierra tu navegador (normalmente) y el Acelerador todito Card quedará en espera en la bandeja de sistema.

VideoSoftPHONE Active Contact

MACROS. Automatizar tareas a través del uso de las macros.

Instrucciones de instalación de TrueCode

WINDOWS : TERMINAL SERVER

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

MANUAL DE USUARIO PARA LA INSTALACION DE LOS AGENTES COMMVAULT SIMPANA 9.0

INSTALACIÓN El Proceso de Instalación. 2.2 El Asistente de Instalación

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

SISTEMA DE REGISTRO DE TRANSACCIONES BURSATILES BAGSA MANUAL DE USUARIO

Procedimiento para realizar la configuración de Internet Explorer y usar el Sistema de reservaciones Go! Res versión 4.x

Guía de Instalación. Seguridad Esencial PC Tools

Control de presencia para terminal por huella dactilar

Visual Basic 1. Empleo de módulos y Procedimientos. Procedimientos definidos por el usuario

Volumen. Jun HELPPEOPLE SCAN CLOUD Manual de Usuario de la Versión v s23. Elaborado por: Investigación y Desarrollo Helppeople Software

PS.Vending Almacén Pocket PC

1.- DESCRIPCIÓN Y UTILIDAD DEL SOFTWARE DAEMON TOOLS.

Como instalar y usar Windows XP y Windows 7 en el mismo equipo

Manual de Palm BlueChat 2.0

Guía de instalación de la carpeta Datos de IslaWin

Programa de Ayuda HERES

TUTORIAL: Cómo puedo instalar el Renault Media Nav Toolbox? TUTORIAL: Cómo puedo crear una "huella digital" del dispositivo en un dispositivo de

AMI C7. Manual de Usuario. Rev 2

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0):

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

IBM SPSS Statistics para Windows Instrucciones de instalación (Usuario individual)

MANUAL TERMINALES X300 Manual Soporte Técnico.

Formularios. Formularios Diapositiva 1

Configuración en Red

Procedimiento para realizar la Configuración de Internet Explorer y usar el Sistema de reservaciones Go! Res versión 4.x

WorldShip Instalación para una estación de trabajo única o de grupo de trabajo

Microsoft Access proporciona dos métodos para crear una Base de datos.

Manual Usuario Tacotel Lector

1 Introducción. 2 Requisitos del sistema. Control de presencia. V.1.0 Manual de instrucciones. Control de presencia. V.1.0 Manual de instrucciones

Uso de Visual C++ Pre-Practica No. 3


MANUAL COPIAS DE SEGURIDAD

Antivirus PC (motor BitDefender) Manual de Usuario

IBM SPSS Statistics para Windows Instrucciones de instalación (Licencia de sede)

Sistema de Captura Electrónica

- 1 - ÍNDICE. Haga clic en Instalar Software. PASO 3: Primero le hará falta elegir su lengua en esta pantalla:

smartblz pesaje computarizado Manual de Uso y referencias técnicas

Manual Operativo Sistema de Postulación Online

Proceso de cifrado. La fortaleza de los algoritmos es que son públicos, es decir, se conocen todas las transformaciones que se aplican al documento

Para descargar la versión más reciente de Skype accedemos al sitio web de Skype y luego hacemos clic en Descargar Skype para escritorio de Windows.

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

Internet Information Server

NOTA DE APLICACIÓN AN-P002. Programando Wiring con NXProg

Manual de uso MiniPrinter

Configuracion Escritorio Remoto Windows 2003

Manual de instrucciones ES. Sunrise Control

PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones:

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

Visor de presupuestos en Android

Intego NetUpdate X4 Manual del usuario

DOCENTES FORMADORES UGEL 03 PRIMARIA

MANUAL DE USUARIO AVMsorguar

Trabaja los Sistemas Aspel desde tus sucursales con Terminal Server

Manual DEMO de Instalación Factureya CFDI

GUIA PARA LA DISTRIBUCION DE APLICACIONES DE VISUAL BASIC 6.0

MÓDULO DE EXPANSIÓN DW-GSM. Manual de usuario

Tabla de contenido. 1. Objetivo Asignación de responsabilidades Alcance Procedimientos relacionados...4

15 CORREO WEB CORREO WEB

INSTALACIÓN Y REGISTRO

Instalación del Admin CFDI

Guía rápida Nokia Data Suite

Instalación de Crystal Reports

Guía de usuario. Docentes. Autoservicio de PowerCAMPUS

Instrucciones de instalación de SPSS Statistics para Windows. (Usuario individual)

Terminal PCV123 y Controlador de 1 puerta DGM1 + Lector de tarjetas de proximidad

NEXO AVIU Conexión con Aplicaciones NEXO

Gestión completa del rendimiento

SBConta.NET Manual de instalación. SBSS Consulting, S.A Barcelona Telf , fax web

GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD

MANUAL DE USUARIO CONVERSOR TCP/IP A RS232 Y TCP/IP A RS485

Guía de referencia para mytnt. mytnt. C.I.T Tecnología Aplicada al Cliente

M a n u a l d e l U s u a r i o

Software de programación de interfaz FDT DXID. Guía del programador (DXID P01.doc)

Manual del usuario del Módulo de Administración de Privilegios del Sistema Ingresador (MAPSI)

28.- Manejo de los Feriados

Transcripción:

Innova Service Tecnología www.istec.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

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: Pag.1

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. Pag.2

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: Pag.3

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. Pag.4

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. Pag.5

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 Pag.6

problema crítico. QUADRALAB 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. Pag.7

Tabla Resumen de Funciones y Subrutinas Visual Basic para el módulo QuadraLab, Versión 1.0 Categoría Nombre Func / Sub Tipo de retorno Comentarios ql_dll_version Function String Devuelve y/o muestra en pantalla la versión del DLL de control. Inicialización y Término ql_inic Function Boolean Inicializa el módulo en el puerto COM (virtual USB o físico) especificado. ql_terminar Function Boolean Cierra la comunicación y libera al puerto COM usado. Devuelve false si la operación falló. 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 v 1 o v 2, en volts. Entradas y Salidas ql_leer_ent_i1 ql_leer_ent_i2 Function Single Devuelve la lectura de la entrada de corriente i 1 o i 2, 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 ql_leer_ent_i1 ql_leer_ent_i2 Function Single Devuelve la lectura de la salida de voltaje v 1 o v 2, en volts. Function Single Devuelve la lectura de la salida de corriente i 1 o i 2, en miliamperes. Pag.8

Entradas y Salidas (cont.) ql_cambiar_sal_v1 ql_cambiar_sal_v2 ql_cambiar_sal_i1 ql_cambiar_sal_i2 QUADRALAB Function Boolean Programa el voltaje especificado en las salidas de voltaje. 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 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. Funciones Especiales ql_set_msg 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. Pag.9

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: Pag.10

ql_inic(3) QUADRALAB 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 que un puerto COM virtual-usb está mal instalado. o 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. Pag.11

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. Pag.12

B. Rutinas de Entradas y Salidas QUADRALAB 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 v 1 o v 2, 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() Pag.13

Estas funciones retornan -1 si ocurrió un error. QUADRALAB 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 i 1 o i 2. 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 Pag.14

es -1. QUADRALAB 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 v 1 o v 2, 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 Pag.15

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 v 1 o v 2, 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. Pag.16

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 i 1 o i 2. 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(). Pag.17

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 v 1 o v 2. 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 v 1, el equipo colocará 0 V. El siguiente ejemplo establece la salida v 2 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 i 1 o i 2. 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 v 1, el equipo colocará 20 ma. El siguiente ejemplo establece la salida i 1 en 12.3 ma: ql_leer_cambiar_sal_i1(12.3) El valor programado siempre puede revisarse en el modo Monitor. Pag.18

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. Pag.19

Pag.20

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. Pag.21

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) Pag.22

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. Pag.23

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. Pag.24