You are on page 1of 102

Ejercicios resueltos

para autmatas
SIMATIC S7-300
(Lenguaje AWL)
Emilio Gonzlez Rueda

e-mail: ediciones@canopina.com
www.canopina.com
Cano Pina, S.L. Ediciones Ceysa

Este producto est protegido por las leyes de propiedad


intelectual. Est prohibida la reproduccin o distribucin
de parte alguna de la presente edicin, ya sea por medios
electrnicos, mecnicos o cualquier otro, sin la previa
autorizacin del editor.

de la presente edicin: Cano Pina, S.L. Ediciones Ceysa

de la obra: el autor

Ttulo: Ejercicios resueltos para autmatas SIMATIC S7-300 (Lenguaje AWL)

Autor: Emilio Gonzlez Rueda



Edita: Cano Pina, S.L.- Ediciones Ceysa

ISBN: 978-84-15884-61-3

Produccin: Susana Encinas



Diseo de portada: Josep Costa i Ardiaca
Prlogo
A quin va dirigido este libro
Este libro de ejercicios es un complemento del titulado Programacin de
Autmatas SIMATIC S7-300 (Lenguaje AWL), del mismo autor, publicado por
CANO PINA, S.L., Ediciones CEYSA, y va dirigido a aquellos lectores que
dispongan de los conocimientos especficos que se detallan en el mismo.

Convenios
A lo largo de su contenido, en ocasiones se remite al lector a determinadas
pginas del libro anteriormente mencionado. Para ello, se emplea la palabra
genrica libro en lugar de poner el ttulo completo. As, por ejemplo cuando
en el libro de ejercicios, y por razones de brevedad, decimos ir a la pgina
123 del libro, realmente el lector debe entender ir a la pgina 123 del libro de
Programacin, excepto que se diga lo contrario.

Alcance de este libro


Este libro de ejercicios debe entenderse como lo que realmente es: una
herramienta donde se presentan soluciones de ejercicios con el objeto de que el
lector aprenda las ventajas e inconvenientes que ofrece cada uno de los mtodos
de programacin que se presentan.

Normalmente las soluciones que se dan en estos ejercicios no estn optimizadas


para casos reales, por lo que deben considerarse como ejercicios de aprendizaje
nicamente.

Material necesario para el aprendizaje


Es aqu vlido lo que ya dijimos en el libro terico anteriormente mencionado,
esto es, que sera aconsejable practicar los ejemplos de este libro, bien con un
autmata real o bien con un programa de simulacin, y en cualquier caso con un
ordenador personal (PC) como mnimo con:

o Procesador Pentium III.

o Memoria central de 64 MB .

o Capacidad en disco libre de 500 MB.

o Sistema operativo W98.

o STEP-7, v5.0.

Lenguaje de programacin
En su contenido se hace uso exclusivamente del lenguaje de programacin
AWL de SIE-MENS, cuyas reglas se fijan en la norma DIN EN-61131-3
(int. IEC 1131-3).

Los nombres de productos que se listan a continuacin (entre otros), son marcas
registradas por SIEMENS AG: SIMATIC, SIMATIC NET, SIMATIC HMI, PLCSIM,
STEP 7, AWL, KOP, FUP, NETPRO, MPI.

As, los nombres que se listan a continuacin (entre otros), son marcas
registradas por LENZE: QUICKSTOP
ndice
1 Motores trifsicos

2 Contadores

3 Mquina remachadora

4 Mquina transfer

5 Variadores de frecuencia

6 Manipulador, cinta incremental y V/F

7 Motores servo

8 Programacin por recetas

9 Hardware
Motores trifsicos

ndice Motores trifsicos

Ejemplo de manejo de motores trifsicos en una instalacin de gra.

Se trata de una gra gobernada por dos (2) motores trifsicos. El primero (M1) permite subir y
bajar el gancho, mientras que el segundo (M2) permite desplazar a derecha e izquierda el con-
junto.

Los finales de carrera 1, 2, 3 y 4 (que llamaremos FC1, FC2, FC3 y FC4 respectiva-
mente), permiten informar al autmata de las posiciones extremas de la gra.

En cuanto a los motores M1 y M2, los supondremos dotados de elementos adicionales que nos
permiten excitarlos directamente con seales de +24VDC con arreglo a la siguiente tabla:

DM1 IM1 DM2 IM2

M1 M2

DM1 IM1 MOVIMIENTO GANCHO


0 0 Quieto
0 +24 VDC Baja
+24 VDC 0 Sube
+24 VDC +24 VDC No permitido

DM2 IM2 MOVIMIENTO CONJUNTO


0 0 Quieto
0 +24 VDC Derecha
+24 VDC 0 Izquierda
+24 VDC +24 VDC No permitido

7
Motores trifsicos

Tabla de contactos de entrada/salida:

Entradas Salidas
E124.0 Botn Empezar (BE) A124.0 DM1 (sube gancho)
E124.1 FC1 (gancho abajo) A124.1 IM1 (baja gancho)
E124.2 FC2 (gancho arriba) A124.2 DM2 (conjunto gra hacia la izquierda)
E124.3 FC3 (conjunto a la izquierda) A124.3 IM2 (conjunto gra hacia la derecha)
E124.4 FC4 (conjunto a la derecha)

La posicin de partida de la gra es con el gancho abajo y pegado a la pared de la izquierda.

Se dispone de un Botn Empezar (BE) que al ser oprimido (siempre y cuando la gra se encuen-
tre en su posicin correcta de partida), primero hace que suba el gancho, despus se desplaza la
gra a la derecha, baja el gancho, permanece diez (10) segundos sin hacer nada, sube el gancho,
se desplaza a la izquierda, finalmente baja y se queda en reposo esperando una nueva pulsacin
sobre BE.

Grafcet G1:

7 3

4 Subir gancho
0 Subir gancho

Gancho arriba?
Gancho arriba?
Parar subir gancho
5
Parar subir gancho Gra a derecha
1
Gra a izquierda
Gra derecha?
Gra izquierda? Parar gra derecha

Parar gra izquierda


6 Bajar gancho
2
Bajar gancho
Gancho abajo?
Gancho abajo?
Parar bajar gancho
7
Temporizador = 10 seg.
3 Parar bajar gancho
10 seg?
(BE) Y Gra en posicin?
0
4

8
Motores trifsicos

Pasaremos ahora al Grafcet G2:

7 3
M0.4
M0.0
4 A124.0=1
0 A124.0=1

E124.2
E124.2 M0.5
M0.1 A124.0=0
5
A124.0=0 A124.3=1
1
A124.2=1
E124.4
E124.3 M0.6
A124.3=0
M0.2
6 A124.1=1
A124.2=0
2
A124.1=1
E124.1
E124.1 M0.7
M0.3 A124.1=0
7
T0 = 10 seg. (sv)
3 A124.1=0
10 seg?
E124.0 Y E124.1 Y E124.3
0
4

Y la traduccin a AWL de este G2:

OB1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 0.0 U M 0.3 U M 0.6
SPBN _000 SPBN _003 SPBN _006
S A 124.0 R A 124.1 R A 124.3
U E 124.2 U E 124.0 S A 124.1
R M 0.0 U E 124.1 U E 124.1
S M 0.1 U E 124.3 R M 0.6
_000: NOP 0 R M 0.3 S M 0.7
S M 0.4 _006: NOP 0
U M 0.1 _003: NOP 0
SPBN _001 U M 0.7
R A 124.0 U M 0.4 R A 124.1
S A 124.2 SPBN _004
U E 124.3 S A 124.0 U M 0.7
R M 0.1 U E 124.2 L S5T#10S
S M 0.2 R M 0.4 SV T 0
_001: NOP 0 S M 0.5
_004: NOP 0 U M 0.7
U M 0.2 UN T 0
SPBN _002 U M 0.5 R M 0.7
R A 124.2 SPBN _005 S M 0.0
S A 124.1 R A 124.0
U E 124.1 S A 124.3
R M 0.2 U E 124.4
S M 0.3 R M 0.5
_002: NOP 0 S M 0.6
_005: NOP 0

9
Motores trifsicos

En cuanto a OB100:

L B#16#0
T MB0
CALL SFC21
BVAL:= P#M0.0 BYTE 1
RET_VAL:MW100
BLK := P#M 1.0 BYTE 500
L W#16#0
T AW124
SET
S M0.0

10
Contadores

ndice Contadores

Ejemplo primero de manejo de un contador ascendente colocado en


el bloque OB1.

U E 124.0 //Se incrementa Z0 en cada flanco de subida de E124.0


ZV Z 0
NOP 0
U E 124.1 //Se carga Z0 con la constante 5, en el flanco de subida
L C#5 //de E124.1
S Z 0
U E 124.2 //Se pone a cero el contador Z0, si E124.2=1
R Z 0
L Z 0 //Carga el contenido de Z0 y lo muestra en AW124 en formato HEX
T AW 124
LC Z 0 //Carga el contenido de Z0 y lo muestra en AW126 en formato BCD
T AW 126
U Z 0 //Si Z0<>0, A128.0=1, pero si Z0=0, entonces A128.0=0.
= A 128.0

Ejemplo segundo de manejo de un contador ascendente y


descendente colocado en el bloque OB1.

U E 124.0 //Se incrementa Z0 en cada flanco de subida de E124.0


ZV Z 0
U E 124.1 //Se decrementa Z0 en cada flanco de subida de E124.1
ZR Z 0
NOP 0
U E 124.2 //Se carga Z0 con la constante 5, en el flanco de subida
L C#5 //de E124.2
S Z 0
U E 124.3 //Se pone a cero el contador Z0, si E124.3=1
R Z 0
L Z 0 //Carga el contenido de Z0 y lo muestra en AW124 en formato HEX
T AW 124
LC Z 0 //Carga el contenido de Z0 y lo muestra en AW126 en formato BCD
T AW 126
U Z 0 //Si Z0<>0, A128.0=1, pero si Z0=0, entonces A128.0=0.
= A 128.0

11
Contadores

Ejemplo tercero de un contador ascendente y descendente colocado


en FC1. La conexin con FC1 se corta automticamente cuando el
contador alcanza el valor prefijado.
Contenido de FC1:

Declaracin de parmetros formales:

In_out BitQueIncrementaContador BOOL


In_out BitQueDecrementaContador BOOL
In_out BitQuePoneACeroContador BOOL
In_out ContenidoDelContador INT
In_out ContenidoBCDDelContador INT
In_out SalidaBOOLDelContador BOOL
In ValorDeComparacion INT
In Contador COUNTER
In_out BitDeFin BOOL

O M 0.0
ON M 0.0
FP M 10.0
SPBN _100
S M 10.1
R M 10.2
R M 10.3
L 2
T #PalabraDeContar
R #BitDeFin
_100: NOP 0

U M 10.1
SPBN _101
U #BitQueIncrementaContador //Se incrementa #Contador en cada flanco de subida
ZV #Contador
U #BitQueDecrementaContador //Se decrementa #Contador en cada flanco de subida
ZR #Contador
U #BitQuePoneACeroContador //Se pone a cero #Contador
R #Contador
L #Contador //Deposita en #ContenidoDelContador el valor de
T #ContenidoDelContador //#Contador
LC #Contador //Deposita en #ContenidoDelContador en formato
T #ContenidoBCDDelContador //BCD el valor de #Contador
U #Contador //Si #Contador<>0, #SalidaBOOLDelContador=1,
= #SalidaBOOLDelContador //Y si #Contador=0, #SalidaBOOLDelContador=0.
L #Contador
L #ValorDeComparacion
-I
SPN _101
SET
R M 10.1
S M 10.2
_101: NOP 0

12
Contadores

U M 10.2
SPBN _102
R #Contador
L #PalabraDeContar
L 1
-I
T #PalabraDeContar
SPN _102
SET
R M 10.2
S M 10.3
_102: NOP 0

U M 10.3
SPBN _103
R M 10.3
R M 10.0
S #BitDeFin
_103: NOP 0

Contenido de OB1:

U E 124.0 //Estas tres primeras lneas, sirven nicamente


FP M 0.0 //para poner a 1 el Bit M0.1.
S M 0.1

U M 0.1
SPBN _001
CALL FC 1
Contador :=Z0
ValorDeComparacion :=5
BitQueIncrementaContador :=E125.0
BitQueDecrementaContador:=E125.1
BitQuePoneACeroContador :=E125.2
ContenidoDelContador :=AW124
ContenidoBCDDelContador:=AW126
SalidaBOOLDelContador :=A128.0
BitDeFin :=M150.0
PalabraDeContar :=MW100
U M 150.0
R M 0.1
_001: NOP 0

13
Mquina remachadora

ndice Mquina remachadora

Ejemplo de manejo de una mquina de remachar.

B
D
ARRASTRADOR 3

ARRASTRADOR 2 N4
N3

C N2
N1

ARRASTRADOR 1

La mquina del dibujo, ensambla dos (2) chapas de la siguiente forma.

El operario coloca manualmente dos (2) chapas, una en el arrastrador 2 y la otra en arrastrador
3, despus pulsa un Botn Empezar (BE) y a partir de aqu ocurre lo siguiente:

1.- Sale cilindro A que mueve el arrastrador N2-N1 hasta situar N1 bajo el cilindro D.
2.- Sale el cilindro D y efecta el remachado de N1.
3.- Se retrae el cilindro D.
4.- Sale el cilindro C y sita N2 bajo el cilindro D.
5.- Sale el cilindro D y efecta el remachado de N2.
6.- Se retrae el cilindro D.
7.- Se retrae el cilindro C.
8.- Se retrae el cilindro A y sita N3 bajo el cilindro D.
9.- Sale el cilindro D y efecta el remachado de N3.
10.- Se retrae el cilindro D.
11.- Sale el cilindro B y sita N4 bajo el cilindro D.
12.- Sale el cilindro D y efecta el remachado de N4.
13.- Se retrae el cilindro D.
14.- Se retrae el cilindro B.

El operario retira las chapas, coloca dos (2) nuevas chapas y el ciclo vuelve a comenzar.

En todos los casos los cilindros estn gobernados por electro vlvulas del tipo 5/2 monoestables.

Se pide realizar un programa que controle el proceso.

Este ejercicio lo hemos resuelto ya en la pgina 194 del libro empleando funciones tipo C, aun-
que aqu vamos a resolverlo empleando funciones tipo D, para que el lector pueda comparar las
ventajas e inconvenientes de cada una de las soluciones adoptadas.

15
Mquina remachadora

Lo mismo que antes, haremos primeramente un estudio de los movimientos elementales que
pensamos manejar desde funciones

Salir cilindro A (A+) Salir cilindro C (C+)


Entrar cilindro A (A-) Entrar cilindro C (C-)
Salir cilindro B (B+) Salir cilindro D (D+)
Entrar cilindro B (B-) Entrar cilindro D (D-)

Empezaremos resolviendo el problema empleando funciones tipo D.

Para ello, crearemos dos (2) funciones FC1 y FC2 tales que la FC1 realice la tarea de sacar el
mbolo de un cilindro cualquiera y la FC2 realice la tarea de introducir el mbolo de un cilindro
cualquiera.

Empezaremos como siempre pintando la tabla de entradas/salidas, que lgicamente debe ser la
misma que ya hemos visto en la pgina 195 del libro.

Entradas Salidas
E124.0 Botn Empezar (BE) A124.0 Salir cilindro/retraer cilindro A
E124.1 El mbolo del cilindro A est fuera A124.1 Salir cilindro/retraer cilindro B
E124.2 El mbolo del cilindro A est dentro A124.2 Salir cilindro/retraer cilindro C
E124.3 El mbolo del cilindro B est fuera A124.3 Salir cilindro/retraer cilindro D
E124.4 El mbolo del cilindro B est dentro
E124.5 El mbolo del cilindro C est fuera
E124.6 El mbolo del cilindro C est dentro
E124.7 El mbolo del cilindro D est fuera
E125.0 El mbolo del cilindro D est dentro

Veamos ahora el G1 de la funcin FC1:

Desde OB1

0 Inicializar la funcin en la 1 pasada y no volver a ejecutar esta etapa

=1

1 Salir mbolo del cilindro

El mbolo ha salido

2 BitDeFin=1

=1

Hacia OB1

16
Mquina remachadora

Y ahora el G2 de FC1:

Desde OB1
En la 1 pasada hacer:
0 BitDeEtapa_1=1
Inicializar valores BitDeEtapa_2=0
BitDeFin = 0)
=1
BitDeEtapa_1
1 BitDeSalidaAfectada = 1

BitDeEntradaAfectada=1
BitDeEtapa_2
BitDeFin=1
2 BitDeTrabajo=0

=1

Hacia OB1

Podemos ahora crear la funcin FC1 y declararemos los siguientes parmetros formales:

In BitDeTrabajo BOOL
In BitDeEtapa_1 BOOL
In BitDeEtapa_2 BOOL
Out BitDeFin BOOL
Out BitDeSalidaAfectada BOOL
In BitDeEntradaAfectada BOOL

Los parmetros actuales que pasaremos a FC1, segn se trate de ordenar salir el mbolo de A,
B, C o D, sern los siguientes:

A B C D
BitDeTrabajo M10.0 M11.0 M12.0 M13.0
BitDeEtapa_1 M10.1 M11.1 M12.1 M13.1
BitDeEtapa_2 M10.2 M11.2 M12.2 M13.2
BitDeFin M200.0 M200.1 M200.2 M200.3
BitDeSalidaAfectada A124.0 A124.1 A124.2 A124.3
BitDeEntradaAfectada E124.1 E124.3 E124.5 E124.7

El contenido de FC1 ser el siguiente:

FC1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


O M 0.0 U #BitDeEtapa_1 U #BitDeEtapa_2
ON M 0.0 SPBN _101 SPBN _102
FP #BitDeTrabajo S #BitDeSalidaAfectada R #BitDeEtapa_2
SPBN _100 U #BitDeEntradaAfectada S #BitDeFin
S #BitDeEtapa_1 R #BitDeEtapa_1 R #BitDeTrabajo
R #BitDeEtapa_2 S #BitDeEtapa_2 _102: NOP 0
R #BitDeFin _101: NOP 0
_100: NOP 0

17
Mquina remachadora

La funcin FC2, encargada de introducir los mbolos de los cuatro (4) cilindros, es igual que la
funcin FC1, slo que la lnea tres (3) de la etapa uno (1) dir R #BitDeSalidaAfectada
en lugar de S #BitDeSalidaAfectada, razn por la que no la volveremos a escribir aqu.

As, los parmetros actuales que pasaremos a FC2, segn se trate de ordenar entrar el mbolo de
A, B, C D, sern los siguientes:

A B C D
BitDeTrabajo M14.0 M15.0 M16.0 M17.0
BitDeEtapa_1 M14.1 M15.1 M16.1 M17.1
BitDeEtapa_2 M14.2 M15.2 M16.2 M17.2
BitDeFin M200.4 M200.5 M200.6 M200.7
BitDeSalidaAfectada A124.0 A124.1 A124.2 A124.3
BitDeEntradaAfectada E124.2 E124.4 E124.6 E125.0

Ahora que ya tenemos FC1 y FC2, podemos pensar en OB1, que tendr el siguiente G1:
6

ENTRAR A (A-)
ENTRAR B (B-) 7 ENTRAR C (C-)
0
ENTRAR C (C-)
ENTRAR D (D-) C entrado
BE*(A entrado)*(B entrado)*
(C entrado)*(D entrado) 10 ENTRAR A (A-)

1 SALIR A (A+) A entrado

A salido 11 SALIR D (D+)

D salido
2 SALIR D (D+)
12 ENTRAR D (D-)

D salido
D entrado
3 ENTRAR D (D-)
13 SALIR B (B+)
D entrado
B salido

4 SALIR C (C+)
14 SALIR D (D+)
C salido
D salido

5 SALIR D (D+)
15 ENTRAR D (D-)

