Al cargar el programa plc, se producen los siguientes errores
El procedimiento de análisis para los siguientes errores al cargar programas de PLC es el siguiente:
Resultados de la investigación de automatización contenido de programación:
1. El cableado no se combina con el comienzo del PLC, todos tienen un pensamiento inercial y tratan todos los interruptores conectados a los puntos de entrada del PLC como entradas normalmente abiertas. El programa escrito de esta manera está muy cerca del circuito de control del diagrama esquemático eléctrico. . Por ejemplo, si la parte de control del circuito de autobloqueo está controlada por un PLC, creo que los programas escritos por la mayoría de los principiantes deberían ser así. Obviamente, este programa no se ejecutará correctamente cuando se descargue al PLC. Después de encender el PLC, tanto X1 como La solución es cambiar la entrada del circuito externo a contactos normalmente abiertos o cambiar X1 y X2 en el programa a contactos normalmente abiertos. Sin embargo, todavía se recomienda cambiar el programa. Después de todo, el programa depende de la conexión correcta de los circuitos periféricos. Por ejemplo, el botón de parada de emergencia más común en los equipos está conectado a un contacto normalmente cerrado, así que preste especial atención al escribir programas.
2. Salida de bobina múltiple
Este problema es más común entre los principiantes. Se puede decir que personas de 90 años han pisado este problema. Sólo hay dos razones: una es que el principio de funcionamiento del PLC no se puede entender bien y la otra es debido a procedimientos irregulares.
Aunque la bobina de un mismo dispositivo puede aparecer dos o más veces en el programa, generalmente no se permite la salida de doble bobina. Tenga en cuenta que estoy hablando de situaciones generales. Por ejemplo, el jog X0 controla la salida Y0. Puedo escribirlo en forma de doble bobina como se muestra a continuación, pero este programa no tiene sentido.
3. Los temporizadores específicos de subprogramas no se utilizan en los subprogramas
Mitsubishi Fx3U está equipado con 8 temporizadores que se pueden usar para subprogramas: T192~T199 (también se pueden usar como se usan). un temporizador normal). No se utilizan muchos temporizadores específicos de subrutina en proyectos de ingeniería. Su función es seguir ejecutándose en la subrutina cuando la subrutina deja de llamar.
4. Utilice la instrucción de reinicio en la subrutina. Si utiliza un contador para contar en el programa principal y reinicia el contador llamando a la subrutina, encontrará que la calculadora ya no puede contar. De hecho, cuando enseño subrutinas, enfatizo específicamente este tema. No utilice instrucciones de reinicio y flanco en las subrutinas (a menos que pueda manejar bien su relación lógica, pero cuando hable del programa de medición de velocidad del motor más adelante, todavía lo es). Lo mismo. Algunos estudiantes pueden escribir contadores de reinicio de alta velocidad en subrutinas, lo que hace que el programa no se pueda depurar. Para analizar por qué ocurre esta situación, primero debemos estar familiarizados con el principio de funcionamiento del PLC: ciclo de escaneo (también llamado ciclo de operación). Tomando la figura anterior como ejemplo, después de que el sistema ingresa a la subrutina, ejecutará [RST C0] y luego regresará a la ubicación de llamada. En este momento, el sistema ha reiniciado el contador C0, pero el sistema no ha escaneado la condición para ejecutar [RST C0] para desconectarse. Por lo tanto, a juicio del sistema, el comando [RST C0] se considerará en un estado. estado de siempre en ejecución, es decir, como resultado, C0 se ha reiniciado y no puede volver a contar.
5. Utilice la instrucción MOV para restablecer el contador. La instrucción de transferencia puede borrar el valor actual del contador, pero no puede restablecer el contacto del contador. Por esta razón, aquellos que han estudiado ST. La programación de texto estructurado lo entenderá, pero no lo explicaré aquí.
6. Utilizado en el bloque FB.
7. El tipo de datos no coincide con las instrucciones
Los humanos podemos comparar fácilmente los dos números 1,5 y 5. Siempre que la inteligencia sea normal, todos sabemos 1,5lt; 5. Pero para las computadoras (el PLC también puede considerarse una calculadora, después de todo, también se ajusta al sistema de von Neumann), no es tan simple. Para PLC, solo se puede comparar el mismo tipo de datos. 5.0 y 5 son completamente diferentes en cualquier equipo informático. Esto implica otro conocimiento básico de PLC: tipo de datos (hablaré de ello cuando tenga tiempo más adelante). en detalle). Los métodos de almacenamiento de datos enteros y datos de punto flotante son diferentes. Si lee los datos en el mismo registro utilizando diferentes métodos de lectura de datos, los resultados serán diferentes.
Cuando se utilizan la mayoría de las instrucciones, el valor del registro se llama mediante el mismo tipo de datos de forma predeterminada, por lo que no se pueden mezclar datos de diferentes tipos. El error cometido en la imagen de arriba es utilizar la instrucción de comparación de enteros dobles para comparar números de punto flotante y enteros dobles. El resultado definitivamente es incorrecto. Sin embargo, el FX3U de Mitsubishi tampoco tenía instrucciones de comparación de punto flotante, y el posterior FX5U llenó este vacío.
8. Los números de coma flotante a veces no se pueden comparar directamente con la instrucción de igualdad. Hemos calculado 0,11 × 2,6 = 0,286, asignamos 0,286 al registro D0 y luego utilizamos la comparación de contactos [LDE = D0 0,286]. instrucción para generar la bobina Y0, ¿cuál es el resultado? D0 es obviamente igual a 0,286. Lógicamente, este contacto debe activarse y emitir Y0. ¿Por qué existe tal situación sin salida? La razón del problema "contraintuitivo" anterior tiene que ver con la forma en que se representan los números de punto flotante en las computadoras. En un PLC pequeño (como FX3U), solo hay números de punto flotante de precisión simple, y el estándar utilizado es el estándar IEEE-754 (lo presentaré específicamente cuando tenga tiempo más adelante). , Y esta situación ocurre en cualquier computadora y cualquier lenguaje de programación es inevitable, causada principalmente por la conversión de base incompleta de números decimales a números binarios. Por ejemplo, convertir 0,65 a un número binario da como resultado (0,65)10=(0,10100110011001...)2. Si realiza más conversiones, "0011" se calculará infinitamente repetidamente. Por lo tanto, solo puede obtener un valor aproximado. El error de los números de coma flotante. En el ejemplo anterior, utilizo otro lenguaje de programación, LabVIEW, para mostrarle lo que calculará la computadora al calcular 0,11 × 2,6. Después de un vistazo rápido, comprenderá por qué no se puede generar Y0.
Sí, el resultado calculado por la computadora es 0.28600000000
9. Números de registro superpuestos
Este problema también ocurre con frecuencia. La imagen de arriba es una respuesta escrita por. un estudiante En el programa de origen, es obvio que D0 y D1 han formado un registro de tipo entero doble. Si se usa D1 nuevamente, es un caso de reutilización del registro que solo se puede omitir y D2 se usa para almacenar los siguientes datos. . Para aquellos que han cometido este error, no entraré en detalles aquí, pero primero me daré una bofetada. 10. Cuando utilice la programación de etiquetas, no preste atención a los componentes blandos asignados automáticamente que están ocupados. De hecho, muchos profesores no están dispuestos a enseñar a los estudiantes a usar la programación de etiquetas, porque si hay algunas personas que no pueden usar esta cosa bien, el El maestro se cansará de enseñar. Pero enseño y prefiero las cosas que suponen un desafío. Más cerca de casa, en realidad es fácil resolver este problema. Utilice etiquetas (incluidas matrices) en lugar de utilizar directamente el método de programación de numeración de dispositivos o modifique la asignación automática de la configuración del dispositivo. ¿Qué~no puedes entender? Nuevamente, tendré tiempo para explicarlo más adelante. 11. Al escribir programas relacionados con el posicionamiento, la salida de pulso del mismo eje está estrechamente relacionada con Emmm. Mirando directamente los registros de chat, muchos estudiantes todavía hacen esta pregunta. Permítanme darles una breve descripción. Cuando muchas personas realizan el control de posicionamiento multipunto del mismo eje, utilizarán inmediatamente el indicador de finalización de esta instrucción como indicador de inicio de la siguiente instrucción de posicionamiento tan pronto como terminen de ejecutar un posicionamiento. instrucción de control En este momento, encontrará que el segundo comando de posicionamiento no funciona en absoluto y el motivo aún está relacionado con el principio de funcionamiento del PLC. Por ejemplo, este programa que controla Y0 para realizar un posicionamiento relativo dos veces es un método de programación "perfecto" (este es un material didáctico negativo, no aprenda esto). Cuando finaliza la primera instrucción DRVI, se configura M11 y se restablece M10. En este momento, el PLC no ha escaneado FINAL. Desde el punto de vista del sistema, la instrucción de posicionamiento impulsada por M10 no ha finalizado y ha comenzado de nuevo. Para la siguiente instrucción DRVI, el sistema pensará que hemos ejecutado dos instrucciones de control de posicionamiento al mismo tiempo, por lo que no podrá ejecutarse. La forma correcta de manejarlo es agregar un cierto tiempo muerto entre las dos instrucciones. ¿Te deseo una vida feliz y gracias por preguntar?