Está en la página 1de 84

AUTOMATA PROGRAMABLE S7-300

Instrucciones avanzadas

Conceptos bsicos Nivel 1.


09. Programacin estructurada por bloques.
10. Operaciones de clculo, bsicas y avanzadas.
11. Operaciones de incrementar y decrementar.
12. Parametrizacin de bloques FBs y FCs.
13. Direccionamiento indirecto.
14. Bloques de datos DBs.
15. Programacin de registros del sistema.
16. Tratamiento de seales analgicas.
17. Utilizacin de bloques estndar de las libreras.
18. Desplazamientos y rotaciones.
19. Mdulos de organizacin. Procesamiento de alarmas.

IES SEP COMTE DE RIUS


DE TARRAGONA

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

PRLOGO
Esta documentacin forma parte de una serie de manuales que un grupo de profesores de
tres institutos de educacin secundaria de Catalunya, como son:

IES-SEP Comte de Rius de Tarragona


IES Palau Ausit de Ripollet (Barcelona)
IES-SEP La Garrotxa de Olot (Girona)

han estado experimentando con diferentes materiales incluidos dentro de la temtica de la


automatizacin, el control y las comunicaciones industriales.
Este equipo de profesores, formaron un grupo de trabajo, llamado EDCAI
(Experimentacin y Documentacin en Control y Automatizacin Industrial), reconocido
tanto por el Departament dEducaci de la Generalitat de Catalunya como por la empresa
Siemens, con unos objetivos tan sencillos como claros y que se basaban en la realizacin
de documentacin realizada por profesores/as para profesores/as, y que adems, pudiese
servir como manual para los alumnos, esto quiere decir que se ha intentado realizar una
documentacin que sea fcil de seguir con unas explicaciones paso a paso de los
diferentes procesos a realizar, para de esta manera poder alcanzar el objetivo propuesto
en cada ejercicio.
Este grupo de trabajo contina trabajando en cada uno de los temas para poder ir
actualizando da a da esta documentacin, es por ello, que nos podis enviar vuestras
sugerencias a travs de la informacin que encontrareis en la web dedicada a este grupo
de trabajo y que desde aqu os invitamos a participar.
www.iespalauausit.com/edcai/index.php

Esperamos que el esfuerzo y dedicacin que hemos realizado pueda ayudar a mejorar
vuestra labor educativa.

Los profesores del grupo de trabajo EDCAI


Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 1/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

INDICE:
CONCEPTOS BSICOS NIVEL 1
1 SISTEMAS DE NUMERACION.........................................................................................................
2 MDULOS DE ORGANIZACIN......................................................................................................
3 BLOQUES DE FUNCIN .................................................................................................................
4 MDULOS DE DATOS....................................................................................................................
5 ACUMULADORES............................................................................................................................
E6.1. FUNCION MOVER (TRANSFERENCIA). .....................................................................................
E6.2. FUNCION MOVER (CONSTANTES A UNA MISMA PALABRA)................................................
E7.1. PRESELECCIN VARIABLE Y VISUALIZACIN DEL VALOR DE UN TEMPORIZADOR........
E7.2. PROGRAMACIN DE UN TEMPORIZADOR CON TRES TIEMPOS DIFERENTES.................
E8.1. PRESELECCIN VARIABLE DEL VALOR DE UN CONTADOR. ..............................................
E8.2. INSTRUCCIONES DE COMPARACIN......................................................................................
E8.3. CONTROL DE INICIO DE LA MARCHA DE UN PROCESO........................................................
E8.4. CLAVE PARA ABRIR UNA CERRADURA....................................................................................

4
7
9
10
11
12
13
15
16
18
20
22
24

09. PROGRAMACIN ESTRUCTURADA POR BLOQUES.


E9.1. SELECCIN DE DOS TIPOS DE FUNCIONAMIENTO 26

10. OPERACIONES DE CLCULO BSICAS Y AVANZADAS.


E10.1. OPERACIONES LOGICAS ENTRE PALABRAS O DOBLES PALABRAS..................................
E10.2. PROGRAMACIN DE UN TEMPORIZADOR CON PRESELECCIN VARIABLE.
BASE DE TIEMPOS FIJA...................................................................................................................
E10.3. OPERACIONES ARTIMETICAS CON NMEROS ENTEROS (COMA FIJA)................................
E10.4. CREACIN DE UN CONTADOR REVERSIBLE CON PRESELECCIN.......................................
E10.5. CREACIN DE UN CONTADOR DE TIEMPOS.............................................................................
E10.6. OPERACIONES ARTIMETICAS CON NMEROS EN COMA FLOTANTE....................................

27
29
30
32
33
35

11. OPERACIONES DE INCREMENTAR Y DECREMENTAR.


E11.1. DIFERENTES MTODOS DE INCREMENTAR Y DECREMENTAR . 37

12. PARAMETRIZACIN DE BLOQUES FBs Y FCs.


E12.1. CREACIN DE LA PLANTILLA DE UN GENERADOR DE IMPULSOS STANDARD.................
E12.2. CREACIN DE UNA PLANTILLA CON NMEROS REALES....................................................

38
40

13. DIRECCIONEMIENTO INDIRECTO.


E13.1. DIRECCIONAMIENTO INDIRECTO DE REGISTROS........................................ .........................

42

14. BLOQUE DE DATOS DBs.


E14.1. LECTURA DE DATOS DE UN BLOQUE DE DATOS (DB)........................................................... 44
E14.2. LECTURA DE DATOS DE UN BLOQUE DE DATOS (DB). DIRECCIONAMIENTO
INDIRECTO DE UN BLOQUE DE DATOS........................................................................................... 48

15. PROGRAMACIN CON REGISTROS DE SISTEMA.


E15.1. PROGRAMACION DEL RELOJ..................................................................................................... 50

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 2/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

16. TRATAMIENTO DE SEALES ANALGICAS.


E16.1. FUNCION SCALE (ESCALAR UNA ENTRADA ANALOGICA).....................................................
E16.2. FUNCION UNSCALE (DESESCALAR A UNA SALIDA ANALOGICA)...........................................
E16.3. CONSIGNA DE MAXIMA Y MINIMA DE UNA ENTRADA ANALOGICA.............................. ........
E16.4. CONSIGNA DE MAXIMA Y MINIMA DE UNA ENTRADA ANALOGICA (II).................................

54
56
58
59

17. UTILIZACIN DE BLOQUES ESTNDAR DE LIBRERAS.


E17.1. GRABACIN DE UNA TABLA EN UN BLOQUES DE DATOS. FUNCIN ATT..........................
E17.2. LECTURA DE DATOS GRABADOS EN UNA TABLA. FUNCION LIFO.......................................
E17.3. GRABACIN DE UNA TABLA DE DATOS (II). SOBREESCRIBIR DATOS.................................
E17.4. GRABACIN DE UNA TABLA DE DATOS (III). BORRADO DE DATOS. FUNCIN FILL...........
E17.5. GUARDAR DATOS DEL RELOJ Y DE UNA ENTRADA ANALOGICA........................................

61
63
65
66
67

18. DESPLAZAMIENTOS Y ROTACIONES.


18.1. EXPULSION DE BOTELLAS DEFECTUOSAS . 68

19. MDULOS DE ORGANIZACIN. PROCESAMIENTO DE ALARMAS.


E19.1. PROGRAMACIN DEL OB10.......................................................................................................
E19.2. PROGRAMACIN DEL OB20.......................................................................................................
E19.3. PROGRAMACIN DEL OB35.......................................................................................................
E19.4. PROGRAMACIN DEL OB121.....................................................................................................

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 3/84


Fichero: Instrucciones avanzadas
Versin: 2.2

70
72
73
74

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

1. SISTEMAS DE NUMERACION.
SISTEMA DECIMAL
En un sistema decimal, nos encontramos que cada dgito puede tener los siguientes valores:
0123456789
Calculo del valor decimal:
-Tenemos por ejemplo el valor 7632
Su valor decimal ser:
3
7x10

2
1
0
+ 6x10 + 3x10
+ 2x10

7x1000 + 6x100

+ 3x10

+2 = 7632

SISTEMA BINARIO
En un sistema binario, nos encontramos que cada dgito puede tener los siguientes valores:
0 y 1
Un nmero binario se puede leer en decimal y hexadecimal
Calculo del valor decimal sin signo de un nmero binario:
-Tenemos por ejemplo el nmero binario 101101
Su valor decimal ser:
3
5
1x2 +

32 +

4
0x2 +

0 +

3
2
1
1x2 + 1x2 + 0x2 +

8 +

0
1x2

1 + = 45

El nmero binario 101101 equivale al nmero decimal 45

Calculo del valor decimal con signo de un nmero binario:


-Tenemos por ejemplo el nmero binario 10101101
Su valor decimal ser:
3
7
1x2 +

6
0x2 +

5
1x2 +

4
0x2 +

3
2
1
1x2 + 1x2 + 0x2 +

0
1x2

En este caso que es un byte, el bit mas alto o sea el bit 7 es el que determina el signo si el bit 7 es igual a 1
el signo es negativo, sino ser positivo.
Si trabajramos con una palabra, el bit mas alto o sea el bit 15 seria el que determinara el signo si el bit 15
es igual a 1 el signo es negativo, sino ser positivo.

128 +

0 +

32 +

0 +

8 +

1 + = 173

El valor real ser -1 (valor de bit 7) * 256 + 173 = - 83


El nmero binario 10101101 equivale al nmero decimal con signo - 83
Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 4/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

Calculo del valor binario de un nmero decimal:


-Tenemos por ejemplo el nmero decimal 13
Su valor binario ser:
3
13
1

2
6
0

2
3
1

2
1
1

2
0
1 1 0 1

El nmero decimal 13 equivale al nmero binario 1 1 0 1


El nmero binario 101101 equivale al nmero decimal 45

SISTEMA HEXADECIMAL
En un sistema hexadecimal, nos encontramos que cada dgito puede tener los siguientes valores (16):
0 1 2 3 4 5 6 7 8 9 A(10) B(11) C(12) D(13) E(14) F(15)
Calculo del valor decimal de un nmero hexadecimal:
-Tenemos por ejemplo el nmero hexadecimal 3 A 7
Su valor decimal ser:
3
2
3 x 16 +

768 +

1
A(10) x 16 +

160 +

El nmero hexadecimal

0
7 x 16

= 935

3 A 7 equivale al nmero decimal 935

Calculo del valor hexadecimal de un nmero decimal:


-Tenemos por ejemplo el nmero decimal 3512
Su valor binario ser:
3
3512
R8

16
219
R1

16
13
R 13(D)

16
0
D 1 8

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 5/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

El nmero decimal 3512 equivale al nmero hexadecimal

D18

Calculo del valor hexadecimal de un nmero binario:


-Tenemos por ejemplo el nmero binario 1101 0110 0011 1001
Su valor hexadecimal ser:
3
1101
13(D)

0110
6

0011
3

1001
9

El nmero binario 1101 0110 0011 1001 equivale al nmero hexadecimal D 6 3 9


Calculo del valor binario de un nmero hexadecimal:
-Tenemos por ejemplo el nmero hexadecimal E57A
Su valor binario ser:
3
E
5
7
1110
0101
0111

A
1010