D salido
D entrado
6 ENTRAR D (D-)
0
16 ENTRAR B (B-)
D entrado
B entrado
7
0

18
Mquina remachadora

Y el siguiente G2:

6
M0.7
M0.0 CALL FC2 (A)
CALL FC2 (B) 7 CALL FC2 (C)
0
CALL FC2 (C)
CALL FC2 (D) M200.6
M1.0
E124.0*M200.4*M200.5*
*M200.6*M200.7 10 CALL FC2 (A)
M0.1
1 CALL FC1 (A) M1.1 M200.4

M200.0 11 CALL FC1 (D)


M0.2
M200.3
CALL FC1 (D) M1.2
2
12 CALL FC2 (D)

M200.3
M0.3 M200.7
M1.3
3 CALL FC2 (D)
13 CALL FC1 (B)
M200.7
M0.4 M200.1
M1.4
4 CALL FC1 (C)
14 CALL FC1 (D)
M200.2
M0.5 M200.3
M1.5
5 CALL FC1 (D)
15 CALL FC2 (D)

M200.3
M0.6 M200.7
CALL FC2 (D) M1.6
6
0
16 CALL FC2 (B)
M200.7
M200.5

7
0

Donde:

FC1 (LETRA) = Funcin FC1 con parmetros actuales de cilindro LETRA


FC2 (LETRA) = Funcin FC2 con parmetros actuales de cilindro LETRA

Escribamos ahora el contenido de OB1 a partir de este ltimo G2:

19
Mquina remachadora

OB1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 0.0 U M 0.2
SPBN _000 SPBN _002
CALL FC 2 CALL FC 1
BitDeTrabajo :=M14.0 BitDeTrabajo :=M13.0
BitDeEtapa_1 :=M14.1 BitDeEtapa_1 :=M13.1
BitDeEtapa_2 :=M14.2 BitDeEtapa_2 :=M13.2
BitDeFin :=M200.4 BitDeFin :=M200.3
BitDeEntradaAfectada:=E124.2 BitDeEntradaAfectada:=E124.7
BitDeSalidaAfectada :=A124.0 //A- BitDeSalidaAfectada :=A124.3 //D+
CALL FC 2 U M 200.3
BitDeTrabajo :=M15.0 R M 0.2
BitDeEtapa_1 :=M15.1 S M 0.3
BitDeEtapa_2 :=M15.2 _002: NOP 0
BitDeFin :=M200.5
BitDeEntradaAfectada:=E124.4 U M 0.3
BitDeSalidaAfectada :=A124.1 //B- SPBN _003
CALL FC 2 CALL FC 2
BitDeTrabajo :=M16.0 BitDeTrabajo :=M17.0
BitDeEtapa_1 :=M16.1 BitDeEtapa_1 :=M17.1
BitDeEtapa_2 :=M16.2 BitDeEtapa_2 :=M17.2
BitDeFin :=M200.6 BitDeFin :=M200.7
BitDeEntradaAfectada:=E124.6 BitDeEntradaAfectada:=E125.0
BitDeSalidaAfectada :=A124.2 //C- BitDeSalidaAfectada :=A124.3 //D-
CALL FC 2 U M 200.7
BitDeTrabajo :=M17.0 R M 0.3
BitDeEtapa_1 :=M17.1 S M 0.4
BitDeEtapa_2 :=M17.2 _003: NOP 0
BitDeFin :=M200.7
BitDeEntradaAfectada:=E125.0 U M 0.4
BitDeSalidaAfectada :=A124.3 //D- SPBN _004
U M 200.4 CALL FC 1
U M 200.5 BitDeTrabajo :=M12.0
U M 200.6 BitDeEtapa_1 :=M12.1
U M 200.7 BitDeEtapa_2 :=M12.2
U E 124.0 BitDeFin :=M200.2
R M 0.0 BitDeEntradaAfectada:=E124.5
S M 0.1 BitDeSalidaAfectada :=A124.2 //C+
_000: NOP 0 U M 200.2
R M 0.4
U M 0.1 S M 0.5
SPBN _001 _004: NOP 0
CALL FC 1
BitDeTrabajo :=M10.0
BitDeEtapa_1 :=M10.1
BitDeEtapa_2 :=M10.2
BitDeFin :=M200.0
BitDeEntradaAfectada:=E124.1
BitDeSalidaAfectada :=A124.0 //A+
U M 200.0
R M 0.1
S M 0.2
_001: NOP 0

20
Mquina remachadora

OB1 (continuacin): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 0.5 U M 1.0
SPBN _005 SPBN _010
CALL FC 1 CALL FC 2
BitDeTrabajo :=M13.0 BitDeTrabajo :=M14.0
BitDeEtapa_1 :=M13.1 BitDeEtapa_1 :=M14.1
BitDeEtapa_2 :=M13.2 BitDeEtapa_2 :=M14.2
BitDeFin :=M200.3 BitDeFin :=M200.4
BitDeEntradaAfectada:=E124.7 BitDeEntradaAfectada:=E124.2
BitDeSalidaAfectada :=A124.3 //D+ BitDeSalidaAfectada :=A124.0 //A-
U M 200.3 U M 200.4
R M 0.5 R M 1.0
S M 0.6 S M 1.1
_005: NOP 0 _010: NOP 0
U M 0.6
SPBN _006 U M 1.1
CALL FC 2 SPBN _011
BitDeTrabajo :=M17.0 CALL FC 1
BitDeEtapa_1 :=M17.1 BitDeTrabajo :=M13.0
BitDeEtapa_2 :=M17.2 BitDeEtapa_1 :=M13.1
BitDeFin :=M200.7 BitDeEtapa_2 :=M13.2
BitDeEntradaAfectada:=E125.0 BitDeFin :=M200.3
BitDeSalidaAfectada :=A124.3 //D- BitDeEntradaAfectada:=E124.7
U M 200.7 BitDeSalidaAfectada :=A124.3 //D+
R M 0.6 U M 200.3
S M 0.7 R M 1.1
_006: NOP 0 S M 1.2
_011: NOP 0
U M 0.7
SPBN _007 U M 1.2
CALL FC 2 SPBN _012
BitDeTrabajo :=M16.0 CALL FC 2
BitDeEtapa_1 :=M16.1 BitDeTrabajo :=M17.0
BitDeEtapa_2 :=M16.2 BitDeEtapa_1 :=M17.1
BitDeFin :=M200.6 BitDeEtapa_2 :=M17.2
BitDeEntradaAfectada:=E124.6 BitDeFin :=M200.7
BitDeSalidaAfectada :=A124.2 //C- BitDeEntradaAfectada:=E125.0
U M 200.6 BitDeSalidaAfectada :=A124.3 //D-
R M 0.7 U M 200.7
S M 1.0 R M 1.2
_007: NOP 0 S M 1.3
_012: NOP 0

21
Mquina remachadora

OB1 (continuacin): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 1.3 U M 1.5
SPBN _013 SPBN _015
CALL FC 1 CALL FC 2
BitDeTrabajo :=M11.0 BitDeTrabajo :=M17.0
BitDeEtapa_1 :=M11.1 BitDeEtapa_1 :=M17.1
BitDeEtapa_2 :=M11.2 BitDeEtapa_2 :=M17.2
BitDeFin :=M200.1 BitDeFin :=M200.7
BitDeEntradaAfectada:=E124.3 BitDeEntradaAfectada:=E125.0
BitDeSalidaAfectada :=A124.1 //B+ BitDeSalidaAfectada :=A124.3 //D-
U M 200.1 U M 200.7
R M 1.3 R M 1.5
S M 1.4 S M 1.6
_013: NOP 0 _015: NOP 0

U M 1.4 U M 1.6
SPBN _014 SPBN _016
CALL FC 1 CALL FC 2
BitDeTrabajo :=M13.0 BitDeTrabajo :=M15.0
BitDeEtapa_1 :=M13.1 BitDeEtapa_1 :=M15.1
BitDeEtapa_2 :=M13.2 BitDeEtapa_2 :=M15.2
BitDeFin :=M200.3 BitDeFin :=M200.5
BitDeEntradaAfectada:=E124.7 BitDeEntradaAfectada:=E124.4
BitDeSalidaAfectada :=A124.3 //D+ BitDeSalidaAfectada :=A124.1 //B-
U M 200.3 U M 200.5
R M 1.4 R M 1.6
S M 1.5 S M 0.0
_014: NOP 0 _016: NOP 0

Quedndonos finalmente OB100, cuyo contenido podra ser el siguiente:

L B#16#0
T MB0
CALL SFC21
BVAL :=P#M0.0 BYTE 1
RET_VAL:=MW100
BLK :=P#M1.0 BYTE 200
SET
S M0.0

22
Mquina transfer

ndice Mquina transfer

Ejemplo de manejo de una mquina transfer.

Fig.17.6

Este ejemplo ya lo vimos en el apartado 15.3 del libro, y posteriormente tambin lo vimos en la
pgina 199 del mismo libro, slo que all lo vimos con funciones tipo C y aqu lo resolveremos
empleando funciones tipo D, con objeto de que el lector saque sus propias conclusiones sobre la
ventaja de emplear un mtodo u otro. Pasamos directamente a la tabla de contactos de entra-
da/salida:

Entradas Salidas
E124.0 Botn Empezar (BE) A124.0 Salir cilindro/retraer cilindro A
E124.1 El mbolo del cilindro A est dentro (RR1) A124.1 Salir cilindro/retraer cilindro B
E124.2 El mbolo del cilindro A est fuera (RR2) A124.2 Salir cilindro/retraer cilindro C
E124.3 El mbolo del cilindro B est dentro (RR3) A124.3 Salir cilindro/retraer cilindro D
E124.4 El mbolo del cilindro B est fuera (RR4) A124.4 Salir cilindro/retraer cilindro E
E124.5 El mbolo del cilindro C est dentro (RR5) A124.5 Salir cilindro/retraer cilindro F
E124.6 El mbolo del cilindro C est fuera (RR6) A124.6 Salir cilindro/retraer cilindro G
E124.7 El mbolo del cilindro D est dentro (RR7) A124.7 Salir cilindro/retraer cilindro H
E125.0 El mbolo del cilindro D est fuera (RR8) A125.0 Salir cilindro/retraer cilindros I/J
E125.1 El mbolo del cilindro E est dentro (RR9)
E125.2 El mbolo del cilindro E est fuera (RR10)
E125.3 El mbolo del cilindro F est dentro (RR11)
E125.4 El mbolo del cilindro F est fuera (RR12)
E125.5 El mbolo del cilindro G est dentro (RR13)
E125.6 El mbolo del cilindro G est fuera (RR14)
E125.7 El mbolo del cilindro H est dentro (RR15)
E126.0 El mbolo del cilindro H est fuera (RR16)
E126.1 El mbolo del cilindro I/J est dentro (RR17)
E126.2 El mbolo del cilindro I/J est fuera (RR18)

23
Mquina transfer

Llamaremos RRn al rel Reed n que detecta la posicin del mbolo del cilindro sobre el
que est montado.

Emplearemos las siguientes funciones tipo D:

Nombre Tarea
FC1 Hace salir el mbolo de cualquier cilindro.
FC2 Hace entrar el mbolo de cualquier cilindro.

Emplearemos electro vlvulas 5/2 monoestables.

Antes de pintar los G1 y G2 de OB1, empezaremos poniendo las tablas que despus usaremos
en las llamadas a FC1 y FC2:

Para FC1 (que hace salir cualquier cilindro):

A B C D E F G H I/J
BitDeTrabajo M10.0 M11.0 M12.0 M13.0 M14.0 M15.0 M16.0 M17.0 M20.0
BitDeEtapa_1 M10.1 M11.1 M12.1 M13.1 M14.1 M15.1 M16.1 M17.1 M20.1
BitDeEtapa_2 M10.2 M11.2 M12.2 M13.2 M14.2 M15.2 M16.2 M17.2 M20.2
BitDeFin M200.0 M200.1 M200.2 M200.3 M200.4 M200.5 M200.6 M200.7 M201.0
BitDeSalidaAfectada A124.0 A124.1 A124.2 A124.3 A124.4 A124.5 A124.6 A124.7 A125.0
BitDeEntradaAfectada E124.2 E124.4 E124.6 E125.0 E125.2 E125.4 E125.6 E126.0 E126.2

Tabla 1

Para FC2 (que hace entrar cualquier cilindro):

A B C D E F G H I/J
BitDeTrabajo M21.0 M22.0 M23.0 M24.0 M25.0 M26.0 M27.0 M30.0 M31.0
BitDeEtapa_1 M21.1 M22.1 M23.1 M24.1 M25.1 M26.1 M27.1 M30.1 M31.1
BitDeEtapa_2 M21.2 M22.2 M23.2 M24.2 M25.2 M26.2 M27.2 M30.2 M31.2
BitDeFin M201.1 M201.2 M201.3 M201.4 M201.5 M201.6 M201.7 M202.0 M202.1
BitDeSalidaAfectada A124.0 A124.1 A124.2 A124.3 A124.4 A124.5 A124.6 A124.7 A125.0
BitDeEntradaAfectada E124.1 E124.3 E124.5 E124.7 E125.1 E125.3 E125.5 E125.7 E126.1

Tabla 2

Ahora que ya tenemos estas tablas, pasaremos a pintar el G1 de OB1 que ya vimos en las pgi-
nas 203 y 204 del libro:

24
Mquina transfer

12,20,25,27
0 Hacer: A- , B+, C-, D-, E-, F-, G-, H- e I/J-

BE*Todos los cilindros estn en posicin

1 B-

Hecho

2 A+

Hecho

3 B+

Hecho

4 C+ 13 E+ 21 H+ 26 A-

Hecho Hecho Hecho Hecho


I+
5 D+ 14 F+ 22 27 ESPERAR
J+

Hecho Hecho Hecho


F- I-
6 D- 15 23
G+ J-

Hecho Hecho Hecho

7 D+ 16 G- 24 H-

Hecho Hecho Hecho

10 D- 17 E- 25 ESPERAR

Hecho Hecho

11 C- 20 ESPERAR

Hecho

12 ESPERAR

TODAS LAS SECUENCIAS HAN TERMINADO

25
Mquina transfer

Y ahora podemos pintar el G2 de OB1:

M0.0
FC2(A), FC1(B), FC2(C), FC2(D), FC2(E), 12,20,25,27
0 FC2(F), FC2(G), FC2(H), FC2(I/J)

E124.0*M201.1*M200.1*M201.3*M201.4* M201.5*M201.6*M201.7*M202.0*M202.1
M0.1
1 FC2(B)

M201.2
M0.2
2 FC1(A)

M200.0
M0.3
3 FC1(B)

M200.1

M0.4 M1.3 M2.1 M2.6


4 FC1(C) 13 FC1(E) 21 FC1(H) 26 FC2(A)

M200.2 M200.4 M200.7 M201.1


M0.5 M1.4 M2.2 M2.7
5 FC1(D) 14 FC1(F) 22 FC1(I/J) 27 ESPERAR

M200.3 M200.5 M201.0


M0.6 M1.5 M2.3
6 FC2(D) 15 FC2(F) 23 FC2(I/J)
FC1(G)
M201.4 M201.6*M200.6 M202.1
M0.7 M1.6 M2.4
7 FC1(D) 16 FC2(G) 24 FC2(H)

M200.3 M201.7 M202.0


M1.0 M1.7 M2.5
10 FC2(D) 17 FC2(E) 25 ESPERAR

M201.4 M201.5
M1.1 M2.0
11 FC2(C) 20 ESPERAR

M201.3
M1.2
12 ESPERAR

M1.2*M2.0*M2.5*M2.7

26
Mquina transfer

Vamos a pensar ahora en FC1 y FC2.

Empezaremos creando primeramente FC1, y declararemos previamente los siguientes parme-


tros formales:

In BitDeTrabajo BOOL
In BitDeEtapa_1 BOOL
In BitDeEtapa_2 BOOL
In BitDeEntradaAfectada BOOL
Out BitDeFin BOOL
Out BitDeSalidaAfectada BOOL

Y rpidamente escribiremos FC2, que es igual que FC1 excepto que ordenamos que entre el
cilindro y no que salga:

As pues:

FC1 FC2
O M 0.0 O M 0.0
ON M 0.0 ON M 0.0
FP #BitDeTrabajo FP #BitDeTrabajo
SPBN _100 SPBN _100
S #BitDeEtapa_1 S #BitDeEtapa_1
R #BitDeEtapa_2 R #BitDeEtapa_2
R #BitDeFin R #BitDeFin
_100: NOP 0 _100: NOP 0

U #BitDeEtapa_1 U #BitDeEtapa_1
SPBN _101 SPBN _101
S #BitDeSalidaAfectada R #BitDeSalidaAfectada //*
//* U #BitDeEntradaAfectada
U #BitDeEntradaAfectada R #BitDeEtapa_1
R #BitDeEtapa_1 S #BitDeEtapa_2
S #BitDeEtapa_2 _101: NOP 0
_101: NOP 0
U #BitDeEtapa_2
U #BitDeEtapa_2 SPBN _102
SPBN _102 R #BitDeEtapa_2
R #BitDeEtapa_2 S #BitDeFin
S #BitDeFin R #BitDeTrabajo
R #BitDeTrabajo _102: NOP 0
_102: NOP 0

Obsrvese que la lnea marcada con * es la nica diferencia entre FC1 y FC2.

Con esto y con el G2 de OB1, que ya hemos visto, tenemos suficiente para escribir OB1 en len-
guaje AWL:

27
Mquina transfer

OB1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 0.0 CALL FC 2 //G-
SPBN _000 BitDeTrabajo :=M27.0
CALL FC 2 //A- BitDeEtapa_1 :=M27.1
BitDeTrabajo :=M21.0 BitDeEtapa_2 :=M27.2
BitDeEtapa_1 :=M21.1 BitDeEntradaAfectada:=E125.5
BitDeEtapa_2 :=M21.2 BitDeFin :=M201.7
BitDeEntradaAfectada:=E124.1 BitDeSalidaAfectada :=A124.6
BitDeFin :=M201.1 CALL FC 2 //H-
BitDeSalidaAfectada :=A124.0 BitDeTrabajo :=M30.0
CALL FC 1 //B+ BitDeEtapa_1 :=M30.1
BitDeTrabajo :=M11.0 BitDeEtapa_2 :=M30.2
BitDeEtapa_1 :=M11.1 BitDeEntradaAfectada:=E125.7
BitDeEtapa_2 :=M11.2 BitDeFin :=M202.0
BitDeEntradaAfectada:=E124.4 BitDeSalidaAfectada :=A124.7
BitDeFin :=M200.1 CALL FC 2 //I/J-
BitDeSalidaAfectada :=A124.1 BitDeTrabajo :=M31.0
CALL FC 2 //C- BitDeEtapa_1 :=M31.1
BitDeTrabajo :=M23.0 BitDeEtapa_2 :=M31.2
BitDeEtapa_1 :=M23.1 BitDeEntradaAfectada:=E126.1
BitDeEtapa_2 :=M23.2 BitDeFin :=M202.1
BitDeEntradaAfectada:=E124.5 BitDeSalidaAfectada :=A125.0
BitDeFin :=M201.3 U E 124.0
BitDeSalidaAfectada :=A124.2 U M 201.1
CALL FC 2 //D- U M 200.1
BitDeTrabajo :=M24.0 U M 201.3
BitDeEtapa_1 :=M24.1 U M 201.4
BitDeEtapa_2 :=M24.2 U M 201.5
BitDeEntradaAfectada:=E124.7 U M 201.6
BitDeFin :=M201.4 U M 201.7
BitDeSalidaAfectada :=A124.3 U M 202.0
CALL FC 2 //E- U M 202.1
BitDeTrabajo :=M25.0 R M 0.0
BitDeEtapa_1 :=M25.1 S M 0.1
BitDeEtapa_2 :=M25.2 _000: NOP 0
BitDeEntradaAfectada:=E125.1
BitDeFin :=M201.5
BitDeSalidaAfectada :=A124.4
CALL FC 2 //F-
BitDeTrabajo :=M26.0
BitDeEtapa_1 :=M26.1
BitDeEtapa_2 :=M26.2
BitDeEntradaAfectada:=E125.3
BitDeFin :=M201.6
BitDeSalidaAfectada :=A124.5

