Palabra de estado en Step7

Hace unas semanas uno de los lectores me sugirió que hablara un poco de la palabra de estado en Step 7… pues aquí estamos.

palabra de estado en step 7Tal vez esperabas que empezáramos con los temporizadores, pero se va a retrasar un poco ya que para la semana que viene probablemente hagamos otro ejemplo práctico (como ves, el curso tiene vida propia).

Como vas a ver, tampoco hay un vídeo acompañando esta semana. Es sólo lectura. Un rollo. Pero está bien al menos como cultura general aunque a efectos prácticos hay poco que rascar más allá de un par de cosillas.

La palabra de estado en step 7 ¿qué es?

Lo primero que hay que decir es que la palabra de estado en step 7 es un registro donde se almacenan una serie de bits sobre el procesamiento y estado de las operaciones que están teniendo lugar.

Para empezar, mal empezamos llamándola palabra… ¿por qué? Pues porque son 9 bits y no 16, pero se llama así, y tampoco nos vamos a rasgar las vestiduras ¿no? Entiendo que los 7 restantes los tendrán a buen recaudo y se llama palabra porque al ser 9 no lo podían hacer con un byte. Sin más.

Cada bit dentro de la palabra tiene una función para mantener una trazabilidad de qué está sucediendo, desde resultados de álgebra booleana hasta si ha sucedido un overflow.

Los bits de la palabra de estado

Los Ocean’s Nine son estos:

  • Bit 0 – /FC
  • Bit 1 – RLO
  • Bit 2 – STA
  • Bit 3 – OR
  • Bit 4 – OS
  • Bit 5 – OV
  • Bit 6 – CC1
  • Bit 7 – CC0
  • Bit 8 – BR

 

 Vale, unos nombres muy chulos, pero quitando al RLO y el STA, los demás como que..

Sí, sí… ya voy. Repasemos para que vale cada uno.

Bit 0 -/FC

Este bit es el que almacena si la siguiente instrucción de la una combinación boolenana va a ser la primera o no.

  • Valor 0: la siguiente instrucción va a ser procesada como la primrera instrucción. Ya lo vimos anteriormente con las operaciones de cierre de consulta.
  • Valor 1: Es que la combinatoria está en marcha

 

Así, cuando se haga un set, restet o una asignación (=) la señal se pondrá a cero. Una vez después de puesta a cero si se hace un U o un OR (por ejemplo), la señal se pondrá a 1 comenzando a realizar la combinatoria.

 Bit 1 – RLO.

Espero que no tenga que sacar la vara de avellano para castigar a aquellos que aún pregunten que es el RLO. Me niego a explicarlo. 

 Bit 2 – STA

Como bien sabes, es el estado de la dirección booleana de la memoria. Si está a uno es que la marca o entrada está a uno, si está a cero, pues al revés.

Bit 3 – OR

Sirve para conocer el valor de la combinatoria de un AND antes de hacer un OR.

Recuerda que puedes hacer una combinatoria de este pelo:

U E0.0

O

U E1.0

U E2.0

= A1.0

Vale. Pues lo que hace este bit es almacenar la combinatoria del AND entre la E1.0 y la E2.0.  Se guarda el resultado intermedio en este bit antes de acometer el OR de este resultado con la E0.0.

 Bit 4 y 5 – OS y OV

OS almacena que ha habido un overflow. Cuando hay un OV (overflow) porque has dividido por cero o porque has sumado dos enteros que se salen de los 32768 la señal de OV y OS se ponen a 1. Luego el OV puede desaparecer porque la siguiente operación sea correcta, pero el OS queda con valor uno hasta que se realice un SPS ( Salta si OS=1), una llamada a otro bloque, o final de bloque.

Así puede que hagas una operación matemática que da OV. Luego puedes hacer un SPO (salta si OV=1) o un SPS (salta si OS=1)  para tratar el error y así pones a cero el bit 4 (el 5 se quitará el solito cuando haya una nueva operación correcta).

 Bit 6  y 7 – CCO y CC1

