Descripción del control de comunicación 1mscomm.vbx
El control de comunicación mscomm.vbx se puede agregar directamente al formulario desde la caja de herramientas de VB y se puede utilizar para la comunicación. Si no existe tal control en la caja de herramientas, use los controles personalizados de las herramientas para agregar mscomm.vbx desde el subdirectorio del sistema de Windows a la caja de herramientas de vb.
1.1 Métodos de comunicación
mscomm.vbx tiene 2 formas diferentes de manejar y resolver los problemas de desarrollo y diseño de varios software de comunicación.
1. Impulsado por eventos. Es similar a la función de devolución de llamada de ventana cuando se escribe software de Windows en C/C y es una forma poderosa de solucionar problemas. En el trabajo real, a menudo tenemos que lidiar con muchos eventos relacionados en la comunicación, por ejemplo: cuando los datos de la línea llegan al extremo local o el estado de la línea cd y la línea de señal rts cambian, debemos usar los eventos correspondientes para. Seguimiento y proceso. Se utiliza este control. Se implementa el evento oncomm, que también incluye la detección y el manejo de errores de comunicación y otros problemas. El valor commevent devuelve el evento de comunicación o código numérico de error más reciente. Ejemplos detallados de errores y eventos de controles de comunicación incluyen:
mscomm-er-break recibió 1 señal de interrupción
Tiempo de espera de señal mscomm-er-cdtocd
…
cambios de señal mscomm-ev-cdcd
…
2. Método de consulta. Es responsabilidad del programador leer el valor de commevent y manejar los errores o eventos que ocurran. Por lo general, el diseño de aplicaciones simples puede adoptar este enfoque.
1.2 Propiedades de los controles de comunicación
La clave para utilizar controles de comunicación para compilar programas de comunicación es comprender y establecer con precisión las propiedades de los controles de comunicación. mscomm.vbx proporciona 27 propiedades sobre controles de comunicación, como:
commport: establece o devuelve el número del puerto de comunicación.
configuración: establece o devuelve el formato de comunicación de datos en forma de cadena: velocidad de baudios, paridad, bits de datos y bits de parada.
portopen: establece o devuelve el estado del puerto de comunicación (incluida la apertura y el cierre de un puerto de comunicación)
…
3. Ejemplos
El fondo de aplicación de este programa es el software del sistema de monitoreo automático del precipitador electrostático dcc95, que resuelve el problema de comunicación entre 1 computadora industrial (estación maestra) y 32 microcontroladores (subestaciones). La estructura de la red de autobuses entre la estación maestra y la subestación adopta el estándar de comunicación rs-485 y realiza la comunicación de datos en forma de preguntas y respuestas. Dado que las 32 subestaciones envían comandos de comunicación (comandos de enlace descendente) a la estación maestra, la estación maestra continúa enviando comandos de enlace descendente después de recibir los comandos de respuesta correspondientes (comandos de enlace ascendente) enviados de vuelta por las subestaciones. Según los requisitos de las funciones del sistema, la estación maestra necesita enviar dos tipos de comandos: (1) comando sincrónico, que se activa mediante un temporizador y se envía una vez cada ciclo ls (2) comando aperiódico, que se activa mediante el; operador Provocado al mover el botón de comando correspondiente, se envía de forma aperiódica. El software del sistema de monitoreo automático está instalado en la estación principal y el programa de comunicación también está instalado en la estación principal como parte del software del sistema de monitoreo automático.
Este artículo solo enumera una lista de programas de demostración básicos para realizar pruebas al depurar programas de comunicación. Durante la prueba, se utilizó una PC como estación principal y otra PC simuló el trabajo de 32 subestaciones. Las dos PC utilizaron comunicación por puerto serie rs232c. Agregue 1 control de comunicación, 2 controles de temporizador y 1 control de botón de comando al formulario (formulario) del programa de demostración de comunicación de la estación principal. El control de comunicación (mscomm1) se utiliza para acceder al puerto serie, enviar y recibir datos del temporizador periódico (; periódico) se utiliza para controlar la estación maestra para enviar comandos periódicos a cada subestación cada segundo; el control del botón de comando (comando no periódico) y el control del temporizador no periódico (no periódico) se usan para enviar comandos no periódicos. La transmisión de datos utiliza comunicación basada en eventos. El atributo rtreshlod se establece de acuerdo con diferentes comandos de envío, lo que hace que el evento oncomm reciba datos.
2.1 Procedimientos de inicialización para cada control en el formulario
Configure los parámetros de trabajo del puerto serie de comunicación, establezca el intervalo de interrupción del temporizador periódico en ls y el intervalo de interrupción del temporizador no periódico en 0,5 s.
carga de subformulario()
mscomm1.commport=2'Seleccione el puerto serie com2
mscomm1.settings="9600,n8,1"'Velocidad de baudios 9600, sin bit de paridad, 8 bits de datos y 1 bit de parada
mscomm1.inputlen=0'la entrada leerá todo el contenido del buffer de recepción
mscomm1.inbuffersize=1024'Establecer la longitud en bytes del búfer de recepción
mscomm1.portopen=true'Abrir el puerto de comunicación
mscomm1.inbuffercount=0'Borrar datos del búfer de envío
mscomm1.outbuffercount=0'Borrar los datos del buffer de recepción
periodic.inteval=100'Establezca el intervalo de tiempo de ls para que el comando de telemetría se envíe una vez cada ls
nonperiodic.inteval=500'Establezca el intervalo de tiempo de 0,5 s y consulte si el botón de comando está activado para determinar si se deben enviar comandos periódicos
command-PRessed=false'El botón de comando está inactivo
durante-periodic=false'La transmisión de datos del comando periódico aún no ha comenzado
durante-nonperiodic=false'La transmisión de datos del comando no periódico aún no ha comenzado
finalsub
2.2 Programa de envío de comandos aperiódico
Según el estado del botón de comando y el estado de transmisión de datos del comando periódico, se envían comandos aperiódicos en el programa de interrupción del temporizador no periódico.
comando-clic subno periódico()
command-pressed=true'activación del botón de comando
finalsub
temporizador subno periódico()
ifduring-periodic=trueorcommand-pressed=false
thenexitsub' Si la transmisión de datos del comando periódico no ha finalizado o el botón de comando está activado, salga del programa que envía comandos aperiódicos.
command-pressed=false'El botón de comando vuelve al estado inactivo
llama a enviar datos (comando no periódico) 'Enviar comandos no periódicos
mscomm1.rthreshold=r-nonperiodic-byte'Después de enviar el comando aperiódico, configure el atributo rthreshold para que la estación maestra active el evento oncomm después de recibir el número establecido de bytes.
finalsub
2.3 programa de temporizador periódico
Envíe comandos periódicos en el programa de interrupción del temporizador periódico:
temporizador subperiódico()
ifduring-nonperiodic=truethenexitsub'Si la transmisión de datos del comando no periódico aún no ha finalizado, salga del programa para enviar comandos aperiódicos.
while-periodic=true' establece el estado de transmisión de datos del comando periódico en en curso
llama a enviar datos (comando periódico) para enviar comandos periódicos
mscomm1.rthreshold=r-periodic-byte'Después de enviar el comando periódico, la estación maestra recibe bytes r-remot-edata-byte, que pueden desencadenar el evento oncomm
finalsub
Programa de eventos 2.4oncomm
De acuerdo con el valor de configuración del atributo rthreshold, cuando se recibe el carácter de byte correspondiente en el búfer de recepción, se activa el evento oncomm y los datos se reciben en el programa de interrupción.
submscomm1-oncomm()
selectcasemscomm1.commevent'Aquí puede insertar código para manejar varios errores o eventos.
casemscomm-ev-recibir
cadena de recepción$=mscomm1.input
seleccionarcasemscomm1.rthreshold
datos de respuesta del byte periódico del caso del comando periódico
calldisposedata(comando-periódico)'procesa los datos recibidos
whileperiodic=false' establece el estado de transmisión de datos del comando periódico para finalizar
caser-nonperiodic-byte'datos de respuesta de comando no periódicos
calldisposedata(comando-no periódico)'procesar datos recibidos
while-nonperiodic=false' establece el estado de transmisión de datos del comando no periódico para finalizar
selección final
selección final
final sub
Con la actualización continua de la versión vb, vb se convertirá en la herramienta de desarrollo de aplicaciones más rápida, fácil de usar y potente, y en una de las herramientas de primera elección para el desarrollo de software de aplicaciones cliente/servidor a nivel empresarial. ->