28
Mquina transfer

OB1 (continuacin): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 0.1 U M 0.4
SPBN _001 SPBN _004
CALL FC 2 //B- CALL FC 1 //C+
BitDeTrabajo :=M22.0 BitDeTrabajo :=M12.0
BitDeEtapa_1 :=M22.1 BitDeEtapa_1 :=M12.1
BitDeEtapa_2 :=M22.2 BitDeEtapa_2 :=M12.2
BitDeEntradaAfectada:=E124.3 BitDeEntradaAfectada:=E124.6
BitDeFin :=M201.2 BitDeFin :=M200.2
BitDeSalidaAfectada :=A124.1 BitDeSalidaAfectada :=A124.2
U M 201.2 U M 200.2
R M 0.1 R M 0.4
S M 0.2 S M 0.5
_001: NOP 0 _004: NOP 0

U M 0.2 U M 0.5
SPBN _002 SPBN _005
CALL FC 1 //A+ CALL FC 1 //D+
BitDeTrabajo :=M10.0 BitDeTrabajo :=M13.0
BitDeEtapa_1 :=M10.1 BitDeEtapa_1 :=M13.1
BitDeEtapa_2 :=M10.2 BitDeEtapa_2 :=M13.2
BitDeEntradaAfectada:=E124.2 BitDeEntradaAfectada:=E125.0
BitDeFin :=M200.0 BitDeFin :=M200.3
BitDeSalidaAfectada :=A124.0 BitDeSalidaAfectada :=A124.3
U M 200.0 U M 200.3
R M 0.2 R M 0.5
S M 0.3 S M 0.6
_002: NOP 0 _005: NOP 0

U M 0.3 U M 0.6
SPBN _003 SPBN _006
CALL FC 1 //B+ CALL FC 2 //D-
BitDeTrabajo :=M11.0 BitDeTrabajo :=M24.0
BitDeEtapa_1 :=M11.1 BitDeEtapa_1 :=M24.1
BitDeEtapa_2 :=M11.2 BitDeEtapa_2 :=M24.2
BitDeEntradaAfectada:=E124.4 BitDeEntradaAfectada:=E124.7
BitDeFin :=M200.1 BitDeFin :=M201.4
BitDeSalidaAfectada :=A124.1 BitDeSalidaAfectada :=A124.3
U M 200.1 U M 201.4
R M 0.3 R M 0.6
S M 0.4 S M 0.7
S M 1.3 _006: NOP 0
S M 2.1
S M 2.6
_003: NOP 0

29
Mquina transfer

OB1 (continuacin): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 0.7 U M 1.4
SPBN _007 SPBN _014
CALL FC 1 //D+ CALL FC 1 //F+
BitDeTrabajo :=M13.0 BitDeTrabajo :=M15.0
BitDeEtapa_1 :=M13.1 BitDeEtapa_1 :=M15.1
BitDeEtapa_2 :=M13.2 BitDeEtapa_2 :=M15.2
BitDeEntradaAfectada:=E125.0 BitDeEntradaAfectada:=E125.4
BitDeFin :=M200.3 BitDeFin :=M200.5
BitDeSalidaAfectada :=A124.3 BitDeSalidaAfectada :=A124.5
U M 200.3 U M 200.5
R M 0.7 R M 1.4
S M 1.0 S M 1.5
_007: NOP 0 _014: NOP 0
U M 1.0
SPBN _010 U M 1.5
CALL FC 2 //D- SPBN _015
BitDeTrabajo :=M24.0 CALL FC 2 //F-
BitDeEtapa_1 :=M24.1 BitDeTrabajo :=M26.0
BitDeEtapa_2 :=M24.2 BitDeEtapa_1 :=M26.1
BitDeEntradaAfectada:=E124.7 BitDeEtapa_2 :=M26.2
BitDeFin :=M201.4 BitDeEntradaAfectada:=E125.3
BitDeSalidaAfectada :=A124.3 BitDeFin :=M201.6
U M 201.4 BitDeSalidaAfectada :=A124.5
R M 1.0 CALL FC 1 //G+
S M 1.1 BitDeTrabajo :=M16.0
_010: NOP 0 BitDeEtapa_1 :=M16.1
U M 1.1 BitDeEtapa_2 :=M16.2
SPBN _011 BitDeEntradaAfectada:=E125.6
CALL FC 2 //C- BitDeFin :=M200.6
BitDeTrabajo :=M23.0 BitDeSalidaAfectada :=A124.6
BitDeEtapa_1 :=M23.1
BitDeEtapa_2 :=M23.2 U M 201.6
BitDeEntradaAfectada:=E124.5 U M 200.6
BitDeFin :=M201.3 R M 1.5
BitDeSalidaAfectada :=A124.2 S M 1.6
U M 201.3 _015: NOP 0
R M 1.1
S M 1.2 U M 1.6
_011: NOP 0 SPBN _016
U M 1.3 CALL FC 2 //G-
SPBN _013 BitDeTrabajo :=M27.0
CALL FC 1 //E+ BitDeEtapa_1 :=M27.1
BitDeTrabajo :=M14.0 BitDeEtapa_2 :=M27.2
BitDeEtapa_1 :=M14.1 BitDeEntradaAfectada:=E125.5
BitDeEtapa_2 :=M14.2 BitDeFin :=M201.7
BitDeEntradaAfectada:=E125.2 BitDeSalidaAfectada :=A124.6
BitDeFin :=M200.4 U M 201.7
BitDeSalidaAfectada :=A124.4 R M 1.6
U M 200.4 S M 1.7
R M 1.3 _016: NOP 0
S M 1.4
_013: NOP 0

30
Mquina transfer

OB1 (continuacin): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 1.7 U M 2.4
SPBN _017 SPBN _024
CALL FC 2 //E- CALL FC 2 //H-
BitDeTrabajo :=M25.0 BitDeTrabajo :=M30.0
BitDeEtapa_1 :=M25.1 BitDeEtapa_1 :=M30.1
BitDeEtapa_2 :=M25.2 BitDeEtapa_2 :=M30.2
BitDeEntradaAfectada:=E125.1 BitDeEntradaAfectada:=E125.7
BitDeFin :=M201.5 BitDeFin :=M202.0
BitDeSalidaAfectada :=A124.4 BitDeSalidaAfectada :=A124.7
U M 201.5 U M 202.0
R M 1.7 R M 2.4
S M 2.0 S M 2.5
_017: NOP 0 _024: NOP 0
U M 2.1
SPBN _021 U M 2.6
CALL FC 1 //H+ SPBN _026
BitDeTrabajo :=M17.0 CALL FC 2 //A-
BitDeEtapa_1 :=M17.1 BitDeTrabajo :=M21.0
BitDeEtapa_2 :=M17.2 BitDeEtapa_1 :=M21.1
BitDeEntradaAfectada:=E126.0 BitDeEtapa_2 :=M21.2
BitDeFin :=M200.7 BitDeEntradaAfectada:=E124.1
BitDeSalidaAfectada :=A124.7 BitDeFin :=M201.1
U M 200.7 BitDeSalidaAfectada :=A124.0
R M 2.1 U M 201.1
S M 2.2 R M 2.6
_021: NOP 0 S M 2.7
U M 2.2 _026: NOP 0
SPBN _022
CALL FC 1 //I/J+ U M 1.2
BitDeTrabajo :=M20.0 U M 2.0
BitDeEtapa_1 :=M20.1 U M 2.5
BitDeEtapa_2 :=M20.2 U M 2.7
BitDeEntradaAfectada:=E126.2 R M 1.2
BitDeFin :=M201.0 R M 2.0
BitDeSalidaAfectada :=A125.0 R M 2.5
U M 201.0 R M 2.7
R M 2.2 S M 0.1
S M 2.3
_022: NOP 0 Colocaremos aqu el contenido de
U M 2.3 OB100 con objeto de no dejar sin uso
SPBN _023 este espacio:
CALL FC 2 //I/J-
BitDeTrabajo :=M31.0 L B#16#0
BitDeEtapa_1 :=M31.1 T MB 0
BitDeEtapa_2 :=M31.2 CALL "FILL" //SFC21
BitDeEntradaAfectada:=E126.1 BVAL :=P#M 0.0 BYTE 1
BitDeFin :=M202.1 RET_VAL:=MW100
BitDeSalidaAfectada :=A125.0 BLK :=P#M 1.0 BYTE 200
U M 202.1 SET
R M 2.3 S M 0.0
S M 2.4
_023: NOP 0

31
Variadores de frecuencia

ndice Variadores de frecuencia

Introduccin:
Como ya es sabido, la velocidad de giro (en RPM) de un motor trifsico asncrono con rotor en
cortocircuito, viene dado por la expresin:

F 60
P

Siendo F la frecuencia y P el nmero de polos magnticos del motor. A la vista de esta frmula,
se entiende que ya que P es una constante del motor, la nica forma que tenemos de variar la
velocidad de giro, es haciendo variar la frecuencia F.

Esto es precisamente lo que se consigue con los variadores de frecuencia, los que, en esencia, no
son nada ms que aparatos que entregan una tensin alterna trifsica, de frecuencia variable a
voluntad (dentro de ciertos lmites). Sobre este funcionamiento bsico, los fabricantes de este
tipo de material aaden otras funcionalidades, como por
ejemplo la posibilidad de invertir dos (2) fases para que el
motor gire en sentido contrario, o bien la posibilidad de
arrancar y parar el motor segn curvas de velocidad previa-
mente introducidas en el aparato, o la posibilidad de trabajar
con frecuencias fijas tambin previamente grabadas en el
aparato (frecuencias JOG), etc.

Es tambin tpico de estos aparatos, el disponer de un juego


de bornes codificados, cada uno con una misin concreta,
como veremos en breve.

El ejemplo que vamos a ver a continuacin, se fundamenta


en el variador de frecuencia 8200 SMD de la casa LENZE,
que podemos representar esquemticamente de la siguiente
forma:

33
Variadores de frecuencia

Donde:

Borne Datos de las conexiones (negrita=Lenze)


7 Potencial de referencia
8 Entrada analgica (0+10 modificable con C34) Resistencia entrada > 50 K
9 Alimentacin DC interna para potencimetro de consigna +10 V, mx., 10 mA.
20 Alimentacin DC interna para entradas digitales +12 V, mx., 20 mA
28 Entrada digital Stara/Stop 0=Stop, 1=Start
E1 Entrada digital configurable con CE1 (JOG1) E1=1
E2 Entrada digital configurable con CE2 (Sentido de giro) E2=0 (CW), E2=1 (CCW)
E3 Entrada digital configurable con CE3 (DCB) E3=1 (DCB)
K12 Salida rel (N.O.) AC250 V/3 A
K14 Fallo (Trip) DC 24 V/2 A...240 V/0,22 A

Para la resolucin de nuestros ejemplos, antes de usar el variador, introduciremos en el mismo


las siguientes constantes:

CE1=1
CE2=4
CE3=5

La eleccin de estos parmetros significa que cuando por E1 se reciba un 1, el V/F trabajar
con JOG1=20 Hz como frecuencia de consigna. Cuando por E2 se reciba un 1, el motor girar
en sentido contrario a las agujas del reloj (CCW), y cuando reciba un 0 girar en sentido de
las agujas del reloj (CW), y finalmente cuando E3 reciba 1, el motor se comportar segn el
siguiente esquema de velocidad (paro Quickstop de Lenze):

Hz

fmax
fd2

fd1
0 t
tir tif

Tir Tif

Siendo fmax la frecuencia introducida en C11 (normalmente 50 Hz.), fd2 la frecuencia de la que
se parte (caso de desaceleracin) o final (caso de aceleracin) que se desea alcanzar, fd1 la fre-
cuencia de la que se parte (caso de aceleracin) o final (caso de desaceleracin) que se desea
alcanzar.

34
Variadores de frecuencia

Con estos valores, se calcula Tir (tiempo de aceleracin) y Tif (tiempo de desaceleracin) con
las expresiones:

C12=Tir = tir*(C11/(fd2-fd1)) C13=Tif = tif*(C11/(fd2-fd1))

Ejemplo primero de variador de frecuencia.


Se dispone de un mvil impulsado por un motor trifsico que se desplaza sobre un rail-gua. En
los extremos del rail, se tienen dos (2) finales de carrera FC1 y FC2 que informan al PLC que el
mvil se encuentra en el extremo izquierdo o derecho del rail respectivamente. El motor desea-
mos controlarlo con el variador de frecuencia anterior.

Adems disponemos de dos (2) pulsadores P1 y P2, de los que P1 sirve para desplazar el mvil
hacia la derecha y P2 para desplazar el mvil hacia la izquierda.

Cuando el mvil llegue a un extremo del recorrido, no deber aceptar ninguna nueva orden de
movimiento hasta pasados 3 segundos desde su llegada a dicho extremo.

Adems se desea que en cuanto el autmata pase de STOP a RUN, el mvil se posicione en el
extremo izquierdo y se quede all esperando.

Tabla de entradas/salidas digitales:

Entradas Salidas
E124.0 Desplazar mvil a la derecha (P1) A124.0 Borne 28 (Start/Stop)
E124.1 Desplazar mvil a la izquierda (P2) A124.1 Borne E1 (JOG1=20Hz)
E124.2 FC1 (mvil est en extremo izquierdo) A124.2 Borne E2 (Izda/dcha. = CCW/CW)
E124.3 FC2 (mvil est en extremo derecho) A124.3 Borne E3 (Quickstop)

G1de OB1: G2 de OB1:

M0.0
A124.0=1
Quickstop=OFF A124.1=1
0 0 A124.2=1
Mover mvil a la izquierda
A124.3=0
FC1?
M0.1 E124.2=1
Quickstop=ON A124.3=1
1 1
Temporizar T0=6s (SV)

6S/X1 M0.2 T0=0


Quickstop=OFF A124.3=0
2 STOP 2 A124.0=0

P1? E124.0=1

Hacia prxima pgina Hacia prxima pgina

35
Variadores de frecuencia

De pgina anterior De pgina anterior

M0.3
Mover A124.2=0
3 mvil a 3 A124.0=1
dcha.
FC2? E124.3=1
M0.4

Quickstop=ON A124.3=1
4 4 T1=6s (SV)
Temporizar
6S/X4 T1=0
M0.5
Quickstop=OFF A124.3=0
5 5
STOP A124.0=0

P2? E124.1=1

0 0

Pasado el G2 a operaciones AWL, tendremos:

OB1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 0.0 U M 0.3
SPBN _000 SPBN _003
S A 124.0 R A 124.2
S A 124.1 S A 124.0
S A 124.2 U E 124.3
R A 124.3 R M 0.3
U E 124.2 S M 0.4
R M 0.0 _003: NOP 0
S M 0.1
_000: NOP 0 U M 0.4
S A 124.3
U M 0.1
S A 124.3 U M 0.4
L S5T#6S
U M 0.1 SV T 1
L S5T#6S
SV T 0 U M 0.4
UN T 1
U M 0.1 R M 0.4
UN T 0 S M 0.5
R M 0.1
S M 0.2 U M 0.5
SPBN _005
U M 0.2 R A 124.3
SPBN _002 R A 124.0
R A 124.3 U E 124.1
R A 124.0 R M 0.5
U E 124.0 S M 0.0
R M 0.2 _005: NOP 0
S M 0.3
_002: NOP 0

36
Variadores de frecuencia

En cuanto al contenido de OB100, podemos poner:

L B#16#0
T MB0
CALL SFC21
BVAL :=P#M 0.0 BYTE 1
RET_VAL:=MW100
BLK :=P#M 1.0 BYTE 500
L W#16#0
T AW124
SET
S M0.0

Ejemplo segundo de variador de frecuencia.


Se trata de un mvil que puede desplazarse arriba y abajo, movido por un usillo fijo en sus ex-
tremos, que a su vez es accionado por un moto reductor que est, al mismo tiempo, controlado
por un variador de frecuencia del tipo indicado anteriormente.

Las posiciones posibles del mvil son A y B, que podemos detectar gracias a los rels Reed
RR0 y RR1 respectivamente. La instalacin dispone tambin de dos (2) pulsadores P1 y P2 con
la misin de posicionar el mvil en A, y desplazar el mvil desde A hasta B, respectivamente.

37
Variadores de frecuencia

El perfil de velocidad que se pretende obtener, segn el paro Quickstop de Lenze, es el siguien-
te:

Velocidad

Tiempo

RR0=ON RR1=ON

Con lo dicho, tenemos ya informacin suficiente para definir la tabla de contactos de entra-
da/salida:

Entradas Salidas
E124.0 Rel Reed 0 (RR0) A124.0 Borne 28 (Start/Stop)
E124.1 Rel Reed 1 (RR1) A124.1 Borne E1 (JOG1=20Hz)
E124.2 Error (seal TRIP procedente de V/F) A124.2 Borne E2 (Izda/dcha. = CCW/CW)
E124.3 P1 (posicionar mvil en A) A124.3 Borne E3 (Quickstop)
E124.4 P2 (llevar mvil de A a B)

Vamos a resolver este ejemplo, primeramente metiendo todo el programa en OB1, y posterior-
mente lo haremos por medio de funciones.

Empecemos por el G1:


5 2 11

Quickstop=OFF Quickstop=OFF
0 3 10 ESPERAR
Stop Stop

P2 TRIP
P1

Mover a izda. 4 Mover a dcha. TRATAMIENTO


1 11 DEL ERROR

RR0=ON RR1=ON
=1
Quickstop=ON Quickstop=ON
2 5
Temporizar Temporizar
10
6s/X2 6s/X5

3 0

38
Variadores de frecuencia

La secuencia de la derecha es independiente de la izquierda, y tiene como misin entrar en una


rutina de tratamiento de error, que aqu no se incluye.

Pasaremos ahora al G2:

5 2 11
M0.0 A124.0=0 M0.3 M1.0
A124.1=1 A124.3=0 ESPERAR
0 3 10
A124.2=1 A124.0=0
A124.3=0
E124.3=1 E124.4=1 E124.2=1
M0.1 M0.4
A124.0=1 M1.1
TRATAMIENTO
1 A124.0=1 4 A124.2=0 11 DEL ERROR

E124.0=1 E124.1=1
M0.2 M0.5 =1
A124.3=1
A124.3=1
2 5 T1=6S (SV)
T0=6S (SV)
10
T0=0 T1=0

3 0

Que pasado a operaciones AWL nos queda:

OB1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 0.0 U M 0.2 U M 0.5
SPBN _000 L S5T#6S S A 124.3
R A 124.0 SV T 0
S A 124.1 U M 0.5
S A 124.2 U M 0.2 L S5T#6S
R A 124.3 UN T 0 SV T 1
U E 124.3 R M 0.2
R M 0.0 S M 0.3 U M 0.5
S M 0.1 UN T 1
_000: NOP 0 U M 0.3 R M 0.5
SPBN _003 S M 0.0
U M 0.1 R A 124.3 OB100:
SPBN _001 R A 124.0
S A 124.0 U E 124.4 L B#16#0
U E 124.0 R M 0.3 T MB 0
R M 0.1 S M 0.4 CALL "FILL"
S M 0.2 _003: NOP 0 BVAL :=P#M 0.0 BYTE 1
_001: NOP 0 RET_VAL:=MW100
U M 0.4 BLK :=P#M 1.0 BYTE 500
U M 0.2 SPBN _004 L W#16#0
S A 124.3 S A 124.0 T AW 124
R A 124.2 SET
U E 124.1 S M 0.0
R M 0.4 S M 1.0
S M 0.5
_004: NOP 0