Son bits usados para las operaciones de comparación, matemáticas, de giro…

Instrucciones de comparación

CC 1 CC 0
0 0 ACCU 2 = ACCU 1
0 1 ACCU 2 < ACCU 1
1 0 ACCU 2 > ACCU 1
1 1 Desordenadas. Solo para coma flotante.

 

Operaciones matemáticas con OV

CC 1 CC 0
0 0 Resultado = 0
0 1 Resultado < 0
1 0 Resultado > 0

 

Operaciones matemáticas enteras  con OV

CC 1 CC 0
0 0 Rango negativo de OV en ADD_I y ADD_DI
0 1 Rangi negativo de OB en MUL_I y MUL_DI
1 0 Rango negativo de OV en ADD_I, ADD_DI, SUB_I, y SUB_DI
1 1 División por 0 en DIV_I, DIV_DI, y MOD_DI

 

Instrucciones en punto flotante con Overflow

CC 1 CC 0
0 0 Underflow
0 1 Rango negativo de OV
1 0 Rango positivo de OV
1 1 Número de coma flotante no válido

 

Instrucciones de giro y salto

CC 1 CC 0
0 0 Bit saliente estaba a cero
1 0 Bit saliente estaba a uno

 

Instrucciones lógicas

CC 1 CC 0
0 0 Resultado = 0
1 0 Resultado <> 0

Bit 8 – BR

Proviene de Binary Result y es el resultado de las operaciones binarias. Cuando el BR está a uno, activa la salida de ENO habilitando en bloques concatenados que se ejecute el siguiente bloque.

Las operaciones SAVE, SPB y SPBB ponen a uno el BR  (más información aquí).

¿Qué te ha parecido esto de la palabra de estado?

Espero que no te hayas dormido y hayas llegado hasta aquí.

Como ves muchas de las variables son poco usadas ( o nada) pero está bien saber su significado y así cuando veamos la palabra de estado en la ayuda de Step 7 sepamos al menos de qué va.

Como siempre recordarte una vez más que comentes si te es útil este tipo de entradas y cómo no, que si vas a comprar algo de material, que te acuerdes de mi, te pases por nuestro foro y cojas los cupones pertinentes para comprar en www.masvoltaje.com

Fuente en inglés: PLCDev.com

Acerca de Iñigo Gútiez

Ingeniero industrial por la Escuela de Ingenieros Superiores de Bilbao. Trabajo como ingeniero de proyectos y automatización en Guardian Industries

Te puede interesar

curso en pdf de Step 7

El curso en pdf de Step 7 V5.x se vuelve una Rolling Release

Muchos de los lectores han comprado el curso en pdf de Step 7 “Cómo programar en …

7 Comentarios

  1. Puedes por favor indicarme como puedo controlar online el tiempo de un Ton en S7200 Microwin .
    Lo que deseo es saber como muevo una palabra al preset del temporizador, para poder modificar su valor estando Online.

  2. Hola Íñigo:

    Buena entrada para seguir viéndole las “tripas” a los controladores Siemens, pero, ¿cuál es la manera de acceder a esta palabra de estado en una CPU “on line” (o sea, no el simulador, que según veo le das al icono correspondiente en la barra de herramientas y te aparece). ¿tiene alguna utilidad práctica y hay que echar mano de ella mientras programas o a la hora de diagnosticar fallos de funcionamiento?.

    Saludos.

    • Hola,

      Sólo se ve en AWL y es pulsado con el botón derecho y haciéndo que te muestre el estado.

      ¿Utilidad práctica? Pues saber que existen y que es lo que significan. Especialmente el STA y el RLO. Pero saber que tienes un OV tampoco está de más.

      Un saludo

  3. Es perfecto para aprender gracias

  4. gracias iñigo,aqui voy aprendiendo con tu curso…un abrazo