Adquisición de datos en un puerto serie
Short Description
Download Adquisición de datos en un puerto serie...
Description
Adquisición de datos en un puerto serie (RS232) Se encuentra ninguna teoría de este modo de comunicación. Simplemente, la lista de tareas a realizar, junto con un programa de ejemplo en VBA5. Objetivo: Recoger directamente en una hoja de cálculo Excel de los valores producidos por un organismo externo los medios utilizados en el ejemplo:
Excel 97 o superior (sólo para Windows) VBA5 o superior activeX Mscomm32.ocx (*) balance equipado con una salida RS232 con su documentación un pequeño programa en Visual Basic o VBA
(*) Este ActiveX no se incluye con Office 2000 o versiones anteriores, pero sólo con Visual Basic. Primera búsqueda en los archivos del sistema de archivos "MScom *. ocx". Si lo son, saltar el siguiente párrafo, de lo contrario usted puede ahorrar mediante la instalación del programa ActiveX XL_RS232 (copia gratuita) La distribución incluye el archivo "pesees.xls" con el siguiente ejemplo. Aplicación: - descargue el archivo XL_RS232.ZIP - descomprimir el archivo - ejecutar SETUP.EXE - abrir el archivo "pesees.xls" - ejecutar la macro para comprobar el funcionamiento - para adaptar el programa VBA para comunicarse con el puerto serie en el archivo "pesees.xls" El siguiente ejemplo utiliza el puerto COM1. Es posible comunicarse con el puerto paralelo (no documentado aquí), utilizando el control ActiveX de IOport.ocx (shareware) para win98 o control NTport.ocx NT.
La ejecución del programa Es fundamental contar con la documentación del dispositivo para conectarse a determinar la configuración del puerto serie. El programa puede ser adaptado a cualquier 97 MS-Office o Visual Basic. Desde Excel, seleccione el editor de VBA ( ALT + F11).
Inserte un módulo insertar un formulario de usuario en la "caja de herramientas", busque el icono de MSCOMM simbolizado por un teléfono. Si no lo tiene, haga clic en la caja de herramientas con el botón derecho del ratón y haga clic en "controles adicionales, y marca" Microsoft de control de comunicaciones ". colocar el control en el formulario de usuario MSCOMM colocar un CommandButton en el formulario de usuario colocar un control Label en el formulario de usuario doble clic en el objeto CommandButton y escriba el siguiente código:
Private Sub CommandButton1_Click () 'Limpiar el buffer MSComm1.InBufferCount = 0 'selecciona un puerto serie MSComm1.CommPort = 1 '1 es el número de puerto que se puede cambiar "Ajuste de los valores del puerto son proporcionados por el fabricante de dispositivo. 'Estos valores se pueden introducir aquí (no es muy "limpio"!) "o en un proceso de inicialización (mejor) "o en la propiedad" Configuración "control "Lo ideal es ofrecer el usuario puede cambiar estos valores en un menú "" "La escala utilizada en este ejemplo necesita los siguientes valores: 1200 baudios, bit de paridad, 7 bits de datos, bit de parada MSComm1.Settings = "1200, o, 7,2" indica que el control tiene que leer un solo carácter 'carácter que se utiliza para identificar la estabilización de la balanza MSComm1.InputLen = 1 'abrir el puerto MSComm1.PortOpen = true 'Recorrer el vacío como el carácter leído no es un signo más (+) Hacer mientras MSComm1.Input "+" bucle"de lectura en el uso de 01 de mayo res caracteres y se almacena en el diálogo y la hoja activa MSComm1.InputLen = 5 = Label1.Caption MSComm1.Input ActiveCell.Value = CSng (Label1.Caption) ActiveCell.Offset (1, 0). Seleccione "cerrar el puerto MSComm1.PortOpen = false
End Sub En este ejemplo, la escala transmite datos de forma continua. El programa lee estos valores mediante la búsqueda de el signo +, en este caso entre los elementos sucesivos de los datos. Muy a menudo, es posible hacerlo de otra manera: - el dispositivo está a la espera de una orden del programa - las señales de programa para el dispositivo que espera un valor - La unidad responde con un valor y luego espera a que el en el siguiente orden. Órdenes o códigos de cambio son proporcionados por el fabricante del equipo. Private Sub CommandButton1_Click() 'Vider le buffer MSComm1.InBufferCount = 0 'choisir un port série MSComm1.CommPort = 1 ' 1 est le n° de port que vous pouvez modifier 'Paramétrage du port; les valeurs sont fournies par le constructeur de l'appareil. 'Ces valeurs peuvent être entrées ici (pas très "propre"!) 'ou dans une procédure d'initialisation (c'est mieux) 'ou dans la propriété "Setting" du contrôle 'L'idéal étant d'offrir à l'utilisateur la possibilité de changer ces valeurs à partir d'un menu "Réglage" 'La balance utilisée dans cet exemple requiert les valeurs suivantes: 1200 bauds, bit de parité, 7 bits de données, bit d'arrêt MSComm1.Settings = "1200,o,7,2" ' indique au contrôle qu'il doit lire 1 seul caractère 'ce caractère servira à repérer la stabilisation de la balance MSComm1.InputLen = 1 'ouvre le port MSComm1.PortOpen = True
'Boucle dans le vide tant que le caractère lu n'est pas un signe plus (+) Do While MSComm1.Input "+" Loop 'lecture sur le port des 5 1ers caractères et stockage dans la boite de dialogue et dans la feuille active MSComm1.InputLen = 5 Label1.Caption = MSComm1.Input ActiveCell.Value = CSng(Label1.Caption) ActiveCell.Offset(1, 0).Select 'ferme le port MSComm1.PortOpen = False End Sub
View more...
Comments