Implementación de un dispositivo de protección integral de motores mediante comunicación serie RS-485 y protocolo Modbus

Jan 04, 2026 Dejar un mensaje

1 Introducción

 

Los microcontroladores se aplican cada vez más en dispositivos de control automatizados, sistemas de protección integrados basados ​​en microprocesadores-para redes eléctricas y otros campos de control de automatización industrial, y la complejidad de estos dispositivos crece de manera constante. Para abordar las demandas de tareas múltiples-en tiempo real y en tiempo real de los objetivos de desarrollo, el modelo de una sola-CPU y un único-desarrollador está siendo reemplazado por un enfoque colaborativo que involucra múltiples CPU de varios tipos y múltiples desarrolladores. Este nuevo paradigma de desarrollo introduce un desafío crítico: estandarizar el hardware y el software para el intercambio de información entre CPU durante la implementación. Esta estandarización es fundamental para la adopción exitosa de este nuevo modelo. Entre numerosos métodos de comunicación, el protocolo de comunicación serie RS-485 basado en UART-se adopta ampliamente debido a su cableado simple, alta confiabilidad y capacidad para admitir múltiples CPU. En cuanto a los protocolos de comunicación de software, el protocolo Modbus ofrece importantes ventajas a los usuarios debido a su naturaleza universal y su software de depuración maduro. Por lo tanto, durante el desarrollo del nuevo dispositivo de protección integral del motor, se adoptaron el método de comunicación en serie RS-485 y el protocolo de comunicación Modbus para lograr el intercambio de información de comandos de control y datos entre múltiples CPU. Para mejorar la eficiencia y coordinación de la comunicación en serie, el autor implementó numerosas medidas en la arquitectura de hardware y software del mecanismo de comunicación, logrando excelentes resultados. Durante la fase de depuración de la comunicación del sistema, se empleó un método en el que cada módulo de CPU se comunicaba primero con el software de prueba Modbus estándar antes de someterse a una depuración de interconexión mutua, lo que mejoraba significativamente la eficiencia del desarrollo colaborativo. La práctica ha demostrado que esta filosofía de diseño simplifica la estructura del sistema y al mismo tiempo mejora en gran medida la eficiencia operativa y la confiabilidad del dispositivo.


2 Características del Dispositivo de Protección Integral del Motor


Más allá de las funciones de protección integrales, el dispositivo de protección del motor integra capacidades de medición, telecontrol y comunicación. Su gran-pantalla LCD con caracteres chinos permite una interfaz-fácil de usar. Al utilizar la comunicación del bus CAN con el host de monitoreo, forma un subsistema dentro de un sistema de automatización de subestación distribuido y jerárquico. Para optimizar la funcionalidad del sistema para sus requisitos de tareas múltiples-, se adoptó una arquitectura de CPU múltiples-. Una CPU maneja el muestreo y la transmisión de pulsos periódicos; el módulo principal de la CPU gestiona el procesamiento de datos, el cálculo de parámetros eléctricos, el diagnóstico de fallas y las operaciones de conmutación; mientras que la CPU del módulo de placa supervisa la interacción entre humanos-máquina y facilita la comunicación con el módulo de protección principal y el host de monitoreo. Cada módulo de CPU tiene tareas claramente definidas, lo que facilita el desarrollo colaborativo por parte de varios ingenieros durante la implementación. La comunicación en serie vincula la CPU principal y la CPU del panel, lo que permite la interacción hombre-máquina y, por lo tanto, ocupa una posición crítica. Establecer un mecanismo de comunicación racional es el núcleo de la sección de comunicación en serie, lo que determina la coordinación de la comunicación y la eficiencia de la depuración durante las últimas etapas del desarrollo del sistema.


3 Introducción a los mecanismos de comunicación

 

3.1 Diseño de hardware del mecanismo de comunicación