39
Variadores de frecuencia

Si lo que deseamos es meter en funciones las tareas de desplazar el mvil en un sentido u otro,
entonces empezaremos por disear dos (2) funciones FC1 y FC2 tipo E que desplacen a izquier-
da y derecha respectivamente el mvil.

Empecemos por el G1 de FC1:

OB1

Inicializar la funcin en la 1
pasada y no volver a ejecutar
0
esta etapa.

=1

Mover a izda.
1
Temporizar

(Mvil S izda.) Y (tiempo NO excedido)

(Mvil NO izda.) Y (tiempo S excedido)

BitDeError=0 BitDeError=1
2 3
BitRutinaErrores=0 BitRutinaErrores=1
=1 =1

Quickstop=ON
4
Temporizar

6S/X4

Quickstop=OFF
5 Stop

=1
Poner a CERO temp.
6 Decrementar Palabra-
DeContar
PalabraDeContar=0

BitDeFin=1 de FC1
7

=1

OB1

40
Variadores de frecuencia

Veamos el G2 de FC1:

OB1
M10.1=1 MW100=2
M10.2=0 M150.0=0
M10.3=0 M200.0=0
0 M10.4=0 M250.0=0
M10.5=0 A124.0=0
M10.6=0 A124.1=1
M10.7=0 A124.2=1
=1 A124.3=0
M10.1
A124.0=1
1
T0=6S (SV)

(E124.0=1) Y (T0=1)

(E124.0=0) Y (T0=0)
M10.2 M10.3
M150.0=0 M150.0=1
2 3
M250.0=0 M250.0=1
=1 =1

M10.4
A124.3=1
4
T1=6S (SV)

T1=0
M10.5
A124.3=0
5 A124.0=0

=1
M10.6
R T0, R T1
6 MW100=MW100-1

MW100=0
M10.7
M200.0=1
7

=1

OB1

Y pasando este Grafcet a operaciones AWL, tendremos el contenido de FC1:

41
Variadores de frecuencia

FC1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


O M 0.0 U M 10.3
ON M 0.0 SPBN _103
FP M 10.0 S M 150.0
SPBN _100 S M 250.0
S M 10.1 R M 10.3
R M 10.2 S M 10.4
R M 10.3 _103: NOP 0
R M 10.4
R M 10.5 U M 10.4
R M 10.6 S A 124.3
R M 10.7
L 2 U M 10.4
T MW 100 L S5T#6S
R M 150.0 SV T 1
R M 200.0
R M 250.0 U M 10.4
R A 124.0 UN T 1
S A 124.1 R M 10.4
S A 124.2 S M 10.5
R A 124.3
_100: NOP 0 U M 10.5
SPBN _105
U M 10.1 R A 124.3
S A 124.0 R A 124.0
R M 10.5
U M 10.1 S M 10.6
L S5T#6S _105: NOP 0
SV T 0
U M 10.6
U M 10.1 SPBN _106
U E 124.0 R T 0
U T 0 R T 1
R M 10.1 L MW 100
S M 10.2 L 1
-I
U M 10.1 T MW 100
UN E 124.0 SPP _106
UN T 0 SET
R M 10.1 R M 10.6
S M 10.3 S M 10.7
_106: NOP 0
U M 10.2
SPBN _102 U M 10.7
R M 150.0 SPBN _107
R M 250.0 R M 10.7
R M 10.2 S M 200.0
S M 10.4 R M 10.0
_102: NOP 0 _107: NOP 0

42
Variadores de frecuencia

Puesto que FC2 es totalmente equivalente a FC1, podemos poner directamente el G2 de FC2,
que ser el siguiente:

OB1
M11.1=1 MW102=2
M11.2=0 M150.1=0
M11.3=0 M200.1=0
0 M11.4=0 M250.1=0
M11.5=0 A124.0=0
M11.6=0 A124.1=1
M11.7=0 A124.2=0
=1 A124.3=0
M11.1
A124.0=1
1
T2=6S (SV)

(E124.1=1) Y (T2=1)

(E124.1=0) Y (T2=0)
M11.2 M11.3
M150.1=0 M150.1=1
2 3
M250.1=0 M250.1=1
=1 =1

M11.4
A124.3=1
4
T3=6S (SV)

T3=0
M11.5
A124.3=0
5 A124.0=0

=1
M11.6
R T2, R T3
6 MW102=MW102-1

MW102=0
M11.7
M200.1=1
7

=1

OB1

43
Variadores de frecuencia

Que podemos pasar directamente a AWL:

FC2: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


O M 0.0 U M 11.3
ON M 0.0 SPBN _113
FP M 11.0 S M 150.1
SPBN _110 S M 250.1
S M 11.1 R M 11.3
R M 11.2 S M 11.4
R M 11.3 _113: NOP 0
R M 11.4
R M 11.5 U M 11.4
R M 11.6 S A 124.3
R M 11.7
L 2 U M 11.4
T MW 102 L S5T#6S
R M 150.1 SV T 3
R M 200.1
R M 250.1 U M 11.4
R A 124.0 UN T 3
S A 124.1 R M 11.4
R A 124.2 S M 11.5
R A 124.3
_110: NOP 0 U M 11.5
SPBN _115
U M 11.1 R A 124.3
S A 124.0 R A 124.0
R M 11.5
U M 11.1 S M 11.6
L S5T#6S _115: NOP 0
SV T 2
U M 11.6
U M 11.1 SPBN _116
U E 124.1 R T 2
U T 2 R T 3
R M 11.1 L MW 102
S M 11.2 L 1
-I
U M 11.1 T MW 102
UN E 124.1 SPP _116
UN T 2 SET
R M 11.1 R M 11.6
S M 11.3 S M 11.7
_116: NOP 0
U M 11.2
SPBN _112 U M 11.7
R M 150.1 SPBN _117
R M 250.1 R M 11.7
R M 11.2 S M 200.1
S M 11.4 R M 11.0
_112: NOP 0 _117: NOP 0

44
Variadores de frecuencia

En cuanto a OB1, nos queda ahora mucho ms sencillo, ya que slo hemos de llamar a las fun-
ciones FC1 o FC2, segn queramos que el movimiento sea hacia la izquierda o derecha respec-
tivamente.

Veamos los Grafcet de OB1:

5 5
M0.0
A124.0=0
STOP 0 A124.1=1
0
A124.2=1
A124.3=0
P1 E124.3=1
M0.1

Mover a izda. 1 FC1


1

Ya esta a la izda. M200.0=1


M0.2

ESPERAR 2 ESPERAR
2

P2 E124.4=1
M0.3

Mover a dcha. 3 FC2


3

Ya esta a la dcha. M200.1=1

0 0

Y la traduccin a operaciones AWL del G2 de OB1 ser:

OB1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M0.0 U M0.2
SPBN _000 SPBN _002
R A124.0 U E124.4
S A124.1 R M0.2
S A124.2 S M0.3
R A124.3 _002: NOP 0
U E124.3
R M0.0 U M0.3
S M0.1 SPBN _003
_000: NOP 0 CALL FC2
U M200.1
U M0.1 R M0.3
SPBN _001 S M0.0
CALL FC1 _003: NOP 0
U M200.0
R M0.1
S M0.2
_001: NOP 0

45
Variadores de frecuencia

En cuanto al tratamiento de los errores que se puedan presentar, deberemos disear una rutina
para su tratamiento que los contemple, teniendo en cuenta que los errores son:

Error procedente del variador de frecuencia (TRIP)


Errores procedentes de FC1 o FC2

Por ejemplo:

G1: G2:
OB1 5
M1.0

10 ESPERAR 10 ESPERAR

ERROR E124.2 O M150.0 O M150.1


M1.1

11 Tratamiento del ERROR 11 Tratamiento del ERROR

=1 =1

OB1 OB1

Observe el lector como al llegar al Grafcet de nivel 2 (G2) de la rutina de tratamiento de errores,
nos hemos limitado a dar slo una brevsima pincelada de cmo podra ser esta rutina de trata-
miento de errores, pero realmente no hemos desarrollado el mtodo en si mismo.

Efectivamente, los mtodos y tcnicas para el tratamiento de errores en un proceso industrial


son un tema realmente complejo (aunque a simple vista pueda no parecerlo), hasta el punto de
que su estudio necesitara un libro completo para su desarrollo y comprensin, razn por la que
no insistimos ms en este punto y nos limitamos a dejar el tema slo apuntado.
Nos quedara nicamente OB100, que podra ser as:

L B#16#0
T MB0
CALL SFC21
BVAL :=P#M 0.0 BYTE 1
RET_VAL:=MW100
BLK :=P#M 1.0 BYTE 500
L W#16#0
T AW124
SET
S M0.0

Ejemplo tercero de variador de frecuencia.


Se trata del mismo mecanismo del ejercicio anterior, slo que el posicionamiento del vehculo
lo vamos a hacer ahora por medio de un encoder simple acoplado al eje del motor.

Con todo, seguiremos usando un rel REED para inicializar el sistema, ya que de lo contrario
tendramos que usar un encoder absoluto con interfase SSI en el autmata, y esto complicara el
diseo en exceso.

46
Variadores de frecuencia

En cuanto al perfil de velocidad que se desea, es el siguiente:

Volvamos a pintar la tabla de contactos de entrada/salida, ya que han cambiado algunos de


ellos:

Entradas Salidas
E124.0 Pulsador POSICIONAR CARRO (PC) A124.0 Borne 28 (Start/Stop)
E124.1 Pulsador INICIALIZAR CARRO (IC) A124.1 Borne E1 (JOG1=20Hz)
E124.2 Error (seal TRIP procedente de V/F) A124.2 Borne E2 (Izda/dcha. = CCW/CW)
E124.3 Impulsos del ENCODER A124.3 Borne E3 (Quickstop)
E124.4 RR0

Reservaremos espacio para dos (2) registros que llamaremos REG1 y REG2, siendo REG1 un
registro de diecisis (16) Bits que almacena los impulsos que suministra el encoder y REG2
tambin un registro de diecisis (16) Bits que almacena el numero de vueltas completas que ha
dado el encoder.

REG1 = MW120
REG2 = MW122

47
Variadores de frecuencia

Con esto ya podemos pintar el G1 de OB1:

Impulsos del ENCODER 4,10

100 PC BitFlancoPositivo START


5
Mover a dcha.

=1 BitFlancoPositivo
Quickstop = OFF
STOP 6 Incrementar REG1
0
JOG1=ON

IC
REG1= K
REG1=0
7 REG1 K
1 Temporizar Incrementar REG2

=1
0.5S/X1

START REG3=REG1- N1
10 REG4=REG2- N2
2 Mover a izda.

RR0
REG3= REG4 = 0
Quickstop = ON Quickstop = ON REG3 O
3 11 REG4 0
Temporizar Temporizar

6S/X3 6S/X11
Quickstop = OFF
STOP 5
4 0
REG1=0
REG2=0
PC

Siendo K el nmero de impulsos que suministra el encoder en una revolucin, que en este caso
supondremos que son 1000.

Siendo N1y N2 el nmero de incrementos de una revolucin y el nmero de revoluciones com-


pletas respectivamente que definen la posicin a partir de la que empezaremos a frenar.

Para este caso, concretaremos por ejemplo N1= 500 y N2=50.

48
Variadores de frecuencia

Con lo que el G2 ser:

E124.3 4
M0.5
100 PC M2.1 A124.0=1
5
A124.2=0

=1 M2.1 E124.3
M0.0 M0.6
A124.3=0
A124.0=0 6 MW120=MW120+1
0
A124.1=1

E124.1
MW120= 1000
M0.1 M0.7
MW120=0 MW120 1000
T0=0.5S (SV) 7 MW122=MW122+1
1

=1
T0=0
M1.0
M0.2
A124.0=1 MW124=MW120-500
10 MW126=MW122-50
2 A124.2=1

E124.4
M0.3 M1.1 MW124=MW126 = 0
A124.3=1 A124.3=1 MW124 O
3 11 MW126 0
T1=6S (SV) T2=6S (SV)

T1=0 T2=0
M0.4 A124.3=0
A124.0=0 5
4 0
MW120=0
MW122=0
E124.0

49
Variadores de frecuencia

Que pasado a operaciones AWL tendremos:

OB1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U E 124.3 U M 0.4 U M 0.7
FP M 2.0 SPBN _004 SPBN _007
= M 2.1 R A 124.3 L 0
R A 124.0 T MW 120
U M 0.0 L 0 L MW 122
SPBN _000 T MW 120 L 1
R A 124.3 T MW 122 +I
R A 124.0 U E 124.0 T MW 122
S A 124.1 R M 0.4 SET
U E 124.1 S M 0.5 R M 0.7
R M 0.0 _004: NOP 0 S M 1.0
S M 0.1 _007: NOP 0
_000: NOP 0 U M 0.5
SPBN _005 U M 1.0
U M 0.1 S A 124.0 SPBN _010
L S5T#500MS R A 124.2 L MW 120
SV T 0 U M 2.1 L 2
R M 0.5 -I
U M 0.1 S M 0.6 T MW 124
UN T 0 _005: NOP 0 L MW 122
R M 0.1 L 3
S M 0.2 U M 0.6 -I
SPBN _006 T MW 126
U M 0.2 L MW 120 L MW 124
SPBN _002 L 1 L MW 126
S A 124.0 +I OW
S A 124.2 T MW 120 SPN NEQ2
U E 124.4 L MW 120 SET
R M 0.2 L 5 R M 1.0
S M 0.3 -I S M 1.1
_002: NOP 0 SPN NEQ1 SPA _010
SET NEQ2: SET
U M 0.3 R M 0.6 R M 1.0
S A 124.3 S M 0.7 S M 0.5
SPA _006 _010: NOP 0
U M 0.3 NEQ1: SET
L S5T#6S R M 0.6 U M 1.1
SV T 1 S M 1.0 S A 124.3
_006: NOP 0
U M 0.3 U M 1.1
UN T 1 L S5T#6S
R M 0.3 SV T 2
S M 0.4
U M 1.1
UN T 2
R M 1.1
S M 0.0

Como OB100 podemos emplear el mismo que el del ejercicio anterior.

50
Variadores de frecuencia

Ejemplo cuarto de variador de frecuencia.


Volveremos a emplear el mismo mecanismo que el del ejercicio anterior, slo que ahora mete-
remos en funciones las partes del programa que mueven el carro a derecha e izquierda.
Como hacemos siempre en la resolucin de un problema, empezaremos por pintar la tabla de
entradas/salidas digitales al autmata:

Entradas Salidas
E124.0 Pulsador POSICIONAR CARRO (PC) A124.0 Borne 28 (Start/Stop)
E124.1 Pulsador INICIALIZAR CARRO (IC) A124.1 Borne E1 (JOG1=20Hz)
E124.2 Error (seal TRIP procedente de V/F) A124.2 Borne E2 (Izda/dcha. = CCW/CW)
E124.3 Impulsos del ENCODER A124.3 Borne E3 (Quickstop)
E124.4 RR0

Empecemos por disear una funcin FC1 que nos permita mover el carro a la izquierda, y para
ello empezaremos pintando el G1 y G2 de esta funcin. Obsrvese que el tipo de funcin elegi-
do no se ajusta con exactitud a ninguno de los modelos que hemos definido como estndar en la
pgina 180 del libro. El motivo se debe a que los temporizadores usados en las definiciones de
la pgina 180 servan para averiguar si la orden que se daba al elemento mecnico se cumpla en
un tiempo determinado, mientras que aqu los temporizadores se emplean como tales y no con-
trolan si la accin se ha realizado o no en el tiempo previsto. La razn de no controlar si la ac-
cin se ha realizado o no, se debe a que no se quiere complicar el ejercicio en exceso, pero esta
es una posibilidad que deberamos tener en cuenta si quisiramos realmente controlar el posible
fallo del mecanismo.
G1: G2:
OB1 OB1 En el 1er scan hacer:
M10.1=0 MW100=2
M10.2=0 M200.0=0
0 Inicializar variables en 1er scan 0 M10.3=0 A124.0=0
M10.4=0 A124.1=1
A124.3=0
=1 M10.1 =1
START A124.0=1
1 1 A124.2=1
Mover a izda.

RR0=ON E124.4
M10.2
Quickstop=ON A124.3=1
2 2 T0=6S (SV)
Temporizar

6S/X2 T0=0 A124.0=0


STOP M10.3
A124.3=0
Quickstop = OFF 3
3 R T0
R T0
MW100=MW100-1
Decrementar PalabraDeContar
MW100 = 0
PalabraDeContar = 0 M10.4
M200.0=1
BitDeFin=1 4
4 M10.0=0
BitDeTrabajo=0

=1
=1

OB1
OB1

51
Variadores de frecuencia

Cuyas operaciones AWL sern:

FC1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


O M0.0 U M10.2
ON M0.0 UN T0
FP M10.0 R M10.2
SPBN _100 S M10.3
S M10.1
R M10.2 U M10.3
R M10.3 SPBN _103
R M10.4 R A124.0
L 2 R A124.3
T MW100 R T0
R M200.0 L MW100
_100: NOP 0 L 1
-I
U M10.1 T MW100
SPBN _101 SPN _103
S A124.0 SET
S A124.2 R M10.3
U E124.4 S M10.4
R M10.1 _103: NOP 0
S M10.2
_101: NOP 0 U M10.4
SPBN _104
U M10.2 R M10.4
S A124.3 S M200.0
R M10.0
U M10.2 _104: NOP 0
L S5T#6S
SV T0

Veamos ahora G1 de la funcin FC2:


1
E124.3

PC BitFlancoPositivo Incrementar REG1


100 2

=1
REG1=K REG1 K
0 Inicializar variables en 1er scan
REG1=0
3 REG2=REG2+1
=1
=1
START
1 Mover a dcha. REG3=REG1-N1
4
REG4=REG2-N2
BitFlancoPositivo

Pgina siguiente
2

52
Variadores de frecuencia

Viene de pgina anterior

REG3 Y REG4 = 0 REG3 O REG4 0

Quickstop=ON
5 Temporizar

6S/X3 1

Reset temporizadores
6 Decrementar PalabraDeContar
STOP

PalabraDeContar=0

BitDeFin=1
7 BitDeTrabajo=0

=1

OB1

Si pasamos ahora a G2, tendremos:

E124.3
M11.2
PC M20.0 MW120=MW120+1
100 2

En el 1er scan hacer:


=1 M11.1=1 M11.6=0
M11.2=0 M11.7=0 MW120=1000 MW120 1000
0 M11.3=0 M200.1=0 M11.3
M11.4=0 MW102=2 MW120=0
M11.5=0 3
MW122=MW122+1
=1
M11.1 =1
A124.0=1 M11.4
1 A124.2=0 MW124=MW120-500
4
MW126=MW122-50
M20.0

Pgina siguiente
2

53
Variadores de frecuencia

Viene de pgina anterior

MW124 Y MW126 = 0 MW124 O MW126 0


M11.5
A124.3=1
5 T1=6S (SV)

T0=0 1
M11.6
R T1
6 MW102 = MW102 - 1
A124.0=0

MW102=0
M11.7
M200.1=1
7 M11.0=0

=1

OB1

Y pasado a operaciones AWL tendremos:

FC2: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U E 124.3 U M 11.1 U M 11.2
FP M 20.1 SPBN _111 SPBN _112
= M 20.0 S A 124.0 L MW 120
R A 124.2 L 1
O M 0.0 U M 20.0 +I
ON M 0.0 T MW 120
FP M 11.0 R M 11.1 L MW 120
SPBN _110 S M 11.2 L 1000
S M 11.1 _111: NOP 0 -I
R M 11.2 SPM NEQ1
R M 11.3 SET
R M 11.4 R M 11.2
R M 11.5 S M 11.3
R M 11.6 SPA _112
R M 11.7 NEQ1: SET
R M 200.1 R M 11.2
L 2 S M 11.4
T MW 102 _112: NOP 0
_110: NOP 0