El nmero binario hexadecimal E57A equivale al nmero binario 1110 0101 0111 1010
CODIGO BCD
En un cdigo BCD, nos encontramos con lo que se llama binario codificado decimal.
Ese binario se puede leer en decimal
Calculo del valor decimal de un nmero binario:
-Tenemos por ejemplo el nmero binario 1001 0110
*si lo tomamos como nmero binario, su valor
3 decimal es: 150
7
1x2 +

6
0x2 +

5
0x2 +

4
1x2 +

3
2
1
0
0x2 + 1x2 + 1x2 + 0x2

= 150

*si lo tomamos como nmero BCD, su valor decimal es: 96

10 0 1
9

0110
6

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 6/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

2. MDULOS DE ORGANIZACIN.
Caractersticas de los mdulos OB.
OB1

Es un mdulo que se ejecuta cclicamente


El OB1 se ejecuta en cada scan.
Es el que tiene la prioridad ms baja

OB10 a OB17 Realiza una interrupcin horaria.


Empieza en un momento programado
Se ejecuta a partir de ese momento cada cierto tiempo:
Una sola vez, cada minuto, cada hora, cada da, cada semana, cada mes, cada ao, a final
de mes

OB20 a OB23 Realiza una interrupcin de retardo.


Se ejecuta Al cabo de un tiempo de llamar al OB.

OB30 a OB38 Son OB que se ejecutan cada cierto tiempo prefijado y con prioridades diferentes
OB
Base de tiempo
Valor prefijado
Prefijado
para la prioridad
OB 30
5s
7
OB 31
2s
8
OB 32
1s
9
OB 33
500 ms
10
OB 34
200 ms
11
OB 35
100 ms
12
OB 36
50 ms
13
OB 37
20 ms
14
OB 38
10 ms
15

OB40 a OB47 Son interrupciones de proceso


Se activa cuando en un proceso un registro ha superado unos lmites mximos o mnimos
admisibles . (entradas analgicas, contadores de alta velocidad etc...)

OB80 a OB87 Error Asncrono.


OB80Error de tiempo (Tiempo de ciclo excedido).
Si no esta programado y detecta el error, el PLC pasa a STOP
OB81 Fallo de alimentacin (S7-400) o Fallo de batera
OB82 Rotura de hilo de un mdulo que tenga capacidad de diagnostico.
Si no esta programado y detecta el error, el PLC pasa a STOP
OB83 Deteccin de presencia de mdulo (Extraer/insertar).
Si no esta programado y detecta el error, el PLC pasa a STOP
OB84 Avera de la CPU. Error de la inteface MPI o de la periferia descentralizada.
Si no esta programado y detecta el error, el PLC pasa a STOP
Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 7/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

OB85Evento de arranque para un OB no cargado.


Si no esta programado y detecta el error, el PLC pasa a STOP.
OB86Deteccin de fallo en un bastidor.
Si no esta programado y detecta el error, el PLC pasa a STOP.
OB87Deteccin de fallo en comunicacin.

OB100 a 0B102 OBS de modo de arranque (solo puede estar activado uno de ellos).
Se selecciona en Administrador-Hardware---CPU (picar dos veces)pestaa
arranque.
OB100

Rearranque completo. (Arranque en Caliente)


Mantiene el estado de los elementos que tenga con memoria.
Se ejecuta al pasar la CPU de STOP a RUN.
Primero lee el OB100 y despus el OB1 (empezando por la primera instruccin).

OB101

Rearranque. (Solo en S7-400)


Mantiene el estado de los elementos que tenga con memoria.
Se ejecuta al pasar la CPU de STOP a RUN.
Primero lee el OB101 y despus sigue leyendo en el punto donde dejo de leer al pasar al
estado STOP.

OB102

Arranque en fro
Pone todos los elementos a 0 (incluso los que tienen memoria).
Se ejecuta al pasar la CPU de STOP a RUN.
Primero lee el OB102 y despus el OB1 (empezando por la primera instruccin).

OB121 y OB122 OBs de error


OB121

Error de ejecucin de programa.


Detecta errores de programacin.
Si no esta programado y detecta el error, el PLC pasa a STOP.

OB122

Error al intentar acceder a un mdulo de datos (entradas, salidas, etc...) .


Si no esta programado y detecta el error, el PLC pasa a STOP.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 8/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

3. BLOQUES DE FUNCIN.
Las Funciones, son mdulos que se ejecutan al ser llamados desde otros mdulos.
Cuando se les llama, la funcin acta como una subrutina del programa.
Cuando termina de ejecutar el mdulo, el programa retorna al mdulo desde donde fue llamado, en la
instruccin posterior al salto.
Hay dos tipos de funciones:
Funciones sin parmetros.
Funciones parametrizables (Plantillas).

MDULOS DE BLOQUE DE FUNCIN


Un mdulo de bloque de funcin tiene un mdulo adicional de memoria asociado a el (Mdulo de datos).
En el mdulo de datos (DB) se mantiene una copia de los parmetros que van al rea de datos locales.
Despus de la ejecucin del FB, se borra el rea de memoria local, pero el DB asociado, mantiene los
valores.

OB1
PROGRAMA
CALL FB1, DB10

DB10

FB1

Copia de la parte
de declaracin local
del FB1

Area de declaracin
local
PROGRAMA

PROGRAMA

Tipo de declaracin dentro de un mdulo:


IN
Parmetros de entrada de los que se lee.
OUT
Parmetros de salida en los que se puede escribir.
IN_OUT Parmetros que pueden ser ledos o escritos.
STAT
Variable local cuyo valor se almacena en un DB de instancia.
TEMP Variable temporal cuyo valor no se guarda cuando el termina.
Todos los valores de la declaracin local, menos los temporales, se almacenan en un bloque de datos
(DB de Instancia).

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 9/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

4 MDULOS DE DATOS.
Los mdulos de datos, son reas de memoria de la CPU que se utilizan para almacenar datos.
Los DB mantienen su valor ante un corte de tensin, siempre que tengamos la pila tampn de respaldo.
En caso de no tener pila, solo mantendrn su valor los DB configurados en el rea de elementos
remanentes de la CPU. En las CPUs actuales que van con Memory Card, mantienen la memoria todos los
DBs
Hay dos tipos de mdulos de datos:
-Mdulos de datos globales

Los mdulos de datos globales, pueden ser utilizados por todos los mdulos del programa.
Todos los FB, FC y OB pueden leer o escribir datos en los DB globales.
Para grabar o leer datos, antes hay que abrir el mdulo OPN DB (en KOP) o AUF DB (en AWL).
Los datos permanecen almacenados en el DB aunque se cierre el DB.

-Mdulos de datos de instancia:

Un DB de instancia, esta asociado a un mdulo de funcin especifico (FB)


Los datos almacenados en el DB de instancia solo pueden ser ledos o escritos por el mdulo asociado
a el.
UN DB de instancia no necesita abrirse con ninguna instruccin, se abre se lee y se escribe en el de
forma automtica.
Al empezar a leer el bloque de funcin, se carga del DB una copia de las variables locales en el bloque
de funcin, se ejecuta el bloque y cuando acaba, deposita el valor actual de las variables locales en el
DB de instancia.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 10/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

5. ACUMULADORES.
Los acumuladores son registros auxiliares en la CPU que se utilizan para el intercambio de datos,
operaciones de comparacin y operaciones aritmticas.
El S7-300 tiene dos acumuladores de 32 bits y el S7-400 tiene cuatro.
Carga: (L)
La operacin de carga, siempre va al ACCU1 (las posiciones no utilizadas se ponen a 0), o sea si cargo un
Byte, los 24 bits restantes se ponen a 0.
El registro que antes de la carga estaba en el ACCU1, se desplaza al ACCU2.
Transferencia:(T)
La operacin de transferencia solo transfiere el valor que haya en ACCU1 y el ACCU1 queda invariable.
(Copia el valor del ACCU1 en un registro).
Manipulacin de los acumuladores (AWL)
TAK:
Intercambia el contenido del ACCU1 con el del ACCU2.
PUSH :
Desplaza el contenido del ACCU1 al ACCU2.
POP:
Desplaza el contenido del ACCU2 al ACCU1.

0000
31
24

0000
23
16

ACCU1
0000
15
8

0000
31
24

0000
23
16

ACCU1
EB0
15
8

MB0
31
24

MB1
23
16

ACCU1
MB2
15
8

MB0

MB1

EB0

L EB0
0

EB1

L EW0
0

MB3

L MD0
0

ACCU1
MB2

MB3

T AB0

T AB0

MB0

MB1

ACCU1
MB2

MB3

T AW0

T AW0

MB0

MB1

ACCU1
MB2

MB3

T AD0

T AD0

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 11/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E6.1. FUNCION MOVER (TRANSFERENCIA).


