• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar al pie de página

Programación Siemens

Cursos online de TIA Portal y PLC Siemens.

  • Cursos
  • Blog
  • Mi cuenta
    • Mi cuenta
    • Foros
    • Curso HMI con Python y Qt-Designer
    • Curso de AWL
    • Curso de iniciación a la Industria 4.0
    • Curso Express de TIA Portal
    • Curso de WinCC Flexible 2008
    • Crear HMI con OPC y VB.NET
    • Crear HMI con Snap7 y VB.NET
    • Curso ViSnap7
    • Curso de TIA Portal para CPU 1200
    • Curso de Step 7 V5.x
    • Curso de comunicaciones IE y Profinet
  • Contacto & Faq
Home | blog | Contadores en Step 7

Contadores en Step 7

por Iñigo Gútiez · 5 comentarios

contadores step 7Para ir terminando la primera parte del curso (la más sencilla pero la más importante por su relevancia dentro de los proyectos), vamos a ver como trabajar con los contadores en Step 7. Vamos a ver varias formas de cómo trabajar con contadores:

  • Sumar y restar sobre una variable
  • Usar los comandos INC /DEC
  • Usar los contadores S5

Contenido

  • 1  Contadores en Step 7 usando un entero
  • 2 Contadores en Step 7 usando INC y DEC
  • 3 Contadores en Step 7 usando contadores S5
    • 3.1 Cómo cargar un valor a contadores en step 7
    • 3.2 Sumar y restar sobre contadores en step 7
    • 3.3 Poner a cero un contador
    • 3.4  ¿Y en KOP?
  • 4  El video de contadores en step 7
  • 5 ¿Qué te ha parecido esto de los contadores en step 7?

 Contadores en Step 7 usando un entero

Poco le vamos a dedicar a este contador: se trata de sumar y restar sobre una pobre e inofensiva palabra.

Si queremos sumar, pues usaremos +I, si queremos restar, pues -I. Lo hemos usado con anterioridad y no tiene mayor complicación:

L MW10 –> Cargamos lo que tengamos

L 1 –> Cargamos la cantidad que queremo sumar

+I –> Sumamos ambas cantidades y lo almacenamos en el ACU1 (-I para restar)

T MW10 –> Lo transferimos de nuevo en el contador MW10

Como ves, nada nuevo que no sepas ya.[divider]

Contadores en Step 7 usando INC y DEC

Podemos también usar, en vez de una palabra, un byte (Con la limitación de contaje que ello conlleva al ser sólo un byte).

Existen dos instrucciones para este tipo de contadores:

  • INC N#_8_bits para incrementar el contador
  • DEC N#_8_bits para decrementar el contador

Así, para usarlo tan sólo deberemos usar de esta forma las operaciones:

L MB100 –> Cargamos el contador en el ACU1

INC 1 –> Sumamos 1 al ACU1

T MB10 –> Lo volvemos a cargar en el MB10

Análogamente, para decontar:

L MB100 –> Cargamos el byte que lleva el contaje en el ACU1

DEC 2 –> Restamos dos unidades al ACU1

T MB100 –> Transferimos el resultado de nuevo al MB100[divider]

¿Fácil no? Muy parecido al caso anterior pero ligeramente más compacto.[divider]

Contadores en Step 7 usando contadores S5

Los contadores S5 (Z) son contadores al igual que los temporizadores S5 una reminiscencia de antiguos autómatas (quién lo iba a decir con ese nombre ¿eh?).

Son de tipo hardware también como los temporizadores S5 y la cantidad depende de cada CPU.

El uso de este tipo de contadores depende de cada proyecto y de cada programador. Personalmente no los uso porque me siento más cómodo con la primera opción de las vistas. Además, este tipo de contadores tienen una limitación de contaje que llega hasta las 999 unidades.

Las operaciones que se pueden realizar sobre estas operaciones son:

  • Cargar un valor de contaje
  • Borrar el valor de contaje
  • Contar  y decontar
  • Consultar su valor tanto como cantidad como operación booleana

Cómo cargar un valor a contadores en step 7

Para cargar un valor en un contador, cargaremos el valor usando el prefijo C# y luego haciendo un S Z1 (por ejemplo) si el RLO está a uno. Por ejemplo:

U M0.0 –> Leemos el valor de la marca M0.0

L C#12 –> Cargamos el valor en el ACU1

S  Z 1 –> Si la M0.0 fijamos el valor «12»  en el contador Z1[divider]

Sumar y restar sobre contadores en step 7