54
Variadores de frecuencia

FC2 (continuacin): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 11.3 U M 11.5
SPBN _113 S A 124.3
L 0
T MW 120 U M 11.5
L MW 122 L S5T#6S
L 1 SV T 1
+I
T MW 122 U M 11.5
SET UN T 1
R M 11.3 R M 11.5
S M 11.4 S M 11.6
_113: NOP 0
U M 11.6
U M 11.4 SPBN _116
SPBN _114 R T 1
L MW 120 R A 124.0
L 500 L MW 102
-I L 1
T MW 124 -I
L MW 122 T MW 102
L 50 SPN _116
-I SET
T MW 126 R M 11.6
L MW 124 S M 11.7
L MW 126 _116: NOP 0
OW
SPN NEQ2 U M 11.7
SET SPBN _117
R M 11.4 R M 11.7
S M 11.5 S M 200.1
SPA _114 R M 11.0
NEQ2: SET _117: NOP 0
R M 11.4
S M 11.1
_114: NOP 0

55
Variadores de frecuencia

Nos queda ahora disear OB1, que puede ser el siguiente:

G1:
1

Quickstop=OFF
STOP Esperar
0 2
JOG1=ON

I.C.
P.C.
1 Mover a izda.

3 Mover a dcha.
BitDeFin de FC1
BitDeFin de FC2

G2: 0

1
M0.0 M0.2
A124.3=0
A124.0=0 Esperar
0 2
A124.1=1
E124.0
E124.1
M0.1 M0.3
CALL FC2
1 CALL FC1 (mover a izda.) 3 (mover a dcha.)

M200.0 M200.1

2 0

OB1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 0.0 U M 0.2
SPBN _000 SPBN _002
R A 124.3 U E 124.0
R A 124.0 R M 0.2
S A 124.1 S M 0.3
U E 124.1 _002: NOP 0
R M 0.0
S M 0.1 U M 0.3
_000: NOP 0 SPBN _003
CALL FC 2
U M 0.1 U M 200.1
SPBN _001 R M 0.3
CALL FC 1 S M 0.0
U M 200.0 _003: NOP 0
R M 0.1
S M 0.2
_001: NOP 0

56
Variadores de frecuencia

En cuanto a OB100, por ejemplo podemos poner:

L B#16#0
T MB0
CALL SFC21
BVAL :=P#M 0.0 BYTE 1
RET_VAL:=MW100
BLK :=P#M 1.0 BYTE 500
L W#16#0
T AW124
SET
S M0.0

57
Manipulador, cinta incremental y V/F

ndice Manipulador, cinta incremental y V/F

Ejemplo de manejo de un manipulador neumtico.

Fig.1 (Aspecto general de la mquina)

El conjunto que se muestra en la figura superior, est formado por un elemento vibrador en for-
ma de cuba seguido de otro vibrador lineal, una cinta transportadora de tipo incremental y un
manipulador neumtico.

La misin de cada uno de estos elementos es la siguiente:

El vibrador en forma de cuba, almacena una cantidad apreciable de pequeos cilindros en su


fondo, que por efecto de la vibracin circular a la que estn sometidos, van ascendiendo por un
camino en forma helicoidal pegado a la pared interior de la cuba.

A lo largo de este camino helicoidal se colocan pequeas trampas y mecanismos que consiguen
seleccionar las piezas que interesan y colocarlas en la posicin que se desea, en este caso, en
posicin vertical.

Al vibrador circular le sigue otro lineal que tiene como misin hacer de pulmn de almacena-
miento de piezas por una parte, y por otra, hacer llegar los pequeos cilindros hasta una posicin
en la que la pinza del manipulador los pueda coger con facilidad.

Normalmente, los vibradores industriales son totalmente autnomos, y por tanto no nos preocu-
paremos de su funcionamiento. Simplemente daremos por hecho que siempre existir en el ex-
tremo del vibrador lineal una pieza que puede ser cogida por la pinza del manipulador.

El modelo de cinta incremental que se muestra en la Fig.1, est formada por pequeas platafor-
mas porta piezas y la mueve un moto reductor trifsico controlado por un variador de frecuen-
cia. Sobre la cinta existe tambin un detector de tipo fotoelctrico DF (no representado en el
dibujo) que enva una seal al autmata cada vez que detecta la llegada de una plataforma porta
piezas.

59
Manipulador, cinta incremental y V/F

Una vez detectada la placa porta piezas por el detector fotoelctrico DF, el autmata enva una
seal al V/F que realiza una maniobra de frenado y preposiciona la placa porta piezas en su
lugar definitivo. Finalmente el autmata (lo veremos despus) activa dos (2) pequeos cilindros
neumticos con vstago terminado en una pieza cnica, que se encajan en el porta piezas y per-
miten, por una parte sujetar firmemente la placa porta piezas, y por otra posicionar con precisin
dicha placa debajo del manipulador.

Fig.2 (Detalle del mecanismo de posicionamiento final del porta piezas)


El manipulador, o pick and place en la terminologa anglosajona, vamos a suponer que est
formado bsicamente por tres (3) cilindros neumticos que controlan sus tres (3) movimientos
bsicos de subir/bajar pinza, avanzar/retroceder pinza y abrir/cerrar pinza.
Como elementos neumticos que son, los tres (3) cilindros vendrn provistos de detectores Reed
en sus extremos que nos permitirn conocer la posicin extrema de los mbolos.
Los movimientos que se pretenden conseguir con el manipulador son los siguientes:
8

5 7 1 3

6 2

Fig.3

El signo representa el punto de partida del manipulador. Desde este punto, el manipulador
arranca y ejecuta en cada ciclo las siguientes operaciones:
1.Desciende 5. Baja e inserta el cilindro en la pieza que esta
sobre la cinta
2.Cierra la pinza y coge un cilindro del vibra- 6. Abre la pinza
dor
3.Asciende 7. Asciende
4.Retrocede 8. Avanza

60
Manipulador, cinta incremental y V/F

Estos ocho (8) movimientos forman un ciclo completo que debe repetirse indefinidamente.

Llamaremos A al cilindro neumtico que hace subir/bajar la pinza, B al cilindro que hace avan-
zar/retroceder la pinza y C al cilindro que hace abrir/cerrar a la pinza.

As, los dos (2) pequeos cilindros neumticos que sujetan y posicionan el porta piezas, tambin
tienen sus rels Reed que detectan las posiciones extremas de sus mbolos.

Las electro vlvulas, que controlan todos los cilindros neumticos, son del tipo 5/2 monoesta-
bles.

Se cuenta con un botn empezar (BE) que ser el que de comienzo al funcionamiento de la m-
quina.

Comenzaremos por pintar la tabla de entradas/salidas:

Entradas Salidas
E124.0 Botn empezar (BE) A124.0 Bajar pinza/Subir pinza (cilindro A)
E124.1 La pinza est arriba A124.1 Retroceder/Avanzar pinza (cilindro B)
E124.2 La pinza est abajo A124.2 Abrir/Cerrar pinza (cilindro C)
E124.3 La pinza est adelantada o salida A124.3 Borne 28 (Start/Stop)
E124.4 La pinza est retrasada o metida A124.4 Borne E1 (JOG1=20Hz)
E124.5 La pinza est abierta A124.5 Borne E3 (Quickstop)
E124.6 La pinza est cerrada A124.6 Salir/Entrar cil. pequeo dcha.
E124.7 Se ha detectado un porta piezas (DF) A124.7 Salir/Entrar cil. pequeo izda.
E125.0 mbolo cil. pequeo dcha. est fuera
E125.1 mbolo cil. pequeo dcha. est dentro
E125.2 mbolo cil. pequeo izda.. est fuera
E125.3 mbolo cil. pequeo izda.. est dentro
E125.4 Error (TRIP) procedente del V/F

NOTA: En esta aplicacin, el borne E2 del V/F lo conectaremos a masa (cero volts.) con objeto
de que el motor siempre gire a derechas (ver ejercicios de V/F en este mismo libro para mejor
comprensin). Es por esta razn que no figura en la tabla anterior.

Para manejar el moto reductor de la cinta incremental, emplearemos el variador de frecuencia


8200 SMD de la casa Lenze.

Emplearemos funciones tipo C para cada uno de los movimientos elementales, con el siguiente
reparto:

La funcin FC1 para hacer salir al cilindro A (bajar pinza)


La funcin FC2 para hacer entrar al cilindro A (subir pinza)
La funcin FC3 para hacer salir al cilindro B (retroceder pinza)
La funcin FC4 para hacer entrar al cilindro B (avanzar pinza)
La funcin FC5 para hacer salir al cilindro C (abrir pinza)
La funcin FC6 para hacer entrar al cilindro C (cerrar pinza)
La funcin FC7 para hacer salir al cilindro pequeo derecha
La funcin FC8 para hacer entrar al cilindro pequeo derecha
La funcin FC9 para hacer salir al cilindro pequeo izquierda
La funcin FC10 para hacer entrar al cilindro pequeo izquierda
La funcin FC11 para que el variador de frecuencia haga avanzar la cinta incremental.

61
Manipulador, cinta incremental y V/F

Obsrvese que el modelo de funcin que vamos a emplear es el mismo en todos los casos, por lo
que nos bastar con representar con detalle el caso de la funcin FC1, para que los dems casos
se den por entendidos. Haremos una excepcin con FC11 como se ver ms adelante.

As pues, vamos a estudiar con detalle el G1 de la funcin FC1.

Desde OB1

0 Inicializar la funcin en la 1 pasada y no volver a ejecutar esta etapa

=1

1 Ordenar que salga el cilindro

Ha salido el cilindro?

2 BitDeFin=1

=1

Hacia OB1

El G2 de FC1 ser el siguiente (particularizado para el cilindro A):

Desde OB1

En la 1 pasada hacer:
M10.1=1 (BitDeEtapa_1 = 1)
0
Inicializar valores M10.2=0 (BitDeEtapa_2 = 0)
M200.0=0 (BitDeFin = 0)
=1
M10.1
1 Hacer A124.0=1

E124.2=1
M10.2
2 M200.0 = 1

=1

Hacia OB1

62
Manipulador, cinta incremental y V/F

Segn el G2 anterior, el contenido de la funcin FC1 (salir A = bajar pinza) ser:

FC1 (salir A = bajar pinza): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)
O M 0.0 U M 10.1 U M 10.2
ON M 0.0 SPBN _101 SPBN _102
FP M 10.0 S A 124.0 R M 10.2
SPBN _100 U E 124.2 S M 200.0
S M 10.1 R M 10.1 R M 10.0
R M 10.2 S M 10.2 _102: NOP 0
R M 200.0 _101: NOP 0
_100: NOP 0

La funcin FC2 (entrar A = subir pinza) ser totalmente anloga a la FC1, y prcticamente slo
cambiar la segunda operacin de la etapa dos (2), donde en lugar de decir S A124.0 dir R
A124.0 (aparte de los Bits caractersticos de la funcin). Veamos esta funcin:

FC2 (Entrar A = subir pinza): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)
O M 0.0 U M 11.1 U M 11.2
ON M 0.0 SPBN _101 SPBN _102
FP M 11.0 R A 124.0 R M 11.2
SPBN _100 U E 124.1 S M 200.1
S M 11.1 R M 11.1 R M 11.0
R M 11.2 S M 11.2 _102: NOP 0
R M 200.1 _101: NOP 0
_100: NOP 0

FC3 (Salir B = retroceder pinza): (Esta tabla se lee de arriba a abajo y de izquierda a de-
recha)
O M 0.0 U M 12.1 U M 12.2
ON M 0.0 SPBN _101 SPBN _102
FP M 12.0 S A 124.1 R M 12.2
SPBN _100 U E 124.4 S M 200.2
S M 12.1 R M 12.1 R M 12.0
R M 12.2 S M 12.2 _102: NOP 0
R M 200.2 _101: NOP 0
_100: NOP 0

FC4 (Entrar B = avanzar pinza): (Esta tabla se lee de arriba a abajo y de izquierda a dere-
cha)
O M 0.0 U M 13.1 U M 13.2
ON M 0.0 SPBN _101 SPBN _102
FP M 13.0 R A 124.1 R M 13.2
SPBN _100 U E 124.3 S M 200.3
S M 13.1 R M 13.1 R M 13.0
R M 13.2 S M 13.2 _102: NOP 0
R M 200.3 _101: NOP 0
_100: NOP 0

63
Manipulador, cinta incremental y V/F

FC5 (Salir C = abrir pinza): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)
O M 0.0 U M 14.1 U M 14.2
ON M 0.0 SPBN _101 SPBN _102
FP M 14.0 S A 124.2 R M 14.2
SPBN _100 U E 124.5 S M 200.4
S M 14.1 R M 14.1 R M 14.0
R M 14.2 S M 14.2 _102: NOP 0
R M 200.4 _101: NOP 0
_100: NOP 0

FC6 (Entrar C = cerrar pinza): (Esta tabla se lee de arriba a abajo y de izquierda a dere-
cha)
O M 0.0 U M 15.1 U M 15.2
ON M 0.0 SPBN _101 SPBN _102
FP M 15.0 R A 124.2 R M 15.2
SPBN _100 U E 124.6 S M 200.5
S M 15.1 R M 15.1 R M 15.0
R M 15.2 S M 15.2 _102: NOP 0
R M 200.5 _101: NOP 0
_100: NOP 0

FC7 (Salir cilindro peque. dcha.): (Esta tabla se lee de arriba a abajo y de izquierda a
derecha)
O M 0.0 U M 16.1 U M 16.2
ON M 0.0 SPBN _101 SPBN _102
FP M 16.0 S A 124.6 R M 16.2
SPBN _100 U E 125.0 S M 200.6
S M 16.1 R M 16.1 R M 16.0
R M 16.2 S M 16.2 _102: NOP 0
R M 200.6 _101: NOP 0
_100: NOP 0

FC8 (Entrar cilindro peque. dcha.): (Esta tabla se lee de arriba a abajo y de izquierda a
derecha)
O M 0.0 U M 17.1 U M 17.2
ON M 0.0 SPBN _101 SPBN _102
FP M 17.0 R A 124.6 R M 17.2
SPBN _100 U E 125.1 S M 200.7
S M 17.1 R M 17.1 R M 17.0
R M 17.2 S M 17.2 _102: NOP 0
R M 200.7 _101: NOP 0
_100: NOP 0

64
Manipulador, cinta incremental y V/F

FC9 (Salir cilindro peque. izda.): (Esta tabla se lee de arriba a abajo y de izquierda a
derecha)
O M 0.0 U M 20.1 U M 20.2
ON M 0.0 SPBN _101 SPBN _102
FP M 20.0 S A 124.7 R M 20.2
SPBN _100 U E 125.2 S M 201.0
S M 20.1 R M 20.1 R M 20.0
R M 20.2 S M 20.2 _102: NOP 0
R M 201.0 _101: NOP 0
_100: NOP 0

FC10 (Entrar cilindro peque. izda.):(Esta tabla se lee de arriba a abajo y de izquierda a
derecha)
O M 0.0 U M 21.1 U M 21.2
ON M 0.0 SPBN _101 SPBN _102
FP M 21.0 R A 124.7 R M 21.2
SPBN _100 U E 125.3 S M 201.1
S M 21.1 R M 21.1 R M 21.0
R M 21.2 S M 21.2 _102: NOP 0
R M 201.1 _101: NOP 0
_100: NOP 0

La funcin FC11 (avanzar cinta incremental), siendo una funcin tipo C igual que las anteriores,
merece especial atencin por cuanto no es idntico el funcionamiento de esta cinta que la de un
cilindro neumtico simple. Empezaremos pintando un primer G1 aproximado de FC11:

Desde OB1 Se ha detectado un porta piezas

100 PC BitReceptor Explicacin ms


adelante
=1

0 Inicializar la funcin en la 1 pasada y no volver a ejecutar esta etapa

=1

1 Avanzar y posicionar portapiezas

Portapiezas posicionado?

2 BitDeFin=1

=1

Hacia OB1

Aqu la orden que se da es: avanzar cinta incremental y posicionar el siguiente porta piezas.
Esta orden como se ve no es una orden simple como las que hemos visto al trabajar con cilin-
dros neumticos, sino que es una orden compleja que est formada por otras ordenes menores.

65
Manipulador, cinta incremental y V/F

Veamos esto.

La orden avanzar cinta incremental y posicionar el siguiente porta piezas consta de las si-
guientes rdenes menores:

Ordenar a los pequeos cilindros con vstago de punta cnica, que se retraigan y dejen
libre la placa porta piezas.

Enviar las seales adecuadas al V/F para que ste acte sobre el moto reductor y haga
mover la cinta incremental hacia delante.

Quedar a la espera de recibir el primer flanco positivo del detector fotoelctrico (infor-
mando que llega una placa porta piezas) y frenar la cinta segn una rampa de decelera-
cin programada en el V/F con objeto de presituar el porta piezas sobre los dos (2) pe-
queos cilindros neumticos que estn debajo. (NOTA: la deteccin del flanco positivo
la hacemos mediante un programa secundario en formato neutro, acoplado al principio
del Grafcet principal. Ver apartado 10.3 del libro).

Ordenar a los pequeos cilindros con vstago de punta cnica, que salgan hacia fuera y
sujeten la placa porta piezas y la terminen de sujetar y posicionar con precisin.

Con lo dicho in mente, pasemos ahora a un G1 ms detallado de FC11:

Desde OB1 Se ha detectado un portapiezas

100 PC BitReceptor

=1

0 Inicializar la funcin en la 1 pasada y no volver a ejecutar esta etapa

=1

Entrar cil. pequeo. dcha.


1
Entrar cil. pequeo. izda.
Cilindros pequeos entrados

2 Avanzar cinta incremental

Llega un portapiezas
Quickstop = ON
3
Temporizar 1 seg.
1S/X3
Quickstop = OFF
4
STOP
=1

Hacia pgina siguiente

66
Manipulador, cinta incremental y V/F

De pgina anterior

Salir cil. pequeo. dcha.


5
Salir cil. pequeo. izda.
Cilindros pequeos salidos

6 BitDeFin=1

=1

Hacia OB1
Pasaremos ahora al G2 de FC11.

Desde OB1 E124.7

PC M23.0
100

=1
En la 1 pasada hacer:
M22.1=1 ; M22.5=0
0 M22.2=0 ; M22.6=0
M22.3=0 ; M201.2=0
=1 M22.4=0
M22.1
CALL FC8
1 CALL FC10
M200.7*M201.1
M22.2
A124.3=1
2
A124.4=1; A124.5=0
M23.0
M22.3
A124.5=1
3 T0=1S (SV)

T0=0
M22.4
A124.5=0
4 A124.3=0

=1
M22.5

5 CALL FC7
CALL FC9
M200.6 * M201.0
M22.6
6 M201.2=1

=1

Hacia OB1

67
Manipulador, cinta incremental y V/F

Pasamos sin ms a escribir las operaciones que forman FC11:

FC11: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U E 124.7 U M 22.2 U M 22.5
FP M 22.7 SPBN _222 SPBN _225
= M 23.0 S A 124.3 CALL FC 7
S A 124.4 CALL FC 9
O M 0.0 R A 124.5 U M 200.6
ON M 0.0 U M 23.0 U M 201.0
FP M 22.0 R M 22.2 R M 22.5
SPBN _220 S M 22.3 S M 22.6
S M 22.1 _222: NOP 0 _225: NOP 0
R M 22.2
R M 22.3 U M 22.3 U M 22.6
R M 22.4 S A 124.5 SPBN _226
R M 22.5 L S5T#1S R M 22.6
R M 22.6 SV T 0 R M 22.0
R M 201.2 R M 22.7
_220: NOP 0 U M 22.3 S M 201.2
UN T 0 _226: NOP 0
U M 22.1 R M 22.3
SPBN _221 S M 22.4
CALL FC 8
CALL FC 10 U M 22.4
U M 200.7 SPBN _224
U M 201.1 R A 124.5
R M 22.1 R A 124.3
S M 22.2 R M 22.4
_221: NOP 0 S M 22.5
_224: NOP 0