-La funcin MOVE es ejecutada cuando tenemos un 1 en la entrada EN, entonces el valor que hay en IN es
copiado en OUT. (El valor en IN permanece inalterable).
-En ENO tendremos un 1 si la funcin se ejecuta sin errores.
-Si tenemos un 0 en la entrada EN la funcin no se ejecuta (es saltada).
Los formatos en IN y en OUT pueden ser de 8 ,16 y 32 bits. (Los formatos en IN y en OUT pueden ser
diferentes.
E126.0=0

E126.0=1

1011100111001010

EW124

0000000000000000

AW124

1011100111001010

EW124

1 011100111001010

AW124

FC1
E126.0

MOVE
EN

EW124 IN

ENO

OUT AW124

Programacin en AWL

_001:

U
E 126.0
SPBNB
_001
L
EW 124
T
AW 124
NOP 0

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 12/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E6.2. FUNCION MOVER (CONSTANTES A UNA MISMA PALABRA).


-En este caso queremos enviar diferentes constantes a una misma palabra.
-PAW752 es una salida analgica que trabajara entre valores 0 y 27648. Con esos valores, dar una seal
exterior de tensin que estar entre 0 y 10 Voltios que en nuestro caso seria la consigna de velocidad de un
variador de frecuencia de tal modo que 0 V serian 0 rpm y 10 V serian 1500 rpm.
-En este caso tengo seis pulsadores del E124.0 al E124.5. Accionando los pulsadores en orden ascendente
queremos que la salida analgica nos de valores de 0, 2, 4, 6, 8 y 10 voltios.
-Cuando accione la entrada E124.6, un potencimetro que dar de 0 a 10 V a la entrada analgica PEW752
enviara su valor a la salida analgica PAW752.
Haciendo una regla de 3, calculo las siguientes correspondencias:
Valor en PAW752
0
5529
11058
16578
22118
27648

Voltios en salida
0V
2V
4V
6V
8V
10 V

FC2
E124.0

MOVE

EN

ENO

0 IN

E124.1

OUT PAW752

MOVE

EN

ENO

5529 IN

E124.2

OUT PAW752

MOVE

EN

ENO

11058 IN

E124.3

OUT PAW752

MOVE

EN

16578 IN

ENO

OUT PAW752

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 13/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E124.4

MOVE

EN

ENO

22118 IN

E124.5

OUT PAW752

MOVE

EN

ENO

27648 IN
E124.6
6

OUT PAW752
MOVE

EN

PEW752 IN

ENO

OUT PAW752

Nota: Probar que ocurre cuando acciono dos pulsadores al mismo tiempo.
-Indicar que solucin puedo tomar para que el ultimo valor activo sea el efectivo.
-Una vez probado el ejercicio, calcular los valores que tendramos que enviar para tener 1, 3, 5, 7 y 9 voltios
de salida en PAW752.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 14/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E7.1. PRESELECCIN VARIABLE Y VISUALIZACIN DEL VALOR DE UN TEMPORIZADOR.


-Realizaremos la preseleccin de un temporizador con un valor variable. Cada vez que accionemos el
E124.0, el temporizador coger como preseleccin el valor que tenga en ese momento el MW0. El valor de
MW0, debe estar en BCD o en tiempo Simatic, en caso contrario el temporizador no lo entender y el PLC
en caso de no estar programado el OB121, se ira a STOP.
MW0
MB0

MB1
0010
0011
1001
0101 =
Base T. Centenas Decenas Unidades
La base de tiempos es: 3
2
1
0

Valor
Valor
Valor
Valor

W#16#2395

X 10 seg.
X 1 seg.
X 01 seg.
X 001 seg.

En nuestro caso, Base Tiempos = 2

1 Segundo x 395 = 395 segundos

-Una vez se haya activado el temporizador, aunque cambie el valor de MW0, el temporizador seguir
trabajando con el valor que tenia al ponerse en marcha.
-Para cargar el valor del temporizador, lo podremos ver en BCD (MW4) o en Binario (MW2).
-El valor cargado en BCD, contiene el valor y la base de tiempos. No obstante el MW4 lo podemos visualizar
en BCD (formato hexadecimal) o en tiempo Simatic.
FC3
T1
S_EVERZ

E124.0
1

S
MW0

TW

A124.0
Q

DUAL

DEZ

MW2

MW4

Nota: Cuando se coloca un tiempo en formato S5T (Tiempo Simatic), ajusta automticamente el valor a 3
dgitos y adapta la base de tiempos.
Forzar valores en el MW0 (Hexadecimal) con diferentes bases de tiempos en el digito 3 y diferentes valores
en los dgitos 0 al 2 y comprobar que tiempo Simatic coge.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 15/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E7.2. PROGRAMACIN DE UN TEMPORIZADOR CON TRES TIEMPOS DIFERENTES.


-Tenemos un proceso de llenado de botes. Hay tres tamaos de botes.
Para llenar el bote pequeo, la electro vlvula (A124.0) debe funcionar 3 segundos.
Para llenar el bote mediano, la electro vlvula (A124.0) debe funcionar 8 segundos.
Para llenar el bote grande, la electro vlvula (A124.0) debe funcionar 15 segundos.
Tendremos tres pulsadores que seleccionaran el tipo de bote a llenar.
Nota: El tiempo que enviamos a MW0, lo podemos expresar en tiempo Simatic (S5T#15S) o en BCD
W#16#1150.

Nota: Indica como funcionaria el circuito si el segmento 4 estuviera programado delante del
segmento 1.
FC4
E124.0

MOVE
EN

ENO

S5T#3S IN

E124.1
2

OUT MW0

MOVE
EN

ENO

S5T#8S IN

E124.2
3

OUT MW0

MOVE
EN

ENO

S5T#15S IN

E124.0

OUT MW0

A124.1

T1

SV
MW0
E124.1

E124.2

T1

A124.1

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 16/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

A124.1

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 17/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E8.1. PRESELECCIN VARIABLE Y VISUALIZACIN DEL VALOR DE UN CONTADOR. CONTROL DE


PIEZAS EN UNA CINTA TRANSPORTADORA.
-Tenemos una cinta transportadora que llena de piezas una caja.
-El operario primero accionara el selector E124.0 y despus pondr en un terminal de operador o en un
SCADA un valor al MW0 (preseleccin del nmero de piezas que deseamos controlar en ese proceso). Una
vez hecho esto accionara el pulsador E124.1 que cargara el valor de preseleccin, esto provoca que la cinta
A124.0 se ponga en marcha al instante.
-Hay un detector de piezas E124.7 que cuenta las piezas que pasan. Cuando ha contado las piezas
preseleccionadas (el contador llega a 0), se para la cinta y se pone en marcha de forma intermitente la
lmpara A124.7.
-El operario retira entonces la caja llena, pone una caja vaca y repite el proceso (Pone la nueva
preseleccin en MW0 y acciona de nuevo el pulsador E124.1 con lo cual el ciclo comienza de nuevo.

FC5
E124.7

E124.0

Z1

ZR
E124.1

E124.0

Z1

SZ
MW0
Z1

Z1

M255.5

E124.0

A124.0

E124.0

A124.7

A124.0

E124.7
A124.7
E124.0
E124.1
Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 18/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 19/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E8.2. INSTRUCCIONES DE COMPARACIN.


-Tenemos tres tipos de comparadores, segn el formato a comparar:
Comparacin entre dos nmeros enteros. Formato INT 16 bits.
Comparacin entre dos nmeros de dobles enteros. Formato DINT 32 bits.
Comparacin entre dos nmeros reales. Formato REAL 32 bits.

-Hay seis tipos de comparadores segn su condicin de comparacin:

Segmento 1. Tendremos un 1 en el comparador si IN1 es igual a IN2.


Segmento 2. Tendremos un 1 en el comparador si IN1 diferente a IN2.
Segmento 3. Tendremos un 1 en el comparador si IN1 es mayor a IN2.
Segmento 4. Tendremos un 1 en el comparador si IN1 es menor a IN2.
Segmento 5. Tendremos un 1 en el comparador si IN1 es mayor o igual a IN2.
Segmento 6. Tendremos un 1 en el comparador si IN1 es menor o igual a IN2.

NOTA: Un comparador, acta como un contacto en el que habr un 1 cuando se cumpla la comparacin.
FC6
E124.0

AWL
A124.0

CMP==I

1
MW0

IN1

MW2

IN2

E124.1

A124.1
CMP<>I

2
MW0

IN1

MW2

IN2

E124.2

A124.2
CMP>I

3
MW0

IN1

MW2

IN2

E124.3

A124.3
CMP<I

4
MW0

IN1

MW2

IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 20/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E124.4

A124.4
CMP>=I

5
MW0

IN1

MW2

IN2

E124.5

A124.5
CMP<=I

6
MW0

IN1

MW2

IN2

Si queremos realizar una comparacin de un Byte o de nmeros en formato hexadecimal, deberemos hacer
la comparacin en AWL.
Ejemplo:
-Queremos que cuando el valor de la EW124 sea igual al valor H2A4D se active la salida A124.7
-Queremos que cuando el valor del EB126 sea igual a 73 se desactive la salida A124.7
Programacin en AWL
L EW 124
L W#16#2A4D
==I
S A 124.7
L EB 126
L 73
==I
R A 124.7

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 21/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E8.3. CONTROL DE INICIO DE MARCHA DE UN PROCESO.


-Para poner en funcionamiento un proceso, se deben de dar ciertas condiciones. Estas son que algunas
entradas deben estar a 0 y otras a 1.
-Este ejercicio resuelto de forma tradicional, implicara la colocacin de 16 contactos en serie con el
elemento a activar.
-Resuelto con un comparador, se realizara de la siguiente manera:
Estado que deben tener las entradas al poner en marcha el proceso:
EB124
.7 .6 .5 .4 .3 .2 .1 .0
1 0 1 0 1 0 0 1

EB125
.7 .6 .5 .4 .3 .2 .1 .0
0 1 1 0 1 1 0 1

EW124

El estado de las entradas en reposo, corresponde al valor decimal EW124= -22163


IMPORTANTE: Si queremos programar el comparador con nmeros en formato hexadecimal, debe de
hacer el programa en AWL seria: L EW124
L W#16#A96D
==I
Entradas en estado correcto:
-Si al accionar el pulsador de marcha (E126.0) se cumplen las condiciones de inicio, se activara la salida
A124.0 y al mismo tiempo se activara la salida A124.7 de forma fija.
-Accionando el E126.1 se desactivara el proceso.
Entradas en estado incorrecto:
-Si al accionar el pulsador de marcha (E126.0) NO se cumplen las condiciones de inicio, no se activara la
salida A124.0 y al mismo tiempo se activara la salida A124.7 de forma intermitente.
FC7
E126.0

A124.0
CMP==I

1
EW124

IN1

-22163

IN2

E126.1

A124.0

R
E126.0

M255.2

A124.7

CMP<>I

2
EW124

IN1

-22163

IN2

A124.0

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 22/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 23/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E8.4. CLAVE PARA ABRIR UNA CERRADURA.


-Para poder abrir una cerradura, debo de poner en MW0 el valor 1234. Este valor seria introducido por un
terminal de operador o por un SCADA.
-Si al accionar el pulsador E124.0 la clave es correcta, funcionara la cerradura A124.0 (segmento 1 )
durante 5 segundos y borraremos la clave correcta de MW0. (segmento 3).
-Si nos equivocamos tres veces, se bloqueara la cerradura y funcionara una sirena (A124.7) de forma
intermitente hasta que la paremos accionando el pulsador E124.0 habiendo colocando antes en MW0 el
valor 9999.(segmento 5).
-Programar en el OB100 la carga del valor de preseleccin 3 en el contador 1.
-Ejercicio: Hacer el programa necesario para que una vez marque algn fallo demos un tiempo de 15
segundos para abrir la cerradura, en caso de no hacerlo, debe de activarse la alarma.
OB100
E0.0

Z1

SZ
C#3

FC8
E124.0

Z1
CMP==I

1
MW0

IN1

1234

IN2

A124.0

A124.0

T1

SE

S5T#5S
T1
3

MOVE
EN

ENO

0 IN

E124.0
4

A124.0

OUT MW0

M2.0

Z1
CMP<>I

P
MW0

IN1

1234

IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

ZR

Fecha: 05/02/06 Pgina: 24/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E124.0

Z1
CMP==I

5
MW0

IN1

9999

IN2

SZ
SZ
C#3

A124.0

Z1

M255.3

A124.7

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 25/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

E9.1. SELECCIN DE DOS TIPOS DE FUNCIONAMIENTO.

Se trata de programar en dos bloques de programa diferentes el mismo circuito pero con funcionamiento
diferente,
FC 1 : Circuito de un Paro-Marcha con prioridad del pulsador de paro.
FB 1 : Circuito de un Paro-Marcha con prioridad del pulsador de marcha.
Y desde el OB1 dependiendo del estado de la entrada E124.0, deber funcionar un tipo u otro de
funcionamiento.

Una posible solucin seria:

OB1

FC1

FB1

UN E124.0
CC FC1

U E125.0
U(
O E125.1
O A124.0
)
UN E125.2
= A124.0

U E125.1
O(
U E125.0
U A124.0
)
UN E125.2
= A124.0

U E124.0
CC FB1

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 26/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

E10.1. OPERACIONES LOGICAS ENTRE PALABRAS O DOBLES PALABRAS.


-Operacin serie entre palabras WAND_W.
La funcin WAND__W coge los 16 bits de IN1 y los 16 bits de IN2, realiza la operacin serie (bit a bit) de
los bits de la misma posicin (dentro de su palabra) y el resultado lo enva a OUT.

E124.0=1

IN1

10 1 1 1 0 0 1 1 1 0 0 1 0 1 0

MW0

SERIE
IN2

1101110010110111 MW2
RESULTADO

OUT

1001100010000010

MW4

FC9
E124.0
1

WAND_W
EN

MW0

ENO

IN1
OUT

MW2

MW4

IN2

-Operacin paralelo entre palabras WOR_W.


La funcin WOR__W coge los 16 bits de IN1 y los 16 bits de IN2, realiza la operacin paralelo (bit a bit) de
los bits de la misma posicin (dentro de su palabra) y el resultado lo enva a OUT.

E124.1=1

IN1

10 1 1 1 0 0 1 1 1 0 0 1 0 1 0

MW0

PARALELO
IN2

1101110010110111

MW2

RESULTADO
OUT

1111110111111111

E124.1
2

WOR_W
EN

MW0

ENO

IN1
OUT

MW2

MW4

MW4

IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 27/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

-Operacin OR exclusiva entre palabras WXOR_W.


La funcin WXOR__W coge los 16 bits de IN1 y los 16 bits de IN2, realiza la operacin OR exclusiva (bit a
bit) de los bits de la misma posicin (dentro de su palabra) y el resultado lo enva a OUT . (tendr un 1
cuando los bits de IN1 e IN2 sean diferentes).

E124.2=1

IN1

10 1 1 1 0 0 1 1 1 0 0 1 0 1 0

MW0

OR EXCLUSIVA
IN2

1101110010110111

MW2

RESULTADO
OUT

0110 0 10101111101

E124.2
3

WXOR_W
EN

MW0

ENO

IN1
OUT

MW2

MW4

MW4

IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 28/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E10.2. PROGRAMACIN DE UN TEMPORIZADOR CON PRESELECCIN VARIABLE. BASE DE


TIEMPOS FIJA.
-Tendramos un terminal de operador o un SCADA donde pondramos el valor al MW0. Cuando accionemos
el E124.4, el temporizador se activara con MW10 como valor de preseleccin (segundos).
-Para lograr esto, primero deberemos de hacer un filtro para que los bits 12 a 15 no afecten a la base de
tiempos del temporizador y despus haremos una funcin paralelo para poner la base de tiempos.
El registro MW10 debe estar en BCD. En caso de no estar, el PLC se va a STOP.
Nota: Si enviamos al PLC el OB121(Detecta errores de programacin) aunque sea vaco y hay un error, el
PLC no se ira a STOP aunque indicara con el leed SF que hay un error.
FC10
E124.4
1

WAND_W
EN

MW10

WOR_W

ENO

IN1

MW0
OUT

W#16#0FFF

EN

IN2

T2
S_EVERZ

E124.4
2

MW0

TW

MW0
IN2

A124.2
Q

DUAL

DEZ

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IN1

MW0
W#16#2000

ENO

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 29/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E10.3. OPERACIONES ARTIMETICAS CON NMEROS ENTEROS (COMA FIJA).


- (Segmento 1)Suma de nmeros enteros: ADD_I suma los registros que tenga en IN1 e IN2 y enva el
resultado a OUT. (OUT= IN1+IN2).
- (Segmento 2)Resta de nmeros enteros: SUB_I resta los registros que tenga en IN1 e IN2 y enva el
resultado a OUT. (OUT= IN1-IN2).
- (Segmento 3)Multiplicacin de nmeros enteros: MUL_I multiplica los registros que tenga en IN1 e IN2 y
enva el resultado a OUT. (OUT= IN1*IN2).
- (Segmento 4)Divisin de nmeros enteros: DIV_I divide los registros que tenga en IN1 e IN2 y enva el
resultado a OUT. (OUT= IN1/IN2).
-La funcin MOD, recupera el resto de esa divisin (solo en dobles palabras).
-En cualquier de estas cuatro operaciones, el resultado ha de estar comprendido dentro de los limites de los
nmeros enteros.
En caso de no ser as:
-Se activa el bit de estado OV (desbordamiento).
-El resultado obtenido en OUT NO ser valido.
-En ENO tendr un 0.
Lmites nmero enteros de 16 bits
:
-32768 a +32767
Lmites de nmeros enteros de 32 bits : -2147483648 a +2147483647
La diferencia entre el OV (bit de desbordamiento) y el OS (bit de desbordamiento memorizado) es que el
segundo mantiene el valor durante todo el scan (aunque en otras operaciones no hubiera desbordamiento,
indicara que lo hay) en cambio el OV se actualiza en cada operacin.
FC11
E124.0
1

ADD_I
EN

ENO

MW0 IN1

OUT MW4

MW2 IN2
OV

M255.3

E124.1
2

A124.0

SUB_I
EN
MW0 IN1

ENO
OUT MW4

MW2 IN2
OV

M255.3

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

A124.1

Fecha: 05/02/06 Pgina: 30/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E124.2
3

MUL_I
EN

ENO

MW0 IN1

OUT MW4

MW2 IN2
OV

M255.3

E124.3
4

A124.2

DIV_I
EN
MW0 IN1

ENO
OUT MW4

MW2 IN2
OV

M255.3

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

A124.3

Fecha: 05/02/06 Pgina: 31/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E10.4. CREACIN DE UN CONTADOR REVERSIBLE CON PRESELECCIN.


-La creacin de este contador con preseleccin tiene algunas ventajas respecto al contador normal.
-Con un contador normal (Z1) puedo contar como mximo hasta el valor 999, mientras con este puedo
contar hasta 32767 o si en lugar de trabajar con una palabra (MW0) trabajo con una doble palabra puedo
llegar al valor de 2147483647.
-Su valor es ms fcil de leer en un sistema SCADA ya que tendremos el valor directamente en decimal.
-Si le pongo como preseleccin una variable, esta tambin podr ser un nmero binario y podr poner su
valor directamente en decimal.
-El registro que recibe el incremento puede ser una palabra de un DB (bloque de datos), con lo cual siempre
tendr memoria.
Funcionamiento:
1 Segmento, cada vez que accionemos el E124.0 incrementara en 1 el valor del MW0
2 Segmento, cada vez que accionemos el E124.1 decrementara en 1 el valor del MW0
3 Segmento, cuando accionemos el E124.2, el valor del MW0 se pone a 0.
4 Segmento, cuando el valor de MW0 sea igual o superior a 10, se activara la salida A124.4
-Una vez probado, cambiar el valor 10 por el registro MW10 y comprobar que el valor que ponga en MW10
ser a partir de ese momento la preseleccin de ese contador.
Ejercicios:
-Crear un programa en el que incrementando el valor de un registro sea limitado entre los valores 0 y 10
(despus del 10 seguir el 0)
-Crear un programa en el que incrementando y decrementando el valor de un registro sea limitado entre los
valores 4 y 10. Cargar el OB100 el valor de 4 (para iniciar).
FC12
E124.0

M2.0
ADD_I

MW0

ENO

IN1
OUT

E124.1

MW0

IN2

M2.1
SUB_I

MW0

ENO

IN1
OUT

E124.2

MW0

IN2

MOVE

EN

ENO

0 IN

OUT MW0
A124.4
CMP>=I

4
MW0

IN1

10

IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 32/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E10.5. CREACIN DE UN CONTADOR DE TIEMPOS.


-Mediante un generador de impulsos y una operacin incremento hemos creado un contador de tiempos.
-El MW0 contara los segundos y el MW2 contara las horas de funcionamiento de un motor (A124.0).
-Si incluimos un comparador, conseguiremos que cuando el motor lleve por ejemplo 5000 horas nos indique
que le debemos hacer un mantenimiento preventivo.

FC13
E124.0

A124.0

E124.1

A124.0

2
A124.0

M255.5

M10.0
ADD_I

MW0

ENO

IN1
OUT MW0

IN2

CMP==I

ADD_:I

MOVE

ENO
IN

MW0

IN1

MW2

ENO

IN1
OUT MW2

3600

IN2

E124.2
5

IN2

0 IN

OUT MW0

MOVE
EN

ENO

0 IN

OUT MW0

MOVE
EN

ENO

0 IN

OUT MW2

M255.5

A124.7

CMP > I

6
MW2

IN1

5000

IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 33/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

Para probar el ejercicio, cambiar:


-En IN2 del comparador del segmento 4, poner 6.
-En IN2 del comparador del segmento 6, poner 10.
En este caso, la salida A124.7 se activara cuando el motor lleve 60 segundos de funcionamiento y no 5000
horas.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 34/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E10.6. OPERACIONES ARTIMETICAS CON NMEROS EN COMA FLOTANTE.


- (Segmento 1)Suma de nmeros reales: ADD_R suma los registros que tenga en IN1 e IN2 y enva el
resultado a OUT. (OUT= IN1+IN2).
- (Segmento 2)Resta de nmeros reales: SUB_R resta los registros que tenga en IN1 e IN2 y enva el
resultado a OUT. (OUT= IN1-IN2).
- (Segmento 3)Multiplicacin de nmeros reales: MUL_R multiplica los registros que tenga en IN1 e IN2 y
enva el resultado a OUT. (OUT= IN1*IN2).
- (Segmento 4) Divisin de nmeros reales: DIV_R divide los registros que tenga en IN1 e IN2 y enva el
resultado a OUT. (OUT= IN1/IN2).
- (Segmento 5)Raz cuadrada: SQRT realiza la raz cuadrada de IN y enva el resultado a OUT.
- (Segmento 6)Elevar al cuadrado: SQR eleva al cuadrado el valor que hay en IN y enva el resultado a
OUT.
- (Segmento 7)Valor absoluto de un nmero: ABS toma el valor de IN (sea positivo o negativo) y lo enva a
OUT siempre con signo positivo.
FC14
E124.0

ADD_R

EN

ENO

MD0 IN1
OUT MD8
MD4 IN2
E124.1

SUB_R

EN

ENO

MD0 IN1
OUT MD8
MD4 IN2
E124.2

MUL_R

EN

ENO

MD0 IN1
OUT MD8
MD4 IN2
E124.3

DIV_R

EN

ENO

MD0 IN1
OUT MD8
MD4 IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 35/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E124.4

SQRT

EN

ENO

MD0 IN

E124.5

OUT MD8

SQR

EN

ENO

MD0 IN

E124.6

OUT MD8

ABS

EN

MD0 IN

ENO

OUT MD8

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 36/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E11.1. DIFERENTES MTODOS DE INCREMENTAR Y DECREMENTAR.

Se trata de realizar un circuito que responda al funcionamiento expresador en la siguiente figura:

Una posible solucin seria:


OB1

FB1

FB2

FB3

U E1.0
UN E1.1
CC FB1

U
E0.0
SPB incr
U E0.1
SPB decr
BEA
incr: L MB20
INC 1
T MB20
BEA
decr: L MB20
DEC 1
T MB20
BE

U
E0.0
FP M0.0
SPB incr
U E0.1
FP M0.1
SPB decr
BEA
incr: L MB20
INC 1
T MB20
BEA
decr: L MB20
DEC 1

U
E0.0
FP M0.0
CC FC1

UN E1.0
U E1.1
CC FB2
U E1.0
U E1.1
CC FB3

FC1
L
INC
T

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

U
FP
CC

E0.1
M0.1
FC2

FC2
MB20
1
MB20

L
MB20
DEC 1
T
MB20

Fecha: 05/02/06 Pgina: 37/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E12.1. CREACIN DE LA PLANTILLA DE UN GENERADOR DE IMPULSOS STANDARD.


-Combinando el funcionamiento de dos temporizadores, conseguimos crear un generador de impulsos que
standard.
-Creamos con ese circuito una plantilla que usaremos cuando nos convenga.
-En el primer segmento del OB1 usamos la plantilla con preselecciones variables. Los tiempos en este caso
los podramos cambiar desde un terminal de operador o un sistema SCADA.
-En el segmento usamos la plantilla con un tiempo fijo de 1 segundo de conexin y 2 segundos de
desconexin.
Para crear la plantilla, debemos de rellenar la tabla de declaracin de variables y definir estas.
Declaracin
In
In
In
In
Out

Nombre
TIEMPO_OFF
TIEMPO_ON
T1
T2
GENERADOR

Tipo
Comentario
S5TIME
S5TIME
TIMER
TIMER
BOOL
FC15

#T2

#T1

SE
#TIEMPO_OFF
#T1

#T2

SE
#TIEMPO_ON
#T1

#GENERADOR

OB1
FC15
1

EN

ENO

MW0 TIEMPO_OFF

GENERA
DOR

M10.0

MW2 TIEMPO_ON
T10 T1
T11 T2

E124.0

M10.0

A124.0

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 38/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

FC15
3

EN

ENO

S5T#2S TIEMPO_OFF

GENERA
DOR

M10.1

S5T#1S TIEMPO_ON
T12 T1
T13 T2

E124.1

M10.1

A124.0

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 39/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E12.2. CREACIN DE UNA PLANTILLA CON NMEROS REALES.


-Queremos hacer una plantilla con la cual podamos calcular el resultado del tanto por ciento de un valor.
Para eso debemos realizar las siguientes operaciones:
Resultado= (Tanto por ciento*valor) / 100
Debemos realizar dos operaciones
1 Auxiliar= Tanto por ciento*valor
2 Resultado= Auxiliar /100
Para crear la plantilla, debemos de rellenar la tabla de declaracin de variables y definir estas.
Declaracin
In
In
Out
In_out
temp

Nombre
Tanto por ciento
Valor
Resultado
Auxiliar

Tipo
REAL
REAL
REAL

Comentario

REAL
FC16

MUL_R
1

EN
#Tanto por ciento

DIV_R

ENO

EN

IN1

#Auxiliar
OUT

#Valor

ENO

IN1

#Auxiliar

OUT

IN2

100.0

#Resultado

IN2

Usaremos la plantilla tantas veces como nos sea necesario


OB1
E124.1
1

FC16
EN

MD0

MD4

ENO

Tanto por
Ciento

FC16
EN

MD20

MD24

ENO

Tanto por
Ciento

Resultado

MD28

Valor

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

MD8

Valor

E124.2
2

Resultado

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 40/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Nota: Proteger la plantilla para que no se pueda abrir (KNOW_HOW_PROTECT)

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 41/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

E13.1. DIRECCIONAMIENTO INDIRECTO DE REGISTROS.


-Mediante el direccionamiento indirecto podemos direccionar diferentes mdulos y registros.
-Para el direccionamiento de OB, temporizadores o contadores el direccionamiento se har mediante el
valor de una palabra.
-Para direccionar el valor de un registro, se har con una doble palabra.
-El MD0 ha de estar en formato puntero y como direccionamos palabras, el ultimo nmero ha de ser
siempre 0 y se expresa P# X. 0 (Donde X indicara el nmero de la palabra a direccionar).
L DBW[MD0]
T MW10
Si MD0 = P#0.0

L DBW 0
T MW 0
Si MD0 = P#2.0
L DBW 2
T MW 0
Si MD0 = P#4.0
L DBW 4
T MW 0
Si MD0 = P#6.0
L DBW 6
T MW 0
Si MD0 = P#8.0
L DBW 8
T MW 0
.........................................................
.........................................................
Si MD0 = P# X.0
L DBW X
T MW 0
Ejercicio 1.
-Queremos que unos datos grabados en 20 palabras del DB1 puedan ser movidas al MW10.
1 Para ello crearemos primero el DB1 con los siguientes valores actuales.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 42/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

2 Crearemos el programa en el FC17


FC17
AUF DB 1
L DBW [MD 0]
T MW 10
3 Transferimos el DB1 y el OB1 al PLC.
4 Crearemos y editaremos la siguiente tabla de variables.
5 Forzaremos valores en MD0 en formato puntero y comprobaremos el resultado en MW10.
Nota: No direccionar un valor superior a 20, ya que el DB solo tiene 20 palabras y por lo tanto al no
encontrar la palabra buscada el PLC se ira a STOP.

Ejercicio 2
-Queremos realizar la suma de dos palabras del DB1 y mover el resultado al MW20.
1 Crearemos el programa en el FC18
FC18
AUF DB 1
L DBW [MD 0]
L DBW [MD 4]
+I
T MW 20
2 Forzaremos valores en MD0 y en MD4 en formato puntero y comprobaremos el resultado en MW20.
Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 43/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E14.1. LECTURA DE DATOS DE UN BLOQUE DE DATOS (DB).


-Tenemos un proceso idntico para realizar tres tipos de mezclas de dos productos.
-En ese proceso, se hace una mezcla de una cantidad de un material con otra cantidad de otro material
durante un tiempo determinado.
-La nica diferencia que existe en el proceso, la cantidad del producto A ( va por tiempo de apertura de una
vlvula), la cantidad del producto B y el tiempo de mezclado de los dos productos.
Al accionar un pulsador se abren las dos electro vlvulas que dan paso a los productos y se pone en
marcha el mezclador. Segn van pasando los tiempos, se cierra la vlvula A, se cierra la vlvula B y se para
el mezclador.
-Pondremos los datos de los tiempos de cada tipo de pieza en un DB diferente.

Mezcla 1

DB1

Tiempo producto A 5 segundos


Tiempo producto B 8 segundos
Tiempo Mezclador 12 segundos

Mezcla 2

DB2

Tiempo producto A 7 segundos


Tiempo producto B 5 segundos
Tiempo Mezclador 10 segundos

Mezcla 3

DB3

Tiempo producto A 8 segundos


Tiempo producto B 8 segundos
Tiempo Mezclador 15 segundos

-Crear el DB1 (Mezcla 1)


Direccin
Nombre
0.0
0.0
Tiempo_P_A
2.0
Tiempo_P_B
4.0
Tiempo_Mezc
=6.0
Ir a Ver
Ir a Edicin

Tipo
STRUCT
S5TIME
S5TIME
S5TIME
END_STRUCT

Valor inicial

Comentario

S5T#5S
S5T#8S
S5T#12S

Tiempo producto A
Tiempo producto B
Tiempo mezclado

Datos
Inicializar bloques de datos (con esto el valor inicial se copiara en el valor actual).

Direccin

Nombre

Tipo

0.0
2.0
4.0

Tiempo_P_A
Tiempo_P_B
Tiempo_Mez

S5TIME
S5TIME
S5TIME

Valor
inicial
S5T#5S
S5T#8S
S5T#12S

Valor
actual
S5T#5S
S5T#8S
S5T#12S

Comentario
Tiempo producto A
Tiempo producto B
Tiempo mezclado

-Repetir el mismo proceso en DB2 (Mezcla 2) y DB3 (Mezcla 3)

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 44/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

FC19
E124.0

PEQU

JMPN

OPN

DB1

PEQU
E124.1

MEDI
JMPN

DB2
4

OPN

MEDI

E124.2

GRAN

JMPN

OPN

DB3

GRAN
E124.0
7

FC20
EN

ENO

E124.1

E124.2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 45/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

FC20
MOVE
1

EN

ENO

DBW0 IN

OUT MW0
MOVE

EN

ENO

DBW2 IN

OUT MW2
MOVE

EN

ENO

DBW4 IN

OUT MW4

OB1
FC19
1

EN

ENO

E124.7

T1
SV

MW0
T2
SV
MW2
T3
SV
MW4

T1

A124.0

T2

A124.1

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 46/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

T3

A124.2

PRODUCTO A

PRODUCTO B

A124.1

A124.0
A124.2

E124.2

E124.1

SELECCIN MEZCLA

E124.0

MARCHA PROCESO

E124.7

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 47/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E14.2. LECTURA DE DATOS DE UN BLOQUE DE DATOS (DB) II. DIRECCIONAMIENTO INDIRECTO


DE UN BLOQUE DE DATOS.
-Realizacin del ejercicio anterior utilizando el direccionamiento indirecto.
Modificar solo el FC19, el resto de mdulos utilizarlos tal como estn.
-En este ejercicio, mediante el E124.0 seleccionaremos el nmero de DB que queremos abrir y al leerse el
FC2 se cargaran los datos de ese DB en MW0, MW2 y MW4.
-Al accionar el E124.7 se pondra en marcha el proceso
Nota: La instruccin AUF en AWL es igual a OPN en KOP.
AUF DB10 (Esto significa Abre el DB10)
-La instruccin que usaremos la programaremos en AWL.
Al utilizar el direccionamiento indirecto para direccionar un DB, deberemos cargar un valor en una palabra
en este caso la MW210
AUF DB [MW 210]
Si MW210=1
AUF DB 1
Si MW210=2
AUF DB 2
Si MW210=3
AUF DB 3
.................................................
.................................................
Si MW210=N
AUF DB N
FC19
E124.0

M10.0

ADD_I

EN
MW210 IN1

ENO
OUT MW210

1 IN2

MOVE
CMP==I

2
MW210

IN1

IN2

EN
1 IN

ENO
OUT MW210

CMP==I

MW210

IN1

IN2

AUF DB [MW 210]

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 48/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

FC 20
4

EN

ENO

NOTA: Si tuviramos el mismo proceso con 20 datos diferentes, crearamos 20 DBs, pondramos esos
datos desde el DB1 al DB20 y en el primer comparador del segmento 2 sustituiramos el valor 4 por el valor
21.
-Razonar que ocurrira si el segmento 3 lo ponemos delante del segmento 2. Cambiarlo y comprobar su
funcionamiento.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 49/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

E15.1. PROGRAMACION DEL RELOJ.


-La hora y fecha, se pueden cambiar en el editor o en el administrador en
Sistema de destino
Diagnostico/configuracin
ajustar la hora . Cuando se pone la fecha y
hora nueva, se valida pulsando Aplicar.
Para trabajar con los datos del reloj, se puede hacer de dos formas:
-Una de ellas es la de trabajar con funciones especiales SFC.
-Otra de las formas, es recuperar los datos del reloj del OB1
Datos del reloj del OB1
Hay un registro temporal en el OB1, el OB1_DATE_TIME donde se carga la fecha y hora actual en la que
se esta ejecutando el OB1 (variable 12.0 y la componen 12 bytes) las variables de lectura son del LB12 al
LB19.
-Si quiero trabajar con el reloj solo en el OB1, puedo trabajar con esas variables temporales. En caso que
quiera trabajar en otro mdulo, tendr que cargar esas variables temporales en unos registros (por ejemplo
en un DB).
Los datos del reloj estn en BCD, por lo tanto deber leerlos en hexadecimal:
LB12
LB13
LB14
LB15
LB16
LB17
LB18
LB19

B#16#02 (Ao)
B#16#11 (Mes)
B#16#23 (Da)
B#16#15 (Hora)
B#16#47 (Minuto)
B#16#34 (Segundos)
B#16#68 (Dcimas y Centsimas)
B#16#11 (Milsimas, da de la semana)

Da de la semana

1
2
3
4
5
6
7

Domingo
Lunes
Martes
Mircoles
Jueves
Viernes
Sbado

Ejercicio 1 :
-En este ejercicio, queremos que a las 5 y 15 de la tarde, se ponga en funcionamiento el riego (A124.0) y
que se pare a las 5 y 17 de la tarde.
-Programar despus el mismo funcionamiento, pero que solo funcione de lunes a viernes.

Direccin
0.0
+0.0
*2.0

Nombre
Reloj

=16.0

Tipo
STRUCT
ARRAY[1..8]
BYTE

Comentario

B#16#0

END_STRUCT

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

DB6
Valor inicial

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 50/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

OB1
Direccin

Declaracin

0.0
1.0
2.0
----12.0

Temp
Temp
Temp
Temp
Temp

Nombre

Tipo

Valor
inicial

----------------------------------------------------------------------------OB1_DATE_TIME

----------------------------------------------------------------------------------------DATE__AND_TIME

MOVE
1

EN

MOVE
ENO

LD12 IN

Comentario

OUT DB6.DBD0

LD16

EN

ENO

IN

OUT DB6.DBD4

FC21
2

EN

ENO

Al realizar este programa en OB1, los datos del reloj estarn en:
DB6.DBB0
(Ao)
DB6.DBB1
(Mes)
DB6.DBB2
(Da)
DB6.DBB3
(Hora)
DB6.DBB4
(Minuto)
DB6.DBB5
(Segundos)
DB6.DBB6
(Dcimas y Centsimas)
DB6.DBB7
(Milsimas, da de la semana)

FC21
L DB6.DBW3
L W#16#1715
==I
S A124.0
L DB6.DBW3
L W#16#1830
==I
R A124.0

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 51/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

-Ejercicio 2
-Queremos que de lunes a viernes una sirena funcione desde la 1 y 30 de la tarde hasta la 1 y 32
Para poder solucionar el ejercicio, debemos filtrar el da de la semana en una palabra o en un byte para
poder realizar comparaciones con el. (En este caso lo hemos puesto en MW0)
FC22
L DB6.DBW6
L W#16#F
UW
T
MW 0
L
MW 0
L B#16# 7
==I
= M10.0
L MW 0
L B#16# 1
==I
= M10.1

L DB6.DBW3
L W#16#1330
==I
S M10.2
L DB6.DBW3
L W#16#1332
==I
R M10.2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

U M10.2
UNM 10.0
UNM10.1
= A124.1

Fecha: 05/02/06 Pgina: 52/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

Ejercicio 3
-Creacin de una plantilla para poder realizar la conexin y desconexin de un elemento entre unas horas
determinadas.
-Desde un terminal de operador o un sistema SCADA podremos programar ese reloj (forzando las MW20 y
MW22) para que la salida funcione cuando que nos interese
Para crear la plantilla, debemos de rellenar la tabla de declaracin de variables y definir estas.

Declaracin
In
In
Out
In_out
temp

FC23
Nombre
Tipo
HORA_INICIO
WORD
HORA_FINAL
WORD
SALIDA
BOOL

Comentario

REAL
L DB6.DBW3
L #HORA_INICIO
== I
S #SALIDA
L DB6.DBW3
L #HORA_FINAL
== I
R #SALIDA
OB1
MOVE

EN

LD12 IN

E124.2
2

OUT DB6.DBD0

IN

OUT DB6.DBD4

HORA_INICIO
A124.0

HORA_FINAL

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

ENO

ENO

SALIDA
MD22

LD16

EN

FC23
EN

MW20

MOVE
ENO

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 53/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E16.1. FUNCION SCALE (ESCALAR UNA ENTRADA ANALOGICA).


-Esta funcin la podemos encontrar en:
Libreras
Standard Library
TI-S7 Converting Blocks

FC105

-La funcin SCALE sirve para escalar el valor de una entrada analgica entre dos valores (mximo y
mnimo). Tambin podramos escalar cualquier otro registro que no sea una entrada analgica.
Parmetros:
EN
Cuando tengamos un 1 se ejecuta la funcin. Si hay un 0, la funcin es saltada (no se
ejecuta).
IN
Valor de entrada (nmero de entrada analgica). Formato entero 16 bits INT.
HI_LIM
Valor mximo deseado de salida (OUT). Nmero REAL, doble palabra o constante.
LOW_LIM
Valor mnimo deseado de salida (OUT). Nmero REAL, doble palabra o constante.
BIPOLAR
Si vale 0 (trabajamos con valores entre 0 y 27648). Entrada analgica de 0 a 10 V.
Si vale 1 (trabajamos con valores entre 27648 y +27648) Entrada analgica de
10V a +10 V.
OUT
Valor de salida escalado entre el valor mximo y mnimo. Formato REAL.
ENO
Vale 0 si el valor de IN es superior o inferior al limite (-27648 o + 27648). En este caso, adems
en OUT sale el valor mximo o el mnimo segn se rebase en positivo o en negativo.
RET_VALUE
Registro de error. Vale W#16#0000 si el escalado se ha hecho correctamente.
Vale W#16#0008 si IN sale de los limites mximo o mnimo.
-En este caso, queremos controlar el valor de temperatura de una sonda que da 0 Voltios a 0C y 10 Voltios
a 100C y queremos tener en MD100 el valor real de esa temperatura.
FC24
FC105
SCALE
1

EN

ENO
RET_
VALUE

PEW752 IN

100.0 HI_LIM

OUT

MW0

MD10

0.0 LO_LIM

E124.0 BIPOLAR

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 54/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

UNIPOLAR

27648

27648

PEW752

PEW752

13824

13824

0
0V
0

5V

0C

10 V

50C

100C

MD10
RESULTADO ESCALADO DE PEW752

PEW752
100
SONDA DE TEMPERATURA
BIPOLAR

-Comprobar el funcionamiento de la funcin cuando activo el E124.0


+27648
Sonda de
temperatura
0 a 100C

PLC

PEW752

0- 10 V
PEW752
PAW12
8

0
0C

50C
MD10

100C

-27648

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 55/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

E16.2. FUNCION UNSCALE (DESESCALAR A UNA SALIDA ANALOGICA).


-Esta funcin la podemos encontrar en:
Libreras
Standard Library
TI-S7 Converting Blocks

FC106

-La funcin UNSCALE sirve para desescalar el valor (mximo y mnimo) de una registro sobre una salida
analgica.. Tambin podramos desescalar cualquier otro registro que no sea una salida analgica.
Parmetros:
EN
Cuando tengamos un 1 se ejecuta la funcin. Si hay un 0, la funcin es saltada.
IN
Valor de entrada .Registro en formato REAL 32 bits.
HI_LIM
Valor mximo deseado del valor de entrada (IN). Nmero REAL, doble palabra o constante
LOW_LIM
Valor mnimo deseado del valor de entrada (IN) . Nmero REAL, doble palabra o constante
BIPOLAR
Si vale 0, daremos valores de salida entre 0 y 27648). Salida analgica de 0 a 10 V
Si vale 1, daremos valores de salida entre 27648 y +27648) .Salida analgica de
10V a +10 V
OUT
Valor de salida escalado . Formato INT 16 bits.
ENO
Vale 0 si el valor de IN es superior al limite inferior o al superior (HI_LIM o LOW_LIMIT). En
este caso, adems en OUT sale el valor mximo o el mnimo segn se rebase en por
encima o por debajo. ( 0 o 27648).
RET_VALUERegistro de error. Vale W#16#0000 si el escalado se ha hecho correctamente.
Vale W#16#0008 si IN sale de los limites mximo o mnimo.
-En este caso, queremos controlar la velocidad de un motor mediante un convertidor de frecuencia.
El variador tiene una consigna de 0- 10 Voltios.
Con 0 voltios, el motor ira a 0 rpm y con 10 voltios, ira a 1500 rpm
Iremos dando un valor a MD100 entre 0 y 1500, ese valor se convertir en un valor en la salida analgica
entre 0 y 27648, que a su vez har que la salida analgica de una seal entre 0 y 10 Voltios..
FC25
FC 106
UNSCALE

EN
MD10 IN

1500.0 HI_LIM

ENO
RET_VALUE

OUT

MW0

PAW752

0.0 LO_LIM

E124.0 BIPOLAR

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 56/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

-Edita la siguiente tabla de estado y fuerza valores en el MD10. ( 0 a 1500)


-Fuerza un valor inferior a 0 o superior a 1500 y comprueba que ocurre en el AW752 y en el MW0

Ejercicio 1 : Aadir a este ejercicio las lneas del ejercicio E2 colocando en los IN de la funcin mover:
0.0, 300.0, 600.0, 900.0, 1200.0 y 1500.0 y en todos los OUT colocar MD10.
El colocar .0 se aade para decirle que ese valor es un nmero real.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 57/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E16.3. CONSIGNA DE MAXIMA Y MINIMA DE UNA ENTRADA ANALOGICA.


-Queremos tener una alarma de mnimo y una de mximo de una temperatura. La temperatura la lee la
entrada analgica PEW752.
-Debe de activarse la alarma de mxima cuando el valor de la temperatura supere los 90C
-Debe de activarse la alarma de mnima cuando el valor de la temperatura este por debajo de 40C.
-El E124.0 es el pulsador de enterado. Al accionarlo se borra la alarma de mnimo y de mximo
-Las alarmas de mnimo o mximo, no volvern a activarse hasta que su valor no suba (mnima) o
baje(mxima) del valor de la consigna y se den de nuevo las condiciones de activacin de las alarmas.
-Para poder colocar las consignas de mxima y mnima, debo hacer una regla de tres y as deduzco que:
Tendr 90C cuando el valor en PEW752 sea de 24883.
Tendr 40C cuando el valor en PEW752 sea de 11059.
FC26
CMP>I

1
PEW752

IN1

24883

IN2
CMP<I

2
PEW752

IN1

11059

IN2

E124.0

M1.0

A124.0

M1.1

A124.1

A124.0

A124.1

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 58/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E16.4. CONSIGNA DE MAXIMA Y MINIMA DE UNA ENTRADA ANALOGICA (II).


-Queremos tener una alarma de mnimo y una de mximo de una temperatura. La temperatura la lee la
entrada analgica PEW752.
-Debe de activarse la alarma de mxima cuando el valor de la temperatura supere los 90C.
-Debe de activarse la alarma de mnima cuando el valor de la temperatura este por debajo de 40C.
-El E124.0 es el pulsador de enterado. Al accionarlo se borra la alarma de mnimo y de mximo -Las
alarmas de mnimo o mximo, no volvern a activarse hasta que su valor no suba (mnima) o baje(mxima)
del valor de la consigna y se den de nuevo las condiciones de activacin de las alarmas.
-En este caso, utilizando la funcin SCALE, ya tengo en MD10 en formato REAL el valor de la temperatura
que lee el PEW752, con lo cual puedo realizar la comparacin de forma directa.
-Si en lugar de poner las constantes 90.0 y 40.0 ponemos dos registros en formato Real, desde un terminal
de operador o desde un sistema Scada podramos cambiar los valor de consigna con solo forzar los valores
que nos interesen a MD20 (consigna de mxima) y MD30 (Consigna de mnima).

FC27
SCALE
1

EN

ENO

PEW752 IN

RET_VALUE

100.0 HI_LIM

OUT

MW0

MD10

0.0 LO_LIM

E0.0 BIPOLAR

CMP>R

2
MD10

IN1

MD20

IN2
CMP<R

3
MD10

IN1

MD30

IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

M2.0

A124.0

M2.1

A124.1

Fecha: 05/02/06 Pgina: 59/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

NOTA: Cuando pongamos una constante en formato REAL, aunque la constante no tenga decimales como
en nuestro caso, tenemos que poner 40.0 si solo ponemos 40 el entiende que es un nmero entero y no
tiene cabida en una funcin de nmeros reales.

E124.0

A124.0

A124.1

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 60/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E17.1. GRABACIN DE UNA TABLA EN UN BLOQUES DE DATOS (DB). FUNCIN ATT.


Crear un mdulo de datos:
Ir al administrador
Insertar nuevo objeto

Bloque de datos

Poner nombre (DB10)

Editar el DB10:
-Queremos tener un bloque de datos de 12 palabras en formato INT (nmeros enteros).
-Queremos que el valor que tenga la primera palabra de datos sea 10
DB10
Direccin

Nombre

0.0
+0.0
*2.0

Temperatura

=24.0

Tipo
STRUCT
ARRAY[1..12]
INT

0.0
2.0
4.0
6.0
8.0
10.0
12.0
14.0
16.0
18.0
20.0
22.0

Comentario

END_STRUCT

Ir a Ver
Datos
Ir a Edicin
Inicializar bloques de datos
Direccin

Valor inicial

poner valor 10 en valor actual de la palabra 0.0

Nombre

Tipo

Valor inicial

Temperatura[1]
Temperatura[2]
Temperatura[3]
Temperatura[4]
Temperatura[5]
Temperatura[6]
Temperatura[7]
Temperatura[8]
Temperatura[9]
Temperatura[10]
Temperatura[11]
Temperatura[12]

INT
INT
INT
INT
INT
INT
INT
INT
INT
INT
INT
INT

0
0
0
0
0
0
0
0
0
0
0
0

Valor
actual
10
0
0
0
0
0
0
0
0
0
0
0

-La funcin ATT la encontraremos en:


-Libreras
Standard library
TI-S7 Converting Blocks

Salvar

Comentario

FC84

-Funcionamiento:
En DATA, indicamos el dato que queremos grabar.
En TABLE, indicamos cual ser el primer registro de esa tabla.
En ese primer registro, (ponindole un valor) indicaremos el nmero de registros que podr grabar esa
tabla.
En el segundo registro, se nos ira indicando el nmero de registros llenos (cada vez que grabemos un
valor en la tabla, ese registro incrementara en 1 su valor.
-Cuando en la entrada EN tenga un 1, se grabara un dato en la tabla (si no pusiramos flanco, en este caso
en 10 scanes quedara la tabla llena).
-Cuando el primer y el segundo registro de la tabla sean iguales (la tabla estar llena), ya no se grabara
ningn registro ms.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 61/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

Nmero de registros de la tabla

DB10
DBW0
DBW2
DBW4
DBW6
DBW8
DBW10
DBW12
DBW14
DBW16
DBW18
DBW20
DBW22

10
2
2378
3512
0
0
0
0
0
0
0
0

Nmero de registros grabados

Primer registro grabado

-Cada vez que accione el E124.0, el valor que tenga en ese momento la entrada analgica PEW752 ira al
primer registro libre de la tabla.
-Cuando la tabla este llena (DBW0 ser igual a DBW2), funcionara de forma intermitente la salida A125.0
FC28
E124.0

M0.0

ATT

EN

ENO

PEW752 DATA

DB10.DBW0 TABLE
M255.4

A125.0

CMP==I

2
DB10.DBW0

IN1

DB10..DBW2

IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 62/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E17.2. LECTURA DE DATOS GRABADOS EN UNA TABLA. FUNCION LIFO.


-La funcin LIFO la encontraremos en:
-Libreras Standard Library
TI-S7 Converting Blocks

FC87

-Funcionamiento:
En TABLE, indicamos cual ser el primer registro de esa tabla.
En RET_VALUE se nos cargara el valor que recuperemos de la tabla.
El valor del segundo registro de la tabla, nos apuntara al registro que recuperaremos al ejecutar la
instruccin y al ejecutarla adems ese valor ser decrementado en 1.
La instruccin LIFO igual que la ATT debe ir siempre con flanco, en nuestro caso, en caso de no hacerlo
en 10 scanes nos enviara los 10 valores de la tabla a RET_VALUE quedando solo el primer valor
grabado.
FC29
E124.0

M0.0

ATT

EN

ENO

PEW752 DATA

DB10.DBW0 TABLE
M255.4

A125.0

CMP==I

2
DB10.DBW0

IN1

DB10..DBW2

IN2

E124.1
3

M0.1

LIFO
EN

DB10.DBW0 TABLE

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

ENO

RET_VALUE MW10

Fecha: 05/02/06 Pgina: 63/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E17.3. GRABACIN DE UNA TABLA DE DATOS (II). SOBREESCRIBIR DATOS.


-En este ejercicio, podemos comprobar que cuando la tabla esta llena de datos, sobrescribimos de nuevo la
tabla.
-Despus de grabar el registro 10, empezara a sobrescribir el 1, despus el dos, etc.
-Con esto conseguiramos tener siempre grabados los diez ltimos datos.

FC30
E124.0

M0.0

ATT

EN

ENO

PEW752 DATA

DB10.DBW0 TABLE
MOVE
CMP==I

2
DB10.DBW0

EN

IN1
0 IN

DB10..DBW2

OUT DB10.DBW2

IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

ENO

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 64/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E17.4. GRABACIN DE UNA TABLA DE DATOS (III). BORRADO DE DATOS. FUNCION FILL.
-En este ejercicio, podemos comprobar como borramos todos los datos de una tabla.
- (Segmento 2 y 3)Al accionar el pulsador E124.1, cargamos el valor 0 en DBW2 y durante 10 scanes
escribimos el valor 0 en todos los registros de la tabla. (DBW2 quedara con valor 10).
- (Segmento 4) Al soltar el pulsador E124.1 pondremos a DBW2 al valor 0, con lo cual la tabla quedara
preparada para poder grabar nuevos datos.
A) Creacin de un programa para borrar los datos
FC31
E124.0

M0.0

ATT

EN

ENO

PEW752 DATA

DB10.DBW0 TABLE

E124.1

M0.1

MOVE

EN

ENO

0 IN

OUT DB10.DBW2

E124.1

ATT

EN

ENO

W#16#0000 DATA

DB10.DBW0 TABLE

E124.1

M0.2

MOVE

EN

ENO

0 IN

OUT DB10.DBW2

B) Uso de una funcin de sistema para borrar la tabla.