El mecanismo de comunicación propuesto para este sistema apunta a una alta eficiencia y confiabilidad. RS-485 emplea una estructura semid-dúplex, que suele ser más práctica que full-duplex en aplicaciones de campo. Aquí se adopta una conexión simplificada que utiliza sólo dos líneas de señal. El diagrama del circuito de la interfaz del sistema se muestra en la Figura 1. Los niveles lógicos TTL emitidos por el microcontrolador 8051 en el módulo de protección principal están aislados ópticamente y luego el chip MAX485 los convierte a niveles RS-495. Posteriormente, el chip MAX485 en el módulo del panel los convierte nuevamente a niveles lógicos TTL para que los lea el microcontrolador 8031. En el lado del microcontrolador 8051, el pin P2.7 del puerto de E/S paralelo 2 controla el pin RE de habilitación de entrada MAX y el pin DE de habilitación de salida. Como se muestra en la Figura 1, cuando P2.7 genera un nivel alto, RE se habilita, lo que permite que el lado del microcontrolador reciba datos. Cuando P2.7 genera un nivel bajo, DE se habilita, lo que permite que el lado del microcontrolador transmita datos. Este enfoque evita la pérdida de datos debido a la superposición causada por la transmisión ciega, lo que garantiza una alta calidad de comunicación y una velocidad de transmisión confiable.

采用RS-485串行通信和Modbus通信协议实现电动机综合保护装置的设计

 

3.2 Protocolo de comunicación

 

Para garantizar una transmisión de datos precisa entre dos módulos dentro del dispositivo de protección, es esencial un conjunto de especificaciones que rigen la transferencia de información-incluidos los modos de transmisión, los formatos de datos y el contenido-. Esto constituye el protocolo o protocolo de comunicación. Sin un software de depuración maduro y fácilmente disponible, el módulo principal de la CPU funciona esencialmente como una caja negra, lo que genera numerosos y difíciles-de-retos de superar durante las pruebas de integración del sistema. Por lo tanto, se seleccionó y simplificó el protocolo de comunicación Modbus, ampliamente adoptado, para adaptarlo a los requisitos específicos del dispositivo, lo que permite una comunicación exitosa entre-módulos con efectividad comprobada. Modbus emplea un modelo de comunicación maestro-esclavo. El maestro primero envía un comando de solicitud de comunicación al esclavo. Luego, el esclavo responde al maestro con datos basados ​​en el código de función dentro del comando de solicitud. Cada esclavo posee una dirección única. Tanto las tramas de solicitud enviadas por el maestro como las tramas de respuesta enviadas por el esclavo comienzan con la dirección del esclavo. Los esclavos solo leen comandos dirigidos a ellos mismos e ignoran los mensajes que comienzan con otras direcciones de esclavos. Esta funcionalidad se implementa utilizando el modo 2 o 3 del puerto serie 8051. Este modelo de comunicación de preguntas-y-respuestas mejora significativamente la precisión de la comunicación. En este dispositivo se adopta el modo de transmisión RTU de Modbus.


Cuatro medidas para mejorar la confiabilidad de la comunicación


Los dos últimos bytes de un mensaje Modbus sirven como bytes de suma de comprobación. La comunicación RTU emplea verificación de redundancia cíclica CRC-16 para la detección de errores. Su mecanismo de codificación/decodificación es relativamente simple con una baja tasa de error, que se puede lograr mediante métodos computacionales o de programación. A continuación se describen varios enfoques:


4.1 Algoritmo básico (cálculo manual)


Usando CRC16-CCITT como ejemplo: la suma de comprobación CRC es de 16 bits y el polinomio generador es de 17 bits. Supongamos que el flujo de datos tiene 4 bytes: BYTE, BYTE, BYTE, BYTE[0];


Desplace el flujo de datos a la izquierda en 16 bits, expandiéndolo efectivamente en un factor de 256 × 256. Luego realice la división por el polinomio generador 0x11021 usando una división no prestada (equivalente a XOR bit a bit). El resto resultante es la suma de comprobación CRC. El flujo de datos transmitido consta de 6 bytes: BYTE, BYTE, BYTE, BYTE[0], CRC, CRC[0].


4.2 Algoritmo informático 1 (algoritmo de tipo bit-)


1) Coloque los 16 bits superiores (BYTE, BYTE) del flujo de datos expandido (6 bytes) en un registro de 16 bits;