Hagamos ahora el G1 de OB1:

(Grafcet en la hoja siguiente)

68
Manipulador, cinta incremental y V/F

0 Posicionar pinza en SALIDA

Pinza en SALIDA
12,14 Avanzar cinta incremental
1

Fin avanzar cinta incremental * BE

Bajar pinza
2

Fin bajar pinza


Cerrar pinza
3

Fin cerrar pinza


Subir pinza
4

Fin subir pinza

5 Retroceder pinza.

Fin retroceder pinza


Bajar pinza
6

Fin bajarpinza

Abrir pinza
7

Fin abrir pinza


Subir pinza
10

Fin subir pinza

Avanzar cinta incremental Avanzar Pinza


11 13

Fin avanzar cinta incremental Fin avanzar pinza

Esperar Esperar
12 14

Han terminado etapas 12 y 14

69
Manipulador, cinta incremental y V/F

Pasemos ahora a G2:

M0.0 CALL FC2


CALL FC4
0
CALL FC5
M200.1* M200.3*M200.4
M0.1
12,14 CALL FC11
1

M201.2 * E124.0
M0.2
CALL FC1
2

M200.0
M0.3
CALL FC6
3

M200.5
M0.4
CALL FC2
4

M0.5 M200.1
5 CALL FC3

M200.2
M0.6
CALL FC1
6

M200.0
M0.7
CALL FC5
7

M200.4
M1.0
CALL FC2
10

M200.1

M1.1 M1.3
CALL FC11 CALL FC4
11 13

M201.2 M200.3
M1.2 M1.4
Esperar Esperar
12 14

Han terminado etapas 12 y 14


2

70
Manipulador, cinta incremental y V/F

Pasemos este G2 de OB1 a operaciones AWL:

OB1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 0.0 U M 0.4 U M 1.0
SPBN _000 SPBN _004 SPBN _010
CALL FC 2 CALL FC 2 CALL FC 2
CALL FC 4 U M 200.1 U M 200.1
CALL FC 5 R M 0.4 R M 1.0
U M 200.1 S M 0.5 S M 1.1
U M 200.3 _004: NOP 0 S M 1.3
U M 200.4 _010: NOP 0
R M 0.0 U M 0.5
S M 0.1 SPBN _005 U M 1.1
_000: NOP 0 CALL FC 3 SPBN _011
U M 200.2 CALL FC 11
U M 0.1 R M 0.5 U M 201.2
SPBN _001 S M 0.6 R M 1.1
CALL FC 11 _005: NOP 0 S M 1.2
U M 201.2 _011: NOP 0
U E 124.0 U M 0.6
R M 0.1 SPBN _006 U M 1.3
S M 0.2 CALL FC 1 SPBN _013
_001: NOP 0 U M 200.0 CALL FC 4
R M 0.6 U M 200.3
U M 0.2 S M 0.7 R M 1.3
SPBN _002 _006: NOP 0 S M 1.4
CALL FC 1 _013: NOP 0
U M 200.0 U M 0.7
R M 0.2 SPBN _007 U M 1.2
S M 0.3 CALL FC 5 U M 1.4
_002: NOP 0 U M 200.4 R M 1.2
R M 0.7 R M 1.4
U M 0.3 S M 1.0 S M 0.2
SPBN _003 _007: NOP 0
CALL FC 6
U M 200.5
R M 0.3
S M 0.4
_003: NOP 0

Nos queda finalmente OB100, que usaremos el ya visto en otros ejemplos:

L B#16#0
T MB0
CALL SFC21
BVAL:=P#M0.0 BYTE 1
RET_VAL:=MW100
BLK:=P#M1.0 BYTE 500
L W#16#0
T AW124
SET
S M0.0

71
Motores servo

ndice Motores servo

Introduccin:
Se dice que un motor es del tipo servo cuando alguno de sus parmetros importantes de salida,
tal como puede ser la velocidad angular, el ngulo girado o el par motor, se controlan automti-
camente comparando el parmetro de salida con un valor de referencia constante (consigna) y
actuando sobre el motor para conseguir en todo momento que esta diferencia sea cero (o la me-
nor posible).

Valor de
consigna M

Valor real
EM

Donde M es el motor que deseamos controlar, EM es el elemento de medicin que hemos


conectado al motor para conocer el valor real del parmetro de salida, los cuadrados con un
tringulo en su interior son amplificadores que amplifican y acondicionan las seales, y el sm-
bolo dentro del crculo representa el elemento que compara el valor de consigna que de-
seamos con el valor real medido y enva la seal adecuada al motor para intentar conseguir que
el parmetro de salida y la consigna sean lo ms parecidas posible.

Como elementos EM o elementos de medicin, se suelen emplear dnamos taquimtricas, o


encoders digitales o analgicos, segn los casos.

Existen otros mtodos distintos a los anteriores, como por ejemplo el mtodo RXI o el mtodo
por control del par, pero estos temas se escapan al alcance de este libro y el lector interesado
debera consultar otros libros especficos sobre el tema.

Volviendo al motor servo, esquematizado en el dibujo anterior, en la prctica este tipo de moto-
res, tal y como lo hemos representado nosotros, podra ya ser manejable desde un autmata, por
cuanto a travs de una interfase D/A del mismo autmata, podramos proporcionar el valor de
consigna de la velocidad deseada y de esta forma controlaramos el funcionamiento del motor.

En la practica sin embargo, los fabricantes de motores servo, adems de proporcionarnos el


conjunto motor servo anterior, nos proporcionan una caja (el driver) que hace de intermediario
entre el autmata y el motor servo, y que adems de incluir los elementos amplificadores y de
comparacin anterior, incluyen un microprocesador as como unas facilidades de programacin
que ahora explicaremos.

Pongamos un ejemplo para entender mejor este tema.

73
Motores servo

Supongamos que lo que deseamos es que nuestro motor servo comience a girar segn el si-
guiente esquema de velocidad:

Velocidad
angular (RPM)

Tiempo

Para conseguir este comportamiento, el fabricante del driver nos proporciona unas herramientas
software con las que podemos programar el microprocesador que lleva el driver y depositar en
su interior lo que podramos llamar una especie de paquetes o programas menores, de tal forma
que por ejemplo, la velocidad en rampa positiva quedara encomendado al programa # 1 (por
ejemplo) y el comportamiento segn la velocidad en rampa negativa, al programa # 2 (por
ejemplo). Si ahora la caja del driver tiene unos terminales en forma de tornillo (que llamaremos
tornillos A y B) y el fabricante nos dice que si aplicamos una tensin de 24 v. al tornillo A el
microprocesador ejecutar el programa # 1 y si aplicamos 24 v al tornillo B el microprocesador
ejecutar el programa # 2, entonces est claro que si conectamos este driver a nuestro autmata,
podremos controlar el movimiento del motor desde nuestro autmata a travs del driver y con-
seguir el comportamiento en velocidad del grfico anterior.
En la realidad, el nmero de programas que podemos depositar en un driver no es ilimitado pero
si es normalmente muy superior a dos (2), y la cantidad de rdenes que podemos depositar en
cada programa es tambin considerable, por lo que en la prctica, podemos literalmente jugar
con el comportamiento del motor, hacindolo avanzar con una determinada velocidad, o hacien-
do que se pare, o haciendo que gire un ngulo exacto en un sentido cualquiera, etc.

Son por tanto dispositivos de un enorme valor prctico a la hora de disear determinados meca-
nismos donde se requieren estos comportamientos en las mquinas y como nico pero po-
dramos citar quizs su precio, pues se trata siempre de elementos caros.
Vamos a resumir ahora lo que hemos estado diciendo con el siguiente dibujo:

M
PLC DRIVER

EM

En el dibujo anterior, el autmata (PLC) enva ordenes al driver (flechas que apuntan a la dere-
cha), que como hemos dicho se traducen en rdenes que ponen en funcionamiento programas en
el interior del driver, ste a su vez puede informar al autmata de determinados eventos, como
por ejemplo si se ha producido un error o si la orden ha sido cumplida satisfactoriamente (fle-
cha/s que apunta/n a la izquierda).

Hecha la breve introduccin anterior, vamos a plantearnos ahora el manejo de un motor servo
real.

74
Motores servo

Para ello, tomaremos un conjunto genrico formado por un motor servo y un driver, tal y como
quedan representados en el dibujo de la derecha.

Como se puede apreciar a simple vista, el driver


de la imagen tiene muchos conectores, y en
cada conector, muchos pines, que evidente-
mente tienen misiones concretas en el funcio-
namiento de este driver, pero para el caso que
nos ocupa, sin embargo, consideraremos ni-
camente aquellos conectores y aquellos pines
que nos interesen, sin tener en cuenta los de-
ms.

As pues, vamos a representar al autmata y al driver anterior con el siguiente dibujo esquemati-
zado:

AUTOMATA DRIVER

A124.0 X4.ENABLE
A124.1 X4.RESET
SALIDAS

A124.2 X3.DIN1
A124.3 X3.DIN2
A124.4 X3.DIN3
SERVOMOTOR
A124.5 X3.DIN4
A124.6 X3.DIN5

E124.0 X3.OUT1 CABLES DE


E124.1 X3.OUT2 POTENCIA Y
ENTRADAS

SEAL
IMAN

RELE
REED

X3.DIN7

Como se puede apreciar por el esquema anterior, hay una serie de salidas procedentes del au-
tmata que las hemos conectado a otras tantas entradas del driver, y tan slo dos (2) entradas del
autmata a dos (2) salidas del driver, si bien para nuestros propsitos, son suficientes.

Hay, como puede verse tambin en el dibujo anterior, una seal procedente de un detector Reed
que entra en el driver por X3.DIN7.

La misin de esta seal es la de detectar el imn fijo colocado en la rueda que mueve el motor
servo.

IMAN

RELE
REED

75
Motores servo

De tal forma que cuando el imn pasa frente al detector Reed, ste enva al driver una seal de
24 v. informando que en ese momento el imn de la rueda est justamente entrando en su campo
de accin.

Explicaremos todo esto a continuacin, pero veamos ahora la siguiente tabla:

Mini
Entrada al driver Tipo de evento Descripcin
programa asociado
X3.DIN#1 Flanco positivo () 01 Driver ON
X3.DIN#1 Flanco negativo () 02 Driver OFF
X3.DIN#2 Flanco positivo () 03 (Ver explicacin)
X3.DIN#2 Flanco negativo () 04
X3.DIN#3 Flanco positivo () 05 Girar lentamente
X3.DIN#3 Flanco negativo () 06
X3.DIN#4 Flanco positivo () 07 Girar 90o sentido positivo
X3.DIN#4 Flanco negativo () 08
X3.DIN#5 Flanco positivo () 09 Girar ngulo de OFFSET
X3.DIN#5 Flanco negativo () 0A

La tabla anterior no es ms que una relacin, por una parte de los mini programas que ya se
supone que hemos escrito y depositado en el interior del driver y, como se ve, numerados en
formato hexadecimal y, por otra, de los eventos que los ponen en marcha.

As, por ejemplo, el mini programa 01 simplemente se limita a darle tensin al driver.

El mini programa 03 es el ms complicado de todos, pues empieza por hacer que la rueda gire
lentamente en sentido negativo, pero en cuanto se detecta por la entrada X3.DIN7 una tensin
alta, conforme el rel Reed ha detectado la presencia del imn que lleva la rueda, el mini pro-
grama 03 invierte el sentido de giro de la rueda y hace que sta gire en sentido positivo, y
tambin lentamente.

Contina as girando la rueda lentamente, hasta que el encoder del motor servo detecta una seal
especial grabada en el mismo encoder y que llamaremos seal INDEX. Cuando esto ocurre, el
driver enva por X3.OUT1 una seal de 24 v hacia el autmata informando que ha detectado
esta seal INDEX.

NOTA: El INDEX es una seal grabada en la rueda interior del mismo encoder, y la nica refe-
rencia externa que tenemos de esta marca, es el voltaje alto que sale por X3.OUT1 cuando esta
seal INDEX pasa frente al detector interno del mismo encoder. Ahora bien, dado que el fabri-
cante no da informacin para conocer fsicamente desde el exterior la posicin del INDEX
(aparte del voltaje alto que sale por X3.OUT1), esto quiere decir que cuando montemos el motor
servo en la mquina donde tenga que ir instalado, deberemos hacer tantas pruebas como sean
necesarias hasta conocer realmente el ngulo formado por el INDEX y cualquier otra marca que
tengamos sobre la rueda que mueve el motor servo. A este ngulo (que desconocemos de entra-
da) formado por el momento en que se detecta el INDEX y alguna marca de inters que tenga-
mos sobre la rueda, lo llamaremos ngulo de OFFSET.
En cuanto a X3.OUT2, veremos su significado algo ms adelante. El mini programa 05 hace
que la rueda gire en sentido positivo lentamente.
El mini programa 07 hace que la rueda gire un ngulo exacto de 90o en un tiempo tambin
exacto de 2 seg., y adems con curvas de aceleracin y deceleracin perfectamente conocidas de
antemano.
Finalmente, el mini programa 09 hace que la rueda gire un ngulo prefijado de antemano que
podemos variar por programacin a voluntad y que aqu llamaremos ngulo de OFFSET.

76
Motores servo

Es importante destacar que en este caso particular el contenido de los mini programas son
los que aqu se han explicado, lo que no quiere decir que no podamos realizar otras aplicaciones
y escribir programas distintos a los anteriores.
Llegados a este punto, empezamos ya a sospechar como funciona todo esto. Simplemente no
tenemos ms que proporcionar al driver los eventos que se indican en la tabla anterior, para que
el driver ponga en marcha los mini programas asociados, y como consecuencia de estos, nuestro
motor servo ir realizando los movimientos correspondientes a los mini programas que se estn
ejecutando.

Ejemplo primero de motores servo.


Vamos a imaginar que la rueda que mueve el motor servo, tiene el siguiente aspecto, y que es
as como nos la encontramos inicialmente:

INDEX
IMAN

MARCA
GRABADA
SOBRE LA
RELE RUEDA
REED

Estando el motor servo y su driver sin tensin, deseamos posicionar la rueda con la marca en
forma de tringulo apuntando hacia arriba, tal y como indica el dibujo inferior,
IMA
N

RELE
REED

Disponemos tambin de tres (3) pulsadores A, B y C con la siguiente funcionalidad:

El pulsador A debe dar tensin al driver


El pulsador B debe quitar tensin al driver
El pulsador C debe posicionar el rotor con el tringulo hacia arriba (inicializa el siste-
ma).
El pulsador D debe hacer girar la rueda 90o en sentido positivo y en dos (2) seg. (una
vez la rueda est debidamente posicionada con el tringulo hacia arriba).

Una vez entendido el problema y los medios con los que contamos, empecemos por pintar la
tabla de contactos de entrada/salida.

77
Motores servo

Entradas Salidas
E124.0 X3.OUT1 A124.0 X4.ENABLE
E124.1 X3.OUT2 A124.1 X4.RESET
E124.2 Pulsador A A124.2 X3.DIN1
E124.3 Pulsador B A124.3 X3.DIN2
E124.4 Pulsador C A124.4 X3.DIN3
E124.5 Pulsador D A124.5 X3.DIN4
A124.6 X3.DIN5

Crearemos una funcin FC10 en la que depositaremos todo el software necesario para que reali-
ce todo el trabajo de posicionar la rueda con el tringulo apuntando hacia arriba. Para ello, em-
plearemos dos (2) funciones tipo E encadenadas, con objeto de detectar (por tiempo) posibles
funcionamientos incorrectos del motor servo o del driver. NOTA: Gracias al software adicional
que proporciona el fabricante, es posible cargar previamente en el driver el valor del ngulo
OFFSET que deseemos.
Planteamiento Grafcet G1 de FC10:

Desde bloque invocante

Inicializar funcin en la 1 pasada y


0
no volver a ejecutar esta etapa.
=1
Activar mini programa 03
1
Temporizar

(INDEX detectado) Y (tiempo NO excedido)

(INDEX no detectado) Y (tiempo S excedido)

BitDeError_1=0 BitDeError_1=1
2 3
Anular llamada a Anular llamada a
03. 03.
=1 =1

Temporizar 1 seg
4

1S/X4
Activar mini programa 09
5
Temporizar

(Rueda posicionada) Y (tiempo NO excedido)

(Rueda no posicionada) Y (tiempo S excedido)

6 BitDeError_2=0 BitDeError_2=1 7
Anular llamada a Anular llamada a
=1 09. 09. =1

Hacia prxima pgina

78
Motores servo

Viene de pgina anterior

Poner a cero temporizadores


10 Decrementar PalabraDeContar
PalabraDeContar=0

11 BitDeFin=1

=1

Hacia bloque invocante

Concretemos ahora este Grafcet en el G2:

Desde bloque invocante

M10.1=1 M10.7=0
M10.2=0 M11.0=0
0 En la primera M10.3=0 M11.1=0
pasada, hacer: M10.4=0 MW100=2 PalabraDeContar
M10.5=0 M200.0 BitDeFin
=1 M10.6=0
M10.1
A124.3=1
1
T0=100S (SV)

E124.0 * T0

E124.0 * T0
M10.2 M10.3
M150.0=0 M150.0=1
2 3
A124.3=0 A124.3=0
=1 =1

M10.4
T1=1S (SV)
4

T1=0
M10.5
A124.6=1
5
T2=10S (SV)

Pasa a hoja siguiente

79
Motores servo

Viene de hoja anterior

E124.1 * T2

E124.1 * T2
M10.7
M10.6
M150.1=0 M150.1=1
6 7
A124.6=0 A124.6=0
=1 =1

M11.0
R T0, R T1, R T2
10 MW100=MW100-1
MW100=0
M11.1
11 M200.0=1

=1

Hacia bloque invocante

Pasemos ahora a operaciones AWL, este G2:

FC10 (inicializa el sistema): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)
O M0.0 U M10.1 U M10.3
ON M0.0 U E124.0 SPBN _103
FP M10.0 U T0 S M150.0
SPBN _100 R M10.1 R A124.3
S M10.1 S M10.2 R M10.3
R M10.2 S M10.4
R M10.3 U M10.1 _103: NOP 0
R M10.4 UN E124.0
R M10.5 UN T0 U M10.4
R M10.6 R M10.1 L S5T#1S
R M10.7 S M10.3 SV T1
R M11.0
R M11.1 U M10.2 U M10.4
L 2 SPBN _102 UN T1
T MW100 R M150.0 R M10.4
R M200.0 R A124.3 S M10.5
_100: NOP 0 R M10.2
S M10.4 U M10.5
U M10.1 _102: NOP 0 S A124.6
S A124.3 L S5T#10S
L S5T#1M40S SV T2
SV T0

80
Motores servo

FC10 (continuacin): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M10.5 U M10.7 U M11.1
U E124.1 SPBN _107 SPBN _111
U T2 S M150.1 R M11.1
R M10.5 R A124.6 R M10.0
S M10.6 R M10.7 S M200.0
S M11.0 _111: NOP 0
U M10.5 _107: NOP 0
UN E124.1
UN T2 U M11.0
R M10.5 SPBN _110
S M10.7 R T0
R T1
U M10.6 R T2
SPBN _106 L MW100
R M150.1 L 1
R A124.6 -I
R M10.6 T MW100
S M11.0 SPN _110
_106: NOP 0 SET
R M11.0
S M11.1
_110: NOP 0