-Borra los segmentos 2, 3 y 4 y aade el siguiente:
-La funcin de sistema FILL (SFC21) la encontrareis en Libreras
Standard Library
System Funtion
-Es una funcin que NO podremos transferirla (ni hace falta)porque al ser de sistema ya esta incluida en la
CPU.
E124.7
2

MOVE
EN

FILL
ENO

EN

ENO

MW20 BVAL RET_VAL


0 IN

MW30

OUT MW20
BLK P#DB10.DBW4 WORD 10

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 65/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E17.5. GUARDAR DATOS DEL RELOJ Y DE UNA ENTRADA ANALOGICA.


-Queremos guardar el valor de una entrada analgica y al mismo tiempo que nos quede registrado de forma
paralela a que hora y minuto se ha grabado ese dato.
-Para ello primero utilizaremos el DB6 (tenemos en el los datos del reloj) el DB10 ya usado anteriormente y
adems debemos crear un DB11 donde grabar los datos del reloj.

DB11
Direccin

Nombre

0.0
+0.0
*2.0

Hora y minuto

=22.0

Tipo
STRUCT
ARRAY[1..12]
WORD

Valor inicial

Comentario

W#16#0

END_STRUCT

En el primer registro de la tabla, debemos indicar el nmero de registros que queremos grabar. En nuestro
caso son 10 por lo tanto como el formato del registro esta en hexadecimal deberemos colocar W#16#A.
Ir a Ver

