4
Principios
básicos
de
programación.
Visión
Prác4ca
S7-‐1200
S7-‐1200
13/10/14
Índice
• Introducción
a
la
programación
del
autómata
• Definición
del
sistema
de
control
•
Descripciones
literales
PRÁCTICA
S7-‐1200
• Diagrama
de
contactos
• Diagrama
de
funciones
• Lenguajes
de
alto
nivel
• Visión
Prác4ca
S7-‐1200
• Organización
de
programas
2
• Tipos
de
módulos
Introducción
a
la
programación
13/10/14
de
PLCs
• Sistemas
y
recursos
envueltos
en
la
transferencia
de
información
que
rodean
al
autómata
SISTEMA
OPERATIVO
Monitor
PROCESADOR
PRÁCTICA
S7-‐1200
INTERFACE
MEMORIA
E/S
PROGRAMA
UNIDAD
DE
PROGRAMACIÓN:
-‐Lenguaje
Progr.
-‐Editor
de
Progr.
3
PROCESO
PROGRAMA
SEÑALES
DE
EMERGENCIA
BINARIO
Introducción
a
la
programación
13/10/14
de
P LCs
• Podríamos
dividir
la
programación
del
autómata
en
varios
pasos
:
• Definir
el
sistema
de
control
(
que
debe
hacer,
en
que
orden,
etc.):
PRÁCTICA
S7-‐1200
correspondientes
del
modelo.
• Codificar
la
representación
del
modelo.
Lenguaje
de
programación.
• Cargar
el
programa
en
la
memoria
del
autómata
desde
la
unidad
de
programación.
• Depurar
el
programa
y
obtener
una
copia
de
seguridad.
4
Introducción
a
la
programación
13/10/14
ucciónde
a la P LCs
Introducción
programación a la
de APIs programación de APIs (PLCs)
(PLCs)
• Esquema
del
• dEsquema
esarrollo
ddel
e
un
proceso
controlado
desarrollo de un proceso por
un
controlado por un
autómata
unautómata
PRÁCTICA
S7-‐1200
- Puesta en modo RUN - Esquema de conexionado
Determinación de E/S, temporizadores,
E/S al Autómata.
contadores, etc., necesarios
- Montaje
FIN
De:inición
del
sistema
de
control
13/10/14
• Definición
del
sistema
de
control
• Sistemas
sin
complejidad
⇒
lenguaje
vulgar(descrip.
Literal)
PRÁCTICA
S7-‐1200
• La
descripción
literal
de
un
proceso
y
de
su
control
puede
hacerse
enumerando
literalmente
las
acciones
a
desarrollar
por
el
mismo,
expuestas
secuencialmente
y
con
indicación
de
las
condiciones
de
habilitación
o
validación
en
cada
caso.
• Exhaus4vamente
o
no
define
bien.
Si
se
hace,
digcil
comprensión.
• Se
complementa
con
otras
formas
de
representación
6
•
De:inición
del
sistema
de
control
13/10/14
• Definición
del
sistema
de
control
• Funciones
algebraicas
PRÁCTICA
S7-‐1200
• Origen:
en
la
representaciones
electromecánicas
de
sistemas
de
mando
• representación
de
sistemas
sencillos:
señales
lógicas
binarias
todo-‐
nada
(digitales),
o
bloques
secuenciales
predefinidos,
como
temporizadores
y
contadores.
• Deficiencias
en
cuanto
a
la
representación
de
funciones
secuenciales
complejas
y
sobre
todo
en
la
manipulación
de
señales
digitales
de
varios
7
bits
(por
ejemplo,
las
obtenidas
de
una
conversión
A/D).
• U4lizado
por
electricistas
o
ingenieros
con
formación
eléctrica
• Esquema
de
relés
De:inición
del
sistema
de
control
PRÁCTICA
S7-‐1200
Definición del sistema de control
De:inición
del
sistema
de
control
13/10/14
• Diagramas lógicos
– Este tipo de representación del sistema de control se utiliza en la
Diagramas
lógicos
de
• documentación
las especificaciones y representación de los
• Este
4po
de
representación
del
sistema
de
control
se
u4liza
en
la
mismos
PRÁCTICA
S7-‐1200
9
De:inición
del
sistema
de
control
13/10/14
• Diagramas
de
flujo
PRÁCTICA
S7-‐1200
• 2
Niveles:
• Nivel
1:
• secuencia
de
acciones
a
realizar
• representar
el
funcionamiento
general
del
sistema
• Nivel
2:
10
• especificadas
las
acciones
en
forma
de
instrucción:
instrucciones
entendibles
directamente
por
el
autómata
o
en
forma
de
funciones
lógicas.
De:inición
del
sistema
de
control
13/10/14
• Grafcet(Graphe
deComande
Etape
Transi4on,cuya
traducción
PRÁCTICA
S7-‐1200
otra”
• Normalizado:Interna4onal
Electrotechnical
Commision
IEC
848
• Una
de
las
mejores
herramientas
para
representar
automa4smos
11
secuenciales
De:inir
las
variables
que
intervienen
y
13/10/14
asignarles
direcciones
de
memoria
• Definir
las
variables
que
intervienen
y
asignarles
direcciones
de
memoria
PRÁCTICA
S7-‐1200
de
transcurridos
10
segundos.
Si
se
ac4va
E1,
se
cierra
el
contactor
S2
y
se
man4ene
cerrado
hasta
que
el
interruptor
E3
de
final
de
carrera
desac4ve
el
contacator
S2.
Cuando
se
esta
abriendo
la
puerta,
o
bien
cuando
una
vez
abierta
haya
detectado
un
vehículo
con
el
sensor
E1,
el
temporizador
T1
no
se
ac4va.
Si
no
se
dan
estas
circunstancias
y
la
puerta
esta
abierta
E3
ac4vado,
se
ac4va
el
temporizador
T1,
y
transcurridos
10
segundos,
la
puerta
se
cierra
mediante
el
contactor
S1
por
el
temporizador
T1.
La
acción
de
cerrar
se
produce
hasta
que
o
bien
se
detecta
fin
de
carrera
E2
o
bien
se
detecta
otro
vehículo
mediante
la
ac4vación
de
E1
en
cuyo
caso
12
se
abre
la
puerta
ac4vando
para
ello
el
contactor
S2.
Las
lámparas
LED1
y
LED2
indican
cuando
se
está
cerrando
o
abriendo
la
puerta
respec4vamente.”
De:inir
Definir laslvariables
as
variables
que
intervienen
que intervienen y asignarles y
13/10/14
direcciones de memoria
asignarles
direcciones
de
memoria
Tabla
d
• • Tabla dee
aasignación
signación
de
de
variables
variables
PRÁCTICA
S7-‐1200
13
De:inir
las
variables
que
intervienen
y
13/10/14
Definir las variables que intervienen y asignarles
asignarles
direcciones direcciones
de
memoria
de memoria
• Posteriormente
se
asignan
las
direcciones
gsicas
a
estas
variables
• Posteriormente se asignan las direcciones físicas a estas variables
13/10/14
• “Conjunto de instrucciones y/o símbolos que están
disponibles
• “Conjunto
para escribir
de
instrucciones
y/o
el programa,
símbolos
que
ese denomina
stán
lenguaje
disponibles
para
de programación”
escribir
el
programa,
se
denomina
lenguaje
de
PRÁCTICA
S7-‐1200
• Si
• unidad
Si unidad de
programación
de programación acepta
acepta
directamente
directamente la
la
representación
representación
deldsist.
del
sist.
de control,
e
control,
seecarga
se
carga
en la
n
la
CPU.
Si
CPU.
no
Si no
hay
hay
que
que traducirla
traducirla
al lenguaje
al
lenguaje
de programación
de
programación
per4nente.
pertinente.
15
Lenguajes
de
programación
13/10/14
• KOP
(esquema
de
contactos)
es
un
lenguaje
de
programación
PRÁCTICA
S7-‐1200
16
Lenguajes
de
programación
13/10/14
Diagrama de contactos. Diagrama de funciones
• Diagrama
de
contactos.
• Es un lenguaje gráfico procedente del lenguaje de relés que
en base
• Es
un
lenguaje
gráfico
símbolos
procedente
del
lque representan
enguaje
de
relés
qcontactos,
ue
en
base
bloques
PRÁCTICA
S7-‐1200
• Diagrama
de
funciones
• Diagrama de casos
– En muy pocos funciones: deriva
los usuarios dedelaautómatas
finales representación
utilizan estalógica
representación
utilizada lpor
• Deriva
de
la
representación
losu4lizada
ógica
técnicos enlos
por
electrónica
técnicos
en
digital
electrónica
digital
17
Lenguajes
de
programación
13/10/14
• Lenguajes
de
alto
nivel
• Lista
de
instrucciones,
diagramas
de
contactos,...
Insuficientes
para
PRÁCTICA
S7-‐1200
Fortran,
etc.
mediante
el
uso
de
los
interpretes
o
compiladores
respec4vos.
Estas
herramientas
permiten
resolver
tareas
de
cálculo
cienpfico
de
alta
resolución,
clasificaciones
y
tratamiento
de
datos,
estadís4cas,
etc.,
con
acceso
a
subru4nas
específicas
de
lenguajes
informá4cos.
18
Visión
Práctica
S7-‐1200
13/10/14
• Lenguajes
de
programación-‐
para
el
S7-‐1200
PRÁCTICA
S7-‐1200
programación
que
empleará
dicho
bloque.
• El
programa
de
usuario
puede
emplear
bloques
lógicos
creados
con
cualquiera
de
los
lenguajes
de
programación.
19
Visión
Práctica
S7-‐1200
13/10/14
• Lenguajes
de
programación-‐
para
el
S7-‐1200
PRÁCTICA
S7-‐1200
programación
que
empleará
dicho
bloque.
• El
programa
de
usuario
puede
emplear
bloques
lógicos
creados
con
cualquiera
de
los
lenguajes
de
programación.
20
Visión
Práctica
S7-‐1200
13/10/14
• KOP
(esquema
de
contactos)
• Los
elementos
de
un
esquema
de
circuitos,
tales
como
los
contactos
( ) $ % & ' =
PRÁCTICA
S7-‐1200
( )
+ *
+ *
$ % & =
$ % & = 21
Visión
Práctica
S7-‐1200
13/10/14
• FUP
(diagrama
de
funciones)
• Al
igual
que
KOP,
FUP
es
un
lenguaje
de
programación
gráfico.
La
PRÁCTICA
S7-‐1200
22
Visión
Práctica
S7-‐1200
13/10/14
• SCL
(structured
control
language)
• El
lenguaje
de
control
estructurado
(SCL,
Structured
Control
Language)
es
un
lenguaje
de
programación
de
alto
nivel
basado
en
PASCAL
PRÁCTICA
S7-‐1200
23
Organización
de
programas
13/10/14
• Al
crear
el
programa
de
usuario
para
las
tareas
de
automa4zación,
las
instrucciones
del
programa
se
insertan
en
bloques
lógicos
(OB,
FB
o
FC).
De
manera
estándar
está
disponible
el
bloque
de
organización
FC (función)
No tiene bloque de datos de instancia
PRÁCTICA
S7-‐1200
FB (bloque de función) tiene un bloque de datos de
instancia para almacenamiento temporal
13/10/14
• Programación
lineal
• Un
programa
lineal
ejecuta
todas
las
instrucciones
de
la
tarea
de
PRÁCTICA
S7-‐1200
25
Organización
de
programas
13/10/14
• Programación
estructurada
• En
el
caso
de
tareas
de
control
amplias,
se
subdivide
el
programa
en
bloques
de
programa
más
pequeños,
abarcables
y
ordenados
por
funciones.
Esto
PRÁCTICA
S7-‐1200
26
!
Organización
de
programas
13/10/14
• Programación
estructurada
• Diseñando
FBs
y
FCs
que
ejecuten
tareas
genéricas,
se
crean
bloques
lógicos
modulares.
PRÁCTICA
S7-‐1200
࿆ ࿇
2%)%)& 2%)%)&
ི
27
ཱི
Organización
de
programas
13/10/14
• Programación
estructurada
Global
Data
Block
FC
Instance
Data
Block
OB
PRÁCTICA
S7-‐1200
FC FB
Global
Data
Block
Instance
Data
Block
28
La profundidad máxima de anidamiento es de 16
Organización
de
programas
13/10/14
• Programación
estructurada
• Creando
bloques
lógicos
genéricos
que
pueden
reu4lizarse
en
el
PRÁCTICA
S7-‐1200
programa,
sino
que
también
pueden
facilitar
y
agilizar
la
actualización
o
modificación
de
la
lógica
del
programa.
• La
creación
de
componentes
modulares
simplifica
la
depuración
del
programa.
Dividiendo
el
programa
completo
en
segmentos
de
programa
modulares,
es
posible
comprobar
las
funciones
de
cada
bloque
lógico
a
medida
que
se
va
desarrollando.
29
• U4lizando
un
diseño
modular
basado
en
tareas
funcionales
especificas
se
puede
reducir
el
4empo
necesario
para
la
ejecución
de
toda
la
aplicación.
Tipos
de
módulos
13/10/14
• Bloque
de
organización
(OB)
• Un
bloque
de
organización
(OB)
reacciona
a
un
evento
especifico
en
la
CPU
y
puede
interrumpir
la
ejecución
del
programa
de
usuario.
El
bloque
PRÁCTICA
S7-‐1200
diagnós4co
o
un
intervalo,
hace
que
la
CPU
ejecute
un
OB.
Algunos
OBs
4enen
eventos
de
arranque
y
comportamiento
en
arranque
predefinidos.
• La
CPU
determina
el
orden
de
procesamiento
de
eventos
de
alarma
según
la
prioridad
asignada
a
cada
OB.
Todo
evento
4ene
una
prioridad
de
procesamiento
propia.
El
nivel
de
prioridad
correspondiente
dentro
30
de
una
clase
de
prioridad
determina
el
orden
en
que
se
ejecutan
los
OB.
Tipos
de
módulos
13/10/14
• Bloque
de
organización
(OB)
FB
Retardo OB
200
FB
Alarma cíclica OB
201
DB
PRÁCTICA
S7-‐1200
OB
Alarma proceso
Alarmas
202
FC
13/10/14
• Función
(FC)
• Una
función
(FC)
es
un
bloque
lógico
que,
por
lo
general,
realiza
una
PRÁCTICA
S7-‐1200
• Una
FC
no
4ene
ningún
bloque
de
datos
instancia
asociado
(DB).
La
FC
usa
la
pila
de
datos
locales
para
los
datos
temporales
u4lizados
para
calcular
la
operación.
Los
datos
temporales
no
se
almacenan.
Para
almacenar
los
datos
de
forma
permanente
es
preciso
asignar
el
valor
de
salida
a
una
posición
de
memoria
global,
p.
ej.
el
área
de
marcas
o
un
DB
global.
32
Tipos
de
módulos
13/10/14
• Bloque
de
función
(FB)
PRÁCTICA
S7-‐1200
disposi4vos.
33
Tipos
de
módulos
13/10/14
• Bloque
de
función
(FB)
• La
figura
siguiente
muestra
un
OB
que
llama
un
FB
tres
veces,
u4lizando
PRÁCTICA
S7-‐1200
2% controla
tres
disposi4vos
)% diferentes.
El
DB
201
'%
)%'% almacena
los
datos
)%'% opera4vos
del
primer
)%'%
disposi4vo,
el
DB
202,
los
'% del
segundo
y,
el
DB
203,
34
los
del
tercero.
Tipos
de
módulos
13/10/14
• Bloque
de
datos
(DB)
PRÁCTICA
S7-‐1200
Cualquier
OB,
FB
o
FC
puede
acceder
a
los
datos
en
un
DB
global.
• Un
DB
instancia
almacena
los
datos
de
un
FB
específico.
La
estructura
de
los
datos
en
un
DB
instancia
refleja
los
parámetros
(Input,
Output
e
InOut)
y
los
datos
está4cos
del
FB.
(La
memoria
temporal
del
FB
no
se
almacena
en
el
DB
instancia.)
35