Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuántos métodos existen para escribir un programa de pantalla táctil plc? ¿Cuáles son las diferencias?

¿Cuántos métodos existen para escribir un programa de pantalla táctil plc? ¿Cuáles son las diferencias?

Este artículo presenta un método para utilizar el protocolo Modbus para realizar una comunicación en serie asíncrona entre el microcontrolador PIC y la pantalla táctil. Se presenta brevemente el protocolo de comunicación Modbus y se proporcionan el diagrama de conexión del circuito de hardware, el diagrama de flujo del programa y parte del programa escrito en lenguaje C para comunicarse con el microcontrolador PIC. El uso real ha demostrado que este método de transmisión de datos es estable y confiable y proporciona un buen entorno de interacción persona-computadora.

Palabras clave: pantalla táctil; microcontrolador PIC; protocolo Modbus; comunicación

En control industrial, muchas veces es necesario observar el estado de funcionamiento del sistema o modificar parámetros de funcionamiento. La pantalla táctil puede mostrar de forma intuitiva y vívida los parámetros operativos y el estado operativo, y los parámetros operativos del sistema se pueden modificar directamente a través de la pantalla táctil para lograr una buena interacción persona-computadora. Los microcontroladores se utilizan ampliamente en el campo del control industrial y, combinados con pantallas táctiles, pueden formar un buen entorno de interacción entre humanos y computadoras. Cuando la pantalla táctil se comunica con el microcontrolador, es necesario escribir el programa de comunicación correspondiente para el microcontrolador de acuerdo con el protocolo de comunicación de la pantalla táctil. El protocolo Modbus es un protocolo introducido por la empresa estadounidense Modicon que admite eficazmente la comunicación entre controladores y otros dispositivos a través de una red (como Ethernet). Este artículo toma el microcontrolador PIC16F877 y la pantalla táctil eView MT510T de Human Machine Electronics Co., Ltd. como ejemplo para presentar el proceso de desarrollo de su programa de comunicación.

1 Estructura del sistema

Realizar la comunicación entre la pantalla táctil y el microcontrolador es principalmente para resolver el problema del protocolo de comunicación. Este artículo utiliza el protocolo de comunicación abierto Modbus, con la pantalla táctil como estación maestra y el microcontrolador como estación esclava. La propia pantalla táctil eView admite el protocolo de comunicación Modbus. Si el microcontrolador también admite el protocolo Modbus, puede comunicarse. Se conecta directamente una interfaz compatible con RS-232C entre la pantalla táctil y el microcontrolador, y la velocidad de transmisión se establece en 9600 kb/s. La figura 1 muestra el diagrama de circuito del sistema.

Configure los puertos RC6 y RC7 del microcontrolador PIC16F877 en modo de comunicación serie asíncrona, convierta el nivel TTL a nivel RS232 a través del chip MAX232 y luego conéctelo a la interfaz PLC [RS-232] del Pantalla táctil eView Es decir, se completa la conexión del hardware. La interfaz PLC [RS-232] de la pantalla táctil eView tiene el pin 2 como TXD y el pin 3 como RXD.

2 Protocolo de comunicación Modbus

El protocolo de comunicación Modbus es un protocolo de comunicación maestro-esclavo en serie. Solo un dispositivo se configura como maestro (llamado Maestro) en la red, y los demás dispositivos lo son. configuradas como máquinas esclavas (llamadas Slaver), la máquina maestra no necesita estar numerada y la máquina esclava debe estar numerada. El protocolo define el formato del marco de información de la consulta de la estación maestra y la respuesta de la estación esclava. Durante la comunicación, el host primero envía un mensaje de solicitud al esclavo que coincide con el código de dirección correspondiente recibe el comando de comunicación y elimina el código de dirección, lee la información, ejecuta la tarea correspondiente si es correcta y luego devuelve la ejecución. resultado al anfitrión. Si el código de verificación recibido por la estación esclava es diferente del código de verificación calculado por el host, significa que los datos son incorrectos durante el proceso de comunicación. La estación esclava considerará esta solicitud como inválida y el código de función se modificará a. indica que la información de respuesta no es válida y el segmento de datos contiene un código que describe el mensaje de error. Después de recibir esta información, el anfitrión volverá a enviar el mensaje de solicitud. El método de suma de verificación se divide en suma de verificación LCR (cuando los datos transmitidos son ACSII) y suma de verificación CRC (cuando los datos transmitidos son binarios). Aquí se utiliza el método de suma de verificación CRC.

