UNIVERSIDAD NACIONAL DEL CENTRO DEL
PERÚ
“Año de la lucha contra la corrupción e impunidad”
LENGUAJE DE PROGRAMACIÓN KOP
Diagrama de Bloques
CATEDRA:
AUTOMATIZACIÓN
CATEDRATICO:
ING. LUIS AYLAS MIGUEL
ALUMNOS:
CERRÓN GUERRA Gabriel
HUAMANI CARTOLIN Roger
QUISPE ACEVEDO Lenin
VALENZUELA ISIDRO Eduardo
SEMESTRE:
HYO-PERÚ
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
RESUMEN
Mediante el presente trabajo plasmaremos una descripcion de las operaciones básicas de
todo autómata programable, tales como funciones lógicas, consideraciones sobre el
emisor, biestables y temporizadores. En la cual se ha considerado el lenguaje de gráfico
de contactos, tambien conocido como lenguaje escalera, ladder diagram(LD) o tambien
conocido como Kontakt Plan (KOP).
Se entiende a este lenguaje como el intuitivo para personal familiarizado con esquemas
eléctricos, y fácilmente aplicable a problemas sencillos. En los equipos de Siemens,
SIMATIC S7-300/400/1200, LOGO y entre otros, con los que se realizaran las prácticas,
recibe el nombre de KOP y su sintaxis será la empleada en el presente documento.
En la actualidad aún siguen persistiendo sistemas de control específicos del fabricante,
con programación dependiente y conexión compleja entre distintos sistemas de control.
Esto significa para el usuario costos elevados, escasa flexibilidad y falta de normalización
en las soluciones al control industrial. A esta medida se suma la estandarización de la IEC
611131-3, la cual nos brinda un enfoque claro de los autómatas programables y sus
periféricos, incluyendo los lenguajes de programación que se deben utilizar; dentro del
cual distigue a 2 grander grupos, los literales conformados por IL y ST y los graficos por
el Diargrama de bloques funcionales (FBD) y el Diagrama de contactos (LD), siendo este
ultimo materia de investigación y desarrollo en este trabajo. El Diagrama de contactos
(LD) tiene sus orígenes en los Estados Unidos el cual esta basado en la presentación
gráfica de la lógica de relés
2
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
INDICE
INSTRUCCIONES DE PROGRAMACIÓN
1. Operaciones lógicas con bits
2. Operaciones de comparación
3. Operaciones de conversión
4. Operaciones de contaje
5. Operaciones con bloques de datos
6. Operaciones de salto
7. Operaciones aritméticas con enteros
8. Operaciones aritméticas en coma flotante
9. Operaciones con transferencia
10. Operaciones del control del programa
11. Operaciones de desplazamiento
12. Operaciones de rotación
13. Operaciones con bits de la palabra de estado
14. Operaciones con temporización
15. Operaciones lógicas con palabras
CICLO DE PROGRAMA
MODOS DE FUNCIONAMIENTO:
PROGRAMACIÓN DE CONTACTOS EN COMBINACIÓN SERIE Y PARALELO
I. Contacto normalmente abierto
II. Bobina de relé, salida
ESQUEMA DE CONTACTOS
EJEMPLOS
1) Inversión de giro de un motor trifásico
2) Un arrancador Estrella/Triángulo con temporizador
CONCLUSIONES
RECOMENDACIONES
BIBLIOGRAFIA
3
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
INSTRUCCIONES DE PROGRAMACIÓN
1. Operaciones lógicas con bits
Comando operaciones con bits:
---| |--- Contacto normalmente abierto
---| / |--- Contacto normalmente cerrado
---(SAVE) Cargar resultado lógico RLO en registro RB
XOR O-exclusiva
---( ) Bobina de réle, salida
---( # )--- Conector
---|NOT|--- Invertir resultado lógico
Operaciones que reaccionan ante un RLO de 1:
---( S ) Activar salida
---( S ) Desactivar salida
SR Desactivar flip-flop de activación
RS Activar flip-flop de desactivación
Operaciones que reaccionan ante un cambio de flanco positivo o negativo
---(N)--- Detectar flanco 1 --> 0
---(P)--- Detectar flanco 0 <-- 1
NEG Detectar flanco de señal negativa 1 --> 0
POS Detectar flanco de señal positiva 0 <-- 1
2. Operaciones de comparación
Las operaciones comparan las entradas IN1 e IN2 según los tipos de
comparación:
== IN1 es igual a IN2
<> IN1 es diferente a IN2
> IN1 es mayor que IN2
< IN1 es menor que IN2
4
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
>= IN1 es mayor o igual a IN2
<= IN1 es menor o igual a IN2
Comandos de las operaciones de comparación:
CMP ? I Comparar enteros (16 bit)
CMP ? D Comparar enteros dobles (32 bit)
CMP ? R Comparar números en coma flotante
3. Operaciones de conversión
Comandos de las operaciones de conversión:
BCD_I Convertir BCD en entero
I_BCD Convertir entero en BCD
BCD_DI BCD-Zahl in 32-Bit-Ganzzahl wandeln
I_DI Convertir entero en entero doble
DI_BCD Convertir entero doble en BCD
DI_R Convertir entero doble en real
INV_I Complemento a 1 de un entero
INV_DI Complemento a 1 de un entero doble
NEG_I Complemento a 2 de un entero
NEG_DI Complemento a 2 de un entero doble
NEG_R Invertir el signo de un número real
ROUND Redondear a entero
TRUNC Truncar entero
CEIL Redondear número real a entero superior
FLOOR Redondear número real a entero inferior
4. Operaciones de contaje
El valor de contaje estar comprendida entre 0 y 999 en código binario
Z_VORW Parametrizar e incrementar contador
Z_RUECK Parametrizar y decrementar contador
ZAEHLER Parametrizar e incrementar/decrementar contador
---( SZ ) Poner contador al valor inicial
---( ZV ) Incrementar contador
5
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
---( ZR ) Decrementar contador
5. Operaciones con bloques de datos
---(OPN) Abrir bloque de datos
6. Operaciones de salto
Comandos de las operaciones de salto:
---(JMP)--- Salto absoluto
---(JMP)--- Salto condicional
---( JMPN ) Saltar si la señal es 0
7. Operaciones aritméticas con enteros
ADD_I Sumar enteros
SUB_I Restar enteros
MUL_I Multiplicar enteros
DIV_I Dividir enteros
ADD_DI Sumar enteros dobles
SUB_DI Restar enteros dobles
MUL_DI Multiplicar enteros dobles
DIV_DI Dividir enteros dobles
MOD_DI Obtener el resto de una división de enteros dobles
8. Operaciones aritméticas en coma flotante
Comandos de las operaciones aritméticas:
ADD_R Sumar números en coma flotante
SUB_R Restar números en coma flotante
MUL_R Multiplicar números en coma flotante
DIV_R Dividir números en coma flotante
Estos realizan las siguientes funciones
Calcular el valor absoluto (ABS)
Calcular el cuadrado (SQR) o la raíz cuadrada (SQRT)
Calcular el logaritmo natural (LN)
Calcular el valor exponencial (EXP) en base (e =2.71828…)
6
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
Calcular las funciones trigonométricas siguientes
sen (SEN) y arcoseno (ASEN)
cos (COS) y arcocoseno (ACOS)
tan (TAN) y arcotangente (ATAN)
9. Operaciones con transferencia
MOVE Asignar un valor
10. Operaciones del control del programa
Comandos de la operación de control del programa:
--(CAL) Llamar a un FC/SFC sin parámetros
CALL_FB Llamar a un FB desde un cuadro
CALL_FC Llamar a un SFB desde un cuadro
CALL_SFB Llamar a un SFC desde un cuadro
CALL_SFC Llamar a un multiinstancia
Llamar a un bloque de una librería
Notas importantes sobre el uso de la función
---(MCR<) Conectar un Master Control Relay
---(MCR>) Desconectar un Master Control Relay
---(MCRA) Inicio de un Master Control Relay
---(MCRD) Final de un Master Control Relay
RET Retorno
11. Operaciones de desplazamiento
Comandos de las operaciones de desplazamiento: SHR_I
Desplazar entero a la derecha SHR_DI
Desplazar entero doble a la derecha SHL_W
Desplazar 16 bits a la izquierda SHR_W
Desplazar 16 bits a la derecha SHL_DW
Desplazar 32 bits a la izquierda SHR_DW
Desplazar 32 bit a la derecha
12. Operaciones de rotación
Comandos de las operaciones de rotación:
7
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
ROL_DW Rotar 32 bits a la izquierda
ROR_DW Rotar 32 bits a la derecha
13. Operaciones con bits de la palabra de estado
Comandos de las operaciones con bits de la palabra de estado:
OV ---I I--- Bit de anomalía “desbordamiento”
OS ---I I--- Bit de anomalía “desbordamiento memorizado”
UO ---I I--- Bit de anomalía “operación no valida”
RB ---I I--- Bit de anomalía “registro RB”
==0 ---I I--- Bit de resultado igual a 0
<>0 ---I I--- Bit de resultado diferente de 0
>=0 ---I I--- Bit de resultado mayor o igual a 0
<=0 ---I I--- Bit de resultado menor o igual a 0
>0 ---I I--- Bit de resultado mayor que 0
<0 ---I I--- Bit de resultado menor que 0
14. Operaciones con temporización
Comandos de las operaciones con temporización:
S_IMPULS Parametrizar y arrancar temporizador como impulso
S_VIMP Parametrizar y arrancar temporizador como impulso prolongado
S_EVERZ Parametrizar y arrancar temporizador como retardo a la conexión
S_SEVERZ Parametrizar y arrancar temporizador como retardo a la conexión
con memoria
_AVERZ Parametrizar y arrancar temporizador como retardo a la
desconexión
---( SI ) Arrancar temporizador como impulso
---( SV ) Arrancar temporizador como impulso prolongado
---( SE ) Arrancar temporizador como retardo a la conexión
---( SS ) Arrancar temporizador como retardo a la conexión con memoria
---( SA ) Arrancar temporizador como retardo a la desconexión
15. Operaciones lógicas con palabras
Comandos de las operaciones lógicas con palabras
WAND_W Y lógica con palabras
8
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
WOR_W O lógica con palabras WXOR_W
O exclusiva con palabras WAND_DW Y
lógica con dobles palabras WOR_DW O lógica
con dobles palabras
WXOR_DW O exclusiva con dobles palabras
CICLO DE PROGRAMA
MODOS DE FUNCIONAMIENTO:
PROGRAMACIÓN DE CONTACTOS EN COMBINACIÓN SERIE Y PARALELO
El objetivo de este ejercicio es el de adiestrarse en la realización de las conexiones en
lenguaje KOP.
I. Contacto normalmente abierto
• Símbolo: ---| |---
PARAMETRO TIPOS DE DATOS AREA DE DESCRIPCION
MEMORIA
<OPERANDO> BOOL E, A, M, L, D, T, Z BIT CONSULTADO
• Descripción de la operación
Contacto normalmente abierto (---| |---), se cierra si el valor del bit consultado, que se
almacena en el <operando> indicado, es "1". Si el contacto está cerrado, la corriente fluye
a través del contacto y el resultado lógico (RLO) es "1".
9
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
De lo contrario, si el estado de señal en el <operando> indicado es "0", el contacto está
abierto. Si el contacto está abierto no hay flujo de corriente y el resultado lógico de la
operación (RLO) es "0".
En las conexiones en serie, el contacto (---| |---) se combina bit a bit por medio de una
“Y” lógica con el RLO. Cuando las conexiones se realizan en paralelo, el contacto se
combina con el RLO por medio de una O lógica.
• Palabra de estado
RB A1 A0 OV OS OR STA RLO /ER
Se - - - - - X X X 1
escribe
Ejemplo:
La corriente puede fluir si:
El estado en las entradas E 0.0 Y E 0.1 es "1" o el estado en la entrada E 0.2 es "1"
II. Bobina de relé, salida
• Símbolo: ---( )
PARAMETRO TIPOS DE DATOS AREA DE MEMORIA DESCRIPCION
<OPERANDO> BOOL E, A, M, L, D BIT ASIGNADO
• Descripción de la operación
Bobina de relé (salida) (---( )), opera como una bobina en un esquema de circuitos. Si la
corriente fluye hasta la bobina (RLO = 1), el bit en el <operando> se pone a "1". Si no
fluye corriente hasta la bobina (RLO = 0), el bit en el <operando> se pone a "0".
Una bobina de salida sólo puede colocarse dentro de un esquema de contactos en el
extremo derecho de un circuito.
Como máximo puede haber 16 salidas múltiplas.
10
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
Se puede crear una salida negada anteponiendo a la bobina de salida la operación ---
|NOT|--- (invertir el resultado lógico).
• Dependencia con respecto al MCR (Master Control Relay)
La dependencia con respecto al MCR solamente se activa cuando una bobina de salida se
encuentra dentro de un área MCR activa. Si el MCR está conectado y la corriente fluye a
una bobina de salida, el bit direccionado toma el estado de señal actual del flujo de
corriente. Si el MCR está desconectado se escribe un "0" en el operando indicado,
independientemente del estado del flujo de corriente.
• Palabra de estado
RB A1 A0 OV OS OR STA RLO /ER
Se - - - - - 0 X - 0
escribe
Ejemplo
La salida A 4.0 es "1" si:
(el estado de la entrada E 0.0 Y E 0.1 es "1") O el estado de la entrada E 0.2 es "0".
La salida A 4.1 es "1"si:
(el estado de la entrada E 0.0 Y E 0.1 es "1" O el estado de la entrada E 0.2 es "0") Y el
estado de la entrada E 0.3 es "1".
Si el circuito del ejemplo se encuentra en un área MCR activa:
Al estar conectado el MCR, las salidas A 4.0 y A 4.1 se ponen a 1 conforme al estado de
señal del flujo de corriente, tal como se ha descrito más arriba.
Si el MCR está desconectado, las salidas A 4.0 y A 4.1 se ponen a "0",
independientemente del estado de señal del flujo de corriente.
Lenguaje de programación KOP (Esquema de contactos)
La representación del lenguaje de programación gráfico KOP (esquema de contactos) es
similar a la de los esquemas de circuitos. Los elementos de un esquema de circuitos, tales
como los contactos normalmente cerrados y normalmente abiertos, se agrupan en
11
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
segmentos. Uno o varios segmentos constituyen el área de instrucciones de un bloque
lógico. En la siguiente figura podemos ver un ejemplo de programación en lenguaje KOP:
Es un esquema de contatos, 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.
12
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
ESQUEMA DE CONTACTOS
Símbolos básicos (Normalizados según el estándar IEC)
SÍMBOLO DESCRIPCIÓN
Contacto Normalmente Abierto.
Contacto Normalmente Cerrado.
Asignación de Salida. Ejemplo:
Bobina, lámpara, relés, etc.
Intrucción Especial. Ejemplo:
Contador, Temporizador,etc.
Los Contactos
Son variables lógicas ( 1 ó 0), pueden estar en solo dos estados: abierto o cerrado.
Los contactos se representan con la letra "E" y dos números que indicaran el modulo al
cual pertenecen y la bornera al la cual están asociados.
Ejemplo:
Entrada del Módulo "0" borne "1"
Los contactos abiertos al activarse se cerrarán
Entrada del Módulo "2" borne "1"
Los contactos cerrados al activarse
P á g i nse
a abrirán
13 | 25
13
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
En el siguiente diagrama:
• La línea vertical izquierda representa un potencial eléctrico (24V, 48V, 220V,
etc), mientras la línea vertical derecha representa Tierra (0V).
• Cada escalón horizontal se le denomina peldaño, su funcionamento es circuitos-
interruptores que encieden o apagan las salidas Y1, Y2 y Y3.
La salida Y1 se activa cuando se activa la
entrada X1.
X2 X3 Y2
La salida Y2 se activa cuando se activa la
entrada X1 y X2 (Operación lógica AND).
X4 X5 Y3
La salida Y3 se activa cuando se activa la
entrada X4 o X6 (Operación lógica OR).
X6
Operaciones de Memorización
SÍMBOLO DESCRIPCIÓN
Operación SET: La variable se activa cuando se cierra el
circuito conectado en serie. Permanece activa aunque el
circuito se abra. *** representa el nombre de S la variable
(operando).
Operación RESET: La variable se desactiva cuando se cierra
el circuito conectado en serie. Permanece activa aunque el
circuito se abra. *** representa el nombre de la variable
(operando).
14
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
La variable se activa o desactiva según se cierre o abra el
circuito conectado en serie. Mantiene su valor cuando falta
tensión de alimentación.
Operación SET MANTENIDO: Comportamiento idéntico
al circuito S. La diferencia es que mantiene su valor cuando
falta la tensión de alimentación.
Operación RESET MANTENIDO: Comportamiento
idéntico al circuito R. La diferencia es que mantiene su valor
cuando falta la tensión de alimentación.
Variables de entrada por flancos
SÍMBOLO DESCRIPCIÓN
Flanco Positivo: Contacto que se cierra (valor “ON”) cuando
la variable *** asociada con él pasa de 0 a 1.
(P = Positive transition).
Flanco Negativo: Contacto que se cierra (valor “ON”)
cuando la variable *** asociada con él pasa de 1 a 0.
(N = Negative transition).
Variables de salida impulsionales
Se genera un impulso cuando se produce un flanco .
Se activa cuando se cierra el circuito conectado en serie.
Bloques funcionales
15
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
SÍMBOLO DESCRIPCIÓN
Temporizador: Cada vez que alcanzan cierto valor de tiempo
activan un contacto interno, dicho tiempo será declarado por
el usuario.
Contador: Posiciones de memoria que almacenan un valor
numérico, mismo que se incrementa o decrementa según la
configuración dada a dicho contador.
Permite efectuar la cuenta de acontecimientos.
EJEMPLOS
1) Inversión de giro de un motor trifásico.
CUADRO DE ASIGNACIONES
I1 START
I4 STOP
I6 RELÉ TÉRMICO
Q1 BOBINA DEL CONTACTOR (HORARIO)
Q2 BOBINA DEL CONTACTOR
(ANTIHORARIO)
Q3 LÁMPARA
LENGUAJE KOP
ACTIVA EL
CONTACTOR
(HORARIO).
ACTIVA EL
CONTACTOR
(ANTIHORARIO).
ACTIVA LA
LÁMPARA CUANDO
EL RELÉ TÉRMICO
ACTÚA.
16
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
17
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
2) Un arrancador Estrella/Triángulo con temporizador.
Realizar el mismo montaje de forma programada.
CUADRO DE ASIGNACIONES
I1 START
I2 STOP
Q1 BOBINA DEL CONTACTOR PRINCIPAL –
(KM)
Q2 BOBINA DEL CONTACTOR (Y)
Q3 BOBINA DEL CONTACTOR (D)
-T TEMPORIZADOR
LENGUAJE KOP
ACTIVA EL
CONTACTOR
PRINCIPAL.
TRANSCURRIDO UN
TIEMPO (T) SE
DESACTIVA EL
CONTACTOR (Y).
PASADO UN
TIEMPO (T) SE
ACTIVA EL
CONTACTOR (D).
18
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
19
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
CONCLUSIONES
1. Las implicaciones técnicas de la norma IEC 61131-3 son altas, dejando bastante
espacio para el crecimiento y la diferenciación. Esto la hace adecuada para entrar
óptimamente en el campo de aplicación de la carrera.
2. Las consideraciones que se puede tener respecto a los software de modelamiento
de lenguajes de progracion de PLC son muy importantes para el desarrollo y
comprension adecuado del lenguaje KOP.
3. La variedad de programas para aplicación y verificacion de la compliacion del
lenguaje de programación KOP, son en varierierdad. Pero se llega a al conclusión
que el mejor de ellos es sin duda las de SIEMENS, Logo Soft Conformt V.8.2 y
TIA Portal V.15. debido a asi aplicación.
4. La aplicación de este tipo de lenguaje desarrollado en el presente trabajo tendrá
un gran impacto en el mundo del control industrial y eléctrico el mismo que no se
restringe al mercado convencional de los PLC´s. Ahora mismo, se pueden ver
adoptada en aplicaciones para control de movimiento, sistemas distribuidos y
sistemas de control basados en PC (SoftPLC), incluyendo los paquetes SCADA.
Y las áreas de su utilización siguen creciendo.
5. Asi mismo la aplicación del lenguaje de progracion de PLC del tipo KOP
proporciona numerosos beneficios para usuarios/programadores. Los beneficios
de la adopción de este estándar son varios, dependiendo de las áreas de aplicación:
control de procesos, integrador de sistemas, educación, programación,
mantenimiento, instalación, etc.
23
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
RECOMENDACIONES
1. Se recomienda la aplicación de este tipo de lenguaje de progracion KOP para
PLC’s ya con el se reduce el gasto en recursos humanos, formación,
mantenimiento y consultoría. Siendo estas mismas técnicas de programación
utilizables en amplios sectores (control industrial en general).
2. Se recomienda que a pesar de cada fabricante utilizada su propia tecnologia y
lenguaje de programacion, aplicar el desarrollo de la normativa IEC-61131-3 la
que hace referencia de este tipo de lenguaje KOP.
3. Tener en consideración al momento de programar con el lenguaje KOP el uso de
la simbología adecuado con las normas NEMA, la misma que utilizan todos los
fabricantes.
4. Recomendamos el uso de los software STEP 7 de Simenes y el Logo soft Comfort
para su aplicación, debido a su gran uso en diferentes partes del mundo y sencillez
al momento de la programacion.
24
FACULTAD DE INGENIERIA ELECTRICA Y ELECTRONICA
AUTOMATIZACIÓN
BIBLIOGRAFIA
• Controladores logicos programables – Elmer ramirez Q.
• Automatizacion topico de instrumentacion y control -Ing.Raymundo Carranza
Noriega.
• Esquema de contactos (KOP) para SIMATIC S7-300 y S7-400 Edicion 03/2006
– Siemens.
• Automatizacion Optativa Ingenieria Informaticas, Universidad de Alicante –
F.Torres y C.Jara.
• Manual de Logo!Soft Comfort v.5.0 Siemenes
• Standard International IEC 61131-3 Programmable controllers - Part
3: Programming languages.
• PLCopen Estandarización en la programación de control industrial, IEC 61131
3: un recurso de programación estandar, Universidad de Oviedo.
• Principios básicos de programación Visión Práctica S7-‐1
25