You are on page 1of 10

69 of 305.

Unidad 2 Ejemplos con operaciones de bit, instrucciones binarias, temporizadores y contadores

Vamos a empezar a programar. Para ello abrimos el bloque OBI. Si es la primera


Recuerda vez que lo abrimos, nos saldr una ventana similar a sta:

P ro p ie d a d es - Bloque d e o rg an iza c i n
Tenemos
diferentes General -1 - parte | General 2Sparte | Llamadas ] Atributos ]
lenguajes para
program ar las Nombre:
CPUs de la
gam a 300 y
Nombre simblico: r
400. Por d e fe c Comentario del smbolo:
to, con el Step
7 disponemos Lenguaje: |a w l

de los lengua
Ruta del proyecto:
jes KOP, FUP
y AWL. Como Ubicacin del proyecto: |C:SProgram FilesSSemens\Step7\s7proj\Prmer_p
paquetes a di
Cdigo Interface
cionales exis
ten otros len Fecha de creacin: 23/0472008 1 0:50:34
guajes, com o ltima modificacin: 0770272001 15:03:43 1570271996 1 6:51:12
el GRAPH o el Comentario: "M ain Program Sweep (Cycle)"
SCL. Elegiremos
el lenguaje
ms apropiado
para lo que
estemos pro
Aceptar Cancelar Ayuda
gram ando en
c a d a caso.
Fig. 28
En esta ventana podemos asignar un nombre simblico al bloque y podemos de
cir nuevamente en que lenguaje queremos programar. De momento por defecto
viene seleccionado AWL. Es el que vamos a utilizar para el primer ejemplo. Si
pulsamos el botn de aceptar se nos abre el OBI que tiene este aspecto:

2g(ICOP/AWL/FUP [OBI - Prim er_proyecto\SIM A T IC 300(1 )\CPU 315-2 DP]


Q Archivo Edicin Insertar Sistema de destino Test Ver Herramientas Ventana Ayuda

D le |g -|yl #J IN a l d d calmil [cT f* |_ J | | e JM r?| heU+I-o ! 1 *?]

OBI : "Main Program Sweep (Cycle)"

Comentario:

Comentario:

----------------------------------------------------------------------

Hemos abierto otra ventana ms adicional al Administrador. Le llamaremos "edi


tor de bloques".

Sabiendo todo esto y teniendo el bloque OBI abierto, vamos a pasar a la resolu
cin de ejercicios que es la parte principal de este manual. En cada ejercicio se
aprender algo nuevo sobre instrucciones o bloques programados. Se intentar
que cada ejercicio sea corto y sencillo y se centre nicamente en uno o dos con
ceptos para que se vayan adquiriendo conocimientos poco a poco.
Tambin a lo largo del manual habr algn ejercicio en el que no se trate nada
nuevo sino que se haga un pequeo resumen de lo aprendido anteriormente.
Ser un ejercicio un poco ms extenso y se tratar de utilizar todas las instruccio
nes y conceptos aprendidos en ejercicios anteriores.

71
www.FreeLibros.me
70 of 305.

Unidad 2 Ejemplos con operaciones de bit, instrucciones binarias, temporizadores y contadores

Resolucin de ejercicios

2.2 Contactos en serie

^ Ejercicio 1: Contactos en serie

ALGO MS DE TEORA:
Vamos a programar nuestro primer OB 1. De momento habamos seleccionado
como lenguaje de programacin AWL. Habamos visto que tenamos la posibilidad
de elegir entre tres lenguajes.

KOP: Esquema de contactos.


FUP: Diagrama de funciones.
AWL: Lista de instrucciones.

En un principio trataremos el lenguaje AWL. Una vez programado el bloque, lo


podremos ver en los tres lenguajes posibles y haremos los comentarios sobre cada
uno de ellos.
Vamos a empezar por lo ms simple que podemos programar en un PLC. Supon
gamos que lo que queremos programar son dos contactos (dos condiciones) en
serie. Y veremos como quedara hecho en cada uno de los tres lenguajes:
Circuito que queremos programar:

Solucin en KOP: Esquema de contactos.

I I I I I (_ )

Solucin en FUP: Diagrama de funciones.

Solucin en AWL: Listado de instrucciones.

u E 0.0

u E 0.1
= A 4.0

72
www.FreeLibros.me
71 of 305.

Unidad 2 Ejemplos con operaciones de bit, instrucciones binarias, temporizadores y contadores

En principio hemos elegido lista de instrucciones. En STEP7, podemos hacertoda


Recuerda la programacin que queramos en cada uno de los tres lenguajes. Hay veces
que no son exactamente equivalentes los tres lenguajes. Hay instrucciones que
existen en unos lenguajes s y en otros no, pero al final, todo lo que queramos
El administra
programar es posible programarlo en los tres lenguajes.
dor de Simatic
nos ofrece un Vamos a programar dos contactos en serie.
direcciona-
miento estn Tenemos que dar nombre a cada uno de los contactos. Tendremos que direccio-
dar cm odo nar las entradas y salidas de que disponemos.
para poder
realizar El direccionamiento de tarjetas digitales en un S7 - 300 es el siguiente:
posteriores
ampliaciones
de tarjetas. No Como vemos en el siguiente esquema, se reservan 4 direcciones de byte para
obstante, siem cada posicin de tarjeta. Cada posicin ocupara 4 bytes hasta completar las di
pre se pueden recciones mximas que permita cada CPU. En el ejemplo, vemos las direcciones
ca m biar estas correspondientes a las 4 primeras tarjetas digitales.
direcciones y
asignar las que
nos sean ms
cm odas para
nuestro
proyecto.
V.

Las direcciones son las mismas independientemente de que las tarjetas sean de
entradas o de salidas. Tambin es independiente de que las tarjetas sean de 16
o de 32 bits. Si no se ocupa todo el direccionamiento disponible, el resto de
direcciones no usadas quedan "reservadas" por si algn da tenemos que cam
biar la tarjeta y utilizar otra con ms bits para ampliar el proyecto. Como vemos,
tenemos ocupados 4 bytes para cada posicin de tarjeta, Si tenemos tarjetas
de 2 bytes, estamos "perdiendo" estas dos direcciones. Lo de "reservadas" o
"perdidas" lo ponemos entre comillas porque ms adelante veremos que estas
direcciones pueden ser utilizadas como periferia descentralizada.

En el caso de tarjetas analgicas, el direccionamiento es el siguiente:

73
www.FreeLibros.me
72 of 305.

Unidad 2 Ejemplos con operaciones de bit, instrucciones binarias, temporizadores y contadores

Tendremos bytes de entradas 0 y 1, y bytes de salidas 4 y 5. Los bytes 2 y 3 y los


bytes 6 y 7 quedan libres en esta configuracin. En caso de que en un futuro ten
gamos la necesidad de ampliar las entradas o las salidas de este PLC, podremos
cambiar las tarjetas de 16 bits por tarjetas de 32 bits, y no deberemos cambiar
las direcciones de las entradas y salidas utilizadas en un principio. Las entradas /
salidas originales seguirn teniendo direcciones 0, 1 y 4, 5, y las nuevas entradas
o salidas de las tarjetas de 32 bits sern las 2 y 3 de entradas y 6 y 7 de salidas. La
tarjeta de entradas/salidas analgicas, ocupa la posicin 288. Tendremos palabras
de entrada 288, 290, 292, 294 y palabras de salidas 288 y 290. Tambin aqu que
dan direcciones reservadas por si un da necesitamos ampliar.
Instruccin "U ": Es la instruccin que utilizaremos para unir varias condiciones
en serte. La instruccin sirve tanto para primera consulta como para el resto de
condiciones en serie.
Instruccin de primera consulta es la que se utiliza para analizar la primera condi
cin de una serie de condiciones que terminan realizando una accin,

En el ejemplo que nos ocupa tenemos lo siguiente:

u E 0.0 (Si est la entrada 0.0. Primera consulta de la serie)


u E 0.1 (Y est la entrada 0.1. Si adems est E0.1 en serie con E0.0)
= A 4.0 (Activar la salida 4.0 Accin a realizar)

Si queremos programar esto mismo directamente en KOP, lo primero que tenemos


que hacer es seleccionar este lenguaje en el editor de bloques. Para ello dejamos
el segmento en blanco. Sin tener nada programado, vamos al men "Ver -> KOP".
Ahora tenemos un segmento grfico. Si intentamos programar en AWL veremos
que no podemos escribir.

OBI : "Hain Program. Sweep (Cycle)"


Comentario :

Segm. 1^: Ttulo:


Comentario :

Flg. 30

Para programar en KOP deberemos abrir el catlogo de funciones con el botn que
nos muestra un catlogo. IB

74
www.FreeLibros.me
73 of 305.

Unidad 2 Ejemplos con operaciones de bit, instrucciones binarias, temporizadores y contadores

Se nos abrir un catlogo como el siguiente en la parte izquierda del editor.

*2 Nuevo segmento
- f iil Operaciones lgicas con bits
r<~l Comparacin
Conversin
- fia Contaje
dbI Llamada DB
HcTI Salto
l ( if j Nmeros en coma fija
- tl Nmeros en coma flotante
-P n Transferencia
{rrj Control del programa
T rfl Desplazamiento/Rotacin
l-ifl Bits de estado
-I1 Temporizacin
-fl Operaciones lgicas con pal;
CR Bloques FB
Bloques FC
H O l Bloques SFB
-H o i Bloques SFC
Multiinstancias
- H Libreras

Flg. 31

Tendremos que seleccionar lo que queremos programar dentro de las funciones


que nos ofrece el catlogo. Los contactos abiertos los encontramos en "Opera
ciones lgicas con bits .

OBI : "Main Program Sweep (Cycle)'

Nuevo segmento Comentario:


l f i n Operaciones lgicas con bits
* ii -i i--
Hl -1/1-
-II -|M O T |~ Comentario :
<> -()
-O --(#)-
-O -(R )
KO. 0 A4.0
(S)
Q RS H h-
-e sr
-O ~(N )~
<> ~(P)~
-O ~(SAVE)

POS
Fig. 32

75
www.FreeLibros.me
74 of 305.

Unidad 2 Ejemplos con operaciones de bit, instrucciones binarias, temporizadores y contadores

( Ejercicio 1: C ontactos en serie

TEORA PREVIA: Introduccin. Generacin de nuevo proyecto.


DEFINICIN Y SOLUCIN

Supongamos que queremos automatizar el siguiente circuito:

E 0.0 E 0.1 A 4.0

/. / U
Vemos que lo que tenemos son dos contactos en serie.

Tenemos que asignar nombre a cada uno de los contactos. El STEP 7 nos permite
utilizar dos lenguajes (nemotcnicas) a la hora de programar. Estos lenguajes son
independientes de si programamos en AWL, KOP o FUP. Podemos hacer listado de
instrucciones en Lenguaje SIMATIC (nemotcnica alemana) o Lenguaje IEC (nemo
tcnica inglesa) y tambin podemos hacer esquemas KOP o FUP tanto en Lenguaje
SIMATIC como Lenguaje IEC. Si utilizamos Lenguaje SIMATIC, la mayora de las ins
trucciones y nombres de entradas, salidas, marcas, etc. corresponden a iniciales
o abreviaturas en alemn. Es el lenguaje que viene por defecto en el software y el
que se utiliza en el 90% de ios programas de mercado. Si utilizamos Lenguaje IEC,
los nombres de entradas, salidas, marcas, etc. as como las instrucciones, corres
ponden en su gran mayora a iniciales en ingls. En este manual se va a utilizar el
Lenguaje SIMATIC puesto que es el ms utilizado en el mercado y entre los pro
gramadores. El cambio de un lenguaje a otro es siempre posible sin excepciones.
Para aprender a programar deberemos aprender un juego de instrucciones. Si por
algn motivo tenemos que tocar o leer un programa hecho por otra persona en
el otro lenguaje de programacin, siempre ser posible hacer la traduccin del
mismo y tratarlo en el lenguaje que nosotros hemos aprendido. Utilizando el Len
guaje SIMATIC, a las entradas les vamos a llamar E y a las salidas les vamos a llamar
A. Esto corresponde a las iniciales en alemn (Lenguaje SIMATIC). A la instruccin
para unir los contactos en serie le llamaremos "U ". En caso de haber elegido Len
guaje IEC, a las entradas les llamaramos I y a las salidas les llamaramos Q. A la
instruccin para los contactos en serie le llamaramos "A". De momento vamos
a dejar lo que el software nos da por defecto que es Lenguaje SIMATIC, y una vez
tengamos el bloque programado lo traduciremos al otro lenguaje para ver cmo
lo podemos hacer.

A parte de darles nombre a las entradas y a las salidas, tenemos que darles una
numeracin.

Como hemos visto anteriormente, el direccionamiento de entradas y salidas, de


pende nicamente de la posicin que ocupen en el rack. Es decir, la primera tarje
ta, que en nuestro caso es una tarjeta de entradas, van a ser los bytes 0 y 1.
La siguiente tarjeta que en nuestro caso es una tarjeta de salidas, ocupar las po
siciones 4 y 5.

Por tanto tendremos disponibles 16 entradas (desde la 0.0 hasta la 1.7) y 16 sali
das (desde la 4.0 hasta la 5.7).
Para unir los dos contactos en serie disponemos de la instruccin "U " ya que esta
mos utilizando Lenguaje SIMATIC.

El siguiente ejercicio lo podramos resolver en los tres lenguajes que nos permite
el STEP 7. AWL, KOP y FUP.

76

www.FreeLibros.me
75 of 305.

Unidad 2 Ejemplos con operaciones de bit, instrucciones binarias, temporizadores y contadores

Veamos primero la programacin en AWL.

SOLUCIN EN AWL

u E 0.0
u E 0.1
A 4.0

La instruccin BE es opcional. Significa final de bloque de programa. La podremos


utilizar en cualquier bloque (OB, FC, FB, etc.). Si no la escribimos no pasa nada.
Cuando el autmata lee la ltima instruccin del OBI (o cualquier otro bloque)
lo dar por terminado. En el caso de ser el OBI, vuelve a empezar la lectura por
el principio. El OBI es el nico bloque que se ejecuta de forma cclica (cuando
termina de ejecutarlo, vuelve a empezar por la primera instruccin).

Una vez tengamos el bloque programado y guardado, tendremos la posibilidad


de cambiarlo de lenguaje. Veamos primero cmo podemos cambiarlo de Lengua
je SIMATIC a Lenguaje IEC. Para ello tenemos que cerrar el OBI despus de ha
berlo guardado. Entonces iremos, desde el Administrador de SIMATIC, al men
"Herramientas -> Preferencias".
(NOTA: Tener en cuenta que los mens que aparecen en la parte superior de la
pantalla no contienen lo mismo si accedemos a ellos desde el Administrador de
SIMATIC o desde el editor de bloques, o desde cualquier otra aplicacin dentro
de STEP 7. Muchos mens coinciden en el nombre pero no en el contenido. En
este manual se har siempre referencia al men que queremos entrar segn lo
que se est explicando),
Una vez dentro del men iremos a la ficha llamada "Idiom a". Veremos que en
la parte izquierda podemos elegir el idioma del software. Es decir, el idioma del
STEP 7. El idioma en el que vemos los nombres de ios mens, etc. Dejaremos
por defecto espaol. En la parte derecha podremos cambiar la nemotcnica de
alemana a inglesa. Si queremos hacer la prueba de cambiar el idioma, elegiremos
nemotcnica inglesa.

Prefe re ncia s x]
Idioma | General | Vista | Columnas | Nmeros de aviso | Archivar |

Idioma Nemotcnica

espaol Ejemplol Ejemplo2


deutsch O Alemana UE1.0 SA4.0
english
francais ( Inglesa A 11.0 SQ4.0

italiano

Aceptar ~j Cancelar Ayuda

Fig. 33

77
www.FreeLibros.me
76 of 305.

Unidad 2 Ejemplos con operaciones de bit, instrucciones binarias, temporizadores y contadores

Para que el cambio sea efectivo hay que cerrar el STEP 7 y volverlo a abrir. Vere
f Recuerda mos que tanto los nombres de las entradas y las salidas como la instruccin u tili
zada, han cambiado.
( "\
Siempre podre Una vez probado volveremos a la nemotcnica alemana.
mos convertir
un program a Ahora estando dentro del bloque, podremos cambiar el lenguaje de programa
de n em otc cin. Esto lo podremos hacer siempre y cuando el programa sea traducible. Las
nica inglesa traducciones de AWL a KOP o FUP no siempre son posibles. En este caso, por ejem
a alem ana y plo, la instruccin BE no existe ni en KOP ni en FUP. Si intentamos traducir esto
viceversa. Al nos va a decir que no es traducible. Al principio de este manual dijimos que todo
ca m b iar la
lo podemos programar en cualquiera de los tres lenguajes de programacin. Pero
nem otcnica
tambin advertimos que no siempre los programas sern traducibles tal cual los
cam b ia tanto
la nom enclatu tenemos escritos. Deberemos respetar unas normas si queremos que se pueda
ra de los traducir. Lo que si es cierto que cualquier funcionalidad se la podremos dar, de una
contactos forma o de otra, en cualquiera de los tres lenguajes.
com o las
propias ins Si le quitamos el BE que no nos aporta nada nuevo al programa, veremos que
trucciones de ya lo podemos traducir. En AWL podemos poner o no poner la instruccin BE. El
programa. programa funcionar exactamente igual con esta instruccin o sin ella. La instruc
V J cin existe porque exista en el antiguo programa STEP 5 de programacin y se ha
mantenido. En aquel lenguaje obligatoriamente haba que escribir BE al terminar
cualquier bloque,

Para cambiar el lenguaje del bloque, tenemos que ir al men Ver KOP
Veremos aue tenemos el mismo Droerama en AWL en KOP o en FUP.

SOLUCIN AWL

OBI : "Main Program Sweep (Oyele)"


Comentario:

: Titulo:
Comentario:

u E
o
O

u E 0.1
= A 4.0
Flg. 34

SOLUCION EN KOP

OBI : "Main Program Sweep (Cycle)"


Comentario:

: Ttulo:
Comentario:

EO.O E0.1 A4. 0


H I------------------ 1 b -O I

Fig. 35

78

www.FreeLibros.me
77 of 305.

------------- Unidad 2 Ejemplos con operaciones de bit, instrucciones binarias, temporizadores y contadores

SOLUCIN EN FUP

OBI : "Main Prograia Sweep (Cycle)"


Comentario:

j ---------
Segm. 1,: Titulo:

Comentario:

s
EO. 0 A4.0
=
EO. 1
Flg. 3

Ahora deberamos probar que esto funciona. Enviamos el bloque al PLC y con el
simulador que tenemos probamos que funciona. Si activamos las entradas EO.O y
E0.1, debera activarse la salida A4.0.

2.3 Contactos en paralelo

[ ^ Ejercicio 2: C ontactos en p arale lo

TEORA
INSTRUCCIN "O "

Para unir dos contactos en paralelo tenemos la instruccin "O".


Con esta instruccin unimos varias condiciones en paralelo. La instruccin nos
sirve tanto para instrucciones de primera consulta como para el resto de condi
ciones.
Para la instruccin de primera consulta, podemos utilizar tanto la instruccin "U"
como la instruccin "O". Cuando consultamos un primer contacto, de momento
no est ni en serie ni en paralelo. Es el segundo contacto el que ponemos en serie
o en paralelo con el primero. Lo mismo ocurre al dibujar el segmento en KOP o en
FUP. El primer contacto siempre lo dibujamos igual.
El programa funcionara exactamente igual utilizando la instruccin "O" o la ins
truccin "U" como primera consulta. Si queremos aadir ms condiciones en
paralelo, en AWL las aadimos mediante la instruccin O. En KOP dibujamos ms
contactos iguales que el primero, pero en paralelo con ste. En FUP deberamos
coger del catlogo la cajita que tiene como smbolo la condicin "O" (ver resolu
cin del ejercicio).

79
www.FreeLibros.me
78 of 305.

Unidad 2 Ejemplos con operaciones de bit ,instrucciones binarias, temporiza

Ejercicio 2: Contactos en paralelo


\ /
TEORA PREVIA: Instruccin O".
DEFINICIN Y SOLUCIN

Veamos cmo podramos resolver el siguiente circuito elctrico:

E 0.0

Vemos que lo que tenemos son dos contactos en paralelo.

Para programar los contactos en paralelo tenemos la instruccin "O".

SOLUCIN EN AWL

u E 0.0 (tambin O E 0.0)


0 E 0.1
A 4.0

SOLUCIN EN KOP

OBI : "Main Program Sweep (Cycle)"


Comentario:

Segm. 1): Ttulo:

Comentario:

EO.O 4.0

O I

EO.l

Flg. 37

80
www.FreeLibros.me

You might also like