Una vez creada la funcin FC10, vayamos ahora por la funcin FC11, deseamos que cuando se
ejecute, haga girar en sentido positivo la rueda del motor servo un ngulo exacto de 90o. Para
ello, haremos uso del mini programa 07 que es capaz de realizar precisamente este trabajo.
Tambin aqu emplearemos funciones tipo E y comenzaremos por pintar primeramente el Graf-
cet G1:

Desde bloque invocante

Inicializar funcin en la 1 pasada y


0
no volver a ejecutar esta etapa.

=1

Activar mini programa 07


1
Temporizar

(Ha girado 90o) Y (tiempo NO excedido)

(No ha girado 90o) Y (tiempo S excedido)

BitDeError_3=0 BitDeError_3=1
2 3
Anular llamada a Anular llamada a
07 07
=1 =1

Hacia pgina siguiente

81
Motores servo

Viene de pgina anterior

Poner a cero temporizador


4 Decrementar PalabraDeContar

PalabraDeContar=0

5 BitDeFin=1
=1

Hacia bloque invocante

Desde G1 podemos pintar ahora G2:

Desde bloque invocante

M12.1=1 MW102=2 PalabraDeContar


En la primera M12.2=0 M200.1=0 BitDeFin
0 M12.3=0
pasada, hacer: M12.4=0
M12.5=0
=1
M12.1
A124.5=1
1
T3=3S (SV)

E124.1 * T3

E124.1 * T3
M12.2 M12.3
M150.2=0 M150.2=1
2 3
A124.5=0 A124.5=0
=1 =1

M12.4
R T3
4 MW102=MW102-1

MW102=0
M12.5

5 M200.1=1
=1

Hacia bloque invocante

Pasemos a operaciones AWL el Grafcet G2 anterior:

82
Motores servo

FC11 (gira rueda 90): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)
O M0.0 U M12.1 U M12.4
ON M0.0 UN E124.1 SPBN _124
FP M12.0 UN T3 R T3
SPBN _100 R M12.1 L
S M12.1 S M12.3 MW102
R M12.2 L 1
R M12.3 U M12.2 -I
R M12.4 SPBN _122 T
R M12.5 R MW102
L 2 M150.2 SPN _124
T R A124.5 SET
MW102 R M12.2 R M12.4
R S M12.4 S M12.5
M200.1 _122: NOP 0 _124: NOP 0
_100: NOP 0
U M12.3 U M12.5
U M12.1 SPBN _123 SPBN _125
S A124.5 S R M12.5
L M150.2 R M12.0
S5T#3S R A124.5 S
SV T3 R M12.3 M200.1
S M12.4 _125: NOP 0
U M12.1 _123: NOP 0
U E124.1
U T3
R M12.1
S M12.2

Una vez escritas las funciones que controlan el motor servo, vamos a escribir ahora una funcin
que llamaremos, por ejemplo FC100, que en caso de producirse un error realice alguna accin,
como por ejemplo parar el autmata (NOTA: La toma de decisiones en caso de error en el pro-
ceso, es un tema siempre delicado y complejo que debe estudiarse en cada caso particular. La
decisin de parar el autmata en este caso, es slo un ejemplo, no la tnica general.).

Dada la sencillez de la accin que pretendemos realizar en caso de detectarse algn error en el
funcionamiento del conjunto motor servo y driver, escribiremos directamente la funcin FC100
en operaciones AWL:

O M150.0
O M150.1
O M150.2
= M80.0

U M80.0
SPBN _800
CALL SFC46 //SFC46 es una funcin que para directamente el autmata
_800: NOP 0

83
Motores servo

Vamos ahora a depositar en OB1 el programa que controlar el funcionamiento del conjunto.
Pintaremos el G1 y G2 de OB1:

M0.0

0 ESPERAR 0 ESPERAR

Pulsador A E124.2
M0.1
Activar mini programa 01 A124.2=1
1 1
Temporizar T4=500MS (SV)

0,5S/X1 T4=0
M0.2
2 ESPERAR 2 ESPERAR

5 Pulsador C 5 M0.3 E124.4

3 Llamar a FC10 3 Llamar a FC10

BitDeFin de FC10 M200.0


M0.4
4 ESPERAR 4 ESPERAR

Pulsador D E124.5
M0.5
5 Llamar a FC11 5 Llamar a FC11

BitDeFin de FC11 M200.1

4 4

Adems de esta secuencia principal de OB1, introduciremos dos (2) secuencias ms indepen-
dientes, de tal forma que una de ellas llame a FC100 de forma permanente con objeto de contro-
lar la posible aparicin de algn error, y la otra secuencia tenga en cuenta la posibilidad de que
alguien pulse B con la intencin de apagar de inmediato el proceso.

As, los G1 y G2 de la segunda secuencia sern:

M1.0

00 Llamar a FC100 00 Llamar a FC100

=1 =1

00 00

84
Motores servo

Y los G1 y G2 de la tercera secuencia, sern:

M2.0

000 ESPERAR 000 ESPERAR

Pulsador B E124.3
M2.1

1 Activar mini programa 02 1 A124.2=0

=1 =1

000 000

Pasemos ahora estos tres (3) ltimos Grafcet G2 a operaciones AWL:

OB1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M0.0 U M0.3 U M1.0
SPBN _000 SPBN _003 SPBN _010
U E124.2 CALL FC10 CALL FC100
R M0.0 U M200.0 _010: NOP 0
S M0.1 R M0.3
_000: NOP 0 S M0.4 U M2.0
_003: NOP 0 SPBN _020
U M0.1 U E124.3
S A124.2 U M0.4 R M2.0
L SPBN _004 S M2.1
S5T#500MS U E124.5 _020: NOP 0
SV T4 R M0.4
S M0.5 U M2.1
U M0.1 _004: NOP 0 SPBN _021
UN T4 R A124.2
R M0.1 U M0.5 R M2.1
S M0.2 SPBN _005 S M2.0
CALL FC11 _021: NOP 0
U M0.2 U M200.1
SPBN _002 R M0.5
U E124.4 S M0.4
R M0.2 _005: NOP 0
S M0.3
_002: NOP 0

Finalmente pondremos OB100:

L B#16#0
T MB0
CALL SFC21
BVAL:=P#M0.0 BYTE 1
RET_VAL:=MW130
BLK:=P#M1.0 BYTE 500
SET
S M0.0
S M1.0
S M2.0

85
Motores servo

Recapitulemos todo lo que hemos hecho hasta aqu:

1. Hemos tenido que programar previamente el driver del motor servo con los mini progra-
mas que ya hemos visto.

2. Hemos cableado nuestro autmata con el driver y tambin el rel Reed lo hemos cableado
al driver.

3. Hemos confeccionado una tabla de entradas/salidas.

4. Hemos pintado primero los G1 y G2 de FC10, que es capaz de posicionar la rueda con el
tringulo hacia arriba, despus hemos escrito el programa.

5. Hemos pintado el G1 y G2 de FC11, que hace girar la rueda 90o, despus hemos escrito el
programa.

6. Hemos pintado la secuencia principal de OB1, as como otras dos (2) necesarias para te-
ner en cuenta el tratamiento de errores y la posibilidad de que alguien oprima el pulsador
B, despus lo hemos pasado a operaciones AWL.

7. Y finalmente hemos depositado en OB100 un programa que borra toda la memoria de


marcas y que inicia simultneamente las tres (3) secuencias de OB1.

86
Programacin por recetas

ndice Programacin por recetas


Introduccin:
Quizs el mejor ejemplo que podemos poner sobre programacin por recetas, sea el de una tra-
dicional receta para hacer pan. Todos sabemos que el pan se hace con harina, sal, agua, levadura
y tiempo de coccin. Ahora bien, segn variemos las proporciones de estos elementos bsicos,
podemos tener desde un aromtico y sabrossimo pan, hasta una especie de masa dura requema-
da totalmente incomestible.

Este concepto culinario de receta, se extiende con facilidad a algunos procesos industriales en
los que el proceso industrial siempre es el mismo, y lo que cambia de unos casos a otros son las
cantidades de los parmetros, tales como tiempos, velocidades, temperaturas, etc.

Veamos un ejemplo que aclare estos conceptos.

Ejemplo de un proceso que trabaja por recetas.


Se trata de programar un autmata S7-314 que tiene que controlar la siguiente mquina:

S0 S1 S2 S3

Iman
S4 13

4 7 10
14 16
1 3 5 6 8 9 11 12

2 15
S5
S6 S7

Plataforma

C#1 C#2 C#3

P#2
P#1 P#3
Tipos de piezas:

Como se puede ver en el dibujo, hay un carrito motorizado que lleva incorporado un cilindro
neumtico en posicin vertical, terminado en una pinza tambin neumtica, donde el smbolo
indica el punto de partida o SALIDA de la pinza.

El funcionamiento es el siguiente. El operario coloca manualmente sobre la plataforma una pie-


za de las mostradas anteriormente, introduce directamente el nmero de la pieza en EB124 y
presiona despus sobre un pulsador (BE) no representado en el dibujo. A partir de ese instante,
la pinza realiza los movimientos indicados en el dibujo, desde el movimiento 1 (bajar pinza)
hasta el movimiento 16, al final del que el operario retira manualmente la pieza tratada, colo-
ca otra, y tras pulsar BE, el proceso vuelve a repetirse nuevamente. Las cubetas C#1, C#2 y C#3
contienen productos qumicos, en los que la mquina va sumergiendo las piezas. El tiempo que
debe estar cada pieza sumergida en cada cubeta, viene dada por la siguiente tabla:

87
Programacin por recetas

P#1 P#2 P#3


Tiempo en C#1 10 seg. 14 seg. 1 seg.
Tiempo en C#2 15 seg. 25 seg. 7 seg.
Tiempo en C#3 20 seg. 5 seg. 8 seg.
Tabla 1

Los puntos negros numerados con la letra S seguida de un nmero, representan los rels reed
que hemos dispuesto en la mquina para informar al autmata, por una parte de la posicin del
carrito a lo largo de la viga horizontal (S0, S1, S2 y S3) y, por otra parte, de la posicin alta o
baja de la pinza o si la pinza est abierta o cerrada (S4, S5, S6 y S7).

En el interior de carrito, hemos dispuesto un pequeo motor trifsico que responde al siguiente
esquema:
I D

De tal forma que si aplicamos 24 volts al borne D, el motor gira a derechas y el carrito avanza
(se desplaza de izquierda a derecha sobre la viga) pero si aplicamos 24 volts al borne I, el
motor gira a izquierdas y el carrito retrocede (se desplaza de derecha a izquierda sobre la viga).

Por ltimo, deberemos tener en cuenta que tanto el cilindro neumtico vertical de la pinza como
la pinza misma, estn gobernados por sendas electro vlvulas del tipo 5/2 monoestables.

Una vez conocidos estos datos, lo primero que haremos a continuacin, ser pintar una tabla con
las entradas/salidas del autmata.

Entradas Salidas
EB124 Nmero de receta A124.0 Borne D (el carrito avanza)
E125.0 Botn empezar (BE) A124.1 Borne I (el carrito retrocede)
E125.1 Posicin S0 A124.2 Bajar/subir pinza
E125.2 Posicin S1 A124.3 Cerrar/abrir pinza
E125.3 Posicin S2
E125.4 Posicin S3
E125.5 Pinza arriba S4
E125.6 Pinza abajo S5
E125.7 Pinza abierta S6
E126.0 Pinza cerrada S7
E126.1 Botn parar (BP)

Empezaremos descomponiendo los movimientos de la mquina en movimientos simples, que


controlaremos desde funciones de la siguiente forma:

Funcin FC1 (baja la pinza)


Funcin FC2 (sube la pinza)
Funcin FC3 (abre la pinza)
Funcin FC4 (cierra la pinza)
Funcin FC5 (avanza carrito hasta prxima cubeta)

88
Programacin por recetas

Est claro que despus que hayamos diseado las anteriores funciones, slo tendremos que lla-
marlas, por lo que nos van a facilitar mucho la posterior programacin del autmata.

Para el diseo de estas funciones (excepto FC5), tomaremos como referencia las funciones tipo
E, pues deseamos que, en caso de producirse un error en el funcionamiento de la mquina, nos
reporte un BitDeError que despus sea interpretado por un programa que analice los errores
producidos.

As pues, empezaremos por el G1 de FC1, segn ya vimos en la pgina 214 del libro.

Desde bloque invocante

Inicializar funcin en la 1 pasada y


0
no volver a ejecutar esta etapa.

=1

Salir mbolo
1
Cargar temporizador con T s.

(mbolo S fuera) Y (tiempo NO excedido)

(mbolo NO fuera) Y (tiempo S excedido)

BitDeError=0 BitDeError=1
2 3
BitRutinaErrores=0 BitRutinaErrores=1
=1 =1

Poner a cero temporizador


4 Decrementar PalabraDeContar

PalabraDeContar=0

5 BitDeFin=1

=1
Hacia bloque invocante

Y como G2 de FC1, podemos tomar el mismo que vimos en la pgina 215 del libro:

89
Programacin por recetas

Desde bloque invocante


M10.1=1 BitDeEtapa_1=1
M10.2=0 BitDeEtapa_2=0
M10.3=0 BitDeEtapa_3=0
M10.4=0 BitDeEtapa_4=0
0
En la 1 pasada hacer: M10.5=0 BitDeEtapa_5=0
MW100=2 PalabraDeContar=2
M150.0=0 BitDeError=0
=1 M200.0=0 BitDeFin=0
M250.0=0 BitRutinaErrores=0
M10.1
A124.2=1
1
T0 = 5seg (SV)

(E125.6=1) Y (T0=1)

(E125.6=0) Y (T0=0)
M10.2 M10.3
M150.0=0 M150.0=1
2 3
M250.0=0 M250.0=1
=1 =1

M10.4
R T0
4 MW100=MW100 - 1

MW100=0
M10.5
5 M200.0=0

=1

Hacia bloque invocante

Con G2 de FC1 a la vista, podemos ya escribir el contenido de FC1, que lgicamente ser casi
idntico al que aparece en las pginas 215 y 216 del libro:

FC1 (baja pinza): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)
O M 0.0 U M 10.1 U M 10.1
ON M 0.0 S A 124.2 UN E 125.6
FP M 10.0 UN T 0
SPBN _100 U M 10.1 R M 10.1
S M 10.1 L S5T#20S S M 10.3
R M 10.2 SI T 0
R M 10.3 U M 10.2
R M 10.4 U M 10.1 SPBN _102
R M 10.5 U E 125.6 R M 150.0
L 2 U T 0 R M 250.0
T MW 100 R M 10.1 R M 10.2
R M 150.0 S M 10.2 S M 10.4
R M 200.0 _102: NOP 0
_100: NOP 0

90
Programacin por recetas

FC1 (continuacin): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 10.3 U M 10.4 U M 10.5
SPBN _103 SPBN _104 SPBN _105
S M 150.0 R T 0 R M 10.5
S M 250.0 L MW 100 S M 200.0
R M 10.3 L 1 R M 10.0
S M 10.4 -I _105: NOP 0
_103: NOP 0 T MW 100
SPN _104
SET
R M 10.4
S M 10.5
_104: NOP 0

La funcin FC2 ser igual que FC1, excepto la segunda lnea de la etapa 1 donde dir R
A124.2 en lugar de S A124.2, ya que deseamos que el cilindro se retraiga. Los Bits de
control que aparecen en FC1 tambin los cambiaremos, por aquello de no usar los recursos ms
de una vez. As pues, el contenido de FC2 ser el siguiente:

FC2 (sube pinza): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)
O M 0.0 U M 11.1 U M 11.4
ON M 0.0 U E 125.5 SPBN _104
FP M 11.0 U T 1 R T 1
SPBN _100 R M 11.1 L MW 102
S M 11.1 S M 11.2 L 1
R M 11.2 -I
R M 11.3 U M 11.1 T MW 102
R M 11.4 UN E 125.5 SPN _104
R M 11.5 UN T 1 SET
L 2 R M 11.1 R M 11.4
T MW 102 S M 11.3 S M 11.5
R M 150.1 _104: NOP 0
R M 200.1 U M 11.2
_100: NOP 0 SPBN _102 U M 11.5
R M 150.1 SPBN _105
U M 11.1 R M 250.0 R M 11.5
R A 124.2 R M 11.2 S M 200.1
S M 11.4 R M 11.0
U M 11.1 _102: NOP 0 _105: NOP 0
L S5T#20S
SI T 1 U M 11.3
SPBN _103
S M 150.1
S M 250.0
R M 11.3
S M 11.4
_103: NOP 0

91
Programacin por recetas

FC3 (abre pinza): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)
O M 0.0 U M 12.1 U M 12.4
ON M 0.0 U E 125.7 SPBN _104
FP M 12.0 U T 2 R T 2
SPBN _100 R M 12.1 L MW 104
S M 12.1 S M 12.2 L 1
R M 12.2 -I
R M 12.3 U M 12.1 T MW 104
R M 12.4 UN E 125.7 SPN _104
R M 12.5 UN T 2 SET
L 2 R M 12.1 R M 12.4
T MW 104 S M 12.3 S M 12.5
R M 150.2 _104: NOP 0
R M 200.2 U M 12.2
_100: NOP 0 SPBN _102 U M 12.5
R M 150.2 SPBN _105
U M 12.1 R M 250.0 R M 12.5
R A 124.3 R M 12.2 S M 200.2
S M 12.4 R M 12.0
U M 12.1 _102: NOP 0 _105: NOP 0
L S5T#20S
SI T 2 U M 12.3
SPBN _103
S M 150.2
S M 250.0
R M 12.3
S M 12.4
_103: NOP 0

FC4 (cierra pinza): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)
O M 0.0 U M 13.1 U M 13.2
ON M 0.0 S A 124.3 SPBN _102
FP M 13.0 R M 150.3
SPBN _100 U M 13.1 R M 250.0
S M 13.1 L S5T#20S R M 13.2
R M 13.2 SI T 3 S M 13.4
R M 13.3 _102: NOP 0
R M 13.4 U M 13.1
R M 13.5 U E 126.0 U M 13.3
L 2 U T 3 SPBN _103
T MW 106 R M 13.1 S M 150.3
R M 150.3 S M 13.2 S M 250.0
R M 200.3 R M 13.3
_100: NOP 0 U M 13.1 S M 13.4
UN E 126.0 _103: NOP 0
UN T 3
R M 13.1
S M 13.3

92
Programacin por recetas

FC4 (continuacin): (Esta tabla se lee de arriba a abajo y de


izquierda a derecha)
U M 13.4 U M 13.5
SPBN _104 SPBN _105
R T 3 R M 13.5
L MW 106 S M 200.3
L 1 R M 13.0
-I _105: NOP 0
T MW 106
SPN _104
SET
R M 13.4
S M 13.5
_104: NOP 0

La funcin FC5 (avanzar hasta prxima cubeta), es desde luego diferente a las anteriores, y
podemos pensar para esta funcin un G1 sencillo que tenga el siguiente aspecto:

Desde bloque invocante

Inicializar funcin en la 1 pasada y


0
no volver a ejecutar esta etapa.

Carrito en S0 Carrito en S1 Carrito en S2 Carrito en S3

Ir a dcha. Ir a dcha. Ir a dcha. Ir a izda.


1 2 3 4
Temp. 2 seg. Temp. 2 seg. Temp. 2 seg. Temp. 2 seg.
2S/X1 Y 2S/X2 Y 2S/X3 Y 2S/X4 Y
Carrito en S1 Carrito en S2 Carrito en S3 Carrito en S0

Parar motor
5 Temp. 1 seg.
1S/X5

Poner a cero temporizadores


6 Decrementar PalabraDeContar

PalabraDeContar=0

7 BitDeFin=1

=1

Hacia bloque invocante

93
Programacin por recetas

Podemos pintar ahora el G2 de FC5:

Desde bloque invocante

M14.1=0 M14.7=0
M14.2=0 MW110=2
0 M14.3=0 M200.4=0
M14.4=0
M14.5=0
M14.6=0