Datos.

Ir a Edicin
palabra 0.0

Direccin
0.0
2.0
4.0
6.0
8.0
10.0
12.0
14.0
16.0
18.0
20.0
22.0

Inicializar bloques de datos


Salvar

Nombre

Tipo

Hora y minuto[1]
Hora y minuto[2]
Hora y minuto[3]
Hora y minuto[4]
Hora y minuto[5}
Hora y minuto[6]
Hora y minuto[7]
Hora y minuto[8]
Hora y minuto[9]
Hora y minuto[10]
Hora y minuto[11]
Hora y minuto[12]

WORD
WORD
WORD
WORD
WORD
WORD
WORD
WORD
WORD
WORD
WORD
WORD

Valor inicial
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

poner valor W#16#000A en valor actual de la

Valor
actual
W#16#A
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0
W#16#0

Comentario

Fecha: 05/02/06 Pgina: 66/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

-Para salvar la hora y minuto deberemos trabajar con DBW3 (DBB3 es la hora y DBB4 son los minutos)
-En nuestro caso para ser mas operativos y poder ver antes los resultados usaremos DBW4 (DBB4 son los
minutos y DBB5 son los segundos)
FC32
E124.0

M0.0

ATT

EN

ENO

PEW752 DATA

DB10.DBW0 TABLE

