Como su propio nombre lo indica, las interrupciones permiten interrumpir el flujo del programa para atender un subproceso inmediatamente, y luego seguir con la ejecución del programa. Se utiliza para atender eventos a alta velocidad como por ejemplo una parada rápida de un motor o servo o para realizar lecturas de posicionamiento como por ejemplo el cero de un encoder, y muchas otras aplicaciones donde se necesite una reacción inmediata.

Ejemplo de programación con un PLC de la línea FP Sigma de Panasonic.

En primer lugar, se debe declarar qué entradas del PLC serán usada como interrupciones. Desde el FPWIN, menú “Option” + “PLC Configuration” + “Interrupt Input” debe marcar las entradas que desea utilizar, teniendo en cuenta que X0 es la más rápida y X5 la más lenta.

NOTA: La siguiente imagen muestra como configurar las entradas de interrupciones en un FPSigma. También es importante setear bien los flancos que utilizará la interrupción.  Para el «FP0R» debe setearlas en   Option + PLC Configuration + Interrupt / pulse catch settings (en 404 Interrupt Catch Settings) cada vez que modifique el registro del PLC deberá bajarlo picando la opción «Program and settings register downloaded».

Importante:  Al bajar un programa que utilizará interrupciones, deberá poner el PLC en modo Prog. para asegurarse que cargue las modificaciones del registro.

 Luego, en la cabecera del programa hay que Habilitar su uso con la Instrucción ICTL  como se muestra a continuación. Donde Hx corresponde a la suma de los valores de entradas  los primeros 4 Bits y la suma de los segundos 4 Bits respectivamente .

X7X6X5X4X3X2X1X0
84218421

                  Suma de X4 a X7 = 2                |                      Suma de X0 a X3 = 5

                                                      Valor Obtenido = H25                                                                            

En éste ejemplo se Utilizarán las Interrupciones en las entradas X0. 

           Luego de la línea de Fin del Programa, se debe crear la rutina de Interrupción para cada entrada.   A continuación  se muestra el ejemplo para la interrupción en X0:

El ejemplo anterior , muestra la detención de un Servo motor con el Cero del Encoder en la entrada X0, donde además se resetea el registro DT90044 y se limpia el Registro de Error con la salida Y4 e inmediatamente fuerza la ejecución de Salida Inmediata de Y1 con la función F143, la que debe resetearse con TMY 5 en una línea del programa para que no quede siempre en ON una vez que pasa por la interrupción.

Nota: En los modelos FP0 y FPe, el registro de manejo de Motores Steper/Servo mostrado en éste ejemplo es DT9052 y el contador de pasos es DT9044.

   Autor: Fernando Polverini  15/07/2008.