Diseño de interferencias de software de control industrial.
1. Características estructurales y canales de interferencia del software de control industrial
En diferentes sistemas de control industrial, aunque el software de control industrial realiza diferentes funciones, en cuanto a su estructura, generalmente tiene las siguientes características: Características:
Tiempo real: algunos eventos en los sistemas de control industrial ocurren aleatoriamente, lo que requiere que el software de control industrial maneje eventos aleatorios de manera oportuna.
Periodicidad: Después de completar la inicialización del sistema, el software de control industrial ingresa al bucle principal del programa. Durante la ejecución del programa principal, si hay una solicitud de interrupción, el bucle del programa principal continuará después de que se ejecute la rutina de servicio de interrupción correspondiente.
Relevancia: el software de control industrial se compone de múltiples módulos de tareas. Cada módulo funciona en conjunto, está interrelacionado y es interdependiente.
Humanidad: El software de control industrial permite a los operadores intervenir en el funcionamiento del sistema y ajustar los parámetros de trabajo del sistema.
En circunstancias ideales, el software de control industrial puede ejecutarse normalmente. Sin embargo, bajo la interferencia del entorno del campo industrial, la periodicidad, correlación y naturaleza en tiempo real del software de control industrial se destruyen y el programa no se puede ejecutar normalmente, lo que resulta en la pérdida de control del sistema de control industrial. es:
Valor de PC del contador del programa Se producen cambios que interrumpen el funcionamiento normal del programa. Los datos después de que se altera el valor de la PC son aleatorios, lo que causa confusión en la ejecución del programa. Bajo la guía incorrecta del valor de la PC, el programa ejecuta una serie de instrucciones sin sentido y, a menudo, termina entrando en un "bucle infinito" sin sentido, lo que provoca. El sistema está fuera de control.
El estado de la interfaz de entrada/salida se altera, destruyendo la relevancia y periodicidad del software de control industrial, provocando que los recursos del sistema sean monopolizados por un determinado módulo de tareas, provocando que el sistema se "bloquee".
El error de recogida de datos aumenta. La interferencia invade el canal directo del sistema y se superpone a la señal, lo que provoca que aumenten los errores de adquisición de datos. Especialmente cuando la interfaz del sensor del canal directo es una entrada de señal de pequeño voltaje, este fenómeno es más grave.
El área de datos de la RAM ha sido alterada y modificada. Dependiendo del canal de interferencia y la naturaleza de los datos interferidos, el sistema se daña de diferentes maneras. Algunos causan errores numéricos, otros causan fallas de control, algunos cambian el estado del programa y algunos cambian ciertos componentes (como temporizadores/contadores). , puerto serie, etc.) estado de funcionamiento, etc. Cuando el autor estaba desarrollando un sistema de lectura remota de medidores de energía, se encontró con situaciones en las que los datos de la RAM se destruían con frecuencia debido a una fuerte interferencia electromagnética en el sitio.
Fallo en el estado del control. En los sistemas de control industrial, la salida de un estado de control a menudo está determinada por la entrada de ciertos estados condicionales y los resultados del procesamiento lógico de los estados condicionales. En estos enlaces, debido a la intrusión de interferencias, se producirán errores de estado de condición, lo que dará como resultado mayores errores de control de salida e incluso trastornos de control.
2. Contramedidas de software para el funcionamiento anormal del programa
El sistema está sujeto a interferencias y daños, lo que hace que el valor de la PC cambie y el programa se ejecute de manera anormal. Las contramedidas de software para el funcionamiento anormal del programa son principalmente guiar rápidamente al sistema para restaurar el estado original después de descubrir el estado anormal.
1. Configure el temporizador de monitoreo y seguimiento.
Utilice interrupciones programadas para monitorear el estado de ejecución del programa. El tiempo de temporización del temporizador es ligeramente mayor que el tiempo necesario para que el programa principal se ejecute normalmente durante un ciclo. Se realiza una operación de actualización de la constante de tiempo del temporizador durante la ejecución del programa principal. De esta forma, mientras el programa se ejecute normalmente, el temporizador no se interrumpirá periódicamente. Cuando el programa se ejecuta de manera anormal y no puede actualizar la constante de tiempo del temporizador, lo que provoca una interrupción programada, se utiliza el programa de servicio de interrupción programada para restablecer el sistema. Como ejemplo de antiinterferencia de software en el sistema de aplicación 8031, el método específico es:
Utilice la señal de "desbordamiento" generada por el temporizador 8155 como fuente de interrupción externa INT1 del 8031. Utilice el temporizador 555 como entrada de reloj externo del temporizador en el 8155;
El valor de tiempo del temporizador 8155 es ligeramente mayor que el tiempo de ciclo normal del programa principal;
En el programa principal, cada ciclo Una vez, actualiza la constante de temporización del temporizador 8155;
Al comienzo del programa de control principal, clasifica y juzga si el reinicio del hardware o la recuperación automática causada por una interrupción temporizada.
2. Configure trampas de software
Cuando la PC está fuera de control, lo que hace que los programas "volen" y entren constantemente en áreas que no son del programa, siempre que se establezcan medidas de interceptación. en las áreas que no son del programa para hacer que los programas entren en la trampa y luego fuerce al programa a ingresar al estado inicial. Por ejemplo, los datos FFH en el sistema de comando Z80 corresponden al comando de reinicio RST 56, lo que hace que el programa se transfiera automáticamente a la dirección de entrada 0038H.
Por lo tanto, en un sistema de aplicación compuesto por una CPU Z80, todas las áreas que no son de programa solo necesitan configurarse en FFH para interceptar programas fuera de control. Y configure la instrucción de transferencia en 0038H para transferir el programa al programa de procesamiento antiinterferencia.
3. Contramedidas de software para el “bloqueo” del sistema
En los sistemas de control industrial, A/D, D/A, visualización y otros circuitos de interfaz de entrada/salida son esenciales. Estas interfaces funcionan en modo de consulta o interrupción con la CPU, y estos dispositivos o interfaces son muy sensibles a la interferencia. Una vez que la señal de interferencia destruye la palabra de estado de una determinada interfaz, la CPU pensará erróneamente que la interfaz tiene una entrada. /Solicitud de salida. Detenga el trabajo actual y ejecute el programa de servicio de entrada/salida correspondiente. Sin embargo, dado que la interfaz en sí no tiene datos de entrada / salida, los recursos de la CPU son ocupados por el programa de servicio durante mucho tiempo sin liberarse y otros programas de tareas no se pueden ejecutar, lo que provoca un "punto muerto" en todo el sistema. El problema del "punto muerto" causado por esta interferencia se puede resolver utilizando el método de "intervalo de tiempo" en la programación de software. Los pasos específicos son:
De acuerdo con los requisitos de tiempo de los diferentes periféricos de entrada/salida, asigne el tiempo máximo normal de entrada/salida correspondiente.
En cada módulo de tarea de entrada/salida, agregue el programa de evaluación de tiempo de espera correspondiente. De esta manera, cuando la interferencia destruye el estado de la interfaz y causa un mal funcionamiento de la CPU, debido a que la información de periférico listo no es válida durante mucho tiempo, el sistema regresará automáticamente del programa de servicio del periférico después de un cierto período de tiempo, asegurando que la periodicidad de todo el software no se ve afectada, evitando así la aparición de situaciones de "punto muerto".
4. Contramedidas de software para errores de recopilación de datos
Según la naturaleza de la interferencia de datos y las consecuencias de la interferencia, las contramedidas de software tomadas varían y no existe un modelo fijo. Para los sistemas de adquisición de datos en tiempo real, con el fin de eliminar las señales de interferencia en los canales de los sensores, a menudo se utilizan redes RLC activas o pasivas como medidas de hardware para formar filtros analógicos para implementar el filtrado de frecuencia de las señales. De manera similar, el filtrado de frecuencia también se puede implementar utilizando las funciones informáticas y de control de la CPU para completar funciones similares a los filtros analógicos. Este es el filtrado digital. Hay discusiones especiales en muchas monografías de procesamiento de señales digitales, a las que se puede hacer referencia. Con la mejora de la velocidad informática, la aplicación del filtrado digital en sistemas de adquisición de datos en tiempo real se generalizará cada vez más.
En los sistemas generales de adquisición de datos, se pueden utilizar algunas operaciones numéricas y lógicas simples para lograr efectos de filtrado. A continuación se muestran algunos métodos utilizados habitualmente.
1. Método de la media aritmética
Muestrear un punto de datos continuamente varias veces, calcular su media aritmética y utilizar el valor medio como resultado del muestreo de ese punto.
Este método puede reducir el impacto de la interferencia aleatoria del sistema en los resultados de la recopilación. Generalmente es suficiente una media de 3 a 5 veces.
2. Método de comparación y selección
Cuando hay desviaciones en los datos individuales de los resultados de medición del sistema de control, para eliminar datos erróneos individuales, se puede utilizar el método de comparación y selección. utilizado, es decir, midiendo continuamente cada punto de muestreo Muestreo varias veces, determine la elección en función del patrón de cambio de los datos recopilados, eliminando así los datos sesgados. Por ejemplo, "tomar dos de tres" significa muestrear cada punto de muestreo tres veces seguidas y tomar los mismos datos dos veces como resultado del muestreo.
3. Método de la mediana
Según la situación en la que los datos de muestreo son demasiado grandes o demasiado pequeños debido a la interferencia, se recopilan continuamente múltiples señales en un punto de muestreo y estos valores muestreados. Se comparan. Tome el valor mediano como resultado del muestreo en este punto.
4. Método de filtrado digital recursivo de primer orden
Este método utiliza software para completar el algoritmo del filtro de paso bajo RC, implementando el uso de métodos de software para reemplazar el RC de hardware. filtrar. La fórmula del filtro digital recursivo de primer orden es Yn=QXn+(1-Q)Yn-1
donde Q - constante de tiempo del filtro digital;
Xn - en el enésimo muestreo El filtro input;
Yn: la salida del filtro en el enésimo muestreo.
El uso de filtros de software puede lograr resultados satisfactorios en la eliminación de errores en la recopilación de datos. Sin embargo, cabe señalar que el método a seleccionar debe seleccionarse de acuerdo con el patrón de cambio de la señal.
5. Contramedidas de software para errores de datos de RAM
En el proceso de control en tiempo real, uno de los peligros más graves causados por la interferencia es la destrucción de datos en la RAM, porque lo que es almacenado en la RAM Si se destruyen varios datos sin procesar, indicadores, variables, etc., se producirán errores del sistema o fallas en el funcionamiento. Según el grado de destrucción de los datos, generalmente se pueden dividir en tres categorías:
Se destruyen todos los datos de la RAM;
Se destruye una cierta parte de los datos en la RAM;
Se destruyen datos individuales.
En los sistemas de control industrial, la mayor parte del contenido de la RAM se almacena temporalmente para su análisis y comparación, y solo no se permite que se pierda una parte muy pequeña de los datos. En este caso, a excepción de los datos que no se permite perder, se permite que la mayor parte del resto del contenido se dañe en un corto período de tiempo, como máximo, solo provocará una fluctuación a corto plazo del sistema. pronto volverá automáticamente a la normalidad. Por lo tanto, en el software de control industrial, siempre que se preste atención a proteger una pequeña cantidad de datos que no se pueden perder, los métodos comúnmente utilizados son el "método de verificación" y el "método de marcado". Estos dos métodos tienen sus propias ventajas. El método de verificación es más complicado, pero la confiabilidad de la detección de errores es alta. El método de marcado es simple, pero cuando se destruyen datos individuales en la tabla de datos, es fácil verificar si hay errores. Generalmente debe usarse de manera integral en programación. El método específico es:
Establezca un código de marca "0" o "1" al principio y al final del área importante del área de trabajo de la RAM; /p>
Establezca la palabra de verificación para la tabla de datos fijos en la RAM.
Durante la ejecución del programa, se utiliza el programa de verificación de errores prediseñado para verificar si los códigos de bandera son normales en ciertos intervalos. De lo contrario, se utiliza tecnología de redundancia de datos para pasar el procesamiento antiinterferencias. programa para hacer correcciones; los principios generales de diseño de las tablas de datos redundantes son:
Cada tabla de datos debe configurarse lejos una de la otra para reducir la probabilidad de que los datos redundantes se destruyan al mismo tiempo.
La tabla de datos debe estar lo más lejos posible del área de la pila para reducir la posibilidad de que la pila se llene de datos debido a errores operativos.
Los métodos de procesamiento de recuperación mencionados anteriormente para el área de RAM deben seleccionarse de acuerdo con las condiciones específicas en diferentes sistemas de aplicación.
6. Contramedidas de software para estados de control anormales
En los sistemas de control condicional, a las personas les preocupa si se puede garantizar el estado de control normal. Si la interferencia ingresa al sistema, afectará varias condiciones de control y provocará errores de salida de control. Para garantizar la seguridad del sistema, se pueden tomar las siguientes medidas antiinterferencias de software:
1. Redundancia de software
Para el sistema de control de condición, cambie la configuración única. salida de control de muestreo y procesamiento de las condiciones de control a salida de control de muestreo, procesamiento y bucle. Este método tiene buena resistencia a la interferencia de factores accidentales.
2. Configure la unidad de registro del estado de salida actual
Cuando la interferencia invade el canal de salida y provoca que se destruya el estado de la salida, el sistema puede consultar la información del estado de salida de la salida actual. registre el estado de la unidad a tiempo y corrija el error a tiempo.
3. Configure un programa de autoprueba
Establezca indicadores de estado en partes específicas del sistema informático o en ciertas unidades de memoria, y pruebe continuamente en ciclos durante el funcionamiento para garantizar que la información sea correcta. almacenados y almacenados en el sistema. Alta confiabilidad de transmisión y operación.
Los diversos métodos de programación antiinterferencias para software de control industrial presentados anteriormente son la experiencia del autor en la práctica laboral. Siempre que se tomen las medidas antiinterferentes correspondientes durante el diseño del software de control industrial, se pueden obtener mejores efectos antiinterferentes.