2) Si el bit más significativo del registro es 1, desplace el registro un bit hacia la izquierda (obteniendo el bit menos significativo del siguiente byte), luego realice una operación XOR con la forma simplificada del polinomio generador; de lo contrario, simplemente desplace el registro un bit hacia la izquierda (obteniendo el bit menos significativo del siguiente byte);

3) Repita el paso 2 hasta que todo el flujo de datos (6 bytes) se transfiera al registro;

4) El valor en el registro es la suma de comprobación CRC CRC, CRC[0].

 

4.3 Algoritmo informático 2 (algoritmo de tipo Byte-) (256^n denota 256 elevado a la potencia de n)

 

Representa el flujo de datos ordenado-por bytes como un polinomio matemático. Deje que el flujo de datos sea BYTE[n] BYTE[n-1] BYTE[n-2] ... BYTE[0] se representa como la expresión matemática

BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0], donde "+" indica la operación XOR. Sea el polinomio generador G17 (17 bits), entonces el código CRC es CRC16.

CRC16=(BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0]) × 256^2 / G17

Esto implica desplazar el flujo de datos a la izquierda 16 bits y luego dividirlo por el polinomio generador G17.

La derivación muestra que el código de verificación CRC para BYTE[n-1] es igual al resultado XOR de los 8 bits superiores del código de verificación CRC del byte anterior Y[n] (YH8[n]) y el byte actual BYTE[n-1].


El algoritmo de tipo byte-es el siguiente:


1) Inicialice el grupo de registros CRC a todos "0" (0x0000).

2) Desplace el grupo de registros CRC 8 bits hacia la izquierda y guárdelo en el grupo de registros CRC.

3) Realice una operación XOR entre los 8 bits altos del grupo de registros CRC original (desplazados 8 bits a la derecha) y el byte de datos para obtener un índice que apunte a la tabla de valores.

4) Realice una operación XOR entre el valor de la tabla señalado por el índice y el grupo de registros CRC.

5) Incrementar el puntero de datos. Si el procesamiento de datos no se completa, repita el paso 2).

6) Obtener la CRC.

 

5 medidas para mejorar la eficiencia de la comunicación

 

5.1 Tareas de recepción y transmisión de comunicación separadas


El microcontrolador 8051 puede transmitir y recibir datos a través del puerto serie mediante interrupciones. El controlador de puerto serie SCON admite inicialización y direccionamiento de bits. Cuando se produce una solicitud de interrupción del puerto serie, los dos bits inferiores de SCON bloquean las interrupciones de transmisión y recepción. Cuando la CPU escribe datos o un carácter en el buffer de transmisión SUBF del puerto serie (instrucción: MOV SUBF, A), el transmisor comienza a enviar. Después de completar una trama de datos, el hardware establece el indicador TI en "1", lo que indica que el puerto serie está solicitando una interrupción de la CPU para enviar la siguiente trama de datos. De manera similar, si el receptor del puerto serie está habilitado para la recepción, al recibir una trama de datos, el indicador RI se establece en 1, lo que indica que el puerto serie está solicitando una interrupción de la CPU para leer datos del búfer de datos de recepción.


5.2 Reducción de la duración de la interrupción


Dado que se emplean múltiples interrupciones en el diseño de la arquitectura del software, para garantizar un funcionamiento confiable del programa y minimizar la probabilidad de conflictos entre diferentes tareas, la implementación del software debe esforzarse por optimizar las tareas de varias interrupciones y acortar su tiempo de ejecución. Dentro de la subrutina de interrupción de comunicación, realice tareas esenciales al ingresar a la interrupción, tales como: borrar los bits de estado correspondientes en el registro de control del puerto serie, leer los caracteres recibidos o escribir los caracteres que se transmitirán desde/hacia el buffer, incrementar el recuento de caracteres recibidos o transmitidos, etc. Luego salga de la interrupción inmediatamente. Otras tareas, como validar tramas, responder a comandos de tramas recibidas (telemetría/telecomando) y preparar tramas de transmisión, deben manejarse dentro del programa principal.