ATT
EN

ENO

DB6.DBW4 DATA

DB11.DBW0 TABLE

M255.4

A125.0

CMP==I

2
DB10.DBW0

IN1

DB10..DBW2

IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 67/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E18.1. EXPULSION DE BOTELLAS DEFECTUOSAS.

Se trata de extraer las botellas defectuosas de un proceso de colocacin de etiquetas, por motivos de
contruccin no es posible colocar el dispositivo extractor y la derivaci de la cinta transportadora en el lugar
de la deteccin de la etiqueta, es por ello que se deber registrar la botella defectuosa y despus de haber
contabilizado la segunda botella despus de la detectada como defectuosa, realizar la extraccin de la
misma mediante la actuacin de un cilindro.

ENTRADAS.

SALIDAS.

E124.0: Pulsador de Paro.


E124.1: Pulsador de Marcha.
E124.2: Detector de etiqueta.
E124.3: Detector de botella.
E124.4: Detector cilindro a -.
E124.5: Detector cilindro a +.

A124.0: Activacin cilindro a +.


A124.1: Activacin cilindro a -.

Dispositivo para
colocar etiqueta
a las botellas

Detector_Etiqueta
[E124.2]

E124.4

Detector_Botella
[E124.3]

E124.5

Botellas defectuosas