La transferencia de información es asíncrona y se mide en bytes. El formato de la palabra de comunicación entre la estación maestra y la estación esclava se muestra en la Tabla 1.

Tabla 1 Formato de palabra de comunicación

Formato de palabra (datos serie) binario de 10 bits

Bit de inicio 1 bit

Bit de datos 8 bits

Bit de paridad ninguno

Bit de parada 1 bit

El protocolo Modbus admite la transmisión de datos en formato ASCII o binario.

Cada byte de datos se transmite como dos bytes en modo de codificación ACSII y como un byte en modo binario. Para reducir la cantidad de transmisión de datos, generalmente se selecciona el modo de datos binarios. Los bytes que se pueden enviar en cada área son hexadecimales 0-9, A-F. La estructura estándar del marco de información binaria es la siguiente:

Estructura inicial ≥4 bytes de tiempo

Código de dirección de 1 byte

Código de función de 1 byte

Área de datos N bytes

Comprobación de errores Código CRC de 16 bits

Tiempo para finalizar la estructura ≥ 4 bytes

Modo binario

En modo binario, el inicio del mensaje requiere al menos 3,5 caracteres de tiempo muerto, que se calcula fácilmente en función de la velocidad en baudios utilizada. Después de enviar el último carácter, también hay una pausa de al menos 3,5 caracteres antes de que se pueda enviar un nuevo mensaje. Los dispositivos en la red monitorean continuamente la información en la red, incluidos los períodos de inactividad.

3 Correspondencia entre las direcciones del microcontrolador y la pantalla táctil

La pantalla táctil eView solo admite tipos de direcciones Bit y Word, mientras que los microcontroladores reales u otros controladores también tienen Byte, Double Word y otros métodos de representación. El tipo de dispositivo del elemento de la pantalla táctil que lee la dirección tiene opciones como LW, 0x, 1x, 3x, 4x, RWI, RW, etc. Entre ellos, LW representa la dirección interna del componente que lee la pantalla táctil, como la dirección de otros componentes; 0x representa la lectura de la señal de salida del controlador; 1x representa la lectura de la señal de entrada del controlador; registre el tipo de dirección del controlador, donde 4x es legible y escribible, 3x es de solo lectura; RWI y RW son las direcciones internas de la pantalla táctil y sirven como funciones auxiliares. Al utilizar estos tipos de dispositivos de dirección de lectura, la pantalla táctil puede mostrar o configurar el valor de un registro de controlador o puerto de E/S. Tomando el componente de "entrada numérica" ​​como ejemplo, ingresar datos a través del "teclado" puede establecer el valor del registro del microcontrolador o del puerto de E/S. Si se activa la "Dirección de activación", los datos ingresados ​​se almacenarán en la dirección del microcontrolador especificada cuando se toquen.

4 Desarrollo del programa de comunicación

El programa de comunicación entre la pantalla táctil y el microcontrolador está escrito en el lenguaje C del microcontrolador PIC. La herramienta de compilación utiliza el compilador PICC de Haitai. El programa se divide en tres módulos principales: módulo de inicialización, módulo de recepción de datos y módulo de envío y procesamiento de datos. El diagrama de flujo principal del programa se muestra en la Figura 2.

El módulo de función USART del microcontrolador PIC16F877 tiene un generador de velocidad de baudios BRG de ocho bits y admite dos modos de funcionamiento USART, síncrono y asíncrono. El registro SPBRG controla un período de temporizador independiente de ocho bits. En modo asíncrono, el bit BRGH (es decir, D2) del registro de control/estado de transmisión TXSTA se utiliza para controlar la velocidad en baudios. Los pasos de inicialización para el puerto serie son los siguientes:

GIE=1; habilitar interrupciones globales

SPBRG=25; > TXSTA =0x04; Seleccione el modo de alta velocidad asíncrono;

RCSTA=0x80; Permitir el funcionamiento del puerto serie sincrónico

RTISC6=1

TRISC7=1; ; Cambie C RC6 y RC7 del puerto están configurados en modo de comunicación en serie asíncrona;

PFIE=1; se permite la interrupción de la interfaz periférica;

se permite la interrupción de la recepción USART; ;

TXIE=1; permite la interrupción de la transmisión USART;

El módulo de recepción de datos contiene una función de interrupción.

Esta función de interrupción almacena la trama de datos Modbus enviada por la pantalla táctil en una matriz personalizada. Cuando se recibe una trama de datos, el bit de bandera de fin de recepción se establece en 1 y se transmite al módulo de procesamiento y envío de datos. El núcleo del receptor de comunicación en serie es el registro de desplazamiento de recepción RSR. Cuando se detiene la recepción, si el búfer RCREG está vacío, RSR enviará los datos recibidos a RCREG. Una vez completada la transmisión, el bit de indicador de interrupción de recepción RCIF se establece en 1. Se puede controlar si la CPU responde a las interrupciones reales configurando el bit de habilitación de interrupciones RCIE en el registro de habilitación de interrupciones de la interfaz periférica PIE1.

El módulo de procesamiento y envío de datos ejecuta el código de función del protocolo Modbus correspondiente a la aplicación. Cuando la pantalla táctil eView se comunica con el microcontrolador mediante el protocolo Modbus, los códigos de función Modbus utilizados se muestran en la Tabla 2.

Tabla 2 Códigos de función utilizados en programas de comunicación

Código de función eView dirección nombre significado función

01 0x Leer salida de conmutación Leer uno o más estados de salida de conmutación

p>

03 4x Leer registro para leer uno o más datos de registro

05 0x

1x Escribir salida de interruptor para forzar al relé a "dividir/cerrar" la salida

16 3x

4x Preestablezca múltiples registros para cargar datos específicos en un conjunto consistente de registros de retención

Tome el código de función Modbus 03 como ejemplo para ilustrar la pantalla táctil y micro El formato de datos de comunicación real entre controladores. Si el número de dirección del microcontrolador es 01H, la pantalla táctil necesita verificar el valor del registro con dirección 0031H en el microcontrolador, y el formato de comando enviado se muestra en la Tabla 3.

Tabla 3 Estructura de datos enviados por pantalla táctil

Nombre del segmento de datos valor de datos

Dirección 01

Código de función 03

Leer el bit alto de la dirección 00

Leer el bit bajo de la dirección 31

Leer datos

Leer el bit alto del dato número 00

Leer Obtener el bit bajo 01 del número de datos

Código de verificación CRC bit alto D5

Código de verificación CRC bit bajo C5

Asumir el valor de interrupción de registro ubicado en la dirección 0031H en el microcontrolador. Para 05H, los comandos a los que responde el microcontrolador se muestran en la Tabla 4.

Tabla 4 Estructura de datos de respuesta del microcontrolador

Nombre del segmento de datos valor de datos

Dirección 01

Código de función 03

Leer el número de bytes 02

Registrar datos bit alto 00

Registrar datos bit bajo 05

Código de verificación CRC bit alto 78

CRC Check bit low bit 47

Cuando la velocidad en baudios alcanza los 38400 kb/s, la comunicación sigue siendo estable y confiable. Este sistema tiene las características de un circuito de conexión simple, configuración flexible y alta confiabilidad de comunicación, y se ha utilizado con éxito en proyectos de sistemas de control de detección de materiales. Debido a la apertura del protocolo de comunicación Modbus, todos los controladores de comunicación en serie importados del extranjero admiten este protocolo. Por lo tanto, el uso del protocolo Modbus en este artículo para lograr la comunicación en serie tiene un amplio valor de aplicación.

QQ94504093