Programacion Avanzada
Programacion Avanzada
Programacion Avanzada
1. Conceptos básicos
1
1. Conceptos básicos
TIA PORTAL
Totally Integrated Automation (TIA) Portal, una plataforma software que abre las
puertas al concepto de la futura Fábrica Digital que fue desarrollado desde 1996,
que integra varias aplicaciones para la industria moderna como son las HMI, PLC,
variadores de frecuencia, servovariadores, dispositivos de campo (PID, RFID,
entradas/salidas discretas y análogas, etc.). Es la evolución del S7 profesional y
existen varias versiones:
- Tia Portal Basic (S7 1200 y HMI Basic). Con lenguajes de programacion KOP
y SCL.
- Tia Portal Professional (S7 1200, S7 1500, S7 300, S7 400, HMI Basic y
Comfort). Con lenguajes de programación KOP, FUP, SCL, AWL (STL) y
Graph.
Dentro del Tia Portal Professional hay una división del Wincc que son:
- Wincc Basic
- Wincc Comfort
- Wincc Advanced
- Wincc Professional.
• OB (bloque de organización):
2
3
• FB (bloque de función):
A los datos de este DB de instancia se accede a través de las variables del FB. Si
se llama varias veces a un FB, se le deben asignar distintas áreas de memoria. En
un bloque de función también pueden ser llamados otros FB y FC.
• FC (función):
En una función también pueden ser llamados de un OB así como otros FB y FC.
• DB (bloque de datos):
4
Parámetros de bloque.
5
3. Bloques de organización
Bloques de organización (OB)
6
7
• OB de alarma de proceso y OB de alarma cíclica.
• OB de alarma de retardo:
Información de arranque
8
4. Bloques FC, FB y DB
Función
Una función contiene un programa que se ejecuta cada vez que la función es
llamada por otro bloque lógico.
Las funciones (FC) son bloques lógicos sin memoria. Los datos de las variables
temporales se pierden tras haberse procesado la función. Para guardar datos de
forma permanente, las funciones pueden utilizar bloques de datos globales.
Bloques de función
Los bloques de función contienen programa que se ejecuta cada vez que un bloque
de función es llamado por otro bloque lógico.
Los bloques de función son bloques lógicos que depositan sus valores de forma
permanente en bloques de datos de instancia, de modo que siguen disponibles tras
procesar el bloque.
9
Un bloque de función también se puede llamar varias veces en diferentes puntos de
un programa. Esto facilita la programación de funciones complejas que se repiten
con frecuencia.
Bloques de datos
Todo bloque de función, toda función o todo bloque de organización puede leer
datos de un bloque de datos global o escribir datos en él. Estos datos se conservan
en el bloque de datos incluso al cerrarlo.
10
Datos locales.
Datos locales temporales Temp Variables que sirven para almacenar Funciones, bloques de
resultados intermedios temporales. Los función y bloques de
datos temporales se conservan solo organización
durante un ciclo. Si utiliza datos locales
temporales, se debe asegurar de que
los valores se escriben dentro del ciclo
en el que desea leerlos. De lo contrario,
los valores serán aleatorios.
Datos locales estáticos Static Variables que sirven para almacenar Bloques de función
resultados intermedios estáticos en el
bloque de datos de instancia. Los datos
estáticos se conservan hasta que se
vuelven a escribir, también a lo largo de
varios ciclos. Los nombres de los
bloques que son llamados como
multiinstancia en un bloque lógico
también se depositan en datos locales
estáticos.
5. Aplicación de Multi-Instancia
¿Qué son multiinstancias en Step 7?
Empezaremos definiendo qué es una instancia en programación. De Step 7 o de
Visual Basic. El vocablo instancia proviene de la programación orientada a objetos
y de las clases y se explica 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.
11
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. Esto se usa para
ahorrar código al no generar DB de instancia por cada llamado de una FB que
es multiistanciada sino que sus datos quedan dentro del FB de llamado como
una variable STATIC más.
Imagina que tengas que programar una instalación donde tienes que mover
información no de forma lineal, sino que tienes que moverla en función de ciertos
parámetros, recorrer arrays, o realizar cálculos complejos.
12
Si sólo conoces la programación en escalera o en FUP, puedes encontrarte en que
tu situación se complique bastante debido a las propias limitaciones de escalera y
diagrama de bloques. La programación escalera está pensado fundamentalmente
para la programación de lógica booleana.
Para aplicaciones complejas en manejo de datos hay lenguajes de alto nivel como
SCL cuyo objetivo es precisamente este: la programación más compleja.
La limitación proviene entonces, no por el hardware, ya que las CPU son muy
potentes, sino por el software. La programación en escalera, si bien va avanzando
cada vez más, en algunos casos, no avanza lo suficientemente rápido a las
necesidades del mercado. Y ahí es donde entra el SCL en TIA Portal. El SCL
permite hacer operaciones como:
13
Lenguaje AWL (Lista de instrucciones).
El AWL no es más que uno de los cuatro lenguajes básicos de Step 7. En la
entrada AWL, FUP, KOP y SCL, es muy similar al lenguaje ensamblador (lenguaje
de programación de maquina).
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).
El RLO no es más que una variable que almacena el valor de una operación
en forma binaria, significa el resultado de una operación lógica en los bits de
estado. Es el bit 1 de la palabra de estado STW.
El bit STA contiene el estado del operando actual, y se combina con el RLO
anterior para generar el RLO siguiente.
La primera instrucción en un segmento verifica el estado de la señal de contacto. El
RLO se establece en '' 1 '' si STA es “1”. La segunda instrucción también verifica el
estado de la señal de contacto si STA es “1”, este resultado de verificación ahora
se combina con el valor almacenado en el bit RLO de acuerdo con las reglas de
álgebra booleana y se almacena en el bit RLO. Esta cadena lógica finaliza después
de una asignación o un salto condicional. Dependiendo del valor del bit RLO, se
ejecuta una asignación o un salto condicional.
14
7. Direccionamiento Indirecto
Direccionamiento en S7.
Existen tres tipos de direccionamiento:
- Direccionamiento Inmediato
- Direccionamiento Directo
- Direccionamiento Indirecto
Direccionamiento inmediato.
15
Direccionamiento directo.
Ejemplo: L MW 122 (carga valor contenido en MW112); A I 1.2 (valor “1” o “0” de
entrada).
T T15 Temporizadores
C C1 Contadores
Direccionamiento indirecto.
16
Mediante esta función podemos acceder a diferentes áreas de memoria de una
manera indirecta indicada por un índice o puntero. Este tipo de direccionamiento
nos puede llegar a ahorrar muchas líneas de programa sobre todo cuando
trabajamos moviendo datos. Por ello:
Usando formato doble palabra: accederemos a datos de tipo bit, byte, palabra y
doble palabra
Direccionamiento indirecto por memoria con número formato palabra: es el más fácil
de entender en un número entero (palabra) introducimos el valor de DB, FB,
temporizador, etc., que queramos leer
L 10
T MW 10
17
U T[MW10]
L P#10.0
T MD10
U E[MD10]
= A [MD10]
O lo que es lo mismo:
U E10.0
= A10.0
18
8. Organización de proyecto.
Grafcet.
El GRAFCET (Graphe Fonctionnel de Commande Etape Transition), nació en 1977
fuente del trabajo de la AFCET (Asociación Francesa para la Cibernética Económica
y Técnica), en principio como síntesis teórica de las diferentes herramientas
existentes por aquel entonces (Organigrama, Organifase, Diagramas de Girard, Red
de Petri, etc...). Le otorgó su actual forma en 1979 la ADEPA francesa (Agencia
Nacional para el Desarrollo de la Producción Automatizada). Normalizada en
Europa como (EN61131) e internacionalmente en 1992 como (norma CEI 1131).
Básicamente, el GRAFCET, es un modelo de representación gráfica, de los
sucesivos comportamientos de un sistema lógico, predefinido por sus entradas y
salidas. También, es un grafo, o diagrama funcional normalizado, que permite hacer
un modelo del proceso a automatizar, contemplando entradas, acciones a realizar,
y los procesos intermedios que provocan estas acciones. Inicialmente fue propuesto
para documentar la etapa secuencial de los sistemas de control de procesos a
eventos discretos. No fue concebido como un lenguaje de programación de
autómatas, sino un tipo de Grafo para elaborar el modelo pensando en la ejecución
directa del automatismo o programa de autómata. Varios fabricantes en sus
autómatas de gama alta hacen este paso directo, lo que lo ha convertido en un
potente lenguaje gráfico de programación para autómatas, adaptado a la resolución
de sistemas secuenciales. En la actualidad no tiene una amplia difusión como
lenguaje, puesto que la mayoría de los autómatas no pueden programarse
directamente en este lenguaje, a diferencia del Lenguaje Ladder. Pero se ha
universalizado como herramienta de modelado que permite el paso directo a
programación, también con Ladder.
19
Programación Orientada a Objetos.
La programación orientada a objetos (POO u OOP según sus siglas en inglés) es
un paradigma de programación que viene a innovar la forma de obtener resultados.
Los objetos manipulan los datos de entrada para la obtención de datos de salida
específicos, donde cada objeto ofrece una funcionalidad especial.
9. S7 Comunicación
S7 Comunicación.
Con frecuencia se suele confundir en las explicaciones técnicas de los especialistas
de los soportes físicos de las comunicaciones con los protocolos que soportan las
mismas.
Se entiende por protocolo según los manuales: “el convenio exacto entre
interlocutores para poder ejecutar un determinado servicio de comunicación. El
protocolo define el contenido estructural del tráfico de datos en la línea física,
definiendo el modo de operación, la forma de realizar el establecimiento del enlace,
la protección de los datos o la velocidad de transferencia.”
20
Por otro lado, se entiende por soporte de transmisión o soporte físico “el medio físico
sobre el que se transmite el protocolo de comunicaciones”. Es decir, es por donde
circula dicho lenguaje o telegrama de comunicaciones.
La norma RS485.
La mayoría de los protocolos que más adelante describiremos, utilizan como soporte
físico el cable trenzado y apantallado siguiendo la norma RS485. Esta norma se
basa en una diferencia de tensión entre ambos conductores, por lo que es bastante
inmune al ruido debido a que una elevación en la tensión de ambos conductores no
afecta a la señal transmitida.
21
Los cables de comunicaciones en esta norma se denominan señal A y señal B,
realizándose la conexión de los elementos mediante conexiones en paralelo. Las
derivaciones en estrella son posibles mediante repetidores de comunicaciones. En
los extremos de la red es necesario que se conecten unas resistencias de
finalización del bus de datos.
Se suele llamar a esta norma el soporte físico de los protocolos Profibús DP, FMS,
FDL y protocolo MPI en sus conexiones eléctricas, aunque es más la norma del
soporte que el propio soporte en sí.
22
Conector S7 300.
- Sin amplificar la señal MPI: 50 m. (salvo CPU 318-2 DP que son 100 m.)
- Con cada repetidor RS485: 1000 m. a 187 Kbaud.
- 100 m. a 12 Mbaud.
- 200 m. a 1.5 Mbaud.
- 400 m. a 500 Kbaud.
- 1000 m. a 187 Kbaud.
Redes maestro-esclavo.
Las redes maestro-esclavo se caracterizan por poseer un único maestro y todos los
demás equipos son esclavos. Se entiende por equipo maestro aquel que toma el
control del bus de comunicaciones (con exclusividad) y emite al mismo un telegrama
por iniciativa propia, y sin que se le haya solicitado previamente dicha acción. Se
entiende por esclavo aquel equipo que es capaz de emitir un telegrama a la red si
recibe previamente una petición por parte del maestro dirigida al mismo, pero que
no puede solicitar datos a ningún equipo de la red por iniciativa propia.
23
Redes multimaestro.
Para evitar el inconveniente anterior aparecen las redes en las cuales todos los
equipos pueden tomar la iniciativa de la comunicación en la red. Pero dentro de esta
posibilidad existen también dos subdivisiones:
En las redes de paso por testigo, el token o testigo es la autorización para poder
disponer de la red de comunicaciones y emitir las peticiones o los envíos que el
equipo en cuestión desee. Mientras una CPU dispone del token, las demás se
comportan como esclavas, por lo que exclusivamente podrán responder ante una
petición del maestro actual. Cada cierto tiempo determinado por el sistema, el
testigo pasa al siguiente equipo que esté configurado como maestro. El orden de
paso no viene determinado por la posición física de los equipos en la red, sino por
la ordenación numérica de sus números de estación dentro de la misma.
Generalmente una red de paso por testigo es en anillo (token-ring), por lo que
cuando se alcanza el último maestro, vuelve el sistema se lo pasa al primero de
estos de nuevo y así sucesivamente. Si uno de los equipos que deben de tomar el
testigo no responde, el sistema automáticamente lo pasa al siguiente en la lista de
autorizaciones.
En las redes de acceso aleatorio, este paso por testigo no existe en absoluto. En
este método, todas las estaciones pueden enviar en cualquier instante siempre que
no emita ninguna en dicho momento. Lógicamente, esto genera a la larga conflictos
condicionados por tiempos de propagación, cuando dos estaciones intentan emitir
al mismo tiempo por haber detectado que está libre el bus. En este método, ambas
estaciones detectan la colisión, por lo que dejan de emitir, y sólo reemprenden ésta
después de esperar un tiempo definido aleatoriamente, con lo que la probabilidad
de colisionar de nuevo es muy baja. En cualquier caso, si esto ocurriera, se repetiría
el proceso anterior. Este método es el utilizado por ETHERNET para comunicar
entre sus equipos.
Recursos en S7.
24
cuantos recursos disponemos en nuestra CPU, para saber si podemos realizar una
configuración determinada de comunicaciones.
- AS-i
- MPI
- Profibús
- ETHERNET.
Pues bien, veamos que protocolos o servicios soportan cada una de estas redes
decomunicaciones.
25
Veamos en profundidad que realizan cada uno de estos protocolos, y cuál es su
finalidad, sus virtudes y sus limitaciones.
Servicios AS-i.
Protocolo MPI
La Red MPI (Multi Point Interface) es la interfase de comunicación más sencilla que
existe entre los equipos S7, y la más económica, ya que no requiere a diferencia de
las otras comunicaciones una tarjeta adicional (CP).
Se puede transferir o acceder a cualquier zona del mapa de memoria del PLC con
el que deseamos comunicarnos, y tan sólo es necesario indicar donde queremos
que se nos dejen los datos leídos o cuales es la fuente de datos a enviar.
Protocolo Profibús
26
El número máximo de participantes es de 127.
27
medidas de variables analógicas y actuar sobre el proceso en función del valor de
dicha medida. Se utiliza en zonas de seguridad intrínseca, para ello posibilita la
comunicación de datos a una velocidad máxima inferior y la alimentación de los
procesadores de comunicación a través de un único par de hilos mediante fuentes
de alimentación especiales.
28
11. PROFINET IO
Red Industrial Universal Profinet.
Profinet (Proccess Field Net) es una red universal Ethernet Industrial, basada en la
red Ethernet y en los protocolos TCP/IP de internet. Profinet proporciona el servicio
para implementar las comunicaciones en todos los niveles de la Pirámide CIM, y
sustituye por ello a las redes de datos, las de controladores y las de sensores
actuadores y se supera para poder controlar en tiempo real sistemas en movimiento
(motion control) que exigen un tiempo de respuesta T R (Response Time) inferior a 1
ms. La red Profinet facilita la comunicación entre los diferentes dispositivos de
acuerdo con el tipo y son:
29
Conceptos básicos.
Variable Definición
Proceso El termino proceso se refiere a cambiar
o refinar una materia prima para lograr
un producto final.
Variable de proceso La variable de proceso es aquella que
puede cambiar las condiciones del
proceso.
Variable manipulada La variable manipula es aquella que se
varia para mantener constante la
variable medida.
Variable Medida La variable medida es aquella a la cual
se quiere mantener estable.
Setpoint El Setpoint es el valor el cual se desea
mantener la variable de proceso.
Error El error es la diferencia entre la variable
medida y el setpoint.
Controlador El controlador es el equipo que recibe
los datos medidos, los compara con el
setpoint y si es caso toma las
decisiones para que el proceso sea
estable.
Actuador El actuador es el dispositivo final de
control que produce el cambio físico en
el proceso.
Captador El Captador es el dispositivo encargado
de realizar las mediciones de la variable
de proceso.
30
Tipos de controladores
31
Entre mayor sea el valor del factor proporcional a el error de regulación del sistema,
la salida aumentará, hasta llegar a un estado de oscilación permanente, de manera
que la magnitud regulada se alejará periódicamente del setpoint por efecto del
propio regulador, y no por efecto de la perturbación del sistema.
Uno de los inconvenientes del controlador integral es que la respuesta inicial es muy
lenta, y, el controlador no empieza a ser efectivo hasta haber transcurrido un cierto
tiempo. En cambio, anula el error remanente que presenta el controlador
proporcional.
Hay que ser muy cuidadoso a la hora de escoger el valor del tiempo derivativo. En
la mayoría de las aplicaciones es común desactivar la acción derivativa, aunque
para sistemas de control de temperatura es muy recomendada.
32
Controlador PID
Un controlador PID es un mecanismo que realiza el control de una variable
(velocidad, nivel, temperatura, flujo, presión, entre otras) a través de un lazo de
retroalimentación. El lazo controla la variable final calculando la diferencia entre una
variable real y una variable deseada.
El controlador PID trata de aprovechar las ventajas de cada uno de los controladores
de acciones básicas, de manera que, si la señal de error varía lentamente en el
tiempo, predomina la acción proporcional e integral y, mientras que, si la señal de
error varía rápidamente, predomina la acción derivativa.
Tiene la ventaja de ofrecer una respuesta muy rápida y una compensación de la
señal de error inmediata en el caso de perturbaciones. Presenta el inconveniente
de que este sistema es muy propenso a oscilar y los ajustes de los parámetros son
mucho más difíciles de realizar.
33
13. Recetas S7
Para que recetas en S7.
Las funciones con recetas integradas facilitan una administración sencilla de las
recetas. Las funciones con recetas se pueden utilizar, por ejemplo, a través de
páginas web definidas por el usuario (AWP) en los servidores web del PLC.
34
Tarea
Solución
Fig. 1
Ventaja
35
- Opción cómoda para lograr una visión general de la aplicación o incluso
realizar funciones de control
- Acceso a la CPU a través de los mecanismos estándares, especialmente
acorde a la planta - cada CPU puede tener su propia página, si fuese
necesario
- Protección de acceso para el servidor web por medio de una gestión de
usuarios
36
14. Instrucciones relacionadas
S7 comunicaciones.
37
PID.
Recetas.
38