Botellas correctas

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 68/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 69/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E19.1. PROGRAMACIN DEL OB10.


El OB10, permite interrumpir el OB 1 y ejecutarse en una fecha determinada o a diferentes intervalos a
partir de una fecha determinada.
Se puede programar para que se ejecute en los siguientes intervalos:
Una vez: Se ejecutara solo una vez en el momento especificado.
Cada minuto
: Se ejecutara 1 vez cada minuto a partir del momento especificado.
Cada hora
: Se ejecutara 1 vez cada hora a partir del momento especificado.
Cada da
: Se ejecutara una vez al da a partir del momento especificado
Cada mes
: Se ejecutara una vez al mes a partir del momento especificado.
Cada ao
: Se ejecutara una vez al ao a partir del momento especificado
Al final de mes : Se ejecutara una vez al final del mes a partir del momento especificado.

Tenemos dos formas de programarlo:


Primera forma:
1 Ir al Administrador
Hardware (Picar dos veces sobre el)
Picar dos veces sobre CPU
Seleccionar la pestaa Alarmas horarias
En periodicidad seleccionar cada cuanto tiempo queremos
que acte (1 minuto)
En fecha y hora poner a partir de que momento queremos que empiece ( fecha
23.10.02, hora 12:54)
Compilar y transferir el Hardware a la CPU.
2 Programar el OB10. (Realizar el programa que viene a continuacin).
ADD_I
1