Con las instrucciones ZV y ZR podrás incrementar o decrementar el contador en función del estado del RLO

Así y siguiendo con el Z1:

U M0.1 –> Leemos el estado de la marca M0.1

ZV Z1 –> Si la señal está a 1, incrementamos en uno el valor del Z1

U M0.2 –> Leemos el estado de la marca M0.2

ZR Z1 –> Si el RLO está  a uno, restamos una unidad al Z1.[divider]

Poner a cero un contador

Hemos visto, que para cargar un valor de contaje, lo hemos hecho, con un Set, pues para ponerlo a cero, será con un Reset:

U M0.3 –> Leemos el valor de la marca M0.3

R Z1 –> Si está a uno, ponemos a cero el contador[divider]

Leer el valor del contador y su estado

Al igual que pasa con los temporizadores S5, podemos leer directamente el estado del contador y hacer lógica looleana con ello. Es decir, podemos hacer un :

U Z1

= A1.0

Esto significa que mientras el contador sea cero,  el valor de A1.0 será cero y se pondrá a uno cuando el Z1 > 0.

Por otro lado, puede que queramos saber cuánto va valiendo el contador. Para ello, haremos una lectura de este estilo:

L Z1 –> Si queremos leer en valor decimal

T MW10 –> Se lo transferimos al MW0 por ejemplo

LC Z1 –> Leemos el valor del Z1 en BCD (Más info sobre BCD aquí).

T MW20 –> Lo transferimos.[divider]

 ¿Y en KOP?

contadores en step 7

En resumen de lo visto, podemos verlo en KOP como en la figura adjunta. En el tienes todas las instrucciones vistas en un único bloque que se puede usar en FUP o KOP.

Si vemos este bloque en AWL, lo que tendríamos sería:

U M 0.1
ZV Z 1
U M 0.2
ZR Z 1
U M 0.0
L C#12
S Z 1
U M 0.3
R Z 1
L Z 1
T MW 10
LC Z 1
T MW 20
U Z 1
= A 1.0

Los diferentes colores son las instrucciones arriba vistas. como vez, cada parte está bien diferenciada.[divider]

 El video de contadores en step 7

Vamos a dar un pequeño repaso a lo visto con un vídeo muy sencillo en el que puedas ver cómo funciona lo visto hasta ahora.

 

 

 

¿Qué te ha parecido esto de los contadores en step 7?

Como siempre, me gustaría saber qué te ha parecido y cuál de las tres opciones de contadores en step 7  usas o si incluso lo haces de otra forma.

Finalmente como siempre recordarte que la próxima vez que vayas a comprar material eléctrico, te acuerdes de este blog y accedas a masvoltaje.com para realizar tu compra. Ya sabes, desde aquí para que quede constancia desde dónde accedes.

 

Iñigo Gútiez
Iñigo Gútiez

Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí

Puedes seguirme en cualquiera de las siguientes redes sociales.

Publicado en: blog Etiquetado como: contadores

Interacciones con los lectores

    Deja un comentario Cancelar

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

    5 Comentarios

  1. rafael dice

    17 diciembre, 2013 a las 19:32

    Feliz cumpleaño a la pagina y felicitaciones a su creador por tan ardua y loable labor
    llegara el momento de la cosecha porque el reconocimiento a tan brillante pagina ya lo tiene
    por parte a sus agradecidos seguidores. Feliz navidad y venturoso año Iñigo.

    Responder
  2. Kepa dice

    25 diciembre, 2013 a las 10:45

    Lo primero felicitarte por tu trabajo. Creo q esta muy currado y que le puede servir a mucha gente.
    Yo hasta ahora usaba el contador que suma o resta 1 a una palabra pero despues de ver el ejemplo me quedo con el de inc1 al byte

    Responder
  3. Gabriel dice

    25 diciembre, 2013 a las 14:54

    Excelente!!!

    Muy buen aporte…

    Responder
  4. sebastian abarca dice

    15 mayo, 2014 a las 17:27

    Excelente

    Responder
  5. andres dice

    21 mayo, 2014 a las 12:47

    gracias aqui vamos… muy bien expuesto!

    Responder

Footer

· Acerca de
· Misión, Visión y valores
· Aviso Legal y Política de Privacidad
· Condiciones de Venta
· Política de cookies
Utilizamos cookies propios y de terceros para mejorar nuestros servicios y tu experiencia de usuario. Si continuas navegando, consideramos que aceptas su uso. Aceptar Política de cookies
Política de Cookies

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Siempre activado
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
GUARDAR Y ACEPTAR