Para evitar que los PLC's S7-300 se vayan a Stop por error de I/O
SI-300-003

Una de las tareas que he realizado con cierta frecuencia es la de programar equipos Siemens de la familia S7-300. Cuando tienes el proyecto en tus manos (de programación), puedes invertar gran cantidad de bloques de programa, imaginar cómo se integrarán los equipos, qué entradas y salidas emplear, cuáles timers y banderas asignar para cada grupo de tareas, etc.

Durante esta etapa de diseño es común cometer algunas equivocaciones que traen como consecuencia, a parte de que la máquina no hace lo que esperabas, que mandes la CPU al modo "Stop". Errores de programación son cometidos constantemente; algunos de estos errores los detectamos rápidamente, y otros sólo al cargarlos a la memoria y verlos correr... claro, eso si no mandamos a falla la CPU.

Sin embargo, una vez que terminamos nuestra programación y dejamos lista la máquina, podemos encontrarnos con ciertas sorpresas que no habíamos considerado. Y esto puede suceder tras meses o años de que trabaja bien el control.

Y esto lo menciono porque hace unos días recibí una llamada de un cliente, quien me comentaba de que tenía una falla en su PLC S7-300. Me comentaba que la CPU se iba a "Stop". Al leer el búffer de diagnóstico decía que le aparecía que no encontraba el OB122.

Generalmente, este OB122 se carga desde el inicio de la programación, precisamente en el estado de diseño de programa, como una precaución y evitar mandar a Stop la CPU cuando se comenten errores o se tiene el hardware incompleto.

Para este caso específico, el OB122 lo cargamos por si a la hora de programar intentamos cargar en la CPU instrucciones que hacen referencia a entradas (I) o salidas (O) que no existen físicamente en nuestro hardware. Cuando programamos off-line, no pasa nada; escribrimos líneas de código con las mencionadas direcciones y no nos marca ningún error el software. Sin embargo, el riesgo de mandar la CPU a falla surge a la hora de descargar este programa con las direcciones inexistentes físicamente. Por ejemplo, si en nuestro programa off-line escribimos que queremos leer la PIW 312, pero esta dirección no corresponde a ninguna tarjeta en nuestro hardware físico, a la hora que mandemos este programa a la CPU, de inmediato se nos irá a Stop... A menos que tengamos cargado este OB122.

Y es justamente con este OB con el que eliminamos detener la máquina (y con ello meternos en líos de producción) cuando la CPU trata de leer desde o escribir en una dirección que no existen en el hardware.

Entonces, estando off-line, creamos desde el Simatic Manager el OB122. Una vez creado, lo descargamos directamente a nuestra CPU, y no es necesario que tenga instrucción alguna. Podemos mandarlo a nuestro PLC sin que exista un solo segmento. Pero una vez en la CPU, ésta se dará cuenta de que existe el OB122 buscado, y, al encontrarlo, dejará de caprichosamente irse al modo Stop.

Cabe aclarar que con este OB sólo evitamos que la CPU falle y se vaya a Stop, pero no habremos eliminado el error. Una vez cargado el OB122 en la CPU, si revisamos el búffer de diagnóstico, encontraremos que el estado operativo es "Run", pero no aparecerá en la lista de fallas el error de lectura o escritura en la entrada o salida que no existen.

Así que, para concluir, el OB122 nos evita se vaya a falla la CPU por error en lectura o escritura I/O (de entradas o salidas) que no existen en nuestro hardware. Esta falla puede ser debido a que estamos programando nuevo código y queremos leer desde una entrada que no existe, o quizá queremos escribir en una salida que tampoco aparece en nuestro equipo. En cualquiera de estos dos casos, la CPU llamará al OB122. Pero también puede suceder no estemos programando, sino que la máquina estuvo trabajando por un buen tiempo. Sin embargo, si hubo un corto circuito y alguna tarjeta de entrada o salida quedó dañada, entonces la CPU no la verá, y como consecuencia, no podrá accesar sus direcciones correspondientes y nos indicará la falla.

Finalmente, es recomendable cargar el OB122 para evitar que nuestra CPU se vaya a Stop, y posteriormente revisar la causa del problema, o, incluso, con este mismo OB, indicar la tarjeta en falla.

by IA. .