EN
MW10 IN1

ENO
OUT MW10

1 IN2

Probar el ejercicio transfiriendo el OB10 y en la tabla de estado visualizar el valor de MW10 en decimal.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 70/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

Segunda forma:
1 Mediante la funcin FC3 (D_TOD_DT) de Libreras de Standard Library de IEC Function Blocks
pasamos la fecha y hora a la que queremos que empiece el OB10 a la variable temporal hora empezar
(definirla en el OB1 con formato de DATE_AND_TIME)
2 Mediante la funcin SFC28 (SET_TINT) de Libreras de Standard Library de System Function Blocks,
indicamos cual es el OB con el que queremos trabajar(OB_NR), a que hora queremos que empiece (SDT) y
cual va a ser su peridiocidad (PERIOD) y donde va el cdigo de error (RET_VAL)
PERIOD W#16#0000 = una vez
W#16#0201 = cada minuto
W#16#0401 = cada hora
W#16#1001 = diaria
W#16#1201 = semanal
W#16#1401 = mensual
W#16#1801 = anual
W#16#2001 = al final del mes
3 Mediante la funcin SFC30 (ACT_TINT) de Libreras de Standard Library de System Function Blocks,
activamos o desactivamos la ejecucin del OB10.
OB1
D_TOD_DT
EN

ENO

D#2002-10-21 IN1

RET_VAL #hora empezar

TOD#15:23:45.0 IN2
SET_TINT
EN

ENO

10 OB_NR

RET_VAL

MW0

#hora empezar SDT


W#16#201 PERIOD

E124.0

ACT_TINT
EN

ENO

10 OB_NR

RET_VAL MW2

4 Programar el OB10. (Realizar el programa que viene a continuacin).


ADD_I
EN
MW10 IN1

ENO
OUT MW10

1 IN2

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 71/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E19.2. PROGRAMACIN DEL OB20.

El OB20, permite interrumpir el OB 1 y ejecutarse despus de un tiempo de demora determinado.


El OB20 arranca despus de una llamada al SFC32 .
El SFC32 lo podemos encontrar en Libreras
Standard Library
System Funtion Blocks

Parmetros del SFC32


OB_NR
Nmero del OB que arrancara con retardo.
DTIME
Duracin del retardo (1 a 60000 ms)
SIGN
Identificador que se pone en la informacin de arranque del OB cuando se llama al OB de
retardo.
RET_VALUE Contiene el cdigo del error si se produjera uno mientras se procesa el OB.
OB1
E124.0

M20.0

SRT_D_INT
EN
20 OB_NR

ENO
RET_VAL MW0

T#2S DTIME
W#16#1 SIGN
E124.1

A124.0

R
OB20
SET
= A124.0

Enviar el OB1 y el OB20 al PLC y comprobar el funcionamiento.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 72/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E19.3. PROGRAMACIN DEL OB35.

El OB35, permite interrumpir la ejecucin del OB1 a intervalos fijos y ser ejecutado.
El intervalo de tiempo es respecto al momento que la CPU se pone en RUN.
Hay que asegurarse que el tiempo de ejecucin del programa del OB35 es menor que el tiempo de
intervalo programado como repeticin de la ejecucin del OB35.

Configuracin del OB35:


1 Ir al Administrador
Hardware (Picar dos veces sobre el)
Picar dos veces sobre CPU
Seleccionar la pestaa Alarmas cclicas
En periodicidad seleccionar cada cuanto tiempo queremos
que acte (1 a 60000 ms), poner 125 ms
Compilar y transferir el Hardware a la CPU.
OB35
ADD_I
EN

ENO

MW10 IN1

OUT MW10

1 IN2
CMP==I

MOVE
EN

ENO

MW10 IN1
0 IN

OUT MW10

256 IN2

Comprobar que con los bits 0 al 7 de MW10, hemos creado generadores de impulsos (MB11).
Si el tiempo de ejecucin del OB35 es de 125 ms.

El M11.0 ser un generador de 025 S


El M11.1 ser un generador de 05 S
El M11.2 ser un generador de 1 S
El M11.3 ser un generador de 2 S
El M11.4 ser un generador de 4 S
El M11.5 ser un generador de 8 S
El M11.6 ser un generador de 16 S
El M11.7 ser un generador de 32 S

-Transferir el OB35 y en la tabla de estado visualizar el valor de MW10 en Binario.

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 73/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E19.4. PROGRAMACIN DEL OB121.


-El sistema operativo de la CPU llama al OB 121 cuando aparece un error durante la ejecucin del
programa.
-Cuando se produzca un error si en el autmata no esta programado el OB121, el PLC se pone en STOP y
se ilumina el led SF
-Cuando se produzca un error si en el autmata esta programado el OB121, el PLC sigue en RUN y se
ilumina el led SF.
Ejemplos: -Dentro del programa se llama a un bloque que no fue cargado en la CPU
-Se numera una entrada o una salida que no existe.
-Se numera un temporizador o contador inexistente.
-Error en llamada a DB o DB inexistente.
-Llamada a un FC no cargado.
Hay dos formas de localizar los errores:
-Una es utilizando las variables temporales del OB121 y descifrando lo que quieren decir los valores escritos
en ellos.
-Otra forma es la de usar la informacin del mdulo (descrita en segundo lugar).
A) Primera forma de chequear errores de programacin.
OB121
MOVE
EN

ENO

#OB121_SW_FLT IN

OUT MB200
MOVE

EN

ENO

#OB121_FLT_REG IN

OUT MW202
MOVE

EN

ENO

#OB121_BLK_TYPE IN

OUT MB204
MOVE

EN

#OB121_BLK_NUM IN

ENO

OUT MW205

OB121_SW_FLT
B#16#21 Error de conversin BCD
B#16#22 Infraccin de rea en la lectura
B#16#23 Infraccin de rea en la escritura
B#16#28 Acceso de lectura a un registro con un puntero cuyo direccin binaria es diferente a 0
Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 74/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

B#16#29 Acceso de escritura a un registro con un puntero cuyo direccin binaria es diferente a 0
B#16#24 Error en rea de lectura
B#16#25 Error en rea de escritura
B#16#26 Error en direccin de temporizador
B#16#27 Error en direccin de contador
B#16#30 Acceso a un DB global protegido contra escritura
B#16#31 Acceso a un DB de instancia protegido contra escritura
B#16#32 Error de nmero de DB en el acceso a un DB global
B#16#33 Error de nmero de DB en el acceso a un DB de instancia
B#16#34 Error de nmero de FC en la llamada a FC
B#16#3A Acceso a un DB no cargado, el nmero de DB esta dentro del rea admisible
B#16#3C Acceso a un FC no cargado, el nmero de FC esta dentro del rea admisible
B#16#3D Acceso a un SFC no cargado, el nmero de SFC esta dentro del rea admisible
B#16#3E Acceso a un FB no cargado, el nmero de FB esta dentro del rea admisible
B#16#3F Acceso a un SFB no cargado, el nmero de SFB esta dentro del rea admisible
OB121_FLT_REG
En la mayora de los casos indica el nmero de registro afectado (decimal).
OB121_BLK_TYPE
Tipo de bloque en el que ha aparecido el error (en S7300 no se consigna aqu un valor vigente):
B#16#88: OB
B#16#8A: DB
B#16#8C: FC
B#16#8E: FB
OB121_BLK_NUM (decimal)
Nmero del bloque donde ha aparecido el error
NOTA:-Transferir todos los mdulos a excepcin del FC34, e ir localizando los errores de
programacin realizados.
OB1
E124.0

MOVE
EN

ENO

DB1.DBW10 IN

OUT MW6
DB2
FB 80

E124.1
EN

E124.2

ENO

FC 34
EN

ENO

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 75/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Electricitat/Electrnica

E124.3

FC 100
EN

ENO

FC34
E124.5

T1230

SA
T12

A124.1

FC100

E124.7

A1240.6

E124.6

A124.7

Direccin
0.0
0.0
2.0
4.0
=6.0

Nombre

Tipo
STRUCT
Primer_valor
WORD
Segundo_valor WORD
Tercer_valor
WORD
END_STRUCT

Direccin
0.0
0.0
2.0
4.0
=6.0

Nombre

Tipo
STRUCT
Valor_tiempo_1 WORD
Valor_tiempo_2 WORD
Valor_tiempo_3 WORD
END_STRUCT

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

DB1
Valor inicial

Comentario

W#16#0
W#16#0
W#16#0

DB2
Valor inicial

Comentario

W#16#0
W#16#0
W#16#0

Fecha: 05/02/06 Pgina: 76/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

B) Chequeo de los errores en el bfer de diagnstico.. Se har en el editor AWL/FUP/KOP


1 Seleccionar Sistema
de destino

2 Clicar sobre
Informacin del
mdulo

3 Clicar sobre
bfer de
diagnstico

4 En esta casilla
me saldr
informacin sobre
el error

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 77/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

-Activar la entrada E124.3 y comprobar en la tabla de variables los valores que me darn los datos del error
ocurrido.
Infraccin del
rea al escribir.
Nmero errneo
Tipo del mdulo
donde est el error
(FC)
Nmero del mdulo
donde est el error
(100)

-Ir a la informacin del mdulo y comprobar el error ocurrido .

Error ocurrido

Descripcin del error

Clicar y se abrir el
bloque y el segmento
donde esta el error

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 78/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

Localizacin del error

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 79/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

-Activar la entrada E124.0 y comprobar en la tabla de variables los valores que me darn los datos del error
ocurrido.

Infraccin del
rea al leer.
Numero errneo
Tipo del mdulo
donde esta el error
(OB)
Nmero del mdulo
donde est el error
(1)

-Ir a la informacin del mdulo y comprobar el error ocurrido .

Error ocurrido

Descripcin del error

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 80/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

-Activar la entrada E124.1 y comprobar en la tabla de variables los valores que me darn los datos del error
ocurrido.
Acceso a un DB
no cargado
Nmero del DB
Tipo del mdulo
donde est el error
(OB)
Nmero del mdulo
donde est el error
(1)

-Ir a la informacin del mdulo y comprobar el error ocurrido .

Error ocurrido

Descripcin del error

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 81/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

-Activar la entrada E124.2 y comprobar en la tabla de variables los valores que me darn los datos del error
ocurrido.
Acceso a un FC
no cargado.
Nmero FC
Tipo del mdulo
donde est el error
(OB)
Nmero del mdulo
donde est el error
(1)

-Ir a la informacin del mdulo y comprobar el error ocurrido .

Error ocurrido

Descripcin del error

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 82/84


Fichero: Instrucciones avanzadas
Versin: 2.2

Departament dEducaci

Electricitat/Electrnica

PROGRAMACIN AVANZADA CON EL


PLC S7-300

-Transferir el FC34 al PLC y activar de nuevo la entrada E124.2 y comprobar en la tabla de variables los
valores que me darn los datos del error ocurrido.
Error en direccin
de un temporizador
Nmero errneo.
Tipo del mdulo
donde est el error
(FC)
Nmero del mdulo
donde est el error
(34)

-Ir a la informacin del mdulo y comprobar el error ocurrido .

Error ocurrido

Descripcin del error

Realizado por:

Ramon L. Yuste Yuste


Luis Martinez Novoa

IES SEP COMTE DE RIUS

Fecha: 05/02/06 Pgina: 83/84


Fichero: Instrucciones avanzadas
Versin: 2.2

También podría gustarte