Jump to content
  • Sign in to follow this  

    Tia Portal – Bloque de organización de interrupción por errores de programación OB121

       (0 reviews)

    leigehong

    En este artículo, continuamos nuestra discusión sobre los diferentes tipos de bloques de organización en los PLC de Siemens. Esta vez, hablaremos sobre el OB121 o la interrupción por errores de programación en el portal Tia.

    Contenido:

    • ¿Qué son las interrupciones por errores de programación OB121?
    • Ejemplos de errores de programación.
    • ¿Qué sucederá si se detecta un error de programación?
    • Simulación de un error de programación en el portal TIA.
    • ¿Cómo puede ser útil el OB121 contra los errores de programación?
    • Conclusiones.

    ¿Qué son las interrupciones por errores de programación (OB121)?

    El OB121 es un bloque de organización que será llamado por el sistema operativo del PLC si ocurre un error de programación mientras se ejecuta su lógica. Tenga en cuenta que no estamos hablando de un error de programación que será detectado por el compilador al intentar descargar su lógica en su PLC. Consulte la imagen 1.

    141-1.gif

    Imagen 1: el compilador detectará algunos errores de programación

    Como puede ver en la última imagen, hay un error de programación en la lógica de mi PLC; faltan algunos operandos en la entrada y salida de la Red 1. Pero el compilador detectó este error incluso antes de descargar la lógica en el PLC. El error de la imagen 1 no es del tipo de error de programación que puede provocar la necesidad de llamar al OB121.

    Los errores en su programa de PLC que el compilador no puede encontrar, pero que pueden causar problemas en su lógica mientras el PLC está en funcionamiento, son los errores de programación a los que nos referimos. Estos errores activarán una llamada al OB121 por parte del sistema operativo.

    Ejemplos de errores de programación

    A continuación, se muestran algunos ejemplos de errores en la lógica de su PLC que pueden causar errores de programación:

    • Se excedió la profundidad máxima de anidamiento de las llamadas de bloque.
    • Ha utilizado un puntero NULL para direccionar un operando.
    • Instrucción desconocida.
    • La cadena direccionada tiene información de longitud incorrecta.
    • Error de longitud de área al leer.
    • Error de longitud de área al escribir.
    • Error en el n.º de temporizador.
    • Acceso a una BD que no está cargada; el número de BD se encuentra en el área permitida.
    • La BD no existe.

    Estos errores y muchos más pueden provocar errores de programación en su PLC. Puede consultar la sección de Ayuda del TIA Portal para saber qué otras razones pueden provocar errores de programación del PLC.

    ¿Qué sucederá si se detecta un error de programación?

    Cuando su PLC detecta un error de programación, puede ocurrir uno de tres eventos.

    1. Su PLC mostrará un error y pasará al modo STOP.
    2. Su PLC mostrará un error pero seguirá ejecutando su lógica.
    3. Su PLC mostrará un error y luego intentará resolver este error.

    Estos tres eventos dependerán básicamente de la programación de su PLC. Es decir, su código decidirá cómo se comportará el sistema operativo al detectar un error de programación.

    Simulación de un error de programación en TIA Portal

    Para comprender mejor cómo se comportará el PLC, crearemos un programa simple donde provocaremos un error de programación y luego veremos qué sucederá. Vea la imagen 2.

    141-2.gif

    Imagen 2: lógica de programa simple

    La lógica que creamos es muy simple: cuando se ha habilitado InitiateProgError, el valor 126 se moverá al área DB52.DBW16. Tenga en cuenta que no hemos creado DB52, por lo que ese será nuestro error de programación. Tenga en cuenta que este error no se detectará durante la compilación o la descarga en el PLC. Vea las imágenes 3 y 4.

    141-3.gif

    Imagen 3: error no detectado por el compilador

    Vea cómo se compiló correctamente el bloque, aunque incluía un error de programación.

    141-4.gif

    Imagen 4: bloque descargado en el PLC

    Nuevamente, el bloque se descargó en el PLC con un error de programación.

    Ahora, simulemos nuestro programa de PLC y veamos qué sucederá. Vea la animación 1 para la simulación del código del PLC.

    spacer.png

    Animación 1

    Como puede ver en la animación anterior, el LED de ERROR del PLC parpadeará en rojo durante unos segundos y luego el PLC pasará al modo STOP.

    Vaya al diagnóstico en línea del PLC para ver qué sucedió. Vea la imagen 5.

    141-6.gif

    Imagen 5: diagnóstico en línea del PLC

    Lo que vio en la animación es exactamente lo que ve en la imagen anterior. Se pueden mencionar en 3 pasos:

    1. El PLC detecta el error de programación que es OB52 no cargado.
    2. El sistema operativo activará la llamada al OB121, pero no hay ningún OB121 creado en nuestra lógica.
    3. Cuando el PLC descubre que no hay ningún OB121 creado en nuestra lógica, el sistema operativo iniciará una solicitud STOP. Y el PLC pasará al modo STOP.

    ¿Cómo puede ser útil el OB121 contra los errores de programación?

    Agreguemos un OB121 a nuestro código de PLC y veamos cómo cambian las cosas. Vea la imagen 6.

    141-7.gif

    Imagen 6: Cómo agregar un OB121

    Después de crear y agregar el OB121 a nuestra lógica de PLC, veamos qué sucederá en la simulación.

    Tenga en cuenta que no hemos escrito ninguna lógica de PLC dentro del OB121. Vea la animación 2.

    spacer.png

    Animación 2

    Como puede ver en la animación 2, cuando se activa InitiateProgError, el LED de ERROR del PLC parpadeará en rojo, pero el PLC seguirá funcionando.

    Esto significa que el PLC no entrará en modo STOP. Revisemos los diagnósticos en línea para ver qué sucedió realmente. Vea la imagen 7.

    141-9.gif

    Imagen 7: el error no provocó la detención del PLC

    En la imagen se puede ver que el PLC detecta el error pero no entra en modo STOP. Omitirá este error, continuará el ciclo y comenzará de nuevo desde el principio.

    Cuando llegue al error nuevamente, lo detectará nuevamente y emitirá una alarma en los diagnósticos. Omitirá el error y continuará. Eso significa que el PLC emitirá la misma alarma en cada ciclo de escaneo. Y es por eso que en la imagen se ve que el evento sigue activándose y la alarma se repite en cada ciclo de escaneo.

    Por lo tanto, tener un OB121 vacío le brindará el beneficio de mantener el PLC en funcionamiento y, por extensión, mantener su proceso en funcionamiento.

    Pero hay más que podemos hacer, podemos intentar detectar este error y eliminarlo. Además, podemos intentar mostrar el tipo de error de programación detectado.

    Determinar el tipo de error

    El OB121 tiene un identificador de ID de falla interno que podemos usar para mostrar el tipo de falla, tal vez como una alarma en una HMI. Dentro del OB121 crearemos una instrucción MOVE simple, donde enviaremos la entrada Fault_ID del OB121 a un área de memoria definida dentro de nuestra base de datos global. Ver imagen 8.

    141-10.gif

    Imagen 8: Identificación del tipo de error

    Como puede ver en la imagen anterior, cuando ocurre el error de programación, el Fault_ID se enviará a Data.ProgErrorID. Ver imagen 9.

    141-10.gif141-11.gif

    Imagen 9: Error de programación Fault_ID

    Puede ver que el ID de falla es 3A. Si consulta la ayuda del TIA Portal, puede encontrar el significado de esta falla.

    3A: Acceso a una base de datos que no está cargada; el número de base de datos se encuentra en el área permitida.

    Captura del error

    Esto simplemente significa intentar resolver el error de programación del PLC después de haber identificado la razón. Esto dependerá principalmente de cuál es el error y cómo desea manejarlo. Simplemente simularemos una solución al error para ver cómo se comportará el PLC.

    La solución real para el error que creamos será simplemente crear el DB52 o usar un bloque de datos que ya esté creado.

    Pero para el bien de la simulación, simplemente agregaremos un contacto simple que se abrirá cuando ocurra el error de programación para capturar este error. Vea las imágenes 10 y 11.

    141-12.gif

    Imagen 10: Captura del error

    Siempre que se llame a OB121, se establecerá CatchError.

    141-13.gif

    Imagen 11: eliminar el error

    Siempre que se llame a OB121, se activará CatchError y se utilizará para detectar el error de programación en la red 1. Consulte la animación 3 para ver la simulación del PLC.

    spacer.png

    Animación 3

    En la animación anterior, puede ver que cuando se activa InitiateProgError, el PLC entrará en error por un momento, luego el error se borrará y el PLC estará en modo RUN todo el tiempo.

    Conclusión

    El solo hecho de tener un OB121 vacío en su lógica garantizará que su PLC no entre en modo STOP si hubo un error de programación en su código. Luego puede usar el OB121 para identificar también el error y resolverlo.

    Sign in to follow this  


    User Feedback

    Create an account or sign in to leave a review

    You need to be a member in order to leave a review

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

    There are no reviews to display.


Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...