SlideShare una empresa de Scribd logo
1 de 176
Descargar para leer sin conexión
Cómo programar Step 7 y no morir en el intento
Aviso Legal
Este libro se ha producido con pasión y esfuerzo por Iñigo Gútiez, dueño de los derechos
de autor del mismo, Copyright 2014 Todos los derechos reservados.
En este momento de finalizar el eBook, son incontables las horas que ha llevado
confeccionarlo. El libro no es nada más que el compendio de un montón de entradas del
blog http://programacionsiemens.com donde he dejado a lo largo de estos dos últimos
años gran parte de mi tiempo libre de forma gratuita. Pero no es el caso de este libro
electrónico. Te pido por ello que:
 No copies partes de este eBook ni lo publiques con o sin atribución o créditos.
 No publique este eBook en plataformas gratuitas.
No es un libro cualquiera. Para empezar porque está en formato electrónico que si bien
puedes imprimirlo, perdería toda su esencia al tener incrustados un montón de links a
vídeos explicativos con ejemplos de programación.
En segundo lugar porque los capítulos probablemente no sigan un orden teórico lógico
ni lo pretenden. Son las transcripciones más o menos fidedignas de lo escrito en el blog
y de ahí su singularidad.
Finalmente porque toda la información aquí recogida ya ha sido publicada en el blog,
por lo que no hay conocimiento nuevo expuesto a lo largo de las próximas ciento y pico
páginas.
Ni que decir tiene que Simatic Step 7 es una marca registrada por Siemens
Agradecimientos y dedicatoria
Mi primer agradecimiento es para ti por haber adquirido este ejemplar pudiendo haber
seguido bebiendo exclusivamente del blog. Si no tuvieras interés por el blog y apreciaras
el esfuerzo que supone su publicación difícilmente este libro hubiera visto la luz.
Mi segundo agradecimiento es para Carlos de www.masvoltaje.com por las
innumerables horas que hemos pasado charlando de lo humano y lo divino… hasta
hemos buscado tiempo para hablar del blog. Aún lo seguimos haciendo.
Por último, pero la primera en importancia, se lo dedico a mi mujer Susana por su infinita
paciencia conmigo, que no siempre es fácil. Por sus consejos. Por su cariño y su dulzura.
Por ser la mujer de mi vida.
Cómo programar Step 7 y no morir en el intento
Contenido
Aviso Legal...................................................................................................................1
Agradecimientos y dedicatoria......................................................................................1
0. Prefacio. ..............................................................................................................12
¿Qué es este libro?.................................................................................................12
¿Qué NO es este libro?...........................................................................................12
¿Necesitaré papel y pinturillas de colores? .............................................................12
¿También WinCC?..................................................................................................13
¿Qué temas contendrá el libro? ..............................................................................13
¿Garantía?..............................................................................................................13
1. Introducción a la programación en Step 7............................................................14
Programación en Step 7..........................................................................................14
Estructura de la memoria. .......................................................................................14
Imagen de E/S ........................................................................................................15
E/S de la periferia....................................................................................................15
Marcas ....................................................................................................................15
Temporizadores y contadores. ................................................................................15
Módulos de datos (DB)............................................................................................16
Variables temporales...............................................................................................16
Módulos ..................................................................................................................17
Módulos de organización.........................................................................................17
Funciones (FC) .......................................................................................................18
Bloques de función (FB)..........................................................................................19
Módulos de datos (DB)............................................................................................21
Módulos de sistema. ...............................................................................................22
Ciclo del programa ..................................................................................................23
¿Cómo se puede superar este tiempo?...................................................................24
2. Métodos de arranque: OB100, OB101 y OB102 ..................................................25
¿Qué es un OB de arranque? .................................................................................25
Ahora sí, que la hemos liado.. quee ¿qué? .............................................................25
Arranque completo (arranque en caliente)...........................................................25
Arranque en frío...................................................................................................25
Rearranque..........................................................................................................25
3 métodos de arranque en Step7 ............................................................................26
OB100 para el arranque completo .......................................................................26
OB102 para el arranque en frío ...........................................................................26
Cómo programar Step 7 y no morir en el intento
OB101 rearranque...............................................................................................26
Programación del OB100 ........................................................................................26
3. El entorno de desarrollo de Step 7.......................................................................28
El entorno de desarrollo de Step 7 Simatic Manager...............................................28
El configurador de hardware ...................................................................................29
El configurador de redes .........................................................................................29
El editor de símbolos...............................................................................................30
El editor de código...................................................................................................30
Nuestro primer proyecto en Step 7 “HELLO WORLD!!”...........................................31
4. Álgebra booleana (lógica binaria) ........................................................................32
¿Qué es el Álgebra booleana en Step 7?...............................................................32
¿No hay más?.........................................................................................................32
Al grano...................................................................................................................33
¿Cómo se hace un AND y un OR?..........................................................................33
5. Puertas lógicas NOR y NAND en S7 ...................................................................34
NAND......................................................................................................................34
NOR........................................................................................................................34
6. FB en Step 7 - Ejemplo de una bomba de agua...................................................36
FB en Step 7 ...........................................................................................................36
Ejemplo de maniobra de una Bomba de agua.........................................................36
Resolución del ejercicio...........................................................................................38
7. Multiinstancias en Step 7.....................................................................................39
¿Qué son multiinstancias en Step 7? ......................................................................39
Mucho rollo esto de las multiinstancias en Step 7 ¿no? ..........................................39
Video sobre multiinstancias en Step 7.....................................................................40
8. Funciones en PLC Siemens con ejemplo de semáforo........................................41
¿Qué son los FC en Step 7?...................................................................................41
FC Vs. FB ...............................................................................................................41
Muy bien, pero ¿qué vamos a ver en este capítulo? ...............................................41
¿En qué va a consistir el ejemplo del semáforo? ....................................................42
¿Qué herramientas vamos a necesitar para crear este FC en Step 7? ...................42
9. FC o FB ¿Cuál de los dos usar?..........................................................................44
FC o FB...................................................................................................................44
10. Cómo crear la estructura de un programa en ladder ........................................46
¿Qué ventajas tiene una programación en ladder para estructurar un programa en
Step 7?....................................................................................................................46
¿Cómo funciona este tipo de programación en ladder?.......................................46
El vídeo...................................................................................................................48
Cómo programar Step 7 y no morir en el intento
11. Formas de crear marcas cíclicas en Step 7......................................................49
Marcas cíclicas del PLC ..........................................................................................49
¿Cómo se activa? ...................................................................................................50
¿Y ahora? ...............................................................................................................51
Marcas cíclicas usando temporizadores..................................................................51
Marcas cíclicas usando un OB cíclico .....................................................................51
Teniendo OB cíclicos, ¿no hay más formas? ..........................................................53
12. Algebra booleana (II) – AWL en Step 7 ............................................................54
AWL en Step 7........................................................................................................54
¿Ensamblador? Ya me estas asustando… .............................................................54
Instrucciones básicas para programar AWL en Step 7............................................55
¿No hay negadas? ..............................................................................................55
¿No hay más? .....................................................................................................56
Operaciones de Y lógica. ........................................................................................56
Ya bien, pero estooo, una cosita que te quería comentar… ....................................56
¿Qué es el RLO? ....................................................................................................56
La definición ha quedado chulísima pero no he entendido ni papa. .....................56
Operación O lógica..................................................................................................57
¿Por qué? ...............................................................................................................57
Paréntesis en AWL en Step 7 .................................................................................58
Operandos de cierre de consulta.............................................................................59
13. Step 7… AWL, FUP o KOP ¿Cuál elijo? ..........................................................60
FUP.........................................................................................................................60
KOP ........................................................................................................................60
AWL........................................................................................................................61
14. SET y RESET en AWL y alguna cosilla más. ...................................................63
¿Ya sólo nos queda ver SET y RESET en AWL en lógica binaria?.........................63
¿Qué es un set y reset en AWL?.............................................................................63
¿Qué pasa si se dan ambas condiciones, SET y RESET en AWL?.....................63
¿Puede darse ese caso?.....................................................................................63
¿Es grave? ..........................................................................................................63
¿Qué pasa si se da?............................................................................................64
¿De qué depende?..............................................................................................64
¿Esto sólo se puede dar en AWL?.......................................................................64
¿Qué pasa si mezclo Set, Reset e igualaciones? ................................................64
Vale, vale… pero ¿qué hay del SET y RESET en AWL? ........................................64
¿Chupado no?.....................................................................................................64
Cómo programar Step 7 y no morir en el intento
Forzado del RLO – SET y CLR ...............................................................................65
¿Cuánto valdrá A1.0?..........................................................................................65
Flancos en AWL......................................................................................................65
15. Función MOVE en Step 7.................................................................................67
MOVE en Step 7 (en cristiano)................................................................................68
¿Ahora bien, y si hago un MD4 a MW10?............................................................68
¿Y ya está? .........................................................................................................68
16. Cómo usar los acumuladores en AWL .............................................................70
Acumuladores en AWL............................................................................................70
Pero si los acumuladores en AWL son dos, ¿qué pasa con el ACU2?....................70
¿Qué tendrían entonces el ACU1 y el ACU2?.........................................................71
¿Qué más operaciones se pueden hacer? ..........................................................71
¿Qué seguridades hay a la hora de realizar operaciones matemáticas? .............71
Guay. Pues lo sumo en AWL...............................................................................71
¿Valor de MW10?................................................................................................71
Forma en que carga y se transfiere al ACU1 .......................................................72
¿Qué ocurre cuando lees el ACU1? ....................................................................72
¿Menudo lío no?..................................................................................................72
Operaciones con los acumuladores que afectan al RLO .........................................72
¿Cuántas operaciones con los acumuladores hay? ................................................73
17. Operaciones - Calculadora científica................................................................74
Ejemplo en Step 7 de calculadora científica ............................................................74
¿Qué vamos a repasar con este ejemplo en Step 7?..............................................74
¿Qué requerimientos va a tener?............................................................................75
¿Tampoco es para tanto no?...............................................................................75
¿Me lo explicas? .....................................................................................................75
18. Palabra de estado en Step7.............................................................................76
La palabra de estado en Step 7 ¿qué es?...............................................................76
Los bits de la palabra de estado..............................................................................76
Vale, nombres chulos, pero quitando al RLO y el STA, los demás como que…...77
Bit 0 -/FC .............................................................................................................77
Bit 1 – RLO..........................................................................................................77
Bit 2 – STA ..........................................................................................................77
Bit 3 – OR............................................................................................................77
Bit 4 y 5 – OS y OV..............................................................................................77
Bit 6 y 7 – CCO y CC1........................................................................................78
Bit 8 – BR ............................................................................................................79
Cómo programar Step 7 y no morir en el intento
19. Control del reloj del sistema en Step 7 .............................................................80
¿En qué consiste el ejemplo? .................................................................................80
¿Cómo vamos a leer el reloj del sistema? ...........................................................80
¿Cómo calcularemos el día del año?...................................................................81
¿Y si estamos en marzo… o en septiembre? ......................................................81
¿Qué es lo que falta? Pues saber si es bisiesto...................................................81
¿Cómo calculamos si es un día bisiesto? ............................................................81
20. Codificación de un display de 7 segmentos......................................................83
¿Qué es un display de 7 segmentos? ....................................................................83
¿Cómo tratamos los datos? ....................................................................................84
¿Qué es un número BCD? ..................................................................................84
¿Y el 10? .............................................................................................................84
Tratar y filtrar un número de 3 cifras........................................................................84
Perdona, pero... que ¿qué? .................................................................................85
Vale. Más o menos lo pillo… pero ¿para qué? ....................................................85
Ya si eso, igual con un ejemplo…........................................................................85
¿Cómo se te ha quedado el cuerpo?...................................................................85
Mmmmm y ¿cómo lo soluciono yo ahora?...........................................................85
Desplazar los bits a la derecha................................................................................86
¿Qué es lo que hace la operación SHR_W?........................................................86
¿Y las centenas?.................................................................................................86
Representación en un display de 7 segmentos .......................................................86
¿Una palabra a una doble? .................................................................................87
Un momento, ¡¡ tú me has estado tomando el pelo todo el rato!!… .........................87
21. Temporizadores S7..........................................................................................89
S_IMPULS Temporizadores como impulso ..........................................................89
S_VIMP Temporizadores como impulso prolongado............................................90
S_EVERZ Temporizadores como retardo a la conexión.......................................90
S_AVERZ Temporizadores como retardo a la desconexión .................................91
S_SEVERZ Temporizadores como retardo a la conexión con memoria..................91
22. Ejemplos prácticos de temporizadores S7........................................................92
Filtrado de señales..................................................................................................92
Filtro de guiños positivos.........................................................................................92
¿Cómo?...............................................................................................................92
Filtro de guiños negativos........................................................................................92
Filtro combinado......................................................................................................93
Crear un tren de pulsos...........................................................................................93
Cómo programar Step 7 y no morir en el intento
Destellos por un tiempo fijo de una señal................................................................94
Reset de un relé de forma segura ...........................................................................94
23. Cómo crear un cronómetro en Step 7 ..............................................................96
Cronómetro en Step 7.............................................................................................96
WinCC Flexible .......................................................................................................96
¿Cómo?...............................................................................................................96
Ya, ya… ¿pero cómo calculas la posición?..........................................................96
24. Filtrado y enmascarado de bits en Step 7 ........................................................98
Cómo saber si hay una alarma activa (usando todas las alarmas)..........................98
¿No valdría con sumar y ya está?...........................................................................99
Ummmm en general sí…. en particular… no. ......................................................99
¿Descubres la razón?..........................................................................................99
Filtrado y enmascarado de bits................................................................................99
Vale. Ahora sí que sí hago un cojo-OR eligiendo los bits..................................100
¿Cómo lo hacemos?..........................................................................................100
Vale. ¿Cómo podemos saber que hay una alarma descartando el M32.1 cómo
queremos?.........................................................................................................100
¿Se podría hacer con words en vez de con bytes?............................................102
25. Cómo realizar un tracking de datos en Step7.................................................103
Tracking de datos en Step7...................................................................................103
El "conceto" .......................................................................................................103
¿Qué es lo que vamos a hacer?........................................................................103
Bien, vale... ¿pero cómo?..................................................................................104
Y el SFC21 ¿para qué lo quieres?.....................................................................104
Y claro, vamos a usar DB... ...............................................................................104
¿Cuál es mejor? ................................................................................................104
¿Por qué dices eso?..........................................................................................104
¿Solución?.........................................................................................................105
¿Qué ventaja tiene usar un DB por posición?....................................................105
Pues siempre uso DB separados y ya está........................................................105
Vayamos con un ejemplo práctico .....................................................................106
26. Contadores en Step 7 ....................................................................................107
Contadores en Step 7 usando un entero...............................................................107
Contadores en Step 7 usando INC y DEC.............................................................107
Contadores en Step 7 usando contadores S5 .......................................................108
Cómo cargar un valor a contadores en Step 7...................................................108
Sumar y restar sobre contadores en Step 7.......................................................108
Poner a cero un contador ..................................................................................109
Cómo programar Step 7 y no morir en el intento
¿Y en KOP? ......................................................................................................109
27. Saltos: SPA, SPB y SPBN (If-Then-Else).......................................................111
¿Qué son los saltos en Step 7?.............................................................................111
SPA se usa para saltos incondicionales................................................................111
SPB y SPBN se usan para saltos condicionados al valor del RLO........................112
¿Qué pasa si no se realiza el salto?......................................................................112
¿Vale, vale… pero como construyo un IF-THEN-ELSE?.......................................113
¿Cómo lo hago con saltos en Step 7?...................................................................113
¿Lo vemos con un ejemplo? .................................................................................113
¿Pero esto no se puede hacer con FUP o KOP? ..................................................114
28. Cómo anular partes de un programa..............................................................115
Anular parte de un programa comentando líneas..................................................115
Anular parte de un programa realizando saltos. ....................................................115
Anular parte de un programa usando una marca nula...........................................116
Anular parte de un programa usando BEA............................................................116
29. Instrucción LOOP – El For /Next del PLC.......................................................117
Loop en Step 7......................................................................................................117
¿Y cómo hago un FOR NEXT con LOOP en Step 7? ........................................117
Filtrado de una señal analógica.............................................................................118
30. Saltos SPL en Step 7. El Select Case en AWL...............................................119
¿En qué consiste el SPL en Step 7? .....................................................................119
31. Otros saltos....................................................................................................121
¿Estado del RB? ¿Lo qué? ...................................................................................121
Bit 8 – BR ..........................................................................................................121
Saltos en Step 7 con errores y resultados matemáticos.....................................121
32. Desplazamiento y giro de bits en Step7 .........................................................123
Vale. Hasta ahí lo entiendo, pero ¿qué diferencia hay desplazar entero o un Word a
la derecha? ...........................................................................................................123
¿Lo qué? ...........................................................................................................123
En principio no hay diferencia ¿no?...................................................................124
Y el giro de dobles palabras...............................................................................124
¿Podrías poner un ejemplo real de desplazamiento y giro de bits en Step7?........125
33. Giro de bits en step 7: el coche fantástico......................................................126
El vídeo sobre el giro de bits en step 7..................................................................127
34. Direccionamiento indirecto – Memoria y punteros a área...............................128
Direccionamiento indirecto ....................................................................................128
Direccionamiento Indirecto por Memoria ...............................................................129
Formato palabra – número (indexados).................................................................129
Cómo programar Step 7 y no morir en el intento
Direccionamiento Indirecto con formato doble palabra – Punteros a área.............129
¿Se puede cargar los punteros de otra forma? .....................................................130
35. Direccionamiento indirecto – Registros y áreas..............................................132
Registro de direcciones.........................................................................................132
Cargar directamente el puntero .........................................................................132
Cargar el puntero y transferirlo al AR1...............................................................132
Cargar el valor numérico de bits y transferirlo al AR1 ........................................132
Direccionamiento Indirecto por Registro e Intraárea/Interárea...............................133
¿Y esto qué significa en cristiano?.....................................................................133
¿Resultado? ......................................................................................................133
¿Qué se usa más? ............................................................................................133
Muy bien, me parece estupendo… pero me he perdido en el L MW [AR1, P#10.0]…
¿qué significa? ..................................................................................................134
¿Es obligatorio poner ese offset siempre?.........................................................134
¿Qué pasa si cargo un P#50.0 en el AR1, cargo un offset P#0.1 y hago una lectura
MB, MW o MD? .................................................................................................134
¿Qué más puedo hacer con los registros? ............................................................134
¿Qué operaciones puedo hacer con los registros?............................................134
¿Y todo esto, ya sirve para algo?..........................................................................135
36. Comparar dos cadenas de caracteres............................................................136
Comparar dos cadenas de caracteres en Step 7...................................................136
¿Para qué sirve eso?.........................................................................................136
¿Qué necesitaremos para comparar las cadenas de caracteres? .....................136
¿Y cómo vamos a hacer la comparación de las cadenas de caracteres en step7?
..........................................................................................................................137
37. Qué es un OB de fallo....................................................................................140
Listado de OB de fallo...........................................................................................140
38. Alarmas: Cómo activar y desactivar la baliza .................................................142
Gestión de alarmas en S7.....................................................................................142
¿Cómo hacerlo? ................................................................................................143
El FC.....................................................................................................................143
El DB.....................................................................................................................143
39. Buenas prácticas de programación en S7......................................................145
Tengo una hoja en blanco ¿Por dónde empiezo para realizar buenas prácticas de
programación en S7?............................................................................................145
Vale, ya tengo más o menos claro qué hace y qué necesito… ¿y ahora?.............146
¿Por qué no el 111? ..........................................................................................146
¿Qué nos va a permitir esto?.............................................................................146
Cómo programar Step 7 y no morir en el intento
Asigna rangos a las I/O .........................................................................................147
¿Qué ganamos con ello?...................................................................................147
¿Pero habría algún problema por ello?..............................................................148
¿Qué pasa con las marcas, temporizadores etc.? .............................................148
Asigna nombres a las cosas..................................................................................148
Buenas prácticas de programación en S7.............................................................148
Asigna una marca de ciclo al principio del proyecto...........................................149
Crear un Always_On y un Always_Off ...............................................................150
Deja espacio, sé generoso con el que venga detrás… ......................................150
No seas un talibán de ningún lenguaje. Usa todos a tu antojo, pero con orden. 150
Alarmas.................................................................................................................151
Pantallas del HMI ..................................................................................................151
¿Qué quiero decir con esto?..............................................................................151
40. 4 formas de hacer una copia de seguridad de un proyecto de step7..............153
Copia de seguridad de un proyecto de step7 offline..............................................153
¿Con eso es suficiente? ....................................................................................153
Crear una copia de seguridad de un proyecto de step7 mediante archivado.........153
Crear una copia de seguridad de un proyecto de step7 online exacta...................154
Crear una copia de seguridad de un proyecto de step7 online por carpetas .........154
41. Cómo proteger bloques en Step 7… si puedes. .............................................156
¿Proteger bloques en Step 7? ¿Para qué? ...........................................................156
42. Conectar un LOGO 8 con un PLC en Step 7.................................................158
¿Por qué usar un LOGO 8 como remota?.............................................................158
Conectar un logo 8 con un PLC en Step 7 ............................................................158
El vídeo de la lección ............................................................................................159
43. PID en Step7: Ejemplo de control de temperatura..........................................160
¿Qué hardware vamos a necesitar?......................................................................160
¿Por qué un relé estático?.................................................................................160
La tarjeta de analógicas.....................................................................................161
¿Y qué hay del software?......................................................................................161
PID en Step7 .....................................................................................................161
¿Cómo vamos a hacer ese reparto de tiempos?................................................162
44. Configuración de un variador Micromaster 420 ..............................................163
Configuración básica de un variador Micromaster – El variador ...........................163
Configuración de la dirección Profibus...............................................................163
Puesta en servicio del variador..............................................................................164
Configuración básica de un variador Micromaster – El proyecto. .........................165
Cómo programar Step 7 y no morir en el intento
Bits de mando....................................................................................................165
La palabra de estado .........................................................................................166
45. Entradas analógicas 4-20mA en S7 ...............................................................169
Programación de la alarma ...................................................................................171
Graficar la señal....................................................................................................171
46. Cómo observar y forzar variables en Step 7...................................................172
¿Qué se puede hacer?..........................................................................................172
El punto de disparo ...............................................................................................173
Otras opciones......................................................................................................173
El vídeo.................................................................................................................175
Cómo programar Step 7 y no morir en el intento
12
0. Prefacio.
Antes de empezar este libro me gustaría compartir contigo en qué va a consistir y cuál
es su finalidad.
¿Qué es este libro?
Es un libro para aprender a programar en Step 7 desde cuasi cero. Esto significa que
se darán por sentados conceptos como qué es un PLC y para qué sirve. Si has llegado
hasta aquí entiendo que sería una pérdida de tiempo por tu parte y por la mía empezar
desde más abajo. No quiero que este libro sea “de relleno”, sino que sea lo más didáctico
y práctico que sepa lograr, introduciendo la teoría y conceptos mínimos para poder
comenzar a trabajar.
En cuanto al contenido veremos juntos la mayoría de las funciones y bloques que
dispone S7 con los que comenzar de una forma razonablemente solvente a programar
en un entorno S7.
¿Qué NO es este libro?
Lo primero y más importante, no es palabra de Dios. No es, ni pretende ser, un libro
formal y reglado. No hay ni título ni nada por el estilo. Voy a intentar transmitir mis
conocimientos para empezar a trabajar y programar un PLC de Siemens. Será tan
completo como pueda hacerlo, pero nada más.
No es un libro sobre TIA portal. No te quiero engañar: aún apenas lo he usado como
para dar consejos sobre ello a nadie.
En cuanto al hardware no entraré a evaluar cada tarjeta que hay en el mercado ni cada
PLC. Se verá en el libro lo básico y necesario. No es objetivo de este el conocimiento
profundo del hardware sino de realizar programas. El resto vendrá con el tiempo y la
experiencia.
Tampoco me hago responsable de posibles fallos que pueda acometer durante el libro.
La buena fe te la puedo garantizar pero no la infalibilidad que se la dejo a seres
superiores (no, no me refiero a los funcionarios). Por tanto no me hago responsable de
que un programa no funcione bien, ni de los terremotos, ni de que te puedan despedir
porque la máquina le escupa aceite a tu jefe, ni de una guerra termonuclear.
¿Necesitaré papel y pinturillas de colores?
Pues hombre, como puedes imaginar, vas a necesitar un ordenador (portátil o de
sobremesa) con Step 7 instalado junto con PLCSIM y WinCC Flexible.
Además de eso, vas a necesitar una conexión a internet para poder reproducir los
vídeos de ya que el PDF enlazará con los vídeos publicados.
Cómo programar Step 7 y no morir en el intento
13
¿También WinCC?
Sí. Para poder abrir los ejemplo que creemos, ya que el libro también contendrá
pinceladas del WinCC.
Las versiones que yo voy a usar son las siguientes:
 Step 7 V5.5 +SP1
 WinCC 2008 SP3
 S7-PLCSIM Professional 2010 V5.4 +SP5
¿Qué temas contendrá el libro?
Vayamos al meollo de la cuestión…
Vamos a ver juntos todos los temas relacionados con lo que propiamente es la
programación del software de una forma más tranquila y espero que extensa y profunda
para asentar tan bien como pueda explicarme (que tampoco es que se me dé del todo
bien, seamos sinceros).
Así, veremos con detenimiento todo lo relacionado con la memoria, variables, los
módulos y todos los bloques que considere que tienes que conocer para que una vez
termines el libro tengas unos mimbres para realizar programas de una complejidad
notable.
Además intentaré transmitirte todos los trucos y prácticas que ya he comentado en parte
y otros que puede que aún estén en el tintero. Este tipo de truquillos seguramente sean
más difícil de que los encuentres en otros cursos y libros.
Todo irá acompañado como ya he comentado con los vídeos que considere pertinente
además de explicar mediante ejemplos prácticos.
¿Garantía?
Pues como puedes imaginar más bien escasa. Sólo te puedo ofrecer el compromiso:
 De poner lo mejor de mi parte para poder resolver dudas dentro de mis
conocimientos.
 De haberlo hecho con mimo para sea lo más instructivo y ameno posible.
Cómo programar Step 7 y no morir en el intento
14
1. Introducción a la programación en Step 7
Vamos a repasar una serie de conceptos generales de programación aplicados en un
entorno de Simatic S7. Lamento que la primera lección sea una pequeña chapa teórica
y que no vayas a ver ni una línea de código, pero por muchas vueltas que le he dado,
es necesario unos mínimos. Pero míralo de una forma positiva, así ya lo damos por
zanjado y pronto comenzaremos a escribir líneas y líneas de código (el que no se
conforma es porque no quiere).
Empecemos...
Los elementos de un autómata como bien sabes son dos: el hardware (el aparato en sí
con sus tarjetas, cableado etc.) y el software (los programas).
Dentro de los programas tendremos dos partes a su vez:
El SO del autómata
El programa de usuario que tú vas a desarrollar y que desempeñará las funciones para
las cuales se ha ideado.
El SO del autómata será el que se encargue por un lado de interpretar y ejecutar el
programa que has diseñado además de otras funcionalidades como pueden ser el
diagnóstico de alarmas y errores, administrar la memoria, comunicación con otros
elementos, exploración de las entradas y la transmisión de órdenes a las salidas entre
otras muchas que sabemos qué hace, pero poco nos importa ahora el saber cómo.
Programación en Step 7
El programa de usuario es sobre lo que versa este libro. En este programa vas a poder
determinar las condiciones con las que arrancará el autómata, tratará datos y señales
del proceso para finalmente dar unas órdenes de actuación sobre los diferentes
actuadores y elementos de la instalación.
Estructura de la memoria.
A grandes rasgos la memoria del autómata va a ser dividida en las siguientes partes:
 Imagen de las E/S.
 E/S de la periferia
 Marcas
 Valor y estado de temporizadores y contadores
 Módulos de datos (DB)
 Datos temporales que se pierden al final de cada ciclo.
Cómo programar Step 7 y no morir en el intento
15
Imagen de E/S
Las imágenes de las entradas y las salidas no son más que las señales E o A que se
usan en el programa. Pero son eso, imágenes, ya que no leemos el valor instantáneo
de la entrada o forzamos instantáneamente la salida, sino que leemos en el caso de las
entradas el valor de la entrada física cuando se refrescó la imagen de las entradas antes
de comenzar el nuevo ciclo del OB1 (programa principal).
Igualmente en el caso de las salidas, cuando el programa pone a uno o a cero una salida
no lo está haciendo inmediatamente sino que está dando valor a la imagen de la salida,
y esta imagen de la salida será volcada a las salidas reales antes de comenzar un nuevo
ciclo del OB1.
E/S de la periferia.
A diferencia del caso anterior, se puede leer directamente el valor actual de cualquier
sensor. Para ello debemos leerlos en bytes (PEB), Word (PEW) o doble Word (PED) ya
que el acceso no puede ser directo a un bit en concreto (a diferencia de las imágenes
de E/S).
Igualmente pasa con las salidas, que podemos forzar el estado de las salidas de forma
inmediata accediendo a las salidas de periferia (PAB, PAW, PAD)
Marcas
Las marcas son variables indexadas y globales, por tanto no hay que declararlas, pero
si es conveniente darles un nombre y tipo (entero, doble, real…). Se les puede dar valor
dentro de cualquier parte del programa. Dependiendo de la CPU esta área es mayor o
menor.
Los valores pueden ser remanentes tras el apagado del PLC o volátiles (se pierden tras
apagar el PLC).
Su acceso puede ser desde bit hasta un ancho indeterminado si se usan punteros de
área (que veremos más adelante).
Temporizadores y contadores.
La programación en Step7 tiene la peculiaridad de tener temporizadores de dos tipos:
por software (IEC) y temporizadores S7 (o llamados también de S5 ya que existían ya
en la versión anterior).
Estos últimos son temporizadores hardware y son limitados dependiendo de la CPU (por
ser hardware), no así los IEC que por ser creados por software la limitación es la propia
memoria disponible, pero no hay un número determinado de ellos.
Cómo programar Step 7 y no morir en el intento
16
Los contadores pues son eso, elementos usados para contar o descontar cantidades.
Veremos con detenimiento en su momento las peculiaridades de cada uno de ellos.
Módulos de datos (DB).
Son áreas de memoria que a diferencia de las marcas, está definidas por el usuario.
Pueden ser de longitudes dispares y con contenidos de todo tipo. Las variables
contenidas en los DB son remanentes al apagado del PLC.
Variables temporales.
Son variables que se declaran dentro de los módulos que sirven para realizar cálculos
intermedios y locales que no necesitan ser usados más allá del módulo en cuestión y en
el ciclo en el que son llamadas o tratadas.
¡OJO!
Las variables temporales no se re-inicializan como yo he comentado en el vídeo. El valor
inicial de la variable temporal es el valor último que tomó esa variable, lo cual no deja
de ser tremendamente peligroso ya que si no le das valor antes de leerla el contenido
de dicha variable es indeterminado, especialmente si la función es llamada varias veces
a lo largo del programa y la variable va tomando valores dispares.
Cómo programar Step 7 y no morir en el intento
17
Módulos
Para acceder y tratar los datos almacenados en las áreas de memoria, existen diferentes
tipos de módulos cuyas características serán diferentes para cada requerimiento que
sea necesario:
 Módulos de organización (OB)
 Funciones (FC).
 Bloques de función (FB).
 Bloques de memoria (DB)
 Módulos de sistema (SFC,SFB,SDB)
Módulos de organización
Lo primero que has de saber de estos módulos es su especialización, sólo sirven para
lo que han sido diseñados y no se llamarán desde otros bloques sino que será el propio
autómata quien gestiona las llamadas a estos módulos en función de sus características.
Hay varios tipos de módulos de organización:
 OB de arranque (OB100-102): Son bloques con los que se arranca el PLC en
función del tipo de arranque y depende del tipo de CPU para que tenga todos los
tipos o solamente el OB100, que es el arranque completo. Sólo se ejecuta una
vez, en el arranque. Una vez terminado pasa al principal.
 El OB1: Es un tipo es sí mismo y es el principal. Se ejecuta de forma recurrente
y desde él se hace llamadas a los FC y FB del programa
 OB cíclicos: También se pueden hacer llamadas a otros FC o ejecutar código
desde estos OB. Tienen la peculiaridad frente al OB1 que se ejecutan a tiempo
fijo (por ejemplo el OB35).
 OB Horarios: Son OB que dependen de la fecha y hora. Se pueden realizar
tareas desde en un momento concreto a ser cíclicos cada x tiempo (desde
minutos a todos los años en un momento concreto)
 OB de fallo (OB85, OB86, OB121 etc.). Son OB predefinidos para cada tipo de
fallo y son llamados cuando el fallo es detectado. Dentro de cada OB se puede
tratar el fallo y tomar las decisiones pertinentes en cada caso.
Todos los OB tienen la peculiaridad de tener reservados 20bytes de memoria local
donde podrás hallar variables específicas de cada OB. Así podrás tener información de
en qué momento ha sido llamado o la frecuencia de llamada en el caso del OB35 por
poner un ejemplo.
Cómo programar Step 7 y no morir en el intento
18
Los más usados con una diferencia notable con el resto:
 OB100: Arranque desde cero. En el daremos las condiciones y valores iniciales
(si procede) en el arranque.
 OB1: Programa principal (lógico)
 OB35: Programa cíclico por excelencia ya que hay otros pero que no están
disponibles en todas las CPU. Puedes programar tareas a tiempo fijo facilitando
contajes y mediciones que sean necesarias conocer su periodicidad.
Luego están los de fallo que dependiendo de la aplicación usarás unos u otros o
ninguno. Pero con estos 3 tienes el 80% de las necesidades de los OB cubiertos.
Funciones (FC)
Las funciones son bloques que pueden ser llamados desde OB, FC o FB y se usan
fundamentalmente para:
Estructurar el código de tal forma que no esté todo metido en el OB1 sino que se hace
de forma arbórea e inteligible dividiendo el programa por zonas, máquinas,
submáquinas...
Usarlos como funciones que traten unos valores de entrada y den como resultado unos
valores de salida. Lógicamente la idea de esto es por un lado dar claridad y por otro lado
permite la reutilización de la función.
Tienen la peculiaridad de poder definir de forma interna variables temporales con las
que jugar dentro del bloque. Ya se ha comentado hay que tener cuidado con el tema de
Cómo programar Step 7 y no morir en el intento
19
la remanencia entre ciclos. Lo mejor es darle valor nulo (o el que sea) al inicio del bloque
o bien asegurarse de que siempre toma algún valor a lo largo del bloque antes de usarla.
Teniendo esto en cuenta, podemos crear un FC1 y un FC2. En el FC1 desarrollar un
programa que sume a +b y nos devuelva c. En el FC2, hacer varias llamadas al FC1
para que nos haga varias sumas.
El bloque FC1 denominado "sumar" lo reutilizamos y contendrá variables de entrada y
salida mientras que el FC2 simplemente lo usaremos llamándolo desde el OB1 y lo
denominaremos "todas las sumas" haciendo una única llamada desde el OB1 a este
bloque.
No tiene ninguna importancia la falta de remanencia de las variables intermedias ya que
lo que realiza es un cálculo matemático en cada ciclo.
Bloques de función (FB)
Los bloques de función son parecidos a los anteriores con la particularidad que tienen
variables internas llamadas estáticas que dan remanencia de ciclo a ciclo.
Para lograr esta remanencia tendrán asociado un bloque de memoria (DB) llamados
para estos casos de instancia.
Los FB pueden ser llamados desde los OB, FC o FB además de poder ser usados dentro
de las estáticas de otros FB (multiinstancias).
En definitiva son los módulos que usaremos para una programación orientada a objetos
de otros lenguajes ya que podremos realizar un módulo que nos gestione por ejemplo
un transportador y podremos crear tantos transportadores como queramos pudiendo
Cómo programar Step 7 y no morir en el intento
20
desentendernos de cómo funcionan internamente una vez sepamos depurado el código
del FB.
Cómo programar Step 7 y no morir en el intento
21
Módulos de datos (DB)
Los módulos de datos pueden ser der de tipo global o de instancia. Los de instancia los
hemos visto que son necesarios para la ejecución de los FB y toman la estructura de la
declaración de las variables del propio FB.
Los DB globales son módulos declarados por el usuario y pueden contener variables de
todo tipo definiendo estructuras complejas.
En ambos casos el acceso a la información es global ya que incluso se puede acceder
a la información de un DB de instancia desde otro bloque.
Cómo programar Step 7 y no morir en el intento
22
Módulos de sistema.
Al igual que en los casos anteriores existen una serie de FC y FB que están integrados
en el propio sistema operativo del PLC. Pueden ser llamados y consultados para obtener
o tratar información. Al igual que pasa con los FB, los SFB necesitan de su
correspondiente SDB.
Por ejemplo con el SFC0 podrás consultar la hora del reloj del PLC.
Cómo programar Step 7 y no morir en el intento
23
Ciclo del programa
Como ya he ido adelantando existen unos módulos que son los encargados de ejecutar
los programas de usuario. En el siguiente esquema puedes ver de forma gráfica cómo
es la ejecución cíclico del programa.
Procesamiento cíclico
Como puedes imaginar, ejecutar todas las instrucciones conllevará un tiempo
denominado tiempo de ciclo.
El tiempo de ciclo es el tiempo medido en ms que se necesita para ejecutar
completamente todas las instrucciones y llamadas realizada desde el OB1, la ejecución
de otros OB llamados (si fuera el caso) y actividades del SO (actualizar las imágenes de
E/S por ejemplo).
El tiempo no es constante ya que no todos los ciclos tienen la misma carga de trabajo
bien porque no siembre se hacen las llamadas de OB cíclicos o porque no se hacen
llamadas a todos los bloques en función de las circunstancias y valores de las diferentes
variables.
Este tiempo está vigilado por un watchdog (típicamente fijado en 150ms fijado en la
configuración del hardware) y si se supera, el PLC se irá a estado de STOP.
Cómo programar Step 7 y no morir en el intento
24
¿Cómo se puede superar este tiempo?
Pueden ser por varias causas, pero una típica es programar mal un bloque haciéndolo
sin salida (un lazo infinito) con lo que irremediablemente se va a STOP aunque hay otras
como pueden ser un programa excesivamente largo.
También se puede ir el PLC a STOP debido a los tiempos de ejecución por llamadas a
OB cíclicos en tiempos muy cortos con cargas de trabajo muy altas. Por ejemplo,
programando el OB35 a 2ms y si su carga de trabajo es muy alta, puede que con la
siguiente llamada aún no haya terminado las operaciones del ciclo anterior, y el PLC se
coja la baja.
Bromas aparte, veamos más en concreto en qué orden ejecuta las diferentes tareas
durante este tiempo de scan.
En primer lugar cuando arranca el PLC ejecuta los OB de arranque. El más habitual es
el OB100.
Cómo programar Step 7 y no morir en el intento
25
2. Métodos de arranque: OB100, OB101 y OB102
¿Qué es un OB de arranque?
Un OB de arranque es un módulo que
podemos programar para que se ejecute
una única vez al arranque del sistema.
El programa de arranque puede ser tan
largo como se quiera, no tiene límite de
tiempo y la vigilancia del tiempo de ciclo no
está activa. La ejecución controlada por
tiempo o por alarma no es posible en el
programa de arranque. En el arranque, todas las salidas digitales tienen el estado de
señal 0.
El OB de arranque (OB100, OB101 u OB102) se ejecuta dependiendo del arranque, de
la CPU existente y de los parámetros ajustados en la misma.
 OB100:Arranque completo
 OB101: Rearranque
 OB102: Arranque en frío
Ahora sí, que la hemos liado.. quee ¿qué?
Bien, lo primero que hay que saber es unos conceptos para que cuando lo leamos en
los sesudos libros de Siemens no pongamos cara de pocker por no saber qué carajo
significa cada término.
Arranque completo (arranque en caliente)
La elaboración del programa comienza de nuevo. Se mantienen los datos remanentes.
Arranque en frío
Los datos actuales se pierden y la elaboración del programa comienza de nuevo con los
valores iniciales.
Rearranque
Tras la vuelta de la alimentación, el programa sigue desde el punto interrumpido.
Cómo programar Step 7 y no morir en el intento
26
3 métodos de arranque en Step7
OB100 para el arranque completo
En nuevo arranque (arranque en caliente), el programa comienza desde el principio:
 Las marcas, temporizadores etc. no remanentes se resetean. Los módulos de
datos con la propiedad no remanente, toman de nuevo el valor inicial.
 Las variables remanentes se mantienen con el último valor juntos. Los módulos
remanentes mantienen el último valor.
OB102 para el arranque en frío
 En el arranque en frío, los módulos de datos creados por SFC se borran de la
memoria de trabajo, el resto de módulos de datos tienen el valor pre ajustado en
la memoria de carga.
 La imagen de proceso, los temporizadores, los contadores y las marcas se
resetean a los valores iniciales guardados en el programa (memoria de carga),
independientemente de si se han parametrizado como remanentes.
 Se lee la imagen de proceso de las entradas y el programa de usuario de STEP
7 comienza de nuevo desde el principio (OB 102 ó OB 1).
Una cosa que hay que tener en cuenta, es que este modo sólo se puede realizar desde
el PG salvo algunas CPU de la serie 400 que tienen interruptores que permiten hacerlo
sobre el propio PLC.
OB101 rearranque
Tras la vuelta de un corte de tensión las CPU de la serie 400 realizan un rearranque.
Este se realiza desde el punto en el que se interrumpió. Esto implica que las variables,
temporizadores etc. no se resetean. En definitiva:
Todos los datos mantienen su último valor válido (incluyendo los datos de la imagen de
proceso).
 La elaboración del programa continúa exactamente en la instrucción en la que
se produjo la interrupción.
 Las salidas no se modifican hasta el final del ciclo actual.
 Al interrumpir la tensión de alimentación, el rearranque sólo está disponible en
el modo de servicio con batería tampón.
Programación del OB100
He de decir que el más utilizado es el OB100, compatible con todas las CPU. Además
tampoco he tenido la necesidad de programar el resto. Aunque supongo que habrá
casos en los que sean necesarios.
Cómo programar Step 7 y no morir en el intento
27
El uso que se le da al OB100 es fundamentalmente para dar valores iniciales a variables
cuando arrancas desde cero el PLC y para ejecutar acciones que sólo son necesarias
ejecutar una vez.
Una cosa que puede valer por ejemplo, es hacer que una variable se ponga a TRUE
que será un trigger a lo largo del programa y que al terminar, resetees dicha variable
para que no se ejecute en el segunda y sucesivas ejecuciones del OB1.
Así, dentro del OB100 podemos hacer
SET
= M0.0
Y al final del OB1
CLR
= M0.0
Si necesitas más información, te dejo las referencias para que sigas leyendo sobre el
tema.
Referencias:
 http://cache.automation.siemens.com/dnl/jExNDU0NwAA_18652056_HB/S7prv
54_s.pdf
 Diferencias entre tipos de arranque
Cómo programar Step 7 y no morir en el intento
28
3. El entorno de desarrollo de Step 7
Todo lenguaje de programación tiene un entorno de desarrollo. El entorno de desarrollo
de Step 7 se divide en varias partes:
 Simatic Manager.
 Configurador del hardware
 Configurador de Red
 Editor de programación
 Editor de símbolos
El núcleo desde el que normalmente se llama a todos los demás es el Simatic Manager
aunque se pueden acceder y lanzar los programas por separado desde la carpeta de
Simatic dentro de los programas disponibles en tu PC.
Vamos a ver como es el entorno de un modo general ya que no te interesa ni a ti ni a mi
profundizar en estos momentos. Pienso que si no conoces bien Simatic ni Step 7 te
puedo aburrir dándote un montón de detalles que te van a sonar a chino y que realmente
no vas a necesitar de momento.
Por tanto veremos un barniz de lo que es el entorno de desarrollo en Step 7 y nada más.
Finalmente terminaremos creando una vez conozcamos estas generalidades nuestro
primer proyecto en Step 7sobre el que trabajaremos en capítulos posteriores.
El entorno de desarrollo de Step 7 Simatic Manager
Cómo programar Step 7 y no morir en el intento
29
El configurador de hardware
El configurador de redes
Cómo programar Step 7 y no morir en el intento
30
El editor de símbolos
El editor de código
Cómo programar Step 7 y no morir en el intento
31
Nuestro primer proyecto en Step 7 “HELLO WORLD!!”
Cómo programar Step 7 y no morir en el intento
32
4. Álgebra booleana (lógica binaria)
Bueno. Basta de ver vídeos donde se explican muchas cosas bastante aburridas y aún
sin programar ni una línea de código... el álgebra booleana en Step 7 is here.
Vamos a comenzar a teclear. No mucho, pero
vamos a realizar nuestros primeros pinitos.
Primero vamos a empezar a programar en Ladder,
escalera o KOP. Es una forma dinámica de
empezar a hacer cositas y nos va a servir para la
en siguientes capítulos ver sobre lo aprendido,
cómo se haría en AWL ya que se va a entender
creo que mejor.
¿Qué es el Álgebra booleana en Step 7?
Bueno, en Step 7 y en cualquier lenguaje.
No se trata más que de entender y poner en práctica el álgebra de Boole. No te voy a
aburrir sobre que es un OR y un AND, ya que entiendo que todo el mundo sabe qué es.
Si no lo sabes, échale un vistazo a:
 Algebra de Boole (Wikipedia)
 Algebra booleana (Monografías.com)
 Álgebra de Boole (uhu.es)
En definitiva, qué mejor para un PLC que se mueve con ceros y unos, que programar
en base a puertas OR, AND y NOT.
¿No hay más?
Estrictamente hablando no, ya que el resto de las operaciones binarias se basan en las
anteriores... son, por así decirlo, los colores primarios del álgebra de Boole.
Por cierto, el señor tan estirado y con pinta de listo es el señor George Boole, el padre
de la criatura la cual data de mediados del siglo XIX. Sí, no les servía para gran cosa
entonces, pero ya le daban al rosco por entonces a estas cosas.
Como construir todos nuestros programas a base de AND y OR sería un trabajo que
acabaría con la salud de más de uno (entre los que me incluyo) hay otros operadores
más elaborados que permiten realizar funciones más complejas como son el xor, set,
Cómo programar Step 7 y no morir en el intento
33
reset, pulsos … que nos ayudarán a realizar programas eficientes en plazos de tiempo
razonables.
Al grano...
La programación en escalera o ladder es la más común en la mayoría de los lenguajes
de programación de PLC. En el caso de Siemens, esta programación se llama KOP
(Kontaktplan) o diagrama de contactos en la lengua de Cervantes.
La idea básica es dibujar diagramas eléctricos como si con contactos de relés se tratara.
¿Cómo se hace un AND y un OR?
Básicamente un AND lo harás mediante dos contactos
en serie de tal forma que sólo se active la bobina si
ambos contactos están cerrados. Análogamente un OR
lo realizarás colocando dos contactos en paralelo de tal
forma que la bobina se active si uno de los contactos O
el otro se activa. ¿Brillante eh?
Pero, lo mejor como siempre es ver... Contactos en serie y paralelo, negaciones,
set/reset y pulsos en un bonito video donde veamos cómo usar todos los elementos
además de un pequeño ejemplo de cómo crear un telerruptor en Step 7.
Cómo programar Step 7 y no morir en el intento
34
5. Puertas lógicas NOR y NAND en S7
NAND
Una puerta lógica NAND no es más que hacer un AND normal y su resultado, darle la
vuelta (negarlo)
La fórmula, es la que tienes a la derecha, que lo que viene a decir es que la negada de
un AND es lo mismo que hacer un OR de las negadas.
Es decir
U M200.0
U M300.0
NOT
= M400.0
Es lo mismo que hacer
ON M200.0
ON M300.0
= M400.0
En resumen, que el resultado siempre será TRUE salvo que ambas marcas (M200.0 y
M300.0) estén a 1.
NOR
Análogamente, diremos que hacer un NOR no es más que hacer un OR, y su resultado
darle la vuelta (negarlo).
Como veis en la fórmula, es muy similar. La negada de la suma es igual al producto de
sus negadas… o en castellano de andar por casa, un NOR equivale a hacer un AND de
las negadas de las señales.
Cómo programar Step 7 y no morir en el intento
35
En AWL tendríamos:
U(
O M 200.0
O M 300.0
)
NOT
= M 400.0
O lo que es lo mismo:
UN M200.0
UN M300.0
= M400.0
Ojo con los paréntesis ya que el NOT ha de ser del OR completo. En un AND no es
necesario, pero al hacer un OR sí lo es porque de otra forma sólo tendría en cuenta el
segundo operando.
Al contrario que en el caso anterior, el resultado siempre será FALSE salvo cuando
ambas señales estén en FALSE, dando en este caso, el único caso donde el resultado
es TRUE.
Dar las explicaciones y comentarios, se lo dejo al interesado para que lo diga con sus
propias palabras.
Adicionalmente echa un vistazo a la wikipedia donde lo explica perfectamente e incluye
las tablas de la verdad. Yo sólo colaboro con el mini ejemplo de programación en AWL.
Cómo programar Step 7 y no morir en el intento
36
6. FB en Step 7 - Ejemplo de una bomba de agua
Para ir creciendo un poco más en la lógica binaria antes de entrar en lógica binaria en
AWL, vamos a ver un par de ejemplos después de haber visto los primeros fundamentos
con el álgebra de Boole.
El primero será crear FB en Step 7 y el siguiente será crear FC.
La idea es ir introduciendo conceptos nuevos, y no se puede programar en Step 7 si no
se conocen los FB y los FC.
FB en Step 7
Comenzamos con los FB. Son más completos que los FC ya que como vamos a ver,
van a tener remanencia a diferencia de los FC que nos servirán para otros menesteres
como veremos pronto.
Como ya dijimos en la introducción los FB no son más que unos bloques que nosotros
vamos a construir y que va a poder tener una serie de variables (ninguna de ellas
obligatoria):
 Variables de entrada
 Variables de salida
 Variables de entrada/salida
 Variables temporales
 Variables estáticas (remanentes)
Como bien digo, no es obligatorio el uso de ninguna de ellas ya que se puede hacer la
llamada al FB y dentro de este usar variables globales (marcas u otros DBs).
Lo único que es obligatorio es crear un DB de instancia asociado al FB. Este DB nos
servirá para almacenar la información remanente aunque veremos que todas las
variables quedan reflejadas en él (todas las que se declaren, claro).
No hay que declarar ninguna variable dentro del DB ya que Step 7 lo va a hacer por ti a
la hora de hacer la llamada o al crearlo desde el Simatic Manager.
Ejemplo de maniobra de una Bomba de agua
Para ver cómo crear FB en Step 7 de forma práctica vamos a hacerlo a través de un
ejemplo de manejo de una bomba de agua.
Se trata de un tanque que tiene un mínimo y un máximo que es abastecido entre estos
límites a través de una bomba. Esta bomba toma el agua de una fuente sin determinar
y que no viene al caso.
Cómo programar Step 7 y no morir en el intento
37
La cuestión es que hay que hacer:
 A través de una maneta de OFF/ON, poner el sistema en posibilidad de trabajar.
Cuando se pasa al estado ON, la máquina se pone en modo manual.
 El modo manual es simple. Si se activa el botón de marcha de la bomba, esta
bombea sin límites. Si se vuelve a pulsar se para.
 El modo automático se pone cuando se pulsa el botón de auto/man. Tras pasar
a auto hay que pulsar el botón de marcha de la bomba y esta trabajará entre el
mínimo y el máximo. Cuando pierde el mínimo se activa y cuando llega al
máximo se para.
 Si se vuelve a pulsar el botón de auto/man se pasa de nuevo a manual y la
bomba se para.
 Hay una serie de leds para indicar los estados de auto, manual, marcha y paro
de la bomba.
Para visualizar todo esto mejor, te he preparado un vídeo donde se explica el ejercicio
(sin solución).
Cómo programar Step 7 y no morir en el intento
38
Resolución del ejercicio
En el siguiente vídeo puedes ver la resolución del ejercicio.
Cómo programar Step 7 y no morir en el intento
39
7. Multiinstancias en Step 7
¿Qué son multiinstancias en Step 7?
Empezaremos definiendo qué es una instancia en programación. De Step 7 o de Visual
Basic. Eso es lo de menos.
El vocablo instancia proviene de la programación orientada a objetos y de las clases.
Sin meterme en berenjenales que no domino es mejor explicarlo mediante un ejemplo:
Una clase podríamos definirla como el concepto fantasma del Pacman con todas sus
cualidades, propiedades y funcionalidades.
Una instancia sería uno de los fantasmas en concreto sin tener en cuenta el color. Al
pertenecer a la clase fantasma, tendrán las mismas propiedades y funcionalidades entre
ellos, pero no los mismos valores en cada uno de los campos, por así decirlo. Así por
ejemplo pueden tener diferente color pero siguen perteneciendo a la misma clase.
Llevándolo a nuestro campo, crear multiinstancias en Step 7 va a ser crear nuevos
objetos que hagan referencia a la clase a la que pertenecen.
Así, la clase puede ser TON (un temporizador IEC como retardo a la conexión) y lo que
haremos será crear tantas instancias de ese TON como necesitemos. Es decir,
crearemos esos temporizadores de verdad dentro de nuestros FB.
Como la creación de estos TON puede ser múltiple o conjugada con la creación de otras
instancias diferentes, se denominarán multiinstancia.
Mucho rollo esto de las multiinstancias en Step 7 ¿no?
Bueno.
Si lo resumimos y no nos andamos con tantas tonterías... multiinstancia en Step 7 es
que puedes incrustar en las variables STAT de un FB otros FB más pequeños como por
ejemplo el TON o TOF de los que hemos hablado.
¿A que ahora lo has entendido a la primera? Seguro que sí.
Como vas a ver a continuación, lo más típico es incrustar instancias de temporizadores
IEC. Digo lo típico por veces que sucede esto respecto a otro tipo de instancias, no
porque no se puedan hacer de otro tipo.
Cómo programar Step 7 y no morir en el intento
40
Video sobre multiinstancias en Step 7
Como siempre, lo mejor es verlo en un vídeo porque es como mejor se va a entender el
concepto que es sencillo pero hay que haberlo visto antes.
Cómo programar Step 7 y no morir en el intento
41
8. Funciones en PLC Siemens con ejemplo de semáforo
¿Qué son los FC en Step 7?
Las funciones en PLC Siemens son similares a las funciones en otros lenguajes de
programación. En los FC en Step 7 se hace la llamada con unas variables de entrada y
tras su ejecución nos devuelve unos valores para las variables de salida. Nada nuevo
en el firmamento.
Pero los FC en Step 7 no se usan exclusivamente para calcular una salida, sino para
la organización del programa dentro del proyecto. Es decir, se realizarán llamadas a los
FC sin valores de entrada ni valores de salida si bien adicionalmente puede que se usen
las variables temporales para uso interno dentro del FC.
FC Vs. FB
El FC en Step 7 en general se usa más que los FB por par de razones: no necesita
asociar un DB (y por tanto ahorras memoria y es más limpio el programa) y no siempre
es necesario la re-utilización del código. Si es necesario almacenar datos, podemos
hacerlo en marcas o en DB globales.
Por tanto, los FC en Step 7 no presentan grandes desventajas frente a los FB más allá
que los FB son para una programación orientada a objetos, en los que el bloque FB
represente un objeto genérico (por ejemplo, un transportador o un variador) y se pueda
reutilizar ese bloque infinidad de veces a lo largo del programa con la peculiaridad de
necesitar almacenar datos de esos objetos. En este caso, sí que el FB es más indicado
que el FC.
Muy bien, pero ¿qué vamos a ver en este capítulo?
Evidentemente algo tenemos que hacer porque definir un poco lo que hace un FC de
poco o nada sirve si no avanzamos en el conocimiento de las funcionalidades de los
PLC de Siemens, que es de lo que se trata.
Como habrás visto en el título vamos a realizar un ejemplo de semáforo en Step
7. Normalmente este programa es de los primeros que se hacen con temporizadores…
pero ya haremos otros ejemplos cuando veamos los temporizadores de S7.
Lo vamos a hacer mediante una función y contando tiempo, que también sabe muy bien
el PLC.
Cómo programar Step 7 y no morir en el intento
42
¿En qué va a consistir el ejemplo del semáforo?
Básicamente vamos a tener un semáforo para los vehículos rodados el cual va a tener
sus tres colores (rojo, verde y ámbar) y otro para los peatones de color rojo y verde.
Además, el verde parpadeará cuando se vaya a acabar el tiempo en verde y tendrá un
botón de solicitud que si es pulsado, cambiará a verde para los peatones previo paso
del asociado a los vehículos por el amarillo. La pulsación del botón hará que se ilumine
el letrero de solicitud que se mantendrá iluminado hasta que se ponga en verde para el
peatón.
¿Qué herramientas vamos a necesitar para crear este FC en Step 7?
Para realizar este ejemplo vamos a ver algunos conceptos nuevos en Step 7 como son:
 Comparación
 Transferencia
 Conversión
 Marcas de ciclo
Durante las explicaciones del vídeo vas a poder ver cómo usar estos elementos
en nuestro ejemplo de FC en Step 7, que como verás es casi trivial. El único que tiene
un poco más de miga es el de conversión ya que sirve para tomar una variable y pasarla
a otra variable de otro formato. Me explico.
No es lo mismo tener un “-2″ en entero, que un “-2″ en doble entero, lo mismo que no
es que tener un “-2″ en real. Para empezar, porque en entero ocupa un Word mientras
que en doble entero y en real ocupan 4 bytes (doble Word). Para continuar, porque en
real, no tienes un “-2″, sino que tienes un “-2.0″, que es igual, pero no es lo mismo que
dirían Martes y Trece.
Cada tipo de variable además de ocupar una serie de bytes, (2, 4 o los que sean) tienen
un formato en particular (hay que poner la mantisa, el signo etc.), por lo que para poder
hacer operaciones matemáticas entre dos variables, tienen que estar en el mismo
formato ya que si no, pueden pasar dos cosas:
 En FUP o KOP no te dejará realizar la operación matemática ya que no son
variables con el mismo formato.
 En AWL sí que podrás, pero la que puedes montar con el PLC si no lo haces
bien la recordarás durante tiempo.
Como nosotros estamos empezando y estamos programando nuestro PLC en KOP, no
vamos a poder cometer errores a la hora de sumar, ya que el propio Step 7, no nos lo
va a permitir.
Finalmente, sobre la marca de ciclo puedes encontrar más información además de en
el vídeo en 3 formas de crear marcas cíclicas en Step 7 del capítulo siguiente.
Cómo programar Step 7 y no morir en el intento
43
Veamos el vídeo para finalizar donde crearemos nuestro proyecto en WinCC y vamos
a poner los requerimientos y dar con la solución.
Cómo programar Step 7 y no morir en el intento
44
9. FC o FB ¿Cuál de los dos usar?
Cuando empiezas a programar tal vez te surja una duda cuasi existencial… ¿Qué es
mejor usar? ¿FC o FB?… pues básicamente, depende.
En general con ambos se pueden hacer lo mismo. Cambia la forma. Pero digamos que
no están pensados para lo mismo.
Los FC serán ideales para generar resultados que no tengamos que almacenar. Dentro
de la automatización lo usaremos en la lógica general de los programas. Pueden ser
usados en líneas generales de actuación de las máquinas, secuencias e interrelación
entre ellas.
Los FB son como los FC, pero vitaminados. No solamente podremos hacer lo que
hacemos con los FC sino que además podremos almacenar valores ya que tienen
asociados DB. Además podremos usar los temporizadores IEC de forma muy sencilla
evitando complicarnos con los temporizadores de S5 para nuestros propósitos. Serán
adecuados para el manejo de motores, variadores etc. ya que podremos juntar similares
funcionalidades bajo el mismo FB usando DB para cada uno de ellos.
FC o FB
Está claro entonces… uso FB siempre y ya está.
Esta es la conclusión a la que fácilmente podrías llegar tras lo expuesto. Antes de dar
este paso hay que tener en cuenta que los FB siempre han de tener un DB asociado.
Eso en sí mismo no es un problema, pero puede serlo si el programa es extenso y has
de tener muchas funciones para una correcta organización del programa. El uso
innecesario de FB hacen que se ocupe memoria de forma innecesaria ya que generarás
un DB lo necesites o no.
Si todo lo haces con FB, y el proyecto es suficientemente complejo, tendrás un sinfín de
DB. Hay que elegir por tanto los FB en general cuando:
El FB controle un actuador o motor y tengas varios del mismo tipo de tal forma que
puedas reutilizar el FB no necesitando usar marcas. Esto hace que sea más fácil de
mantener y más difícil de cometer errores ya que no necesitarás tener en cuenta qué
marcas están usadas y cuáles no.
Necesitas guardar datos de forma permanente. Qué mejor hacerlo a través de un FB ya
que así tienes un DB asociado donde guardar estos datos.
Si vas a usar el FB con diferentes motores por ejemplo, y necesitas temporizadores.
Puedes usar los temporizadores IEC y usarlos como multiinstancias.
¿Cuándo usaremos los FC entonces?
Para planteamientos generales de las aplicaciones, o para actuadores que no necesiten
ser reutilizados.
Cómo programar Step 7 y no morir en el intento
45
Funciones aritméticas, trigonométricas o de otra índole que no necesiten almacenar los
datos y que simplemente nos devuelva un valor o que se utilicen marcas globales.
En definitiva, habrá que evaluar cada caso para saber qué usar. Por lo general
personalmente uso más los FC que FB, pero dependerá del proyecto en concreto.
Para finalizar adjunto un video en el cual presento las diferencias entre los FB y los FC
en ejemplos muy sencillos: un sumador, un totalizador de tiempo y el uso de
temporizadores. Ahí quiero mostrarte las diferencias entre ambos para que puedas intuir
con más facilidad cuál es el concepto para cada caso.
Cómo programar Step 7 y no morir en el intento
46
10. Cómo crear la estructura de un programa en
ladder
La programación en ladder es sin duda la programación de autómatas programables
más extendida, incluidos los PLC Siemens.
Esta entrada va a ser más de estilo de programación que de herramientas disponibles
dentro de step 7.
Hay muchos programadores que son defensores y enamorados de Grafcet. A mí
personalmente como programador y mantenedor de las instalaciones no me gusta.
Puede ser que por desconocimiento, por falta de uso ya que trabajo con ello pero muy
muy poco, o por una manía personal.
La cuestión es que para el grado de automatización en el que me muevo dentro de este
sector de la automoción no he encontrado aún una razón por la que usar Grafcet ya que
con un ladder bien estructurado es más que suficiente.
¿Qué ventajas tiene una programación en ladder para estructurar un
programa en Step 7?
 Es universal. Lo va a entender todo el mundo y todo es estándar con la programación
de escalera normal.
 No necesita un software especial de pago como es Grafcet.
 A mi juicio más fácil de seguir si está bien estructurado.
 Muy compacto. Más que los diagramas de bloques, por ejemplo.
¿Cómo funciona este tipo de programación en ladder?
Lo primero que he de decir es que todo esto entra dentro de la forma de programar de
cada uno. Yo te voy a contar esta forma, que la puedes adaptar, copiar literalmente o
crear una nueva desde cero. Es una forma de hacerlo, nada más. No es palabra de
Dios, ni mucho menos.
Básicamente la idea es coger tu máquina y dividirla en movimientos lo más sencillos
posibles pero que tengan una entidad suficiente como para ser merecedor de dedicarle
un par de FC sólo para él. Nada nuevo.
Lo siguiente es asignar una palabra o una doble palabra para este FC.
Finalmente la idea es establecer unas condiciones iniciales de arranque de la secuencia.
Cuando se cumpla, haremos un SET del primer bit. Imaginemos la M0.0.
Esto arrancaría la secuencia. Una vez iniciada esta M0.0 realizará una acción simple.
Cuando se cumpla la acción asociada y las condiciones de control de esta M0.0,
haremos un SET de la M0.1 y haremos un RESET de M0.0.
Cómo programar Step 7 y no morir en el intento
47
Sucesivamente, con las condiciones del siguiente estado, activaremos la M0.2 y
resetearemos el M0.1 y así sucesivamente.
Ahora bien, para que este sistema funcione bien, sea claro y no se complique más de
lo necesario la programación en ladder, las condiciones deben estar lo más resumidas
posibles (usando variables intermedias) y no se deben activar las salidas.
Para ello vamos a dividir esta parte de la automatización en dos:
Un FC para la lógica explicada y las condiciones de inicio/finalización de los segmentos
Un FC/FB para las salidas de los actuadores con una pequeña lógica de la parte auto
con la de manual.
Cómo programar Step 7 y no morir en el intento
48
Lógicamente, y dependiendo de cada caso, puede que haya varios FC para la lógica
pero solo una para las salidas, por ejemplo. Lo importante es el concepto de separar la
lógica por un lado y las salidas por otro.
El vídeo
Como siempre, te dejo con un vídeo explicativo donde se ve mejor lo ya comentado.
Cómo programar Step 7 y no morir en el intento
49
11. Formas de crear marcas cíclicas en Step 7
En este capítulo vamos a ver formas fáciles para crear marcas cíclicas que luego
podamos usar a lo largo y ancho de nuestro programa. Así podremos usar:
 Las marcas de ciclo
 Temporizadores
 Crear la marca en OB cíclicos
Como digo la idea es que podamos hacer llamadas o acciones a tiempos
fijos. Normalmente, y si necesitamos una precisión alta, tendremos que realizar la
acción o llamadas desde OB cíclicos cuya frecuencia habremos fijado de antemano al
configurar el HW. Pero no es la única forma de realizar acciones a tiempos fijos.
Claro que tiempos fijos, más o menos, porque lo que te voy a mostrar a continuación es
para ser usado desde el OB1 o FC/FB que dependan del OB1 y por tanto el error que
vamos a introducir es del orden del tiempo de ciclo total del PLC.
Esto implica que si queremos flancos cíclicos a tiempos de 100ms, no uses jamás el
OB1 ya que el error que estás cometiendo el del orden de magnitud que la periodicidad
deseada, es decir, si quieres tiempos fijos y la llamada es del OB1 cuyo tiempo de ciclo
varía entre 10 y 30ms, pues hombre, menos preciso, es cualquier cosa.
Ahora bien, si tus marcas cíclicas van a ser del orden de segundos, la cosa cambia ya
que el error que vas a cometer es pequeño. En cualquier caso, usaras este tiempo de
marcas cíclicas en acciones en el que la precisión no sea crucial. Creo que está claro el
concepto.
Marcas cíclicas del PLC
Haciendo un corta y pega de la ayuda de Siemens, esta dice lo siguiente sobre las
marcas de ciclo:
Las marcas de ciclo son marcas que cambian periódicamente su valor binario (relación
impulso – pausa: 1:1)
¿A que ahora te has quedado más tranquilo? Yo también.
Afortunadamente, tiene una segunda ayuda en la cual muestra una tabla con los
periodos de estas marcas.
Cómo programar Step 7 y no morir en el intento
50
Como veis va desde una frecuencia de 0,5Hz hasta los 10Hz pasando por valores
intermedios. Visto desde el lado del periodo, va desde valores de 0,1 segundos hasta
los 2 segundos.
¿Cómo se activa?
Configurándolo desde el configurador de hardware. Tendrás que abrir el configurador
de HW, abrir la CPU e ir a la pestaña de Ciclo /Marca de ciclo. Abajo tienes que
seleccionar el checkbox de marca y seleccionar el número de marca que quieres usar.
Ojo porque es un byte, no un Word. Tenlo en cuenta. Hay 8 marcas de ciclo.
Cómo programar Step 7 y no morir en el intento
51
¿Y ahora?
Pues tienes que guardarlo, compilar y cargárselo al PLC. Ojo porque el PLC va a pasar
a STOP, así que:
Siempre que empieces un proyecto en Step 7, selecciona y configura
un byte para tu marca de ciclo
No cuesta nada, y así no tendrás el pequeño inconveniente de que cuando lo quieras
usar, pues no podrás porque la máquina estará en marcha y no la puedes parar hasta
dentro de no sé cuántos millones de horas… y todo por no haber elegido una marca
cuando configuraste el hardware.
¿Adivinas a quién le ha podido pasar algo así alguna vez? Pues eso.
Marcas cíclicas usando temporizadores
Otra forma común de realizar ondas cuadradas es con dos temporizadores. La forma de
construirlo es muy sencillo como muestra en la imagen. Ambos temporizadores se irán
alternando en el contaje del segundo.
El temporizador T2 tendrá un periodo de 1s su salida a cero y un periodo de su salida a
1. El T1 por su parte estará siempre a cero salvo un instante (un ciclo de scan) que será
el desencadenante de tirar el T2 y que vuelva a empezar.
Así, haciendo la lectura del T2, tendremos una marca cíclica de periodo 1segundo en
este caso. La ventaja de este, es que se puede variar la relación de tiempo ON/OFF
jugando con los tiempos del T1 y del T2.
Marcas cíclicas usando un OB cíclico
Una forma de crear una marca cíclica es usar un OB cíclico. Imaginemos que queremos
cada 0,5 segundos. Cargaremos un OB cíclico que fijaremos a 500ms. Luego haremos
un súper código. Imaginemos que queremos hacerlo con la M50.0:
UN M50.0
Cómo programar Step 7 y no morir en el intento
52
= M50.0
Escalofriante ¿eh? Es tan simple que da miedo. Cada 500 ms irá cambiando de estado.
Brillante.
Hombre, usaremos los OB cíclicos aprovechando que ya exista, pero si te quieres pegar
un lujo, es una forma de hacerlo.
Cómo programar Step 7 y no morir en el intento
53
Teniendo OB cíclicos, ¿no hay más formas?
Pues hombre, sí. Por ejemplo, creando contadores de 1 a 10 en el OB35 y si está fijado
a 100ms por ejemplo, poniendo a uno una marca cuando el contador sea superior o
igual a 5 y reseteando cuando sea igual o superior a 10.
Bueno, como ves hay muchas formas de crear marcas cíclicas. Espero que te haya sido
de utilidad y que lo uses mucho en tus proyectos.
Cómo programar Step 7 y no morir en el intento
54
12. Algebra booleana (II) – AWL en Step 7
¿Recuerdas al señor de la izquierda? Lo vimos en
el capítulo de álgebra de Boole. Hoy vamos a ver
un poco de lógica binaria de AWL en Step 7.
Sí. Antes de ver los temporizadores.
¿Por qué antes?
Pues porque cuando veamos los temporizadores,
habrá que verlos también en AWL y hombre, no
quiero que te dé un derrame cerebral así de
primeras. Pero lo veremos enseguida.
AWL en Step 7
Deberíamos empezar por ver qué es el AWL.
El AWL no es más que uno de los tres lenguajes básicos de Step 7.
Es la mamá de todos los lenguajes en Step 7. Todos finalmente se van a traducir a AWL
y todo aquello que no se pueda programar en AWL es que simplemente no lo vas
a poder programar. Otra cosa es los sudores que te costaría hacer directamente en
AWL tareas complejas, pero por poder, se podría.
Con AWL en Step 7 se pueden hacer auténticas filigranas ahorrando código a más no
poder. Digamos que es la forma de programar más compacta de todas (en general).
Si hiciéramos una comparación con otros lenguajes, tendríamos lenguajes de alto nivel
como el Pascal (SCL en nuestro caso) y luego tendríamos lenguajes de bajo nivel como
Ensamblador, que en nuestro caso sería el AWL.
Puede que la comparación no sea lo más acertada del mundo, pero suficientemente
buena a mi juicio para que te hagas una idea.
¿Ensamblador? Ya me estas asustando…
No te asustes, que no es para tanto. Digo que es similar a ensamblador en el sentido de
que es un lenguaje básico, con instrucciones primarias que se ejecutan “a pelo” le
pongas lo que le pongas por delante.
Por poner un ejemplo. Ya hemos dicho con anterioridad que no puedes comparar en
FUP y en KOP valores enteros con reales, por poner un ejemplo. En AWL sí se puede.
Cómo programar Step 7 y no morir en el intento
55
¿Tiene sentido?
Ninguno.
Pero AWL no entiende de variables enteras, entiende de bits. Y si tú le indicas que haga
una suma entera de dos variables, lo hará. Si el formato de estas variables está correcto
todo irá bien. Si está mal pues el PLC hará cosas muy pintorescas y divertidas… los
primeros dos minutos.
Después de 15 minutos sin tener ni pajolera idea de qué pasa, deja de tenerla. Con el
tiempo te darás cuenta de que no tiene nada de gracia ya desde el principio.
Frustraciones personales a parte, con todo esto quiero que te quedes con dos cosas:
 El AWL es el lenguaje base del resto.
 Todo es traducible a AWL, pero no al revés.
La primera parte creo que ha quedado clara. La segunda, la vas a ver clara enseguida.
Los lenguajes FUP y KOP cuando lo traduces a AWL crean instrucciones que a veces
son inservibles de cara a la ejecución del programa pero necesarios para la propia
integridad del lenguaje FUP y KOP. Necesitan de esas instrucciones para dar
consistencia a lo que estás dibujando y de ahí que creen líneas que en principio no
serían necesarias para un funcionamiento idéntico realizando el programa directamente
en AWL.
El problema está que si realizas el programa en AWL directamente, si quieres traducirlo
a KOP, por decir uno, el editor no va a tener la capacidad de entender qué diantre
quieres hacer. Y por tanto, no podrá traducirlo.
Por tanto siempre podrás traducir FUP y KOP a AWL (más o menos depurado) pero en
general, no podrás traducir código AWL a FUP y a KOP. Es así. Asúmelo.
Así que empecemos con las cosas básicas que debes tener claras antes de empezar a
programar en AWL.
Instrucciones básicas para programar AWL en Step 7
Las instrucciones básicas van a ser:
 U para hacer un AND
 O para hacer un OR
 X para hacer una O exclusiva
 = para igualación
¿No hay negadas?
Veo que estás despierto. Efectivamente. También tendremos:
 UN para hacer un AND negado
 ON para hacer un OR negado
 XN para hacer una O exclusiva negada.
Luego lógicamente tendremos paréntesis (). Pero eso más tarde.
Cómo programar Step 7 y no morir en el intento
56
¿No hay más?
Sí que hay más. El Set, Reset, flancos… pero de momento, quédate con los básicos
que son los de ahí arriba.
Operaciones de Y lógica.
Esto lo vas a pillar enseguida verás. Imagina que tienes dos entradas que cuando están
las dos a true (1), tenemos que activar una salida. La lógica sería así:
U E 0.0
U E 0.1
= A 1.0
Es decir, iniciamos el segmento leyendo lo que hay en el E0.0 y le hacemos un AND
con el E0.1 y su resultado se lo asignamos a la salida A1.0.
O de otra forma, cargamos el E0.0 en el RLO y luego hacemos un AND de la E0.1 con
el RLO y se lo asignamos a la A1.0
Ya bien, pero estooo, una cosita que te quería comentar…
¿Qué es el RLO?
¿Siglas chulas eh? ¿De alguna organización?
Pues no. El RLO no es más que una variable que almacena el valor de una
operación binaria. Es especialmente relevante en la programación de AWL en Step 7.
La definición ha quedado chulísima pero no he entendido ni papa.
A ver. En el ejemplo de la Y lógica hemos visto primero una
U E0.0
Bien. Como hemos dicho que la U es un AND con lo que tenga el RLO (V ó F). Como
no hay operación previa, entonces lo que hace es leer el valor de la E0.0 y la transfiere
al RLO. Imaginemos que tiene un cero. Luego el RLO valdrá cero.
Luego imaginemos que la E0.1 está a uno y hace un
U E0.1
Es decir, hace un AND con lo que tenga el RLO tras haber ejecutado la operación
anterior. La E0.1 está a uno, pero el RLO está a cero, luego el resultado nuevo será cero
y se lo cargará nuevamente al RLO.
= A1.0
Finalmente, toma el valor del RLO y se lo transfiere a la A1.0
Imaginemos que ambas señales estuvieran a uno.
Cómo programar Step 7 y no morir en el intento
57
Entonces, inicialmente al leer la E0.0 el RLO pasaría a valer uno. Luego haría un AND
entre el RLO y la E0.1. Como ambas están a uno, el resultado lógico sería uno, que
sería nuevamente almacenado en el RLO. Finalmente, cargaría ese uno en la salida
A1.0
¿Capito?
Operación O lógica
En buena lógica (nunca mejor dicho), podrías pensar que la forma correcta de hacer un
OR sería:
U E0.0
O E0.1
= A1.0
Y eso estaría bien. Pero la forma más mejó sería haciendo:
O E0.0
O E0.1
= A1.0
¿Por qué?
Lógicamente hacen lo mismo. Pero me gusta más hacerlo así porque de hecho, cuando
traduces un OR de KOP a AWL así lo representa. Mejor que escribamos todos de la
misma manera ¿no?
Bueno, al grano. ¿Adivinas como actuaría no?
Inicialmente haría un:
U E0.0 // O E0.0
Como en el caso anterior leería el estado del E0.0 y lo volcaría en el RLO (imaginemos
un cero).
Luego un:
O E0.1
Y aquí haría un OR con el RLO. Imaginemos que el E0.1 estuviera a uno. El resultado
del OR sería un bonito uno.
= A1.0
E igualamos el uno a la salida A1.0.
¿Sencillo no? Vayamos ahora con los paréntesis.
Cómo programar Step 7 y no morir en el intento
58
Paréntesis en AWL en Step 7
Como puedes imaginar, en cuanto queramos realizar combinaciones un poco más
elaboradas necesitaremos paréntesis para poder realizar estas lógicas.
Así, dispondremos de las siguientes operaciones:
 U( ..) //UN(..) que valdrá para realizar un (N)AND con el contenido interior al
paréntesis
 O(..) // ON(..) que valdrá para realizar un (N)OR con el contenido interior del
paréntesis.
 X(..) // XN(..) que valdrá para realizar una (N)XOR con el contenido interior del
paréntesis
En definitiva en lo que se basa es en realizar la combinatoria interior del paréntesis y
luego ejecutar la operación asociada al paréntesis.
Los paréntesis pueden anidarse metiendo paréntesis dentro de otros paréntesis.
Así, podríamos hacer algo similar a lo anteriores ejemplos:
U(
U E0.0
O E0.1
)
O(
U E0.2
U E0.3
)
= A1.0
En este caso primero resolvería la combinatoria interior de los paréntesis por separado
y luego realizaría el OR entre el resultado de los paréntesis.
Hay que añadir que el caso del OR es un poco especial ya que si dentro del paréntesis
del OR la combinatoria es de AND exclusivamente, el paréntesis se podría haber
obviado quedando esa parte así:
O
U E0.2
U E0.3
Y funcionaría exactamente igual.
Cómo programar Step 7 y no morir en el intento
59
Operandos de cierre de consulta
A estas alturas de la película te estarás preguntando… si los resultados de la
combinatoria se van almacenando en el RLO, ¿qué pasa después de una igualación si
quiero empezar a realizar una nueva combinatoria? Pues efectivamente después de los
operandos:
 Igualación (=)
 Set (S)
 Reset (R)
Con esos operandos, se cierra la consulta actual y se abre una nueva (además del
inicio del programa).
Da igual por tanto lo siguiente que hagas (U, O, UN…) porque lo que se hará es una
lectura del operando en el RLO. Es decir, si la siguiente a una igualación es
…
= A1.0
UN E1.0
U E1.1
= A1.2
Lo que hará es leer el estado de la E1.0, le cambiará el signo y lo cargará en el RLO.
No hará un NAND con nadie. Simplemente realizará la carga en el RLO.
Ojo. Un cambio de segmento no es un inicio de programa. Por tanto si la última
instrucción de un segmento es la lectura de un bit haciendo un U E0.7, este afecta al
siguiente segmento. A efectos prácticos es como si lo hubieras escrito al principio del
nuevo segmento.
Finalmente vamos a ver un vídeo como siempre, explicando lo visto hasta ahora.
Cómo programar Step 7 y no morir en el intento
60
13. Step 7… AWL, FUP o KOP ¿Cuál elijo?
Antes de responder a la pregunta de qué lenguaje escoger en Step 7, repasemos un
poco de qué lenguajes disponemos.
 FUP
 KOP
 AWL
FUP
Es un lenguaje de Step7 gráfico que utiliza los cuadros del álgebra booleana para
representar la lógica. Asimismo, permite representar funciones complejas (p.ej.
funciones matemáticas) mediante cuadros lógicos.
Tiene la ventaja de ver agrupados por bloques las diferentes lógicas y tener bloques
complejos. Cuando hay mucha lógica booleana en serie suele ser más compacto y más
fácil de ver el segmento completo.
KOP
Es un esquema de contactos, escalera o ladder. Es un lenguaje de Step 7 gráfico
y probablemente el más extendido en todos los lenguajes de programación y por tanto
el más similar a otros.
Probablemente es el más fácil de entender por personal proveniente de la industria
eléctrica y técnicos eléctricos.
En definitiva, es la representación que habría que cablear si se quisiera hacer el mismo
programa que realizas con el PLC.
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES
Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES

Más contenido relacionado

Similar a Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES

Similar a Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES (20)

Aprendiendo java
Aprendiendo javaAprendiendo java
Aprendiendo java
 
Aprendiendo java estudiantes_profesores
Aprendiendo java estudiantes_profesoresAprendiendo java estudiantes_profesores
Aprendiendo java estudiantes_profesores
 
Aprendiendo java
Aprendiendo javaAprendiendo java
Aprendiendo java
 
Aprendiendo java
Aprendiendo javaAprendiendo java
Aprendiendo java
 
Manual activ inspire
Manual activ inspireManual activ inspire
Manual activ inspire
 
Manual supervivencia e_admin
Manual supervivencia e_adminManual supervivencia e_admin
Manual supervivencia e_admin
 
Manual Moodle
Manual MoodleManual Moodle
Manual Moodle
 
Jobeet
JobeetJobeet
Jobeet
 
Symfony. La guia definitiva
Symfony. La guia definitivaSymfony. La guia definitiva
Symfony. La guia definitiva
 
Manual ActivInspire (Emiliocortizas)
Manual ActivInspire (Emiliocortizas)Manual ActivInspire (Emiliocortizas)
Manual ActivInspire (Emiliocortizas)
 
Libro 2 de informatica
Libro 2 de informatica Libro 2 de informatica
Libro 2 de informatica
 
Aprendiendo java
Aprendiendo javaAprendiendo java
Aprendiendo java
 
MANUAL DE JAVA 2
MANUAL DE JAVA 2MANUAL DE JAVA 2
MANUAL DE JAVA 2
 
JAVA 3
JAVA 3JAVA 3
JAVA 3
 
Kindle user guide_2nd_edition_es
Kindle user guide_2nd_edition_esKindle user guide_2nd_edition_es
Kindle user guide_2nd_edition_es
 
Funciones ejecutivas
Funciones  ejecutivas Funciones  ejecutivas
Funciones ejecutivas
 
Libro 100 experimentos sencillos fisica y quimica
Libro 100 experimentos sencillos fisica y quimicaLibro 100 experimentos sencillos fisica y quimica
Libro 100 experimentos sencillos fisica y quimica
 
Joomla gran
Joomla granJoomla gran
Joomla gran
 
Guia javaparadocentes2012
Guia javaparadocentes2012Guia javaparadocentes2012
Guia javaparadocentes2012
 
240 ideas de negocios
240 ideas de negocios240 ideas de negocios
240 ideas de negocios
 

Más de EMERSON EDUARDO RODRIGUES

STEP 7 - AWL para S7-300 y S7-400 emerson eduardo rodrigues
STEP 7 - AWL para S7-300 y S7-400 emerson eduardo rodriguesSTEP 7 - AWL para S7-300 y S7-400 emerson eduardo rodrigues
STEP 7 - AWL para S7-300 y S7-400 emerson eduardo rodriguesEMERSON EDUARDO RODRIGUES
 
PLC SCUBE STANDARD PROGRAMING EMERSON EDUARDO RODRIGUES
PLC SCUBE STANDARD PROGRAMING EMERSON EDUARDO RODRIGUESPLC SCUBE STANDARD PROGRAMING EMERSON EDUARDO RODRIGUES
PLC SCUBE STANDARD PROGRAMING EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
The+48+Laws+Of+Power EMERSON EDUARDO RODRIGUES
The+48+Laws+Of+Power EMERSON EDUARDO RODRIGUESThe+48+Laws+Of+Power EMERSON EDUARDO RODRIGUES
The+48+Laws+Of+Power EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
Basica_Documentacion EMERSON EDUARDO RODRIGUES
Basica_Documentacion EMERSON EDUARDO RODRIGUESBasica_Documentacion EMERSON EDUARDO RODRIGUES
Basica_Documentacion EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
Avanzado_Documentacion_EMERSON EDUARDO RODRIGUES
Avanzado_Documentacion_EMERSON EDUARDO RODRIGUESAvanzado_Documentacion_EMERSON EDUARDO RODRIGUES
Avanzado_Documentacion_EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
Tratamiento Digital de Señales__EMERSON EDUARDO RODRIGUES.pdf
Tratamiento Digital de Señales__EMERSON EDUARDO RODRIGUES.pdfTratamiento Digital de Señales__EMERSON EDUARDO RODRIGUES.pdf
Tratamiento Digital de Señales__EMERSON EDUARDO RODRIGUES.pdfEMERSON EDUARDO RODRIGUES
 
DICIONARIO_DICIONARIO_ITALIANO_PORTUGUES EMERSON EDUARDO RODRIGUES
DICIONARIO_DICIONARIO_ITALIANO_PORTUGUES EMERSON EDUARDO RODRIGUESDICIONARIO_DICIONARIO_ITALIANO_PORTUGUES EMERSON EDUARDO RODRIGUES
DICIONARIO_DICIONARIO_ITALIANO_PORTUGUES EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
penetration test essentials comptia EMERSON EDUARDO RODRIGUES
penetration test essentials comptia EMERSON EDUARDO RODRIGUESpenetration test essentials comptia EMERSON EDUARDO RODRIGUES
penetration test essentials comptia EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
compTIA guide to get the CERTIFICATION EMERSON EDUARDO RODRIGUES
compTIA guide to get the CERTIFICATION EMERSON EDUARDO RODRIGUEScompTIA guide to get the CERTIFICATION EMERSON EDUARDO RODRIGUES
compTIA guide to get the CERTIFICATION EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
11. EJERCICIOS PRACTICOS DE AUTOMATIZACION - AUTOMATI EMERSON EDUARDO RODRIGUES
11. EJERCICIOS PRACTICOS DE AUTOMATIZACION - AUTOMATI EMERSON EDUARDO RODRIGUES11. EJERCICIOS PRACTICOS DE AUTOMATIZACION - AUTOMATI EMERSON EDUARDO RODRIGUES
11. EJERCICIOS PRACTICOS DE AUTOMATIZACION - AUTOMATI EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
10. SISTEMAS PROGRAMABLES AVANZADOS - AUTOMATI EMERSON EDUARDO RODRIGUES
10. SISTEMAS PROGRAMABLES AVANZADOS - AUTOMATI EMERSON EDUARDO RODRIGUES10. SISTEMAS PROGRAMABLES AVANZADOS - AUTOMATI EMERSON EDUARDO RODRIGUES
10. SISTEMAS PROGRAMABLES AVANZADOS - AUTOMATI EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
9. LIBRO SISTEMAS SECUENCIALES PROGRAMABLES - AUTOMATI EMERSON EDUARDO RODRIGUES
9. LIBRO SISTEMAS SECUENCIALES PROGRAMABLES - AUTOMATI EMERSON EDUARDO RODRIGUES9. LIBRO SISTEMAS SECUENCIALES PROGRAMABLES - AUTOMATI EMERSON EDUARDO RODRIGUES
9. LIBRO SISTEMAS SECUENCIALES PROGRAMABLES - AUTOMATI EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
8. LIBRO PROGRAMACION DE CONTROLADORES AVANZADOS SIMATIC S7-1500 CON TIA PORT...
8. LIBRO PROGRAMACION DE CONTROLADORES AVANZADOS SIMATIC S7-1500 CON TIA PORT...8. LIBRO PROGRAMACION DE CONTROLADORES AVANZADOS SIMATIC S7-1500 CON TIA PORT...
8. LIBRO PROGRAMACION DE CONTROLADORES AVANZADOS SIMATIC S7-1500 CON TIA PORT...EMERSON EDUARDO RODRIGUES
 
6. LIBRO AUTOMATAS PROGRAMABLES Y SISTEMAS DE AUTOMATIZACION - AUTOMATI EMERS...
6. LIBRO AUTOMATAS PROGRAMABLES Y SISTEMAS DE AUTOMATIZACION - AUTOMATI EMERS...6. LIBRO AUTOMATAS PROGRAMABLES Y SISTEMAS DE AUTOMATIZACION - AUTOMATI EMERS...
6. LIBRO AUTOMATAS PROGRAMABLES Y SISTEMAS DE AUTOMATIZACION - AUTOMATI EMERS...EMERSON EDUARDO RODRIGUES
 
5. LIBRO APRENDA WINCC - AUTOMATI EMERSON EDUARDO RODRIGUES
5. LIBRO APRENDA WINCC - AUTOMATI EMERSON EDUARDO RODRIGUES5. LIBRO APRENDA WINCC - AUTOMATI EMERSON EDUARDO RODRIGUES
5. LIBRO APRENDA WINCC - AUTOMATI EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
4. LIBRO COMUNICACIONES INDUSTRIALES - AUTOMATISSANDRO EMERSON EDUARDO RODRIGUES
4. LIBRO COMUNICACIONES INDUSTRIALES - AUTOMATISSANDRO EMERSON EDUARDO RODRIGUES4. LIBRO COMUNICACIONES INDUSTRIALES - AUTOMATISSANDRO EMERSON EDUARDO RODRIGUES
4. LIBRO COMUNICACIONES INDUSTRIALES - AUTOMATISSANDRO EMERSON EDUARDO RODRIGUESEMERSON EDUARDO RODRIGUES
 
3. LIBRO AUTOMATAS PROGRABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL - A...
3. LIBRO AUTOMATAS PROGRABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL - A...3. LIBRO AUTOMATAS PROGRABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL - A...
3. LIBRO AUTOMATAS PROGRABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL - A...EMERSON EDUARDO RODRIGUES
 
2. LIBRO PROGRAMACION DE AUTOMATAS SIEMENS S7-300 Y S7-1500 EN AWL Y SCL - AU...
2. LIBRO PROGRAMACION DE AUTOMATAS SIEMENS S7-300 Y S7-1500 EN AWL Y SCL - AU...2. LIBRO PROGRAMACION DE AUTOMATAS SIEMENS S7-300 Y S7-1500 EN AWL Y SCL - AU...
2. LIBRO PROGRAMACION DE AUTOMATAS SIEMENS S7-300 Y S7-1500 EN AWL Y SCL - AU...EMERSON EDUARDO RODRIGUES
 

Más de EMERSON EDUARDO RODRIGUES (20)

emersoneduardorodrigues_curso-de-russo.pdf
emersoneduardorodrigues_curso-de-russo.pdfemersoneduardorodrigues_curso-de-russo.pdf
emersoneduardorodrigues_curso-de-russo.pdf
 
STEP 7 - AWL para S7-300 y S7-400 emerson eduardo rodrigues
STEP 7 - AWL para S7-300 y S7-400 emerson eduardo rodriguesSTEP 7 - AWL para S7-300 y S7-400 emerson eduardo rodrigues
STEP 7 - AWL para S7-300 y S7-400 emerson eduardo rodrigues
 
PLC SCUBE STANDARD PROGRAMING EMERSON EDUARDO RODRIGUES
PLC SCUBE STANDARD PROGRAMING EMERSON EDUARDO RODRIGUESPLC SCUBE STANDARD PROGRAMING EMERSON EDUARDO RODRIGUES
PLC SCUBE STANDARD PROGRAMING EMERSON EDUARDO RODRIGUES
 
The+48+Laws+Of+Power EMERSON EDUARDO RODRIGUES
The+48+Laws+Of+Power EMERSON EDUARDO RODRIGUESThe+48+Laws+Of+Power EMERSON EDUARDO RODRIGUES
The+48+Laws+Of+Power EMERSON EDUARDO RODRIGUES
 
Basica_Documentacion EMERSON EDUARDO RODRIGUES
Basica_Documentacion EMERSON EDUARDO RODRIGUESBasica_Documentacion EMERSON EDUARDO RODRIGUES
Basica_Documentacion EMERSON EDUARDO RODRIGUES
 
Avanzado_Documentacion_EMERSON EDUARDO RODRIGUES
Avanzado_Documentacion_EMERSON EDUARDO RODRIGUESAvanzado_Documentacion_EMERSON EDUARDO RODRIGUES
Avanzado_Documentacion_EMERSON EDUARDO RODRIGUES
 
Tratamiento Digital de Señales__EMERSON EDUARDO RODRIGUES.pdf
Tratamiento Digital de Señales__EMERSON EDUARDO RODRIGUES.pdfTratamiento Digital de Señales__EMERSON EDUARDO RODRIGUES.pdf
Tratamiento Digital de Señales__EMERSON EDUARDO RODRIGUES.pdf
 
DICIONARIO_DICIONARIO_ITALIANO_PORTUGUES EMERSON EDUARDO RODRIGUES
DICIONARIO_DICIONARIO_ITALIANO_PORTUGUES EMERSON EDUARDO RODRIGUESDICIONARIO_DICIONARIO_ITALIANO_PORTUGUES EMERSON EDUARDO RODRIGUES
DICIONARIO_DICIONARIO_ITALIANO_PORTUGUES EMERSON EDUARDO RODRIGUES
 
penetration test essentials comptia EMERSON EDUARDO RODRIGUES
penetration test essentials comptia EMERSON EDUARDO RODRIGUESpenetration test essentials comptia EMERSON EDUARDO RODRIGUES
penetration test essentials comptia EMERSON EDUARDO RODRIGUES
 
compTIA guide to get the CERTIFICATION EMERSON EDUARDO RODRIGUES
compTIA guide to get the CERTIFICATION EMERSON EDUARDO RODRIGUEScompTIA guide to get the CERTIFICATION EMERSON EDUARDO RODRIGUES
compTIA guide to get the CERTIFICATION EMERSON EDUARDO RODRIGUES
 
HHS_TOC_Glossary EMERSON EDUARDO RODRIGUES
HHS_TOC_Glossary EMERSON EDUARDO RODRIGUESHHS_TOC_Glossary EMERSON EDUARDO RODRIGUES
HHS_TOC_Glossary EMERSON EDUARDO RODRIGUES
 
11. EJERCICIOS PRACTICOS DE AUTOMATIZACION - AUTOMATI EMERSON EDUARDO RODRIGUES
11. EJERCICIOS PRACTICOS DE AUTOMATIZACION - AUTOMATI EMERSON EDUARDO RODRIGUES11. EJERCICIOS PRACTICOS DE AUTOMATIZACION - AUTOMATI EMERSON EDUARDO RODRIGUES
11. EJERCICIOS PRACTICOS DE AUTOMATIZACION - AUTOMATI EMERSON EDUARDO RODRIGUES
 
10. SISTEMAS PROGRAMABLES AVANZADOS - AUTOMATI EMERSON EDUARDO RODRIGUES
10. SISTEMAS PROGRAMABLES AVANZADOS - AUTOMATI EMERSON EDUARDO RODRIGUES10. SISTEMAS PROGRAMABLES AVANZADOS - AUTOMATI EMERSON EDUARDO RODRIGUES
10. SISTEMAS PROGRAMABLES AVANZADOS - AUTOMATI EMERSON EDUARDO RODRIGUES
 
9. LIBRO SISTEMAS SECUENCIALES PROGRAMABLES - AUTOMATI EMERSON EDUARDO RODRIGUES
9. LIBRO SISTEMAS SECUENCIALES PROGRAMABLES - AUTOMATI EMERSON EDUARDO RODRIGUES9. LIBRO SISTEMAS SECUENCIALES PROGRAMABLES - AUTOMATI EMERSON EDUARDO RODRIGUES
9. LIBRO SISTEMAS SECUENCIALES PROGRAMABLES - AUTOMATI EMERSON EDUARDO RODRIGUES
 
8. LIBRO PROGRAMACION DE CONTROLADORES AVANZADOS SIMATIC S7-1500 CON TIA PORT...
8. LIBRO PROGRAMACION DE CONTROLADORES AVANZADOS SIMATIC S7-1500 CON TIA PORT...8. LIBRO PROGRAMACION DE CONTROLADORES AVANZADOS SIMATIC S7-1500 CON TIA PORT...
8. LIBRO PROGRAMACION DE CONTROLADORES AVANZADOS SIMATIC S7-1500 CON TIA PORT...
 
6. LIBRO AUTOMATAS PROGRAMABLES Y SISTEMAS DE AUTOMATIZACION - AUTOMATI EMERS...
6. LIBRO AUTOMATAS PROGRAMABLES Y SISTEMAS DE AUTOMATIZACION - AUTOMATI EMERS...6. LIBRO AUTOMATAS PROGRAMABLES Y SISTEMAS DE AUTOMATIZACION - AUTOMATI EMERS...
6. LIBRO AUTOMATAS PROGRAMABLES Y SISTEMAS DE AUTOMATIZACION - AUTOMATI EMERS...
 
5. LIBRO APRENDA WINCC - AUTOMATI EMERSON EDUARDO RODRIGUES
5. LIBRO APRENDA WINCC - AUTOMATI EMERSON EDUARDO RODRIGUES5. LIBRO APRENDA WINCC - AUTOMATI EMERSON EDUARDO RODRIGUES
5. LIBRO APRENDA WINCC - AUTOMATI EMERSON EDUARDO RODRIGUES
 
4. LIBRO COMUNICACIONES INDUSTRIALES - AUTOMATISSANDRO EMERSON EDUARDO RODRIGUES
4. LIBRO COMUNICACIONES INDUSTRIALES - AUTOMATISSANDRO EMERSON EDUARDO RODRIGUES4. LIBRO COMUNICACIONES INDUSTRIALES - AUTOMATISSANDRO EMERSON EDUARDO RODRIGUES
4. LIBRO COMUNICACIONES INDUSTRIALES - AUTOMATISSANDRO EMERSON EDUARDO RODRIGUES
 
3. LIBRO AUTOMATAS PROGRABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL - A...
3. LIBRO AUTOMATAS PROGRABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL - A...3. LIBRO AUTOMATAS PROGRABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL - A...
3. LIBRO AUTOMATAS PROGRABLES SIEMENS GRAFCET Y GUIA GEMMA CON TIA PORTAL - A...
 
2. LIBRO PROGRAMACION DE AUTOMATAS SIEMENS S7-300 Y S7-1500 EN AWL Y SCL - AU...
2. LIBRO PROGRAMACION DE AUTOMATAS SIEMENS S7-300 Y S7-1500 EN AWL Y SCL - AU...2. LIBRO PROGRAMACION DE AUTOMATAS SIEMENS S7-300 Y S7-1500 EN AWL Y SCL - AU...
2. LIBRO PROGRAMACION DE AUTOMATAS SIEMENS S7-300 Y S7-1500 EN AWL Y SCL - AU...
 

Último

ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxvalenciaespinozadavi1
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Dr. Edwin Hernandez
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASPersonalJesusGranPod
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDEdith Puclla
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZgustavoiashalom
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesCarlosMeraz16
 

Último (20)

ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
PostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCDPostgreSQL on Kubernetes Using GitOps and ArgoCD
PostgreSQL on Kubernetes Using GitOps and ArgoCD
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
ANALISIS Y DISEÑO POR VIENTO, DE EDIFICIOS ALTOS, SEGUN ASCE-2016, LAURA RAMIREZ
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 

Cómo programar Step 7 y no morir en el intento EMERSON EDUARDO RODRIGUES

  • 1.
  • 2. Cómo programar Step 7 y no morir en el intento Aviso Legal Este libro se ha producido con pasión y esfuerzo por Iñigo Gútiez, dueño de los derechos de autor del mismo, Copyright 2014 Todos los derechos reservados. En este momento de finalizar el eBook, son incontables las horas que ha llevado confeccionarlo. El libro no es nada más que el compendio de un montón de entradas del blog http://programacionsiemens.com donde he dejado a lo largo de estos dos últimos años gran parte de mi tiempo libre de forma gratuita. Pero no es el caso de este libro electrónico. Te pido por ello que:  No copies partes de este eBook ni lo publiques con o sin atribución o créditos.  No publique este eBook en plataformas gratuitas. No es un libro cualquiera. Para empezar porque está en formato electrónico que si bien puedes imprimirlo, perdería toda su esencia al tener incrustados un montón de links a vídeos explicativos con ejemplos de programación. En segundo lugar porque los capítulos probablemente no sigan un orden teórico lógico ni lo pretenden. Son las transcripciones más o menos fidedignas de lo escrito en el blog y de ahí su singularidad. Finalmente porque toda la información aquí recogida ya ha sido publicada en el blog, por lo que no hay conocimiento nuevo expuesto a lo largo de las próximas ciento y pico páginas. Ni que decir tiene que Simatic Step 7 es una marca registrada por Siemens Agradecimientos y dedicatoria Mi primer agradecimiento es para ti por haber adquirido este ejemplar pudiendo haber seguido bebiendo exclusivamente del blog. Si no tuvieras interés por el blog y apreciaras el esfuerzo que supone su publicación difícilmente este libro hubiera visto la luz. Mi segundo agradecimiento es para Carlos de www.masvoltaje.com por las innumerables horas que hemos pasado charlando de lo humano y lo divino… hasta hemos buscado tiempo para hablar del blog. Aún lo seguimos haciendo. Por último, pero la primera en importancia, se lo dedico a mi mujer Susana por su infinita paciencia conmigo, que no siempre es fácil. Por sus consejos. Por su cariño y su dulzura. Por ser la mujer de mi vida.
  • 3. Cómo programar Step 7 y no morir en el intento Contenido Aviso Legal...................................................................................................................1 Agradecimientos y dedicatoria......................................................................................1 0. Prefacio. ..............................................................................................................12 ¿Qué es este libro?.................................................................................................12 ¿Qué NO es este libro?...........................................................................................12 ¿Necesitaré papel y pinturillas de colores? .............................................................12 ¿También WinCC?..................................................................................................13 ¿Qué temas contendrá el libro? ..............................................................................13 ¿Garantía?..............................................................................................................13 1. Introducción a la programación en Step 7............................................................14 Programación en Step 7..........................................................................................14 Estructura de la memoria. .......................................................................................14 Imagen de E/S ........................................................................................................15 E/S de la periferia....................................................................................................15 Marcas ....................................................................................................................15 Temporizadores y contadores. ................................................................................15 Módulos de datos (DB)............................................................................................16 Variables temporales...............................................................................................16 Módulos ..................................................................................................................17 Módulos de organización.........................................................................................17 Funciones (FC) .......................................................................................................18 Bloques de función (FB)..........................................................................................19 Módulos de datos (DB)............................................................................................21 Módulos de sistema. ...............................................................................................22 Ciclo del programa ..................................................................................................23 ¿Cómo se puede superar este tiempo?...................................................................24 2. Métodos de arranque: OB100, OB101 y OB102 ..................................................25 ¿Qué es un OB de arranque? .................................................................................25 Ahora sí, que la hemos liado.. quee ¿qué? .............................................................25 Arranque completo (arranque en caliente)...........................................................25 Arranque en frío...................................................................................................25 Rearranque..........................................................................................................25 3 métodos de arranque en Step7 ............................................................................26 OB100 para el arranque completo .......................................................................26 OB102 para el arranque en frío ...........................................................................26
  • 4. Cómo programar Step 7 y no morir en el intento OB101 rearranque...............................................................................................26 Programación del OB100 ........................................................................................26 3. El entorno de desarrollo de Step 7.......................................................................28 El entorno de desarrollo de Step 7 Simatic Manager...............................................28 El configurador de hardware ...................................................................................29 El configurador de redes .........................................................................................29 El editor de símbolos...............................................................................................30 El editor de código...................................................................................................30 Nuestro primer proyecto en Step 7 “HELLO WORLD!!”...........................................31 4. Álgebra booleana (lógica binaria) ........................................................................32 ¿Qué es el Álgebra booleana en Step 7?...............................................................32 ¿No hay más?.........................................................................................................32 Al grano...................................................................................................................33 ¿Cómo se hace un AND y un OR?..........................................................................33 5. Puertas lógicas NOR y NAND en S7 ...................................................................34 NAND......................................................................................................................34 NOR........................................................................................................................34 6. FB en Step 7 - Ejemplo de una bomba de agua...................................................36 FB en Step 7 ...........................................................................................................36 Ejemplo de maniobra de una Bomba de agua.........................................................36 Resolución del ejercicio...........................................................................................38 7. Multiinstancias en Step 7.....................................................................................39 ¿Qué son multiinstancias en Step 7? ......................................................................39 Mucho rollo esto de las multiinstancias en Step 7 ¿no? ..........................................39 Video sobre multiinstancias en Step 7.....................................................................40 8. Funciones en PLC Siemens con ejemplo de semáforo........................................41 ¿Qué son los FC en Step 7?...................................................................................41 FC Vs. FB ...............................................................................................................41 Muy bien, pero ¿qué vamos a ver en este capítulo? ...............................................41 ¿En qué va a consistir el ejemplo del semáforo? ....................................................42 ¿Qué herramientas vamos a necesitar para crear este FC en Step 7? ...................42 9. FC o FB ¿Cuál de los dos usar?..........................................................................44 FC o FB...................................................................................................................44 10. Cómo crear la estructura de un programa en ladder ........................................46 ¿Qué ventajas tiene una programación en ladder para estructurar un programa en Step 7?....................................................................................................................46 ¿Cómo funciona este tipo de programación en ladder?.......................................46 El vídeo...................................................................................................................48
  • 5. Cómo programar Step 7 y no morir en el intento 11. Formas de crear marcas cíclicas en Step 7......................................................49 Marcas cíclicas del PLC ..........................................................................................49 ¿Cómo se activa? ...................................................................................................50 ¿Y ahora? ...............................................................................................................51 Marcas cíclicas usando temporizadores..................................................................51 Marcas cíclicas usando un OB cíclico .....................................................................51 Teniendo OB cíclicos, ¿no hay más formas? ..........................................................53 12. Algebra booleana (II) – AWL en Step 7 ............................................................54 AWL en Step 7........................................................................................................54 ¿Ensamblador? Ya me estas asustando… .............................................................54 Instrucciones básicas para programar AWL en Step 7............................................55 ¿No hay negadas? ..............................................................................................55 ¿No hay más? .....................................................................................................56 Operaciones de Y lógica. ........................................................................................56 Ya bien, pero estooo, una cosita que te quería comentar… ....................................56 ¿Qué es el RLO? ....................................................................................................56 La definición ha quedado chulísima pero no he entendido ni papa. .....................56 Operación O lógica..................................................................................................57 ¿Por qué? ...............................................................................................................57 Paréntesis en AWL en Step 7 .................................................................................58 Operandos de cierre de consulta.............................................................................59 13. Step 7… AWL, FUP o KOP ¿Cuál elijo? ..........................................................60 FUP.........................................................................................................................60 KOP ........................................................................................................................60 AWL........................................................................................................................61 14. SET y RESET en AWL y alguna cosilla más. ...................................................63 ¿Ya sólo nos queda ver SET y RESET en AWL en lógica binaria?.........................63 ¿Qué es un set y reset en AWL?.............................................................................63 ¿Qué pasa si se dan ambas condiciones, SET y RESET en AWL?.....................63 ¿Puede darse ese caso?.....................................................................................63 ¿Es grave? ..........................................................................................................63 ¿Qué pasa si se da?............................................................................................64 ¿De qué depende?..............................................................................................64 ¿Esto sólo se puede dar en AWL?.......................................................................64 ¿Qué pasa si mezclo Set, Reset e igualaciones? ................................................64 Vale, vale… pero ¿qué hay del SET y RESET en AWL? ........................................64 ¿Chupado no?.....................................................................................................64
  • 6. Cómo programar Step 7 y no morir en el intento Forzado del RLO – SET y CLR ...............................................................................65 ¿Cuánto valdrá A1.0?..........................................................................................65 Flancos en AWL......................................................................................................65 15. Función MOVE en Step 7.................................................................................67 MOVE en Step 7 (en cristiano)................................................................................68 ¿Ahora bien, y si hago un MD4 a MW10?............................................................68 ¿Y ya está? .........................................................................................................68 16. Cómo usar los acumuladores en AWL .............................................................70 Acumuladores en AWL............................................................................................70 Pero si los acumuladores en AWL son dos, ¿qué pasa con el ACU2?....................70 ¿Qué tendrían entonces el ACU1 y el ACU2?.........................................................71 ¿Qué más operaciones se pueden hacer? ..........................................................71 ¿Qué seguridades hay a la hora de realizar operaciones matemáticas? .............71 Guay. Pues lo sumo en AWL...............................................................................71 ¿Valor de MW10?................................................................................................71 Forma en que carga y se transfiere al ACU1 .......................................................72 ¿Qué ocurre cuando lees el ACU1? ....................................................................72 ¿Menudo lío no?..................................................................................................72 Operaciones con los acumuladores que afectan al RLO .........................................72 ¿Cuántas operaciones con los acumuladores hay? ................................................73 17. Operaciones - Calculadora científica................................................................74 Ejemplo en Step 7 de calculadora científica ............................................................74 ¿Qué vamos a repasar con este ejemplo en Step 7?..............................................74 ¿Qué requerimientos va a tener?............................................................................75 ¿Tampoco es para tanto no?...............................................................................75 ¿Me lo explicas? .....................................................................................................75 18. Palabra de estado en Step7.............................................................................76 La palabra de estado en Step 7 ¿qué es?...............................................................76 Los bits de la palabra de estado..............................................................................76 Vale, nombres chulos, pero quitando al RLO y el STA, los demás como que…...77 Bit 0 -/FC .............................................................................................................77 Bit 1 – RLO..........................................................................................................77 Bit 2 – STA ..........................................................................................................77 Bit 3 – OR............................................................................................................77 Bit 4 y 5 – OS y OV..............................................................................................77 Bit 6 y 7 – CCO y CC1........................................................................................78 Bit 8 – BR ............................................................................................................79
  • 7. Cómo programar Step 7 y no morir en el intento 19. Control del reloj del sistema en Step 7 .............................................................80 ¿En qué consiste el ejemplo? .................................................................................80 ¿Cómo vamos a leer el reloj del sistema? ...........................................................80 ¿Cómo calcularemos el día del año?...................................................................81 ¿Y si estamos en marzo… o en septiembre? ......................................................81 ¿Qué es lo que falta? Pues saber si es bisiesto...................................................81 ¿Cómo calculamos si es un día bisiesto? ............................................................81 20. Codificación de un display de 7 segmentos......................................................83 ¿Qué es un display de 7 segmentos? ....................................................................83 ¿Cómo tratamos los datos? ....................................................................................84 ¿Qué es un número BCD? ..................................................................................84 ¿Y el 10? .............................................................................................................84 Tratar y filtrar un número de 3 cifras........................................................................84 Perdona, pero... que ¿qué? .................................................................................85 Vale. Más o menos lo pillo… pero ¿para qué? ....................................................85 Ya si eso, igual con un ejemplo…........................................................................85 ¿Cómo se te ha quedado el cuerpo?...................................................................85 Mmmmm y ¿cómo lo soluciono yo ahora?...........................................................85 Desplazar los bits a la derecha................................................................................86 ¿Qué es lo que hace la operación SHR_W?........................................................86 ¿Y las centenas?.................................................................................................86 Representación en un display de 7 segmentos .......................................................86 ¿Una palabra a una doble? .................................................................................87 Un momento, ¡¡ tú me has estado tomando el pelo todo el rato!!… .........................87 21. Temporizadores S7..........................................................................................89 S_IMPULS Temporizadores como impulso ..........................................................89 S_VIMP Temporizadores como impulso prolongado............................................90 S_EVERZ Temporizadores como retardo a la conexión.......................................90 S_AVERZ Temporizadores como retardo a la desconexión .................................91 S_SEVERZ Temporizadores como retardo a la conexión con memoria..................91 22. Ejemplos prácticos de temporizadores S7........................................................92 Filtrado de señales..................................................................................................92 Filtro de guiños positivos.........................................................................................92 ¿Cómo?...............................................................................................................92 Filtro de guiños negativos........................................................................................92 Filtro combinado......................................................................................................93 Crear un tren de pulsos...........................................................................................93
  • 8. Cómo programar Step 7 y no morir en el intento Destellos por un tiempo fijo de una señal................................................................94 Reset de un relé de forma segura ...........................................................................94 23. Cómo crear un cronómetro en Step 7 ..............................................................96 Cronómetro en Step 7.............................................................................................96 WinCC Flexible .......................................................................................................96 ¿Cómo?...............................................................................................................96 Ya, ya… ¿pero cómo calculas la posición?..........................................................96 24. Filtrado y enmascarado de bits en Step 7 ........................................................98 Cómo saber si hay una alarma activa (usando todas las alarmas)..........................98 ¿No valdría con sumar y ya está?...........................................................................99 Ummmm en general sí…. en particular… no. ......................................................99 ¿Descubres la razón?..........................................................................................99 Filtrado y enmascarado de bits................................................................................99 Vale. Ahora sí que sí hago un cojo-OR eligiendo los bits..................................100 ¿Cómo lo hacemos?..........................................................................................100 Vale. ¿Cómo podemos saber que hay una alarma descartando el M32.1 cómo queremos?.........................................................................................................100 ¿Se podría hacer con words en vez de con bytes?............................................102 25. Cómo realizar un tracking de datos en Step7.................................................103 Tracking de datos en Step7...................................................................................103 El "conceto" .......................................................................................................103 ¿Qué es lo que vamos a hacer?........................................................................103 Bien, vale... ¿pero cómo?..................................................................................104 Y el SFC21 ¿para qué lo quieres?.....................................................................104 Y claro, vamos a usar DB... ...............................................................................104 ¿Cuál es mejor? ................................................................................................104 ¿Por qué dices eso?..........................................................................................104 ¿Solución?.........................................................................................................105 ¿Qué ventaja tiene usar un DB por posición?....................................................105 Pues siempre uso DB separados y ya está........................................................105 Vayamos con un ejemplo práctico .....................................................................106 26. Contadores en Step 7 ....................................................................................107 Contadores en Step 7 usando un entero...............................................................107 Contadores en Step 7 usando INC y DEC.............................................................107 Contadores en Step 7 usando contadores S5 .......................................................108 Cómo cargar un valor a contadores en Step 7...................................................108 Sumar y restar sobre contadores en Step 7.......................................................108 Poner a cero un contador ..................................................................................109
  • 9. Cómo programar Step 7 y no morir en el intento ¿Y en KOP? ......................................................................................................109 27. Saltos: SPA, SPB y SPBN (If-Then-Else).......................................................111 ¿Qué son los saltos en Step 7?.............................................................................111 SPA se usa para saltos incondicionales................................................................111 SPB y SPBN se usan para saltos condicionados al valor del RLO........................112 ¿Qué pasa si no se realiza el salto?......................................................................112 ¿Vale, vale… pero como construyo un IF-THEN-ELSE?.......................................113 ¿Cómo lo hago con saltos en Step 7?...................................................................113 ¿Lo vemos con un ejemplo? .................................................................................113 ¿Pero esto no se puede hacer con FUP o KOP? ..................................................114 28. Cómo anular partes de un programa..............................................................115 Anular parte de un programa comentando líneas..................................................115 Anular parte de un programa realizando saltos. ....................................................115 Anular parte de un programa usando una marca nula...........................................116 Anular parte de un programa usando BEA............................................................116 29. Instrucción LOOP – El For /Next del PLC.......................................................117 Loop en Step 7......................................................................................................117 ¿Y cómo hago un FOR NEXT con LOOP en Step 7? ........................................117 Filtrado de una señal analógica.............................................................................118 30. Saltos SPL en Step 7. El Select Case en AWL...............................................119 ¿En qué consiste el SPL en Step 7? .....................................................................119 31. Otros saltos....................................................................................................121 ¿Estado del RB? ¿Lo qué? ...................................................................................121 Bit 8 – BR ..........................................................................................................121 Saltos en Step 7 con errores y resultados matemáticos.....................................121 32. Desplazamiento y giro de bits en Step7 .........................................................123 Vale. Hasta ahí lo entiendo, pero ¿qué diferencia hay desplazar entero o un Word a la derecha? ...........................................................................................................123 ¿Lo qué? ...........................................................................................................123 En principio no hay diferencia ¿no?...................................................................124 Y el giro de dobles palabras...............................................................................124 ¿Podrías poner un ejemplo real de desplazamiento y giro de bits en Step7?........125 33. Giro de bits en step 7: el coche fantástico......................................................126 El vídeo sobre el giro de bits en step 7..................................................................127 34. Direccionamiento indirecto – Memoria y punteros a área...............................128 Direccionamiento indirecto ....................................................................................128 Direccionamiento Indirecto por Memoria ...............................................................129 Formato palabra – número (indexados).................................................................129
  • 10. Cómo programar Step 7 y no morir en el intento Direccionamiento Indirecto con formato doble palabra – Punteros a área.............129 ¿Se puede cargar los punteros de otra forma? .....................................................130 35. Direccionamiento indirecto – Registros y áreas..............................................132 Registro de direcciones.........................................................................................132 Cargar directamente el puntero .........................................................................132 Cargar el puntero y transferirlo al AR1...............................................................132 Cargar el valor numérico de bits y transferirlo al AR1 ........................................132 Direccionamiento Indirecto por Registro e Intraárea/Interárea...............................133 ¿Y esto qué significa en cristiano?.....................................................................133 ¿Resultado? ......................................................................................................133 ¿Qué se usa más? ............................................................................................133 Muy bien, me parece estupendo… pero me he perdido en el L MW [AR1, P#10.0]… ¿qué significa? ..................................................................................................134 ¿Es obligatorio poner ese offset siempre?.........................................................134 ¿Qué pasa si cargo un P#50.0 en el AR1, cargo un offset P#0.1 y hago una lectura MB, MW o MD? .................................................................................................134 ¿Qué más puedo hacer con los registros? ............................................................134 ¿Qué operaciones puedo hacer con los registros?............................................134 ¿Y todo esto, ya sirve para algo?..........................................................................135 36. Comparar dos cadenas de caracteres............................................................136 Comparar dos cadenas de caracteres en Step 7...................................................136 ¿Para qué sirve eso?.........................................................................................136 ¿Qué necesitaremos para comparar las cadenas de caracteres? .....................136 ¿Y cómo vamos a hacer la comparación de las cadenas de caracteres en step7? ..........................................................................................................................137 37. Qué es un OB de fallo....................................................................................140 Listado de OB de fallo...........................................................................................140 38. Alarmas: Cómo activar y desactivar la baliza .................................................142 Gestión de alarmas en S7.....................................................................................142 ¿Cómo hacerlo? ................................................................................................143 El FC.....................................................................................................................143 El DB.....................................................................................................................143 39. Buenas prácticas de programación en S7......................................................145 Tengo una hoja en blanco ¿Por dónde empiezo para realizar buenas prácticas de programación en S7?............................................................................................145 Vale, ya tengo más o menos claro qué hace y qué necesito… ¿y ahora?.............146 ¿Por qué no el 111? ..........................................................................................146 ¿Qué nos va a permitir esto?.............................................................................146
  • 11. Cómo programar Step 7 y no morir en el intento Asigna rangos a las I/O .........................................................................................147 ¿Qué ganamos con ello?...................................................................................147 ¿Pero habría algún problema por ello?..............................................................148 ¿Qué pasa con las marcas, temporizadores etc.? .............................................148 Asigna nombres a las cosas..................................................................................148 Buenas prácticas de programación en S7.............................................................148 Asigna una marca de ciclo al principio del proyecto...........................................149 Crear un Always_On y un Always_Off ...............................................................150 Deja espacio, sé generoso con el que venga detrás… ......................................150 No seas un talibán de ningún lenguaje. Usa todos a tu antojo, pero con orden. 150 Alarmas.................................................................................................................151 Pantallas del HMI ..................................................................................................151 ¿Qué quiero decir con esto?..............................................................................151 40. 4 formas de hacer una copia de seguridad de un proyecto de step7..............153 Copia de seguridad de un proyecto de step7 offline..............................................153 ¿Con eso es suficiente? ....................................................................................153 Crear una copia de seguridad de un proyecto de step7 mediante archivado.........153 Crear una copia de seguridad de un proyecto de step7 online exacta...................154 Crear una copia de seguridad de un proyecto de step7 online por carpetas .........154 41. Cómo proteger bloques en Step 7… si puedes. .............................................156 ¿Proteger bloques en Step 7? ¿Para qué? ...........................................................156 42. Conectar un LOGO 8 con un PLC en Step 7.................................................158 ¿Por qué usar un LOGO 8 como remota?.............................................................158 Conectar un logo 8 con un PLC en Step 7 ............................................................158 El vídeo de la lección ............................................................................................159 43. PID en Step7: Ejemplo de control de temperatura..........................................160 ¿Qué hardware vamos a necesitar?......................................................................160 ¿Por qué un relé estático?.................................................................................160 La tarjeta de analógicas.....................................................................................161 ¿Y qué hay del software?......................................................................................161 PID en Step7 .....................................................................................................161 ¿Cómo vamos a hacer ese reparto de tiempos?................................................162 44. Configuración de un variador Micromaster 420 ..............................................163 Configuración básica de un variador Micromaster – El variador ...........................163 Configuración de la dirección Profibus...............................................................163 Puesta en servicio del variador..............................................................................164 Configuración básica de un variador Micromaster – El proyecto. .........................165
  • 12. Cómo programar Step 7 y no morir en el intento Bits de mando....................................................................................................165 La palabra de estado .........................................................................................166 45. Entradas analógicas 4-20mA en S7 ...............................................................169 Programación de la alarma ...................................................................................171 Graficar la señal....................................................................................................171 46. Cómo observar y forzar variables en Step 7...................................................172 ¿Qué se puede hacer?..........................................................................................172 El punto de disparo ...............................................................................................173 Otras opciones......................................................................................................173 El vídeo.................................................................................................................175
  • 13. Cómo programar Step 7 y no morir en el intento 12 0. Prefacio. Antes de empezar este libro me gustaría compartir contigo en qué va a consistir y cuál es su finalidad. ¿Qué es este libro? Es un libro para aprender a programar en Step 7 desde cuasi cero. Esto significa que se darán por sentados conceptos como qué es un PLC y para qué sirve. Si has llegado hasta aquí entiendo que sería una pérdida de tiempo por tu parte y por la mía empezar desde más abajo. No quiero que este libro sea “de relleno”, sino que sea lo más didáctico y práctico que sepa lograr, introduciendo la teoría y conceptos mínimos para poder comenzar a trabajar. En cuanto al contenido veremos juntos la mayoría de las funciones y bloques que dispone S7 con los que comenzar de una forma razonablemente solvente a programar en un entorno S7. ¿Qué NO es este libro? Lo primero y más importante, no es palabra de Dios. No es, ni pretende ser, un libro formal y reglado. No hay ni título ni nada por el estilo. Voy a intentar transmitir mis conocimientos para empezar a trabajar y programar un PLC de Siemens. Será tan completo como pueda hacerlo, pero nada más. No es un libro sobre TIA portal. No te quiero engañar: aún apenas lo he usado como para dar consejos sobre ello a nadie. En cuanto al hardware no entraré a evaluar cada tarjeta que hay en el mercado ni cada PLC. Se verá en el libro lo básico y necesario. No es objetivo de este el conocimiento profundo del hardware sino de realizar programas. El resto vendrá con el tiempo y la experiencia. Tampoco me hago responsable de posibles fallos que pueda acometer durante el libro. La buena fe te la puedo garantizar pero no la infalibilidad que se la dejo a seres superiores (no, no me refiero a los funcionarios). Por tanto no me hago responsable de que un programa no funcione bien, ni de los terremotos, ni de que te puedan despedir porque la máquina le escupa aceite a tu jefe, ni de una guerra termonuclear. ¿Necesitaré papel y pinturillas de colores? Pues hombre, como puedes imaginar, vas a necesitar un ordenador (portátil o de sobremesa) con Step 7 instalado junto con PLCSIM y WinCC Flexible. Además de eso, vas a necesitar una conexión a internet para poder reproducir los vídeos de ya que el PDF enlazará con los vídeos publicados.
  • 14. Cómo programar Step 7 y no morir en el intento 13 ¿También WinCC? Sí. Para poder abrir los ejemplo que creemos, ya que el libro también contendrá pinceladas del WinCC. Las versiones que yo voy a usar son las siguientes:  Step 7 V5.5 +SP1  WinCC 2008 SP3  S7-PLCSIM Professional 2010 V5.4 +SP5 ¿Qué temas contendrá el libro? Vayamos al meollo de la cuestión… Vamos a ver juntos todos los temas relacionados con lo que propiamente es la programación del software de una forma más tranquila y espero que extensa y profunda para asentar tan bien como pueda explicarme (que tampoco es que se me dé del todo bien, seamos sinceros). Así, veremos con detenimiento todo lo relacionado con la memoria, variables, los módulos y todos los bloques que considere que tienes que conocer para que una vez termines el libro tengas unos mimbres para realizar programas de una complejidad notable. Además intentaré transmitirte todos los trucos y prácticas que ya he comentado en parte y otros que puede que aún estén en el tintero. Este tipo de truquillos seguramente sean más difícil de que los encuentres en otros cursos y libros. Todo irá acompañado como ya he comentado con los vídeos que considere pertinente además de explicar mediante ejemplos prácticos. ¿Garantía? Pues como puedes imaginar más bien escasa. Sólo te puedo ofrecer el compromiso:  De poner lo mejor de mi parte para poder resolver dudas dentro de mis conocimientos.  De haberlo hecho con mimo para sea lo más instructivo y ameno posible.
  • 15. Cómo programar Step 7 y no morir en el intento 14 1. Introducción a la programación en Step 7 Vamos a repasar una serie de conceptos generales de programación aplicados en un entorno de Simatic S7. Lamento que la primera lección sea una pequeña chapa teórica y que no vayas a ver ni una línea de código, pero por muchas vueltas que le he dado, es necesario unos mínimos. Pero míralo de una forma positiva, así ya lo damos por zanjado y pronto comenzaremos a escribir líneas y líneas de código (el que no se conforma es porque no quiere). Empecemos... Los elementos de un autómata como bien sabes son dos: el hardware (el aparato en sí con sus tarjetas, cableado etc.) y el software (los programas). Dentro de los programas tendremos dos partes a su vez: El SO del autómata El programa de usuario que tú vas a desarrollar y que desempeñará las funciones para las cuales se ha ideado. El SO del autómata será el que se encargue por un lado de interpretar y ejecutar el programa que has diseñado además de otras funcionalidades como pueden ser el diagnóstico de alarmas y errores, administrar la memoria, comunicación con otros elementos, exploración de las entradas y la transmisión de órdenes a las salidas entre otras muchas que sabemos qué hace, pero poco nos importa ahora el saber cómo. Programación en Step 7 El programa de usuario es sobre lo que versa este libro. En este programa vas a poder determinar las condiciones con las que arrancará el autómata, tratará datos y señales del proceso para finalmente dar unas órdenes de actuación sobre los diferentes actuadores y elementos de la instalación. Estructura de la memoria. A grandes rasgos la memoria del autómata va a ser dividida en las siguientes partes:  Imagen de las E/S.  E/S de la periferia  Marcas  Valor y estado de temporizadores y contadores  Módulos de datos (DB)  Datos temporales que se pierden al final de cada ciclo.
  • 16. Cómo programar Step 7 y no morir en el intento 15 Imagen de E/S Las imágenes de las entradas y las salidas no son más que las señales E o A que se usan en el programa. Pero son eso, imágenes, ya que no leemos el valor instantáneo de la entrada o forzamos instantáneamente la salida, sino que leemos en el caso de las entradas el valor de la entrada física cuando se refrescó la imagen de las entradas antes de comenzar el nuevo ciclo del OB1 (programa principal). Igualmente en el caso de las salidas, cuando el programa pone a uno o a cero una salida no lo está haciendo inmediatamente sino que está dando valor a la imagen de la salida, y esta imagen de la salida será volcada a las salidas reales antes de comenzar un nuevo ciclo del OB1. E/S de la periferia. A diferencia del caso anterior, se puede leer directamente el valor actual de cualquier sensor. Para ello debemos leerlos en bytes (PEB), Word (PEW) o doble Word (PED) ya que el acceso no puede ser directo a un bit en concreto (a diferencia de las imágenes de E/S). Igualmente pasa con las salidas, que podemos forzar el estado de las salidas de forma inmediata accediendo a las salidas de periferia (PAB, PAW, PAD) Marcas Las marcas son variables indexadas y globales, por tanto no hay que declararlas, pero si es conveniente darles un nombre y tipo (entero, doble, real…). Se les puede dar valor dentro de cualquier parte del programa. Dependiendo de la CPU esta área es mayor o menor. Los valores pueden ser remanentes tras el apagado del PLC o volátiles (se pierden tras apagar el PLC). Su acceso puede ser desde bit hasta un ancho indeterminado si se usan punteros de área (que veremos más adelante). Temporizadores y contadores. La programación en Step7 tiene la peculiaridad de tener temporizadores de dos tipos: por software (IEC) y temporizadores S7 (o llamados también de S5 ya que existían ya en la versión anterior). Estos últimos son temporizadores hardware y son limitados dependiendo de la CPU (por ser hardware), no así los IEC que por ser creados por software la limitación es la propia memoria disponible, pero no hay un número determinado de ellos.
  • 17. Cómo programar Step 7 y no morir en el intento 16 Los contadores pues son eso, elementos usados para contar o descontar cantidades. Veremos con detenimiento en su momento las peculiaridades de cada uno de ellos. Módulos de datos (DB). Son áreas de memoria que a diferencia de las marcas, está definidas por el usuario. Pueden ser de longitudes dispares y con contenidos de todo tipo. Las variables contenidas en los DB son remanentes al apagado del PLC. Variables temporales. Son variables que se declaran dentro de los módulos que sirven para realizar cálculos intermedios y locales que no necesitan ser usados más allá del módulo en cuestión y en el ciclo en el que son llamadas o tratadas. ¡OJO! Las variables temporales no se re-inicializan como yo he comentado en el vídeo. El valor inicial de la variable temporal es el valor último que tomó esa variable, lo cual no deja de ser tremendamente peligroso ya que si no le das valor antes de leerla el contenido de dicha variable es indeterminado, especialmente si la función es llamada varias veces a lo largo del programa y la variable va tomando valores dispares.
  • 18. Cómo programar Step 7 y no morir en el intento 17 Módulos Para acceder y tratar los datos almacenados en las áreas de memoria, existen diferentes tipos de módulos cuyas características serán diferentes para cada requerimiento que sea necesario:  Módulos de organización (OB)  Funciones (FC).  Bloques de función (FB).  Bloques de memoria (DB)  Módulos de sistema (SFC,SFB,SDB) Módulos de organización Lo primero que has de saber de estos módulos es su especialización, sólo sirven para lo que han sido diseñados y no se llamarán desde otros bloques sino que será el propio autómata quien gestiona las llamadas a estos módulos en función de sus características. Hay varios tipos de módulos de organización:  OB de arranque (OB100-102): Son bloques con los que se arranca el PLC en función del tipo de arranque y depende del tipo de CPU para que tenga todos los tipos o solamente el OB100, que es el arranque completo. Sólo se ejecuta una vez, en el arranque. Una vez terminado pasa al principal.  El OB1: Es un tipo es sí mismo y es el principal. Se ejecuta de forma recurrente y desde él se hace llamadas a los FC y FB del programa  OB cíclicos: También se pueden hacer llamadas a otros FC o ejecutar código desde estos OB. Tienen la peculiaridad frente al OB1 que se ejecutan a tiempo fijo (por ejemplo el OB35).  OB Horarios: Son OB que dependen de la fecha y hora. Se pueden realizar tareas desde en un momento concreto a ser cíclicos cada x tiempo (desde minutos a todos los años en un momento concreto)  OB de fallo (OB85, OB86, OB121 etc.). Son OB predefinidos para cada tipo de fallo y son llamados cuando el fallo es detectado. Dentro de cada OB se puede tratar el fallo y tomar las decisiones pertinentes en cada caso. Todos los OB tienen la peculiaridad de tener reservados 20bytes de memoria local donde podrás hallar variables específicas de cada OB. Así podrás tener información de en qué momento ha sido llamado o la frecuencia de llamada en el caso del OB35 por poner un ejemplo.
  • 19. Cómo programar Step 7 y no morir en el intento 18 Los más usados con una diferencia notable con el resto:  OB100: Arranque desde cero. En el daremos las condiciones y valores iniciales (si procede) en el arranque.  OB1: Programa principal (lógico)  OB35: Programa cíclico por excelencia ya que hay otros pero que no están disponibles en todas las CPU. Puedes programar tareas a tiempo fijo facilitando contajes y mediciones que sean necesarias conocer su periodicidad. Luego están los de fallo que dependiendo de la aplicación usarás unos u otros o ninguno. Pero con estos 3 tienes el 80% de las necesidades de los OB cubiertos. Funciones (FC) Las funciones son bloques que pueden ser llamados desde OB, FC o FB y se usan fundamentalmente para: Estructurar el código de tal forma que no esté todo metido en el OB1 sino que se hace de forma arbórea e inteligible dividiendo el programa por zonas, máquinas, submáquinas... Usarlos como funciones que traten unos valores de entrada y den como resultado unos valores de salida. Lógicamente la idea de esto es por un lado dar claridad y por otro lado permite la reutilización de la función. Tienen la peculiaridad de poder definir de forma interna variables temporales con las que jugar dentro del bloque. Ya se ha comentado hay que tener cuidado con el tema de
  • 20. Cómo programar Step 7 y no morir en el intento 19 la remanencia entre ciclos. Lo mejor es darle valor nulo (o el que sea) al inicio del bloque o bien asegurarse de que siempre toma algún valor a lo largo del bloque antes de usarla. Teniendo esto en cuenta, podemos crear un FC1 y un FC2. En el FC1 desarrollar un programa que sume a +b y nos devuelva c. En el FC2, hacer varias llamadas al FC1 para que nos haga varias sumas. El bloque FC1 denominado "sumar" lo reutilizamos y contendrá variables de entrada y salida mientras que el FC2 simplemente lo usaremos llamándolo desde el OB1 y lo denominaremos "todas las sumas" haciendo una única llamada desde el OB1 a este bloque. No tiene ninguna importancia la falta de remanencia de las variables intermedias ya que lo que realiza es un cálculo matemático en cada ciclo. Bloques de función (FB) Los bloques de función son parecidos a los anteriores con la particularidad que tienen variables internas llamadas estáticas que dan remanencia de ciclo a ciclo. Para lograr esta remanencia tendrán asociado un bloque de memoria (DB) llamados para estos casos de instancia. Los FB pueden ser llamados desde los OB, FC o FB además de poder ser usados dentro de las estáticas de otros FB (multiinstancias). En definitiva son los módulos que usaremos para una programación orientada a objetos de otros lenguajes ya que podremos realizar un módulo que nos gestione por ejemplo un transportador y podremos crear tantos transportadores como queramos pudiendo
  • 21. Cómo programar Step 7 y no morir en el intento 20 desentendernos de cómo funcionan internamente una vez sepamos depurado el código del FB.
  • 22. Cómo programar Step 7 y no morir en el intento 21 Módulos de datos (DB) Los módulos de datos pueden ser der de tipo global o de instancia. Los de instancia los hemos visto que son necesarios para la ejecución de los FB y toman la estructura de la declaración de las variables del propio FB. Los DB globales son módulos declarados por el usuario y pueden contener variables de todo tipo definiendo estructuras complejas. En ambos casos el acceso a la información es global ya que incluso se puede acceder a la información de un DB de instancia desde otro bloque.
  • 23. Cómo programar Step 7 y no morir en el intento 22 Módulos de sistema. Al igual que en los casos anteriores existen una serie de FC y FB que están integrados en el propio sistema operativo del PLC. Pueden ser llamados y consultados para obtener o tratar información. Al igual que pasa con los FB, los SFB necesitan de su correspondiente SDB. Por ejemplo con el SFC0 podrás consultar la hora del reloj del PLC.
  • 24. Cómo programar Step 7 y no morir en el intento 23 Ciclo del programa Como ya he ido adelantando existen unos módulos que son los encargados de ejecutar los programas de usuario. En el siguiente esquema puedes ver de forma gráfica cómo es la ejecución cíclico del programa. Procesamiento cíclico Como puedes imaginar, ejecutar todas las instrucciones conllevará un tiempo denominado tiempo de ciclo. El tiempo de ciclo es el tiempo medido en ms que se necesita para ejecutar completamente todas las instrucciones y llamadas realizada desde el OB1, la ejecución de otros OB llamados (si fuera el caso) y actividades del SO (actualizar las imágenes de E/S por ejemplo). El tiempo no es constante ya que no todos los ciclos tienen la misma carga de trabajo bien porque no siembre se hacen las llamadas de OB cíclicos o porque no se hacen llamadas a todos los bloques en función de las circunstancias y valores de las diferentes variables. Este tiempo está vigilado por un watchdog (típicamente fijado en 150ms fijado en la configuración del hardware) y si se supera, el PLC se irá a estado de STOP.
  • 25. Cómo programar Step 7 y no morir en el intento 24 ¿Cómo se puede superar este tiempo? Pueden ser por varias causas, pero una típica es programar mal un bloque haciéndolo sin salida (un lazo infinito) con lo que irremediablemente se va a STOP aunque hay otras como pueden ser un programa excesivamente largo. También se puede ir el PLC a STOP debido a los tiempos de ejecución por llamadas a OB cíclicos en tiempos muy cortos con cargas de trabajo muy altas. Por ejemplo, programando el OB35 a 2ms y si su carga de trabajo es muy alta, puede que con la siguiente llamada aún no haya terminado las operaciones del ciclo anterior, y el PLC se coja la baja. Bromas aparte, veamos más en concreto en qué orden ejecuta las diferentes tareas durante este tiempo de scan. En primer lugar cuando arranca el PLC ejecuta los OB de arranque. El más habitual es el OB100.
  • 26. Cómo programar Step 7 y no morir en el intento 25 2. Métodos de arranque: OB100, OB101 y OB102 ¿Qué es un OB de arranque? Un OB de arranque es un módulo que podemos programar para que se ejecute una única vez al arranque del sistema. El programa de arranque puede ser tan largo como se quiera, no tiene límite de tiempo y la vigilancia del tiempo de ciclo no está activa. La ejecución controlada por tiempo o por alarma no es posible en el programa de arranque. En el arranque, todas las salidas digitales tienen el estado de señal 0. El OB de arranque (OB100, OB101 u OB102) se ejecuta dependiendo del arranque, de la CPU existente y de los parámetros ajustados en la misma.  OB100:Arranque completo  OB101: Rearranque  OB102: Arranque en frío Ahora sí, que la hemos liado.. quee ¿qué? Bien, lo primero que hay que saber es unos conceptos para que cuando lo leamos en los sesudos libros de Siemens no pongamos cara de pocker por no saber qué carajo significa cada término. Arranque completo (arranque en caliente) La elaboración del programa comienza de nuevo. Se mantienen los datos remanentes. Arranque en frío Los datos actuales se pierden y la elaboración del programa comienza de nuevo con los valores iniciales. Rearranque Tras la vuelta de la alimentación, el programa sigue desde el punto interrumpido.
  • 27. Cómo programar Step 7 y no morir en el intento 26 3 métodos de arranque en Step7 OB100 para el arranque completo En nuevo arranque (arranque en caliente), el programa comienza desde el principio:  Las marcas, temporizadores etc. no remanentes se resetean. Los módulos de datos con la propiedad no remanente, toman de nuevo el valor inicial.  Las variables remanentes se mantienen con el último valor juntos. Los módulos remanentes mantienen el último valor. OB102 para el arranque en frío  En el arranque en frío, los módulos de datos creados por SFC se borran de la memoria de trabajo, el resto de módulos de datos tienen el valor pre ajustado en la memoria de carga.  La imagen de proceso, los temporizadores, los contadores y las marcas se resetean a los valores iniciales guardados en el programa (memoria de carga), independientemente de si se han parametrizado como remanentes.  Se lee la imagen de proceso de las entradas y el programa de usuario de STEP 7 comienza de nuevo desde el principio (OB 102 ó OB 1). Una cosa que hay que tener en cuenta, es que este modo sólo se puede realizar desde el PG salvo algunas CPU de la serie 400 que tienen interruptores que permiten hacerlo sobre el propio PLC. OB101 rearranque Tras la vuelta de un corte de tensión las CPU de la serie 400 realizan un rearranque. Este se realiza desde el punto en el que se interrumpió. Esto implica que las variables, temporizadores etc. no se resetean. En definitiva: Todos los datos mantienen su último valor válido (incluyendo los datos de la imagen de proceso).  La elaboración del programa continúa exactamente en la instrucción en la que se produjo la interrupción.  Las salidas no se modifican hasta el final del ciclo actual.  Al interrumpir la tensión de alimentación, el rearranque sólo está disponible en el modo de servicio con batería tampón. Programación del OB100 He de decir que el más utilizado es el OB100, compatible con todas las CPU. Además tampoco he tenido la necesidad de programar el resto. Aunque supongo que habrá casos en los que sean necesarios.
  • 28. Cómo programar Step 7 y no morir en el intento 27 El uso que se le da al OB100 es fundamentalmente para dar valores iniciales a variables cuando arrancas desde cero el PLC y para ejecutar acciones que sólo son necesarias ejecutar una vez. Una cosa que puede valer por ejemplo, es hacer que una variable se ponga a TRUE que será un trigger a lo largo del programa y que al terminar, resetees dicha variable para que no se ejecute en el segunda y sucesivas ejecuciones del OB1. Así, dentro del OB100 podemos hacer SET = M0.0 Y al final del OB1 CLR = M0.0 Si necesitas más información, te dejo las referencias para que sigas leyendo sobre el tema. Referencias:  http://cache.automation.siemens.com/dnl/jExNDU0NwAA_18652056_HB/S7prv 54_s.pdf  Diferencias entre tipos de arranque
  • 29. Cómo programar Step 7 y no morir en el intento 28 3. El entorno de desarrollo de Step 7 Todo lenguaje de programación tiene un entorno de desarrollo. El entorno de desarrollo de Step 7 se divide en varias partes:  Simatic Manager.  Configurador del hardware  Configurador de Red  Editor de programación  Editor de símbolos El núcleo desde el que normalmente se llama a todos los demás es el Simatic Manager aunque se pueden acceder y lanzar los programas por separado desde la carpeta de Simatic dentro de los programas disponibles en tu PC. Vamos a ver como es el entorno de un modo general ya que no te interesa ni a ti ni a mi profundizar en estos momentos. Pienso que si no conoces bien Simatic ni Step 7 te puedo aburrir dándote un montón de detalles que te van a sonar a chino y que realmente no vas a necesitar de momento. Por tanto veremos un barniz de lo que es el entorno de desarrollo en Step 7 y nada más. Finalmente terminaremos creando una vez conozcamos estas generalidades nuestro primer proyecto en Step 7sobre el que trabajaremos en capítulos posteriores. El entorno de desarrollo de Step 7 Simatic Manager
  • 30. Cómo programar Step 7 y no morir en el intento 29 El configurador de hardware El configurador de redes
  • 31. Cómo programar Step 7 y no morir en el intento 30 El editor de símbolos El editor de código
  • 32. Cómo programar Step 7 y no morir en el intento 31 Nuestro primer proyecto en Step 7 “HELLO WORLD!!”
  • 33. Cómo programar Step 7 y no morir en el intento 32 4. Álgebra booleana (lógica binaria) Bueno. Basta de ver vídeos donde se explican muchas cosas bastante aburridas y aún sin programar ni una línea de código... el álgebra booleana en Step 7 is here. Vamos a comenzar a teclear. No mucho, pero vamos a realizar nuestros primeros pinitos. Primero vamos a empezar a programar en Ladder, escalera o KOP. Es una forma dinámica de empezar a hacer cositas y nos va a servir para la en siguientes capítulos ver sobre lo aprendido, cómo se haría en AWL ya que se va a entender creo que mejor. ¿Qué es el Álgebra booleana en Step 7? Bueno, en Step 7 y en cualquier lenguaje. No se trata más que de entender y poner en práctica el álgebra de Boole. No te voy a aburrir sobre que es un OR y un AND, ya que entiendo que todo el mundo sabe qué es. Si no lo sabes, échale un vistazo a:  Algebra de Boole (Wikipedia)  Algebra booleana (Monografías.com)  Álgebra de Boole (uhu.es) En definitiva, qué mejor para un PLC que se mueve con ceros y unos, que programar en base a puertas OR, AND y NOT. ¿No hay más? Estrictamente hablando no, ya que el resto de las operaciones binarias se basan en las anteriores... son, por así decirlo, los colores primarios del álgebra de Boole. Por cierto, el señor tan estirado y con pinta de listo es el señor George Boole, el padre de la criatura la cual data de mediados del siglo XIX. Sí, no les servía para gran cosa entonces, pero ya le daban al rosco por entonces a estas cosas. Como construir todos nuestros programas a base de AND y OR sería un trabajo que acabaría con la salud de más de uno (entre los que me incluyo) hay otros operadores más elaborados que permiten realizar funciones más complejas como son el xor, set,
  • 34. Cómo programar Step 7 y no morir en el intento 33 reset, pulsos … que nos ayudarán a realizar programas eficientes en plazos de tiempo razonables. Al grano... La programación en escalera o ladder es la más común en la mayoría de los lenguajes de programación de PLC. En el caso de Siemens, esta programación se llama KOP (Kontaktplan) o diagrama de contactos en la lengua de Cervantes. La idea básica es dibujar diagramas eléctricos como si con contactos de relés se tratara. ¿Cómo se hace un AND y un OR? Básicamente un AND lo harás mediante dos contactos en serie de tal forma que sólo se active la bobina si ambos contactos están cerrados. Análogamente un OR lo realizarás colocando dos contactos en paralelo de tal forma que la bobina se active si uno de los contactos O el otro se activa. ¿Brillante eh? Pero, lo mejor como siempre es ver... Contactos en serie y paralelo, negaciones, set/reset y pulsos en un bonito video donde veamos cómo usar todos los elementos además de un pequeño ejemplo de cómo crear un telerruptor en Step 7.
  • 35. Cómo programar Step 7 y no morir en el intento 34 5. Puertas lógicas NOR y NAND en S7 NAND Una puerta lógica NAND no es más que hacer un AND normal y su resultado, darle la vuelta (negarlo) La fórmula, es la que tienes a la derecha, que lo que viene a decir es que la negada de un AND es lo mismo que hacer un OR de las negadas. Es decir U M200.0 U M300.0 NOT = M400.0 Es lo mismo que hacer ON M200.0 ON M300.0 = M400.0 En resumen, que el resultado siempre será TRUE salvo que ambas marcas (M200.0 y M300.0) estén a 1. NOR Análogamente, diremos que hacer un NOR no es más que hacer un OR, y su resultado darle la vuelta (negarlo). Como veis en la fórmula, es muy similar. La negada de la suma es igual al producto de sus negadas… o en castellano de andar por casa, un NOR equivale a hacer un AND de las negadas de las señales.
  • 36. Cómo programar Step 7 y no morir en el intento 35 En AWL tendríamos: U( O M 200.0 O M 300.0 ) NOT = M 400.0 O lo que es lo mismo: UN M200.0 UN M300.0 = M400.0 Ojo con los paréntesis ya que el NOT ha de ser del OR completo. En un AND no es necesario, pero al hacer un OR sí lo es porque de otra forma sólo tendría en cuenta el segundo operando. Al contrario que en el caso anterior, el resultado siempre será FALSE salvo cuando ambas señales estén en FALSE, dando en este caso, el único caso donde el resultado es TRUE. Dar las explicaciones y comentarios, se lo dejo al interesado para que lo diga con sus propias palabras. Adicionalmente echa un vistazo a la wikipedia donde lo explica perfectamente e incluye las tablas de la verdad. Yo sólo colaboro con el mini ejemplo de programación en AWL.
  • 37. Cómo programar Step 7 y no morir en el intento 36 6. FB en Step 7 - Ejemplo de una bomba de agua Para ir creciendo un poco más en la lógica binaria antes de entrar en lógica binaria en AWL, vamos a ver un par de ejemplos después de haber visto los primeros fundamentos con el álgebra de Boole. El primero será crear FB en Step 7 y el siguiente será crear FC. La idea es ir introduciendo conceptos nuevos, y no se puede programar en Step 7 si no se conocen los FB y los FC. FB en Step 7 Comenzamos con los FB. Son más completos que los FC ya que como vamos a ver, van a tener remanencia a diferencia de los FC que nos servirán para otros menesteres como veremos pronto. Como ya dijimos en la introducción los FB no son más que unos bloques que nosotros vamos a construir y que va a poder tener una serie de variables (ninguna de ellas obligatoria):  Variables de entrada  Variables de salida  Variables de entrada/salida  Variables temporales  Variables estáticas (remanentes) Como bien digo, no es obligatorio el uso de ninguna de ellas ya que se puede hacer la llamada al FB y dentro de este usar variables globales (marcas u otros DBs). Lo único que es obligatorio es crear un DB de instancia asociado al FB. Este DB nos servirá para almacenar la información remanente aunque veremos que todas las variables quedan reflejadas en él (todas las que se declaren, claro). No hay que declarar ninguna variable dentro del DB ya que Step 7 lo va a hacer por ti a la hora de hacer la llamada o al crearlo desde el Simatic Manager. Ejemplo de maniobra de una Bomba de agua Para ver cómo crear FB en Step 7 de forma práctica vamos a hacerlo a través de un ejemplo de manejo de una bomba de agua. Se trata de un tanque que tiene un mínimo y un máximo que es abastecido entre estos límites a través de una bomba. Esta bomba toma el agua de una fuente sin determinar y que no viene al caso.
  • 38. Cómo programar Step 7 y no morir en el intento 37 La cuestión es que hay que hacer:  A través de una maneta de OFF/ON, poner el sistema en posibilidad de trabajar. Cuando se pasa al estado ON, la máquina se pone en modo manual.  El modo manual es simple. Si se activa el botón de marcha de la bomba, esta bombea sin límites. Si se vuelve a pulsar se para.  El modo automático se pone cuando se pulsa el botón de auto/man. Tras pasar a auto hay que pulsar el botón de marcha de la bomba y esta trabajará entre el mínimo y el máximo. Cuando pierde el mínimo se activa y cuando llega al máximo se para.  Si se vuelve a pulsar el botón de auto/man se pasa de nuevo a manual y la bomba se para.  Hay una serie de leds para indicar los estados de auto, manual, marcha y paro de la bomba. Para visualizar todo esto mejor, te he preparado un vídeo donde se explica el ejercicio (sin solución).
  • 39. Cómo programar Step 7 y no morir en el intento 38 Resolución del ejercicio En el siguiente vídeo puedes ver la resolución del ejercicio.
  • 40. Cómo programar Step 7 y no morir en el intento 39 7. Multiinstancias en Step 7 ¿Qué son multiinstancias en Step 7? Empezaremos definiendo qué es una instancia en programación. De Step 7 o de Visual Basic. Eso es lo de menos. El vocablo instancia proviene de la programación orientada a objetos y de las clases. Sin meterme en berenjenales que no domino es mejor explicarlo mediante un ejemplo: Una clase podríamos definirla como el concepto fantasma del Pacman con todas sus cualidades, propiedades y funcionalidades. Una instancia sería uno de los fantasmas en concreto sin tener en cuenta el color. Al pertenecer a la clase fantasma, tendrán las mismas propiedades y funcionalidades entre ellos, pero no los mismos valores en cada uno de los campos, por así decirlo. Así por ejemplo pueden tener diferente color pero siguen perteneciendo a la misma clase. Llevándolo a nuestro campo, crear multiinstancias en Step 7 va a ser crear nuevos objetos que hagan referencia a la clase a la que pertenecen. Así, la clase puede ser TON (un temporizador IEC como retardo a la conexión) y lo que haremos será crear tantas instancias de ese TON como necesitemos. Es decir, crearemos esos temporizadores de verdad dentro de nuestros FB. Como la creación de estos TON puede ser múltiple o conjugada con la creación de otras instancias diferentes, se denominarán multiinstancia. Mucho rollo esto de las multiinstancias en Step 7 ¿no? Bueno. Si lo resumimos y no nos andamos con tantas tonterías... multiinstancia en Step 7 es que puedes incrustar en las variables STAT de un FB otros FB más pequeños como por ejemplo el TON o TOF de los que hemos hablado. ¿A que ahora lo has entendido a la primera? Seguro que sí. Como vas a ver a continuación, lo más típico es incrustar instancias de temporizadores IEC. Digo lo típico por veces que sucede esto respecto a otro tipo de instancias, no porque no se puedan hacer de otro tipo.
  • 41. Cómo programar Step 7 y no morir en el intento 40 Video sobre multiinstancias en Step 7 Como siempre, lo mejor es verlo en un vídeo porque es como mejor se va a entender el concepto que es sencillo pero hay que haberlo visto antes.
  • 42. Cómo programar Step 7 y no morir en el intento 41 8. Funciones en PLC Siemens con ejemplo de semáforo ¿Qué son los FC en Step 7? Las funciones en PLC Siemens son similares a las funciones en otros lenguajes de programación. En los FC en Step 7 se hace la llamada con unas variables de entrada y tras su ejecución nos devuelve unos valores para las variables de salida. Nada nuevo en el firmamento. Pero los FC en Step 7 no se usan exclusivamente para calcular una salida, sino para la organización del programa dentro del proyecto. Es decir, se realizarán llamadas a los FC sin valores de entrada ni valores de salida si bien adicionalmente puede que se usen las variables temporales para uso interno dentro del FC. FC Vs. FB El FC en Step 7 en general se usa más que los FB por par de razones: no necesita asociar un DB (y por tanto ahorras memoria y es más limpio el programa) y no siempre es necesario la re-utilización del código. Si es necesario almacenar datos, podemos hacerlo en marcas o en DB globales. Por tanto, los FC en Step 7 no presentan grandes desventajas frente a los FB más allá que los FB son para una programación orientada a objetos, en los que el bloque FB represente un objeto genérico (por ejemplo, un transportador o un variador) y se pueda reutilizar ese bloque infinidad de veces a lo largo del programa con la peculiaridad de necesitar almacenar datos de esos objetos. En este caso, sí que el FB es más indicado que el FC. Muy bien, pero ¿qué vamos a ver en este capítulo? Evidentemente algo tenemos que hacer porque definir un poco lo que hace un FC de poco o nada sirve si no avanzamos en el conocimiento de las funcionalidades de los PLC de Siemens, que es de lo que se trata. Como habrás visto en el título vamos a realizar un ejemplo de semáforo en Step 7. Normalmente este programa es de los primeros que se hacen con temporizadores… pero ya haremos otros ejemplos cuando veamos los temporizadores de S7. Lo vamos a hacer mediante una función y contando tiempo, que también sabe muy bien el PLC.
  • 43. Cómo programar Step 7 y no morir en el intento 42 ¿En qué va a consistir el ejemplo del semáforo? Básicamente vamos a tener un semáforo para los vehículos rodados el cual va a tener sus tres colores (rojo, verde y ámbar) y otro para los peatones de color rojo y verde. Además, el verde parpadeará cuando se vaya a acabar el tiempo en verde y tendrá un botón de solicitud que si es pulsado, cambiará a verde para los peatones previo paso del asociado a los vehículos por el amarillo. La pulsación del botón hará que se ilumine el letrero de solicitud que se mantendrá iluminado hasta que se ponga en verde para el peatón. ¿Qué herramientas vamos a necesitar para crear este FC en Step 7? Para realizar este ejemplo vamos a ver algunos conceptos nuevos en Step 7 como son:  Comparación  Transferencia  Conversión  Marcas de ciclo Durante las explicaciones del vídeo vas a poder ver cómo usar estos elementos en nuestro ejemplo de FC en Step 7, que como verás es casi trivial. El único que tiene un poco más de miga es el de conversión ya que sirve para tomar una variable y pasarla a otra variable de otro formato. Me explico. No es lo mismo tener un “-2″ en entero, que un “-2″ en doble entero, lo mismo que no es que tener un “-2″ en real. Para empezar, porque en entero ocupa un Word mientras que en doble entero y en real ocupan 4 bytes (doble Word). Para continuar, porque en real, no tienes un “-2″, sino que tienes un “-2.0″, que es igual, pero no es lo mismo que dirían Martes y Trece. Cada tipo de variable además de ocupar una serie de bytes, (2, 4 o los que sean) tienen un formato en particular (hay que poner la mantisa, el signo etc.), por lo que para poder hacer operaciones matemáticas entre dos variables, tienen que estar en el mismo formato ya que si no, pueden pasar dos cosas:  En FUP o KOP no te dejará realizar la operación matemática ya que no son variables con el mismo formato.  En AWL sí que podrás, pero la que puedes montar con el PLC si no lo haces bien la recordarás durante tiempo. Como nosotros estamos empezando y estamos programando nuestro PLC en KOP, no vamos a poder cometer errores a la hora de sumar, ya que el propio Step 7, no nos lo va a permitir. Finalmente, sobre la marca de ciclo puedes encontrar más información además de en el vídeo en 3 formas de crear marcas cíclicas en Step 7 del capítulo siguiente.
  • 44. Cómo programar Step 7 y no morir en el intento 43 Veamos el vídeo para finalizar donde crearemos nuestro proyecto en WinCC y vamos a poner los requerimientos y dar con la solución.
  • 45. Cómo programar Step 7 y no morir en el intento 44 9. FC o FB ¿Cuál de los dos usar? Cuando empiezas a programar tal vez te surja una duda cuasi existencial… ¿Qué es mejor usar? ¿FC o FB?… pues básicamente, depende. En general con ambos se pueden hacer lo mismo. Cambia la forma. Pero digamos que no están pensados para lo mismo. Los FC serán ideales para generar resultados que no tengamos que almacenar. Dentro de la automatización lo usaremos en la lógica general de los programas. Pueden ser usados en líneas generales de actuación de las máquinas, secuencias e interrelación entre ellas. Los FB son como los FC, pero vitaminados. No solamente podremos hacer lo que hacemos con los FC sino que además podremos almacenar valores ya que tienen asociados DB. Además podremos usar los temporizadores IEC de forma muy sencilla evitando complicarnos con los temporizadores de S5 para nuestros propósitos. Serán adecuados para el manejo de motores, variadores etc. ya que podremos juntar similares funcionalidades bajo el mismo FB usando DB para cada uno de ellos. FC o FB Está claro entonces… uso FB siempre y ya está. Esta es la conclusión a la que fácilmente podrías llegar tras lo expuesto. Antes de dar este paso hay que tener en cuenta que los FB siempre han de tener un DB asociado. Eso en sí mismo no es un problema, pero puede serlo si el programa es extenso y has de tener muchas funciones para una correcta organización del programa. El uso innecesario de FB hacen que se ocupe memoria de forma innecesaria ya que generarás un DB lo necesites o no. Si todo lo haces con FB, y el proyecto es suficientemente complejo, tendrás un sinfín de DB. Hay que elegir por tanto los FB en general cuando: El FB controle un actuador o motor y tengas varios del mismo tipo de tal forma que puedas reutilizar el FB no necesitando usar marcas. Esto hace que sea más fácil de mantener y más difícil de cometer errores ya que no necesitarás tener en cuenta qué marcas están usadas y cuáles no. Necesitas guardar datos de forma permanente. Qué mejor hacerlo a través de un FB ya que así tienes un DB asociado donde guardar estos datos. Si vas a usar el FB con diferentes motores por ejemplo, y necesitas temporizadores. Puedes usar los temporizadores IEC y usarlos como multiinstancias. ¿Cuándo usaremos los FC entonces? Para planteamientos generales de las aplicaciones, o para actuadores que no necesiten ser reutilizados.
  • 46. Cómo programar Step 7 y no morir en el intento 45 Funciones aritméticas, trigonométricas o de otra índole que no necesiten almacenar los datos y que simplemente nos devuelva un valor o que se utilicen marcas globales. En definitiva, habrá que evaluar cada caso para saber qué usar. Por lo general personalmente uso más los FC que FB, pero dependerá del proyecto en concreto. Para finalizar adjunto un video en el cual presento las diferencias entre los FB y los FC en ejemplos muy sencillos: un sumador, un totalizador de tiempo y el uso de temporizadores. Ahí quiero mostrarte las diferencias entre ambos para que puedas intuir con más facilidad cuál es el concepto para cada caso.
  • 47. Cómo programar Step 7 y no morir en el intento 46 10. Cómo crear la estructura de un programa en ladder La programación en ladder es sin duda la programación de autómatas programables más extendida, incluidos los PLC Siemens. Esta entrada va a ser más de estilo de programación que de herramientas disponibles dentro de step 7. Hay muchos programadores que son defensores y enamorados de Grafcet. A mí personalmente como programador y mantenedor de las instalaciones no me gusta. Puede ser que por desconocimiento, por falta de uso ya que trabajo con ello pero muy muy poco, o por una manía personal. La cuestión es que para el grado de automatización en el que me muevo dentro de este sector de la automoción no he encontrado aún una razón por la que usar Grafcet ya que con un ladder bien estructurado es más que suficiente. ¿Qué ventajas tiene una programación en ladder para estructurar un programa en Step 7?  Es universal. Lo va a entender todo el mundo y todo es estándar con la programación de escalera normal.  No necesita un software especial de pago como es Grafcet.  A mi juicio más fácil de seguir si está bien estructurado.  Muy compacto. Más que los diagramas de bloques, por ejemplo. ¿Cómo funciona este tipo de programación en ladder? Lo primero que he de decir es que todo esto entra dentro de la forma de programar de cada uno. Yo te voy a contar esta forma, que la puedes adaptar, copiar literalmente o crear una nueva desde cero. Es una forma de hacerlo, nada más. No es palabra de Dios, ni mucho menos. Básicamente la idea es coger tu máquina y dividirla en movimientos lo más sencillos posibles pero que tengan una entidad suficiente como para ser merecedor de dedicarle un par de FC sólo para él. Nada nuevo. Lo siguiente es asignar una palabra o una doble palabra para este FC. Finalmente la idea es establecer unas condiciones iniciales de arranque de la secuencia. Cuando se cumpla, haremos un SET del primer bit. Imaginemos la M0.0. Esto arrancaría la secuencia. Una vez iniciada esta M0.0 realizará una acción simple. Cuando se cumpla la acción asociada y las condiciones de control de esta M0.0, haremos un SET de la M0.1 y haremos un RESET de M0.0.
  • 48. Cómo programar Step 7 y no morir en el intento 47 Sucesivamente, con las condiciones del siguiente estado, activaremos la M0.2 y resetearemos el M0.1 y así sucesivamente. Ahora bien, para que este sistema funcione bien, sea claro y no se complique más de lo necesario la programación en ladder, las condiciones deben estar lo más resumidas posibles (usando variables intermedias) y no se deben activar las salidas. Para ello vamos a dividir esta parte de la automatización en dos: Un FC para la lógica explicada y las condiciones de inicio/finalización de los segmentos Un FC/FB para las salidas de los actuadores con una pequeña lógica de la parte auto con la de manual.
  • 49. Cómo programar Step 7 y no morir en el intento 48 Lógicamente, y dependiendo de cada caso, puede que haya varios FC para la lógica pero solo una para las salidas, por ejemplo. Lo importante es el concepto de separar la lógica por un lado y las salidas por otro. El vídeo Como siempre, te dejo con un vídeo explicativo donde se ve mejor lo ya comentado.
  • 50. Cómo programar Step 7 y no morir en el intento 49 11. Formas de crear marcas cíclicas en Step 7 En este capítulo vamos a ver formas fáciles para crear marcas cíclicas que luego podamos usar a lo largo y ancho de nuestro programa. Así podremos usar:  Las marcas de ciclo  Temporizadores  Crear la marca en OB cíclicos Como digo la idea es que podamos hacer llamadas o acciones a tiempos fijos. Normalmente, y si necesitamos una precisión alta, tendremos que realizar la acción o llamadas desde OB cíclicos cuya frecuencia habremos fijado de antemano al configurar el HW. Pero no es la única forma de realizar acciones a tiempos fijos. Claro que tiempos fijos, más o menos, porque lo que te voy a mostrar a continuación es para ser usado desde el OB1 o FC/FB que dependan del OB1 y por tanto el error que vamos a introducir es del orden del tiempo de ciclo total del PLC. Esto implica que si queremos flancos cíclicos a tiempos de 100ms, no uses jamás el OB1 ya que el error que estás cometiendo el del orden de magnitud que la periodicidad deseada, es decir, si quieres tiempos fijos y la llamada es del OB1 cuyo tiempo de ciclo varía entre 10 y 30ms, pues hombre, menos preciso, es cualquier cosa. Ahora bien, si tus marcas cíclicas van a ser del orden de segundos, la cosa cambia ya que el error que vas a cometer es pequeño. En cualquier caso, usaras este tiempo de marcas cíclicas en acciones en el que la precisión no sea crucial. Creo que está claro el concepto. Marcas cíclicas del PLC Haciendo un corta y pega de la ayuda de Siemens, esta dice lo siguiente sobre las marcas de ciclo: Las marcas de ciclo son marcas que cambian periódicamente su valor binario (relación impulso – pausa: 1:1) ¿A que ahora te has quedado más tranquilo? Yo también. Afortunadamente, tiene una segunda ayuda en la cual muestra una tabla con los periodos de estas marcas.
  • 51. Cómo programar Step 7 y no morir en el intento 50 Como veis va desde una frecuencia de 0,5Hz hasta los 10Hz pasando por valores intermedios. Visto desde el lado del periodo, va desde valores de 0,1 segundos hasta los 2 segundos. ¿Cómo se activa? Configurándolo desde el configurador de hardware. Tendrás que abrir el configurador de HW, abrir la CPU e ir a la pestaña de Ciclo /Marca de ciclo. Abajo tienes que seleccionar el checkbox de marca y seleccionar el número de marca que quieres usar. Ojo porque es un byte, no un Word. Tenlo en cuenta. Hay 8 marcas de ciclo.
  • 52. Cómo programar Step 7 y no morir en el intento 51 ¿Y ahora? Pues tienes que guardarlo, compilar y cargárselo al PLC. Ojo porque el PLC va a pasar a STOP, así que: Siempre que empieces un proyecto en Step 7, selecciona y configura un byte para tu marca de ciclo No cuesta nada, y así no tendrás el pequeño inconveniente de que cuando lo quieras usar, pues no podrás porque la máquina estará en marcha y no la puedes parar hasta dentro de no sé cuántos millones de horas… y todo por no haber elegido una marca cuando configuraste el hardware. ¿Adivinas a quién le ha podido pasar algo así alguna vez? Pues eso. Marcas cíclicas usando temporizadores Otra forma común de realizar ondas cuadradas es con dos temporizadores. La forma de construirlo es muy sencillo como muestra en la imagen. Ambos temporizadores se irán alternando en el contaje del segundo. El temporizador T2 tendrá un periodo de 1s su salida a cero y un periodo de su salida a 1. El T1 por su parte estará siempre a cero salvo un instante (un ciclo de scan) que será el desencadenante de tirar el T2 y que vuelva a empezar. Así, haciendo la lectura del T2, tendremos una marca cíclica de periodo 1segundo en este caso. La ventaja de este, es que se puede variar la relación de tiempo ON/OFF jugando con los tiempos del T1 y del T2. Marcas cíclicas usando un OB cíclico Una forma de crear una marca cíclica es usar un OB cíclico. Imaginemos que queremos cada 0,5 segundos. Cargaremos un OB cíclico que fijaremos a 500ms. Luego haremos un súper código. Imaginemos que queremos hacerlo con la M50.0: UN M50.0
  • 53. Cómo programar Step 7 y no morir en el intento 52 = M50.0 Escalofriante ¿eh? Es tan simple que da miedo. Cada 500 ms irá cambiando de estado. Brillante. Hombre, usaremos los OB cíclicos aprovechando que ya exista, pero si te quieres pegar un lujo, es una forma de hacerlo.
  • 54. Cómo programar Step 7 y no morir en el intento 53 Teniendo OB cíclicos, ¿no hay más formas? Pues hombre, sí. Por ejemplo, creando contadores de 1 a 10 en el OB35 y si está fijado a 100ms por ejemplo, poniendo a uno una marca cuando el contador sea superior o igual a 5 y reseteando cuando sea igual o superior a 10. Bueno, como ves hay muchas formas de crear marcas cíclicas. Espero que te haya sido de utilidad y que lo uses mucho en tus proyectos.
  • 55. Cómo programar Step 7 y no morir en el intento 54 12. Algebra booleana (II) – AWL en Step 7 ¿Recuerdas al señor de la izquierda? Lo vimos en el capítulo de álgebra de Boole. Hoy vamos a ver un poco de lógica binaria de AWL en Step 7. Sí. Antes de ver los temporizadores. ¿Por qué antes? Pues porque cuando veamos los temporizadores, habrá que verlos también en AWL y hombre, no quiero que te dé un derrame cerebral así de primeras. Pero lo veremos enseguida. AWL en Step 7 Deberíamos empezar por ver qué es el AWL. El AWL no es más que uno de los tres lenguajes básicos de Step 7. Es la mamá de todos los lenguajes en Step 7. Todos finalmente se van a traducir a AWL y todo aquello que no se pueda programar en AWL es que simplemente no lo vas a poder programar. Otra cosa es los sudores que te costaría hacer directamente en AWL tareas complejas, pero por poder, se podría. Con AWL en Step 7 se pueden hacer auténticas filigranas ahorrando código a más no poder. Digamos que es la forma de programar más compacta de todas (en general). Si hiciéramos una comparación con otros lenguajes, tendríamos lenguajes de alto nivel como el Pascal (SCL en nuestro caso) y luego tendríamos lenguajes de bajo nivel como Ensamblador, que en nuestro caso sería el AWL. Puede que la comparación no sea lo más acertada del mundo, pero suficientemente buena a mi juicio para que te hagas una idea. ¿Ensamblador? Ya me estas asustando… No te asustes, que no es para tanto. Digo que es similar a ensamblador en el sentido de que es un lenguaje básico, con instrucciones primarias que se ejecutan “a pelo” le pongas lo que le pongas por delante. Por poner un ejemplo. Ya hemos dicho con anterioridad que no puedes comparar en FUP y en KOP valores enteros con reales, por poner un ejemplo. En AWL sí se puede.
  • 56. Cómo programar Step 7 y no morir en el intento 55 ¿Tiene sentido? Ninguno. Pero AWL no entiende de variables enteras, entiende de bits. Y si tú le indicas que haga una suma entera de dos variables, lo hará. Si el formato de estas variables está correcto todo irá bien. Si está mal pues el PLC hará cosas muy pintorescas y divertidas… los primeros dos minutos. Después de 15 minutos sin tener ni pajolera idea de qué pasa, deja de tenerla. Con el tiempo te darás cuenta de que no tiene nada de gracia ya desde el principio. Frustraciones personales a parte, con todo esto quiero que te quedes con dos cosas:  El AWL es el lenguaje base del resto.  Todo es traducible a AWL, pero no al revés. La primera parte creo que ha quedado clara. La segunda, la vas a ver clara enseguida. Los lenguajes FUP y KOP cuando lo traduces a AWL crean instrucciones que a veces son inservibles de cara a la ejecución del programa pero necesarios para la propia integridad del lenguaje FUP y KOP. Necesitan de esas instrucciones para dar consistencia a lo que estás dibujando y de ahí que creen líneas que en principio no serían necesarias para un funcionamiento idéntico realizando el programa directamente en AWL. El problema está que si realizas el programa en AWL directamente, si quieres traducirlo a KOP, por decir uno, el editor no va a tener la capacidad de entender qué diantre quieres hacer. Y por tanto, no podrá traducirlo. Por tanto siempre podrás traducir FUP y KOP a AWL (más o menos depurado) pero en general, no podrás traducir código AWL a FUP y a KOP. Es así. Asúmelo. Así que empecemos con las cosas básicas que debes tener claras antes de empezar a programar en AWL. Instrucciones básicas para programar AWL en Step 7 Las instrucciones básicas van a ser:  U para hacer un AND  O para hacer un OR  X para hacer una O exclusiva  = para igualación ¿No hay negadas? Veo que estás despierto. Efectivamente. También tendremos:  UN para hacer un AND negado  ON para hacer un OR negado  XN para hacer una O exclusiva negada. Luego lógicamente tendremos paréntesis (). Pero eso más tarde.
  • 57. Cómo programar Step 7 y no morir en el intento 56 ¿No hay más? Sí que hay más. El Set, Reset, flancos… pero de momento, quédate con los básicos que son los de ahí arriba. Operaciones de Y lógica. Esto lo vas a pillar enseguida verás. Imagina que tienes dos entradas que cuando están las dos a true (1), tenemos que activar una salida. La lógica sería así: U E 0.0 U E 0.1 = A 1.0 Es decir, iniciamos el segmento leyendo lo que hay en el E0.0 y le hacemos un AND con el E0.1 y su resultado se lo asignamos a la salida A1.0. O de otra forma, cargamos el E0.0 en el RLO y luego hacemos un AND de la E0.1 con el RLO y se lo asignamos a la A1.0 Ya bien, pero estooo, una cosita que te quería comentar… ¿Qué es el RLO? ¿Siglas chulas eh? ¿De alguna organización? Pues no. El RLO no es más que una variable que almacena el valor de una operación binaria. Es especialmente relevante en la programación de AWL en Step 7. La definición ha quedado chulísima pero no he entendido ni papa. A ver. En el ejemplo de la Y lógica hemos visto primero una U E0.0 Bien. Como hemos dicho que la U es un AND con lo que tenga el RLO (V ó F). Como no hay operación previa, entonces lo que hace es leer el valor de la E0.0 y la transfiere al RLO. Imaginemos que tiene un cero. Luego el RLO valdrá cero. Luego imaginemos que la E0.1 está a uno y hace un U E0.1 Es decir, hace un AND con lo que tenga el RLO tras haber ejecutado la operación anterior. La E0.1 está a uno, pero el RLO está a cero, luego el resultado nuevo será cero y se lo cargará nuevamente al RLO. = A1.0 Finalmente, toma el valor del RLO y se lo transfiere a la A1.0 Imaginemos que ambas señales estuvieran a uno.
  • 58. Cómo programar Step 7 y no morir en el intento 57 Entonces, inicialmente al leer la E0.0 el RLO pasaría a valer uno. Luego haría un AND entre el RLO y la E0.1. Como ambas están a uno, el resultado lógico sería uno, que sería nuevamente almacenado en el RLO. Finalmente, cargaría ese uno en la salida A1.0 ¿Capito? Operación O lógica En buena lógica (nunca mejor dicho), podrías pensar que la forma correcta de hacer un OR sería: U E0.0 O E0.1 = A1.0 Y eso estaría bien. Pero la forma más mejó sería haciendo: O E0.0 O E0.1 = A1.0 ¿Por qué? Lógicamente hacen lo mismo. Pero me gusta más hacerlo así porque de hecho, cuando traduces un OR de KOP a AWL así lo representa. Mejor que escribamos todos de la misma manera ¿no? Bueno, al grano. ¿Adivinas como actuaría no? Inicialmente haría un: U E0.0 // O E0.0 Como en el caso anterior leería el estado del E0.0 y lo volcaría en el RLO (imaginemos un cero). Luego un: O E0.1 Y aquí haría un OR con el RLO. Imaginemos que el E0.1 estuviera a uno. El resultado del OR sería un bonito uno. = A1.0 E igualamos el uno a la salida A1.0. ¿Sencillo no? Vayamos ahora con los paréntesis.
  • 59. Cómo programar Step 7 y no morir en el intento 58 Paréntesis en AWL en Step 7 Como puedes imaginar, en cuanto queramos realizar combinaciones un poco más elaboradas necesitaremos paréntesis para poder realizar estas lógicas. Así, dispondremos de las siguientes operaciones:  U( ..) //UN(..) que valdrá para realizar un (N)AND con el contenido interior al paréntesis  O(..) // ON(..) que valdrá para realizar un (N)OR con el contenido interior del paréntesis.  X(..) // XN(..) que valdrá para realizar una (N)XOR con el contenido interior del paréntesis En definitiva en lo que se basa es en realizar la combinatoria interior del paréntesis y luego ejecutar la operación asociada al paréntesis. Los paréntesis pueden anidarse metiendo paréntesis dentro de otros paréntesis. Así, podríamos hacer algo similar a lo anteriores ejemplos: U( U E0.0 O E0.1 ) O( U E0.2 U E0.3 ) = A1.0 En este caso primero resolvería la combinatoria interior de los paréntesis por separado y luego realizaría el OR entre el resultado de los paréntesis. Hay que añadir que el caso del OR es un poco especial ya que si dentro del paréntesis del OR la combinatoria es de AND exclusivamente, el paréntesis se podría haber obviado quedando esa parte así: O U E0.2 U E0.3 Y funcionaría exactamente igual.
  • 60. Cómo programar Step 7 y no morir en el intento 59 Operandos de cierre de consulta A estas alturas de la película te estarás preguntando… si los resultados de la combinatoria se van almacenando en el RLO, ¿qué pasa después de una igualación si quiero empezar a realizar una nueva combinatoria? Pues efectivamente después de los operandos:  Igualación (=)  Set (S)  Reset (R) Con esos operandos, se cierra la consulta actual y se abre una nueva (además del inicio del programa). Da igual por tanto lo siguiente que hagas (U, O, UN…) porque lo que se hará es una lectura del operando en el RLO. Es decir, si la siguiente a una igualación es … = A1.0 UN E1.0 U E1.1 = A1.2 Lo que hará es leer el estado de la E1.0, le cambiará el signo y lo cargará en el RLO. No hará un NAND con nadie. Simplemente realizará la carga en el RLO. Ojo. Un cambio de segmento no es un inicio de programa. Por tanto si la última instrucción de un segmento es la lectura de un bit haciendo un U E0.7, este afecta al siguiente segmento. A efectos prácticos es como si lo hubieras escrito al principio del nuevo segmento. Finalmente vamos a ver un vídeo como siempre, explicando lo visto hasta ahora.
  • 61. Cómo programar Step 7 y no morir en el intento 60 13. Step 7… AWL, FUP o KOP ¿Cuál elijo? Antes de responder a la pregunta de qué lenguaje escoger en Step 7, repasemos un poco de qué lenguajes disponemos.  FUP  KOP  AWL FUP Es un lenguaje de Step7 gráfico que utiliza los cuadros del álgebra booleana para representar la lógica. Asimismo, permite representar funciones complejas (p.ej. funciones matemáticas) mediante cuadros lógicos. Tiene la ventaja de ver agrupados por bloques las diferentes lógicas y tener bloques complejos. Cuando hay mucha lógica booleana en serie suele ser más compacto y más fácil de ver el segmento completo. KOP Es un esquema de contactos, escalera o ladder. Es un lenguaje de Step 7 gráfico y probablemente el más extendido en todos los lenguajes de programación y por tanto el más similar a otros. Probablemente es el más fácil de entender por personal proveniente de la industria eléctrica y técnicos eléctricos. En definitiva, es la representación que habría que cablear si se quisiera hacer el mismo programa que realizas con el PLC.