E125.1=1 E125.2=1 E125.3=1 E125.4=1


M14.1 M14.2 M14.3 M14.4
A124.0=1 A124.0=1 A124.0=1 A124.0=0
1 A124.1=0 2 A124.1=0 3 A124.1=0 4 A124.1=1
T4=2S (SV) T5=2S (SV) T6=2S (SV) T7=2S (SV)
T4=0 Y T5=0 Y T6=0 Y T7=0 Y
E125.2=1 E125.3=1 E125.4=1 E125.1=1

M14.5 A124.0=0
A124.1=0
5 T8=1S (SV)
T8=0
M14.6
R T4, T5, T6, T7 y T8
6 MW110=MW110-1

MW110=0
M14.7
7 M200.4=1

=1

Hacia bloque invocante

94
Programacin por recetas

Con lo que el contenido de FC5 ser el siguiente:

FC5 (avanzar carrito prx. cubeta):(Esta tabla se lee de arriba a abajo y de izquierda a
derecha)
O M 0.0 U M 14.2 U M 14.5
ON M 0.0 S A 124.0 R A 124.0
FP M 14.0 R A 124.1 R A 124.1
SPBN _100 L S5T#2S L S5T#1S
S M 14.1 SI T 5 SI T 8
R M 14.2
R M 14.3 U M 14.2 U M 14.5
R M 14.4 UN T 5 UN T 8
R M 14.5 U E 125.3 R M 14.5
R M 14.6 R M 14.2 S M 14.6
R M 14.7 S M 14.5
L 2 U M 14.6
T MW 110 U M 14.3 SPBN _101
SET S A 124.0 R T 4
R M 200.4 R A 124.1 R T 5
U E 125.1 L S5T#2S R T 6
S M 14.1 SI T 6 R T 7
U E 125.2 R T 8
S M 14.2 U M 14.3 L MW 110
U E 125.3 UN T 6 L 1
S M 14.3 U E 125.4 -I
U E 125.4 R M 14.3 T MW 110
S M 14.4 S M 14.5 SPN _101
_100: NOP 0 SET
U M 14.4 R M 14.6
U M 14.1 R A 124.0 S M 14.7
S A 124.0 S A 124.1 _101: NOP 0
R A 124.1 L S5T#2S
L S5T#2S SI T 7 U M 14.7
SI T 4 SPBN _102
U M 14.4 R M 14.7
U M 14.1 UN T 7 R M 14.0
UN T 4 U E 125.1 S M 200.4
U E 125.2 R M 14.4 _102: NOP 0
R M 14.1 S M 14.5
S M 14.5

Con este conjunto de funciones, podemos ahora disear una sexta funcin FC6, a la que le po-
demos encomendar el trabajo de llevar el carrito hacia la posicin de SALIDA, independiente-
mente del lugar y estado en el que se encuentre. Esto nos vendr bien cuando despus disee-
mos OB1 y queramos inicializar el sistema antes de comenzar el trabajo real.

Veremos en la prxima pgina el G1 de FC6 que hemos diseado y el lector podr observar
como la solucin adoptada no es realmente una solucin muy correcta desde un punto de vista
profesional, porque estamos ignorando la posibilidad de que el carrito no llegue a su destino
(por la razn que sea) y sin embargo el programa no detectara esta anomala.

En un caso real, desde luego, el programador debe plantearse esta problemtica, ya que s sera
muy recomendable que el programa pudiera detectar este mal funcionamiento y reportarlo en
forma de un BitDeError que a su vez activase una funcin de tratamiento de errores. Sin embar-
go, aqu en este ejercicio, vamos a prescindir de este refinamiento con objeto de no complicarlo
en exceso.

95
Programacin por recetas

Desde bloque invocante Desde bloque invocante


M15.1=1 MW112=2
Inicializar funcin en la 1 M15.2=0 M200.5=0
0 pasada y no volver a ejecu- 0 M15.3=0 A124.0=0
tar esta etapa. M15.4=0 A124.1=0
M15.5=0
=1 =1 M15.6=0
M15.1
1 Abrir pinza 1 CALL FC3

Pinza abierta M200.2=1


M15.2
2 Subir pinza 2 CALL FC2

Pinza arriba M200.1=1


M15.3

3 Ir a SALIDA 3 A124.1=1

Pinza en SALIDA E125.1=1


M15.4
Parar motor A124.1=0
4 4
Temp. 1seg. T9=1S (SV)

1S/X4 T9=0
M15.5
Poner a cero temporizador R T9
5 5
Decrementar PalabraDeContar MW112=MW112-1

PalabraDeContar=0 MW112=0
M15.6
6 BitDeFin=1 6 M200.5=1

=1 =1

FC6 (carrito a SALIDA): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)
O M 0.0 U M 15.1 U M 15.3
ON M 0.0 SPBN _101 SPBN _103
FP M 15.0 CALL FC 3 S A 124.1
SPBN _100 U M 200.2 U E 125.1
S M 15.1 R M 15.1 R M 15.3
R M 15.2 S M 15.2 S M 15.4
R M 15.3 _101: NOP 0 _103: NOP 0
R M 15.4
R M 15.5 U M 15.2 U M 15.4
R M 15.6 SPBN _102 R A 124.1
L 2 CALL FC 2 L S5T#1S
T MW 112 U M 200.1 SV T 9
R M 200.5 R M 15.2
R A 124.0 S M 15.3 U M 15.4
R A 124.1 _102: NOP 0 UN T 9
_100: NOP 0 R M 15.4
S M 15.5

96
Programacin por recetas

FC6 (continuacin): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 15.5 U M 15.6
SPBN _104 SPBN _105
R T 9 R M 15.0
L MW 112 R M 15.6
L 1 S M 200.5
-I _105: NOP 0
T MW 112
SPN _104
SET
R M 15.5
S M 15.6
_104: NOP 0

Llegados hasta aqu, tenemos dos alternativas, que son: o bien nos ponemos directamente a es-
cribir OB1 con objeto de montar el programa principal e ir llamando a las funciones que hemos
creado segn nos vayan haciendo falta, o bien creamos un bloque de funcin FB1 con bloques
de datos asociados DB1, DB2 y DB3 que contenga los tiempos de la Tabla 1.

De las dos alternativas, escogemos la segunda, porque la introduccin de bloques de datos don-
de tengamos almacenados los tiempos de la Tabla 1, le da a esta solucin una flexibilidad que
no tiene la primera, y por otra parte, le confiere al programa una mayor modularidad.

Empecemos por el G1 de FB1.

Desde bloque invocante 3

Inicializar funcin en la 1
0 pasada y no volver a ejecu- 4 Ir a C#1
tar esta etapa.

=1 Pinza sobre C#1

1 Bajar pinza 5 Bajar pinza

Pinza abajo Pinza abajo

Temporizar con
2 Cerrar pinza 6
T10 segn receta

Pinza cerrada Temporizado

3 Subir pinza 7 Subir pinza

Pinza arriba Pinza arriba

4 Hacia pgina siguiente

97
Programacin por recetas

De pgina anterior 16

10 Ir a C#2 17 Subir pinza

Pinza sobre C#2 Pinza arriba

11 Bajar pinza 20 Ir a SALIDA

Pinza abajo Pinza en SALIDA


Temporizar con
12 21 Bajar pinza
T11 segn receta

Temporizado Pinza abajo

13 Subir pinza 22 Abrir pinza

Pinza arriba Pinza abierta

14 Ir a C#3 23 Subir pinza


Pinza sobre C#3 Pinza arriba
Poner a cero
15 Bajar pinza 24 temporizadores
Decrementar
PalabraDeContar
Pinza abajo
PalabraDeContar=0
Temporizar con
16 25 BitDeFin=1
T12 segn receta

Temporizado =1

17 Hacia bloque invocante

Vamos ahora a por el G2 de FB1:

Desde bloque invocante 2

M16.1=1 M16.3
M16.2.M18.7=0
0 3 Call FC2
MW114=2
M200.6=0 M200.1=1
=1 M16.4
M16.1
1 Call FC1 4 Call FC5

M200.0=1 M16.5 M200.4=1


M16.2
2 Call FC4 5 Call FC1
M200.0=1
M200.3=1

3 15

98
Programacin por recetas

De pgina anterior

M16.6 M17.6
Temporizar con Temporizar con
6 T10 segn receta 16 T12 segn receta

T10=0 T12=0
M16.7 M17.7
7 Call FC2 17 Call FC2

M200.1=1 M200.1=1
M17.0 M18.0

10 Call FC5 20 Call FC5

M200.4=1 M200.4=1
M17.1 M18.1
11 Call FC1 21 Call FC1

M200.0=1 M200.0=1
M17.2 M18.2
12 Temporizar con 22 Call FC3
T11 segn receta

T11=0 M200.2=1
M17.3 M18.3

13 Call FC2 23 Call FC2

M200.1=1 M200.1=1
M17.4 M18.4

14 24 R T10,T11,T12
Call FC5 MW114=MW114-1

M200.4=1 MW114=0
M17.5 M18.5
15 Call FC1 25 M200.6=1

M200.0=1 =1

16 Hacia bloque invocante

Crearemos ahora FB1, pero antes de ponernos a escribir las operaciones AWL, deberemos in-
troducir los siguientes parmetros formales:

Declaracin Nombre Tipo

In TiempoEnCubeta_1 S5TIME
In TiempoEnCubeta_2 S5TIME
In TiempoEnCubeta_3 S5TIME

Podemos ya traducir este G2 de FB1 en operaciones AWL:

99
Programacin por recetas

FB1: (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


O M 0.0 U M 16.5 U M 17.2
ON M 0.0 SPBN _165 UN T 11
FP M 16.0 CALL FC 1 R M 17.2
SPBN _100 U M 200.0 S M 17.3
L 1 R M 16.5
T MB 16 S M 16.6 U M 17.3
L 0 _165: NOP 0 SPBN _173
T MB 17 CALL FC 2
T MB 18 U M 16.6 U M 200.1
L 2 L #TiempoEnCubeta_1 R M 17.3
T MW 114 SV T 10 S M 17.4
SET _173: NOP 0
S M 16.1 U M 16.6
R M 200.6 UN T 10 U M 17.4
_100: NOP 0 R M 16.6 SPBN _174
S M 16.7 CALL FC 5
U M 16.1 U M 200.4
SPBN _161 U M 16.7 R M 17.4
CALL FC 1 SPBN _167 S M 17.5
U M 200.0 CALL FC 2 _174: NOP 0
R M 16.1 U M 200.1
S M 16.2 R M 16.7 U M 17.5
_161: NOP 0 S M 17.0 SPBN _175
_167: NOP 0 CALL FC 1
U M 16.2 U M 200.0
SPBN _162 U M 17.0 R M 17.5
CALL FC 4 SPBN _170 S M 17.6
U M 200.3 CALL FC 5 _175: NOP 0
R M 16.2 U M 200.4
S M 16.3 R M 17.0 U M 17.6
_162: NOP 0 S M 17.1 L #TiempoEnCube-
_170: NOP 0 ta_3
U M 16.3 SV T 12
SPBN _163 U M 17.1
CALL FC 2 SPBN _171 U M 17.6
U M 200.1 CALL FC 1 UN T 12
R M 16.3 U M 200.0 R M 17.6
S M 16.4 R M 17.1 S M 17.7
_163: NOP 0 S M 17.2
_171: NOP 0 U M 17.7
U M 16.4 SPBN _177
SPBN _164 U M 17.2 CALL FC 2
CALL FC 5 L #TiempoEnCubeta_2 U M 200.1
U M 200.4 SV T 11 R M 17.7
R M 16.4 S M 18.0
S M 16.5 _177: NOP 0
_164: NOP 0

100
Programacin por recetas

FB1 (continuacin): (Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 18.0 U M 18.2 U M 18.4
SPBN _180 SPBN _182 SPBN _184
CALL FC 5 CALL FC 3 R T 10
U M 200.4 U M 200.2 R T 11
R M 18.0 R M 18.2 R T 12
S M 18.1 S M 18.3 L MW 114
_180: NOP 0 _182: NOP 0 L 1
-I
U M 18.1 U M 18.3 T MW 114
SPBN _181 SPBN _183 SPN _184
CALL FC 1 CALL FC 2 SET
U M 200.0 U M 200.1 R M 18.4
R M 18.1 R M 18.3 S M 18.5
S M 18.2 S M 18.4 _184: NOP 0
_181: NOP 0 _183: NOP 0
U M 18.5
SPBN _185
R M 18.5
R M 16.0
S M 200.6
_185: NOP 0

Crearemos ahora tres (3) bloques de datos de instancia DB1, DB2 y DB3 asociados a FB1, con
los tiempos de la Tabla 1.

Llegamos finalmente a OB1, desde donde montaremos una sencilla lgica para llamar a los
programas que hemos creado.

Empezaremos por G1 de OB1:

0 Posicionarse en SALIDA

Pinza en SALIDA Y Botn Empezar

1 Comprobar n de receta

Receta NO valida Receta S valida


Iniciar pro-
2 ceso segn
1 receta.
Botn parar

101
Programacin por recetas

Y ahora el G2 de OB1:
1,3

0 Call FC6

M200.5=1 Y E125.0=1

1 Comprobar n de receta

Receta NO valida Receta S valida


Call FB1 con
2 DB dependien-
1 te del n receta
E126.1=1

0
Pasemos todo esto a operaciones AWL:

OB1:(Esta tabla se lee de arriba a abajo y de izquierda a derecha)


U M 0.0 U M 0.2
SPBN _000 SPBN _002
CALL FC 6 L EB 124
U M 200.5 L 1
R M 0.0 -I
S M 0.1 SPZ R_1
_000: NOP 0 L EB 124
L 2
U M 0.1 -I
SPBN _001 SPZ R_2
L EB 124 SPA R_3
L 3 R_1: CALL FB 1 , DB1
-I TiempoEnCubeta_1:=
SPP _001 TiempoEnCubeta_2:=
L EB 124 TiempoEnCubeta_3:=
L 1 SPA M001
-I R_2: CALL FB 1 , DB2
SPM _001 TiempoEnCubeta_1:=
SET TiempoEnCubeta_2:=
R M 0.1 TiempoEnCubeta_3:=
S M 0.2 SPA M001
_001: NOP 0 R_3: CALL FB 1 , DB3
TiempoEnCubeta_1:=
TiempoEnCubeta_2:=
TiempoEnCubeta_3:=
SPA M001
NOP 0
M001: U E 126.1
R M 0.2
S M 0.0
_002: NOP 0

102
Programacin por recetas

Obsrvese como no hemos puesto los parmetros actuales del bloque de funcin FB1 al hacer la
llamada, lo que obliga a STEP 7 a tomar los valor almacenados en DB1, DB2 y DB3 respecti-
vamente, como valores por defecto.

Pondremos tambin una sencilla funcin FC100 que se limite a parar el autmata en cuanto
detecte un error.

O M 150.0
O M 150.1
O M 150.2
O M 150.3
= M 80.0

U M 80.0
SPBN _800
CALL "STP" //SFC46 es una funcin que para directamente el autmata
_800: NOP 0

Pondremos finalmente OB100 como bloque que inicializa el proceso:

L B#16#0
T MB0
CALL SFC21
BVAL:= P#M0.0 BYTE 1
RET_VAL:MW100
BLK := P#M 1.0 BYTE 500
SET
S M0.0

103
Hardware

ndice Hardware
(NOTA: Las imgenes que aparecen en este captulo, as como la descripcin de la funcio-
nalidad de los elementos de las imgenes, han sido cedidas por la casa SIEMENS).

Dedicaremos este captulo a mostrar imgenes sobre autmatas SIEMENS de la clase SIMATIC
S7-300, con objeto de familiarizar al lector con estas mquinas y de reforzar los conceptos te-
ricos que se han venido dando, tanto en este libro de ejercicios como en el libro de teora.

Empezaremos mostrando una imagen en la que puede apreciarse una visin en perspectiva de un
autmata S7-300 en general.

En esta imagen cabe destacar, por una parte la CPU, que es el mdulo que se encuentra ms a la
izquierda, y despus los distintos mdulos que, a forma de libros en una estantera, se pueden ir
aadiendo a la CPU.

Tambin destacaremos en esta imagen, el soporte o carril en forma de U plana y vertical sobre
el que se van montando los diferentes mdulos.

Vamos a ver ahora otra imagen donde se pueden apreciar otros detalles relacionados tambin
con este tema

105
Hardware

PS CPU IM SM: SM: SM: SM: FM: CP:


(opcional) (opcional) DI DO AI AO - Contaje - Punto a Punto
- Posicionamiento - PROFIBUS
- Control en lazo - Ethernet Industrial
cerrado

En esta imagen se aprecian mejor los conceptos que ahora queremos resaltar.

Mdulos de Seal Mdulos de entradas digitales: 24V DC, 120/230V AC


(SM) Mdulos de salidas digitales: 24V DC, Rel
Mdulos de entradas analgicas: Tensin, corriente,
resistencia, termopares
Mdulos de salidas analgicas: Tensin, corriente

Mdulos de Interfase La IM360/IM361 y la IM365 hacen posible configuraciones multifila.


(IM) Enlazan el bus a travs de una fila a la siguiente.

Mdulos Dummy El mdulo dummy DM 370 reserva un slot para un mdulo de seal cu-
(DM) yos parmetros an no han sido asignados. Tambin puede usarse, por
ejemplo, para reservar un slot para la instalacin de un mdulo interfase
en el futuro.

Mdulos de Funcin Realizan funciones especiales":


(FM) - Contaje
- Posicionamiento
- Control en lazo cerrado.

Procesadores de Proporciona las siguientes posibilidades de montaje en red:


Comunicacin (CP) - Enlaces Punto a Punto
- PROFIBUS
- Industrial Ethernet.

Accesorios Conectores de bus y conectores frontales

Veamos ms de cerca las imgenes de dos (2) CPUs tpicas de la serie S7-300.

106
Hardware

SIEMENS CPU314 SIEMENS CPU315-2 DP

SF SF SF DP
BATF BATF BUSF
DC5V DC5V
FRCE FRCE
RUN RUN
STOP STOP
RUN-P RUN-P
RUN RUN
STOP STOP
M RES M RES

SIMATIC SIMATIC
S7-300 S7-300

Batera MPI Batera MPI DP

Selector de Modo MRES = Funcin de reset de memoria (Module Reset)


STOP = Modo Stop; el programa no se ejecuta.
RUN = Ejecucin del programa, es posible el acceso slo lectu-
ra desde la PG.
RUN-P = Ejecucin del programa, es posible el acceso lectu-
ra/escritura desde la PG.
Indicadores SF = Error de grupo; fallo interno de la CPU o fallo en un
de Estado (LEDs) mdulo con capacidad de diagnstico.
BATF = Fallo de batera; Batera vaca o no presente.
DC5V = Indicador de tensin interna de 5 V DC.
FRCE = FORCE; indica que, al menos, una entrada o salida est
forzada.
RUN = Parpadea cuando la CPU est arrancando, luce fija en
modo RUN.
STOP = Muestra una luz fija en modo STOP.
Parpadea lentamente durante una peticin de reset de
memoria. Parpadea rpidamente cuando se est efec-
tuando un reset de memoria.
Parpadea lentamente cuando se necesita un reset porque
se ha insertado una memory card.

Memory Card Existe un slot para una memory card. La memory card salva el conteni-
do del programa en caso de cada de alimentacin sin necesidad de bate-
ra.
Compartimento Existe un receptculo para una batera de litio bajo la cubierta. La bate-
de la batera ra proporciona energa de respaldo para salvar los contenidos de la
RAM ante una supuesta cada de alimentacin.
Conexin MPI Conexin para un dispositivo de programacin u otro dispositivo con
interfase MPI.
Interfase DP Interfase para la conexin directa de periferia descentralizada a la CPU.

107