5.3 Detección eficiente de terminación de trama para evitar el estancamiento de la comunicación


La utilización de un temporizador de software dedicado para detectar el final de una trama recibida evita que las tareas de comunicación se demoren si una trama se recibe de forma incompleta, lo que garantiza la recepción oportuna de las tramas posteriores. Dado que el intervalo de tiempo entre bytes dentro de un fotograma es mucho más corto que el intervalo entre fotogramas-a-fotogramas, el temporizador del software se inicia cada vez que se recibe un nuevo byte. El temporizador está configurado en el intervalo mínimo de cuadro-a-cuadro. Este intervalo varía con diferentes velocidades en baudios. Si se recibe el siguiente byte antes de que transcurra el tiempo preestablecido, indica que la trama está incompleta y el temporizador se reinicia. Si el temporizador cuenta atrás con éxito hasta el tiempo preestablecido, activa el número de interrupción correspondiente. Dentro de la subrutina de interrupción del temporizador, se establece el byte del indicador de fin de trama, lo que significa que la recepción de la trama se ha completado. Después de que el programa maestro detecta que se completó la recepción de una trama, valida la integridad de la trama verificando la dirección esclava y el byte de verificación de redundancia cíclica (CRC). Si se confirma como una trama válida destinada al maestro, procesa el comando de trama según su código de función y se prepara para enviar una trama. Cuando el esclavo recibe un mensaje incorrecto, devuelve una trama de error. Si el mensaje recibido tiene un CRC incorrecto, el esclavo puede optar por no responder. Si el maestro no recibe una respuesta del esclavo dentro del tiempo especificado, retransmitirá el mensaje de solicitud. Si varias retransmisiones no reciben una respuesta del esclavo, se informa una falla de comunicación.


5.4 Determinación de la velocidad de comunicación


Dado que todos los dispositivos residen dentro del mismo chasis, la distancia entre módulos es mínima. Modbus opera en RS485 para comunicaciones de larga-distancia, lo que elimina la necesidad de considerar los efectos de la distancia en la velocidad en baudios. Además, el modo de comunicación maestro-esclavo evita la congestión de la línea. Por lo tanto, desde la perspectiva de la eficiencia de la comunicación, siempre que la velocidad en baudios establecida no exceda el límite máximo de velocidad en baudios del chip utilizado en el módulo, una velocidad en baudios más alta da como resultado un intercambio de información más rápido y una mayor eficiencia en la comunicación. Configurar la velocidad en baudios para que sea exactamente la misma para ambas partes de la comunicación garantiza que el extremo receptor muestree cada bit de datos en el punto medio del ciclo de bits, logrando así una comunicación confiable.


5.5 Métodos de depuración razonables


Durante la depuración, primero pruebe la comunicación entre cada módulo de CPU y la microcomputadora a través del módulo de conversión de datos RS485/RS232. Después de realizar pruebas individuales exitosas, proceda a la depuración entre-módulos, lo que mejorará significativamente la eficiencia general de la depuración. Durante la depuración de comunicación del módulo-a-computadora, la computadora emplea el software de depuración Modbus para simular el proceso de comunicación del maestro, solicitando activamente información del esclavo. Esto hace que todo el proceso de recepción y transmisión sea transparente y claro, lo que permite la resolución oportuna de los problemas del módulo. Durante la depuración conjunta, el software de monitoreo de autobuses observa los datos de ambos lados para identificar y resolver problemas rápidamente.

 

6 puntos de innovación de este documento


En primer lugar, este documento adopta Modbus, un estándar industrial universal, en el dispositivo de protección. El software de herramienta requerido se puede obtener directamente de los sitios web relevantes sin incurrir en costos de propiedad intelectual. En segundo lugar, el dispositivo de protección implementa multitarea y utiliza el protocolo Modbus para crear un mecanismo de depuración conjunto razonable entre los módulos de CPU, lo que mejora en gran medida la eficiencia del desarrollo colaborativo del sistema.

Envíeconsulta

whatsapp

Teléfono de contacto

Correo electrónico

Consulta