¿Cuántos métodos existen para escribir un programa de pantalla táctil plc? ¿Cuáles son las diferencias?
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 p>
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