Descripción completa
Views 64 Downloads 1 File size 2MB
AUTOMATA PROGRAMABLE S7-300 Instrucciones avanzadas
Conceptos básicos Nivel 1. 09. Programación estructurada por bloques. 10. Operaciones de cálculo, básicas y avanzadas. 11. Operaciones de incrementar y decrementar. 12. Parametrización de bloques FBs y FCs. 13. Direccionamiento indirecto. 14. Bloques de datos DBs. 15. Programación de registros del sistema. 16. Tratamiento de señales analógicas. 17. Utilización de bloques estándar de las librerías. 18. Desplazamientos y rotaciones. 19. Módulos de organización. Procesamiento de alarmas.
IES SEP COMTE DE RIUS DE TARRAGONA
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
PRÓLOGO Esta documentación forma parte de una serie de manuales que un grupo de profesores de tres institutos de educación secundaria de Catalunya, como son: • • •
IES-SEP Comte de Rius de Tarragona IES Palau Ausit de Ripollet (Barcelona) IES-SEP La Garrotxa de Olot (Girona)
han estado experimentando con diferentes materiales incluidos dentro de la temática de la automatización, el control y las comunicaciones industriales. Este equipo de profesores, formaron un grupo de trabajo, llamado EDCAI (Experimentación y Documentación en Control y Automatización Industrial), reconocido tanto por el Departament d’Educació de la Generalitat de Catalunya como por la empresa Siemens, con unos objetivos tan sencillos como claros y que se basaban en la realización de documentación realizada por profesores/as para profesores/as, y que además, pudiese servir como manual para los alumnos, esto quiere decir que se ha intentado realizar una documentación que sea fácil de seguir con unas explicaciones paso a paso de los diferentes procesos a realizar, para de esta manera poder alcanzar el objetivo propuesto en cada ejercicio. Este grupo de trabajo continúa trabajando en cada uno de los temas para poder ir actualizando día a día esta documentación, es por ello, que nos podéis enviar vuestras sugerencias a través de la información que encontrareis en la web dedicada a este grupo de trabajo y que desde aquí os invitamos a participar. www.iespalauausit.com/edcai/index.php
Esperamos que el esfuerzo y dedicación que hemos realizado pueda ayudar a mejorar vuestra labor educativa.
Los profesores del grupo de trabajo EDCAI Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 1/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
INDICE: CONCEPTOS BÁSICOS NIVEL 1 1 SISTEMAS DE NUMERACION......................................................................................................... 2 MÓDULOS DE ORGANIZACIÓN...................................................................................................... 3 BLOQUES DE FUNCIÓN ................................................................................................................. 4 MÓDULOS DE DATOS.................................................................................................................... 5 ACUMULADORES............................................................................................................................ E6.1. FUNCION MOVER (TRANSFERENCIA). ..................................................................................... E6.2. FUNCION MOVER (CONSTANTES A UNA MISMA PALABRA)................................................ E7.1. PRESELECCIÓN VARIABLE Y VISUALIZACIÓN DEL VALOR DE UN TEMPORIZADOR........ E7.2. PROGRAMACIÓN DE UN TEMPORIZADOR CON TRES TIEMPOS DIFERENTES................. E8.1. PRESELECCIÓN VARIABLE DEL VALOR DE UN CONTADOR. .............................................. E8.2. INSTRUCCIONES DE COMPARACIÓN...................................................................................... E8.3. CONTROL DE INICIO DE LA MARCHA DE UN PROCESO........................................................ E8.4. CLAVE PARA ABRIR UNA CERRADURA....................................................................................
4 7 9 10 11 12 13 15 16 18 20 22 24
09. PROGRAMACIÓN ESTRUCTURADA POR BLOQUES. E9.1. SELECCIÓN DE DOS TIPOS DE FUNCIONAMIENTO ……………………………………………… 26
10. OPERACIONES DE CÁLCULO BÀSICAS Y AVANZADAS. E10.1. OPERACIONES LOGICAS ENTRE PALABRAS O DOBLES PALABRAS.................................. E10.2. PROGRAMACIÓN DE UN TEMPORIZADOR CON PRESELECCIÓN VARIABLE. BASE DE TIEMPOS FIJA................................................................................................................... E10.3. OPERACIONES ARTIMETICAS CON NÚMEROS ENTEROS (COMA FIJA)................................ E10.4. CREACIÓN DE UN CONTADOR REVERSIBLE CON PRESELECCIÓN....................................... E10.5. CREACIÓN DE UN CONTADOR DE TIEMPOS............................................................................. E10.6. OPERACIONES ARTIMETICAS CON NÚMEROS EN COMA FLOTANTE....................................
27 29 30 32 33 35
11. OPERACIONES DE INCREMENTAR Y DECREMENTAR. E11.1. DIFERENTES MÉTODOS DE INCREMENTAR Y DECREMENTAR ………………………………. 37
12. PARAMETRIZACIÓN DE BLOQUES FBs Y FCs. E12.1. CREACIÓN DE LA PLANTILLA DE UN GENERADOR DE IMPULSOS STANDARD................. E12.2. CREACIÓN DE UNA PLANTILLA CON NÚMEROS REALES....................................................
38 40
13. DIRECCIONEMIENTO INDIRECTO. E13.1. DIRECCIONAMIENTO INDIRECTO DE REGISTROS........................................ .........................
42
14. BLOQUE DE DATOS DBs. E14.1. LECTURA DE DATOS DE UN BLOQUE DE DATOS (DB)........................................................... 44 E14.2. LECTURA DE DATOS DE UN BLOQUE DE DATOS (DB). DIRECCIONAMIENTO INDIRECTO DE UN BLOQUE DE DATOS........................................................................................... 48
15. PROGRAMACIÓN CON REGISTROS DE SISTEMA. E15.1. PROGRAMACION DEL RELOJ..................................................................................................... 50
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 2/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
16. TRATAMIENTO DE SEÑALES ANALÓGICAS. E16.1. FUNCION SCALE (ESCALAR UNA ENTRADA ANALOGICA)..................................................... E16.2. FUNCION UNSCALE (DESESCALAR A UNA SALIDA ANALOGICA)........................................... E16.3. CONSIGNA DE MAXIMA Y MINIMA DE UNA ENTRADA ANALOGICA.............................. ........ E16.4. CONSIGNA DE MAXIMA Y MINIMA DE UNA ENTRADA ANALOGICA (II).................................
54 56 58 59
17. UTILIZACIÓN DE BLOQUES ESTÁNDAR DE LIBRERÍAS. E17.1. GRABACIÓN DE UNA TABLA EN UN BLOQUES DE DATOS. FUNCIÓN ATT.......................... E17.2. LECTURA DE DATOS GRABADOS EN UNA TABLA. FUNCION LIFO....................................... E17.3. GRABACIÓN DE UNA TABLA DE DATOS (II). SOBREESCRIBIR DATOS................................. E17.4. GRABACIÓN DE UNA TABLA DE DATOS (III). BORRADO DE DATOS. FUNCIÓN FILL........... E17.5. GUARDAR DATOS DEL RELOJ Y DE UNA ENTRADA ANALOGICA........................................
61 63 65 66 67
18. DESPLAZAMIENTOS Y ROTACIONES. 18.1. EXPULSION DE BOTELLAS DEFECTUOSAS …………………………………………………………. 68
19. MÓDULOS DE ORGANIZACIÓN. PROCESAMIENTO DE ALARMAS. E19.1. PROGRAMACIÓN DEL OB10....................................................................................................... E19.2. PROGRAMACIÓN DEL OB20....................................................................................................... E19.3. PROGRAMACIÓN DEL OB35....................................................................................................... E19.4. PROGRAMACIÓN DEL OB121.....................................................................................................
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 3/84 Fichero: Instrucciones avanzadas Versión: 2.2
70 72 73 74
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
1. SISTEMAS DE NUMERACION. SISTEMA DECIMAL En un sistema decimal, nos encontramos que cada dígito puede tener los siguientes valores: 0123456789 Calculo del valor decimal: -Tenemos por ejemplo el valor 7632 Su valor decimal será: 3 7x10
3
2 1 0 + 6x10 + 3x10 + 2x10
7x1000 + 6x100
+ 3x10
+2 = 7632
SISTEMA BINARIO En un sistema binario, nos encontramos que cada dígito puede tener los siguientes valores: 0 y 1 Un número binario se puede leer en decimal y hexadecimal Calculo del valor decimal sin signo de un número binario: -Tenemos por ejemplo el número binario 101101 Su valor decimal será: 3 5 1x2 +
32 +
4 0x2 +
0 +
3 2 1 1x2 + 1x2 + 0x2 +
8 +
4
+
0
+
0 1x2
1 + = 45
El número binario 101101 equivale al número decimal 45
Calculo del valor decimal con signo de un número binario: -Tenemos por ejemplo el número binario 10101101 Su valor decimal será: 3 7 1x2 +
6 0x2 +
5 1x2 +
4 0x2 +
3 2 1 1x2 + 1x2 + 0x2 +
0 1x2
En este caso que es un byte, el bit mas alto o sea el bit 7 es el que determina el signo si el bit 7 es igual a 1 el signo es negativo, sino será positivo. Si trabajáramos con una palabra, el bit mas alto o sea el bit 15 seria el que determinaría el signo si el bit 15 es igual a 1 el signo es negativo, sino será positivo.
128 +
0 +
32 +
0 +
8 +
4
+
0
+
1 + = 173
El valor real será -1 (valor de bit 7) * 256 + 173 = - 83 El número binario 10101101 equivale al número decimal con signo - 83 Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 4/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
Calculo del valor binario de un número decimal: -Tenemos por ejemplo el número decimal 13 Su valor binario será: 3 13 1
2 6 0
2 3 1
2 1 1
2 0 1 1 0 1
El número decimal 13 equivale al número binario 1 1 0 1 El número binario 101101 equivale al número decimal 45
SISTEMA HEXADECIMAL En un sistema hexadecimal, nos encontramos que cada dígito puede tener los siguientes valores (16): 0 1 2 3 4 5 6 7 8 9 A(10) B(11) C(12) D(13) E(14) F(15) Calculo del valor decimal de un número hexadecimal: -Tenemos por ejemplo el número hexadecimal 3 A 7 Su valor decimal será: 3 2 3 x 16 +
768 +
1 A(10) x 16 +
160 +
El número hexadecimal
7
0 7 x 16
= 935
3 A 7 equivale al número decimal 935
Calculo del valor hexadecimal de un número decimal: -Tenemos por ejemplo el número decimal 3512 Su valor binario será: 3 3512 R8
16 219 R1
16 13 R 13(D)
16 0 D 1 8
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 5/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
El número decimal 3512 equivale al número hexadecimal
D18
Calculo del valor hexadecimal de un número binario: -Tenemos por ejemplo el número binario 1101 0110 0011 1001 Su valor hexadecimal será: 3 1101 13(D)
0110 6
0011 3
1001 9
El número binario 1101 0110 0011 1001 equivale al número hexadecimal D 6 3 9 Calculo del valor binario de un número hexadecimal: -Tenemos por ejemplo el número hexadecimal E57A Su valor binario será: 3 E 5 7 1110 0101 0111
A 1010
El número binario hexadecimal E57A equivale al número binario 1110 0101 0111 1010 CODIGO BCD En un código BCD, nos encontramos con lo que se llama binario codificado decimal. Ese binario se puede leer en decimal Calculo del valor decimal de un número binario: -Tenemos por ejemplo el número binario 1001 0110 *si lo tomamos como número binario, su valor 3 decimal es: 150 7 1x2 +
6 0x2 +
5 0x2 +
4 1x2 +
3 2 1 0 0x2 + 1x2 + 1x2 + 0x2
= 150
*si lo tomamos como número BCD, su valor decimal es: 96
10 0 1 9
0110 6
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 6/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
2. MÓDULOS DE ORGANIZACIÓN. Características de los módulos OB. OB1
Es un módulo que se ejecuta cíclicamente • El OB1 se ejecuta en cada scan. • Es el que tiene la prioridad más baja
OB10 a OB17 Realiza una interrupción horaria. • Empieza en un momento programado • Se ejecuta a partir de ese momento cada cierto tiempo: • Una sola vez, cada minuto, cada hora, cada día, cada semana, cada mes, cada año, a final de mes
OB20 a OB23 Realiza una interrupción de retardo. • Se ejecuta Al cabo de un tiempo de llamar al OB.
OB30 a OB38 Son OB que se ejecutan cada cierto tiempo prefijado y con prioridades diferentes OB Base de tiempo Valor prefijado Prefijado para la prioridad • OB 30 5s 7 • OB 31 2s 8 • OB 32 1s 9 • OB 33 500 ms 10 • OB 34 200 ms 11 • OB 35 100 ms 12 • OB 36 50 ms 13 • OB 37 20 ms 14 • OB 38 10 ms 15
OB40 a OB47 Son interrupciones de proceso • Se activa cuando en un proceso un registro ha superado unos límites máximos o mínimos admisibles . (entradas analógicas, contadores de alta velocidad etc...)
OB80 a OB87 Error Asíncrono. • OB80Error de tiempo (Tiempo de ciclo excedido). Si no esta programado y detecta el error, el PLC pasa a STOP • OB81 Fallo de alimentación (S7-400) o Fallo de batería • OB82 Rotura de hilo de un módulo que tenga capacidad de diagnostico. Si no esta programado y detecta el error, el PLC pasa a STOP • OB83 Detección de presencia de módulo (Extraer/insertar). Si no esta programado y detecta el error, el PLC pasa a STOP • OB84 Avería de la CPU. Error de la inteface MPI o de la periferia descentralizada. Si no esta programado y detecta el error, el PLC pasa a STOP Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 7/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
• OB85Evento de arranque para un OB no cargado. Si no esta programado y detecta el error, el PLC pasa a STOP. • OB86Detección de fallo en un bastidor. Si no esta programado y detecta el error, el PLC pasa a STOP. • OB87Detección de fallo en comunicación.
OB100 a 0B102 OBS de modo de arranque (solo puede estar activado uno de ellos). Se selecciona en Administrador-ÆHardware---ÆCPU (picar dos veces)Æpestaña ‘arranque’. OB100
Rearranque completo. (Arranque en Caliente) • Mantiene el estado de los elementos que tenga con memoria. • Se ejecuta al pasar la CPU de STOP a RUN. • Primero lee el OB100 y después el OB1 (empezando por la primera instrucción).
OB101
Rearranque. (Solo en S7-400) • Mantiene el estado de los elementos que tenga con memoria. • Se ejecuta al pasar la CPU de STOP a RUN. • Primero lee el OB101 y después sigue leyendo en el punto donde dejo de leer al pasar al estado STOP.
OB102
Arranque en frío • Pone todos los elementos a 0 (incluso los que tienen memoria). • Se ejecuta al pasar la CPU de STOP a RUN. • Primero lee el OB102 y después el OB1 (empezando por la primera instrucción).
OB121 y OB122 OBs de error OB121
Error de ejecución de programa. • Detecta errores de programación. • Si no esta programado y detecta el error, el PLC pasa a STOP.
OB122
Error al intentar acceder a un módulo de datos (entradas, salidas, etc...) . • Si no esta programado y detecta el error, el PLC pasa a STOP.
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 8/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
3. BLOQUES DE FUNCIÓN. Las Funciones, son módulos que se ejecutan al ser llamados desde otros módulos. • Cuando se les llama, la función actúa como una subrutina del programa. • Cuando termina de ejecutar el módulo, el programa retorna al módulo desde donde fue llamado, en la instrucción posterior al salto. Hay dos tipos de funciones: • Funciones sin parámetros. • Funciones parametrizables (Plantillas). • • •
MÓDULOS DE BLOQUE DE FUNCIÓN Un módulo de bloque de función tiene un módulo adicional de memoria asociado a el (Módulo de datos). En el módulo de datos (DB) se mantiene una copia de los parámetros que van al área de datos locales. Después de la ejecución del FB, se borra el área de memoria local, pero el DB asociado, mantiene los valores.
OB1 PROGRAMA CALL FB1, DB10
DB10
FB1
Copia de la parte de declaración local del FB1
Area de declaración local PROGRAMA
PROGRAMA
Tipo de declaración dentro de un módulo: IN Parámetros de entrada de los que se lee. OUT Parámetros de salida en los que se puede escribir. IN_OUT Parámetros que pueden ser leídos o escritos. STAT Variable local cuyo valor se almacena en un DB de instancia. TEMP Variable temporal cuyo valor no se guarda cuando el termina. Todos los valores de la declaración local, menos los temporales, se almacenan en un bloque de datos (DB de Instancia).
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 9/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
4 MÓDULOS DE DATOS. Los módulos de datos, son áreas de memoria de la CPU que se utilizan para almacenar datos. • Los DB mantienen su valor ante un corte de tensión, siempre que tengamos la pila tampón de respaldo. En caso de no tener pila, solo mantendrán su valor los DB configurados en el área de elementos remanentes de la CPU. En las CPUs actuales que van con Memory Card, mantienen la memoria todos los DBs Hay dos tipos de módulos de datos: -Módulos de datos globales • • • •
Los módulos de datos globales, pueden ser utilizados por todos los módulos del programa. Todos los FB, FC y OB pueden leer o escribir datos en los DB globales. Para grabar o leer datos, antes hay que abrir el módulo OPN DB (en KOP) o AUF DB (en AWL). Los datos permanecen almacenados en el DB aunque se cierre el DB.
-Módulos de datos de instancia: • • • •
Un DB de instancia, esta asociado a un módulo de función especifico (FB) Los datos almacenados en el DB de instancia solo pueden ser leídos o escritos por el módulo asociado a el. UN DB de instancia no necesita abrirse con ninguna instrucción, se abre se lee y se escribe en el de forma automática. Al empezar a leer el bloque de función, se carga del DB una copia de las variables locales en el bloque de función, se ejecuta el bloque y cuando acaba, deposita el valor actual de las variables locales en el DB de instancia.
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 10/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
5. ACUMULADORES. Los acumuladores son registros auxiliares en la CPU que se utilizan para el intercambio de datos, operaciones de comparación y operaciones aritméticas. El S7-300 tiene dos acumuladores de 32 bits y el S7-400 tiene cuatro. Carga: (L) La operación de carga, siempre va al ACCU1 (las posiciones no utilizadas se ponen a 0), o sea si cargo un Byte, los 24 bits restantes se ponen a 0. El registro que antes de la carga estaba en el ACCU1, se desplaza al ACCU2. Transferencia:(T) La operación de transferencia solo transfiere el valor que haya en ACCU1 y el ACCU1 queda invariable. (Copia el valor del ACCU1 en un registro). Manipulación de los acumuladores (AWL) TAK: Intercambia el contenido del ACCU1 con el del ACCU2. PUSH : Desplaza el contenido del ACCU1 al ACCU2. POP: Desplaza el contenido del ACCU2 al ACCU1.
0000 31 24
0000 23 16
ACCU1 0000 15 8
7
0000 31 24
0000 23 16
ACCU1 EB0 15 8
7
MB0 31 24
MB1 23 16
ACCU1 MB2 15 8
7
MB0
MB1
EB0
L EB0 0
EB1
L EW0 0
MB3
L MD0 0
ACCU1 MB2
MB3
T AB0
T AB0
MB0
MB1
ACCU1 MB2
MB3
T AW0
T AW0
MB0
MB1
ACCU1 MB2
MB3
T AD0
T AD0
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 11/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E6.1. FUNCION MOVER (TRANSFERENCIA). -La función MOVE es ejecutada cuando tenemos un 1 en la entrada EN, entonces el valor que hay en IN es copiado en OUT. (El valor en IN permanece inalterable). -En ENO tendremos un 1 si la función se ejecuta sin errores. -Si tenemos un 0 en la entrada EN la función no se ejecuta (es saltada). Los formatos en IN y en OUT pueden ser de 8 ,16 y 32 bits. (Los formatos en IN y en OUT pueden ser diferentes. E126.0=0
E126.0=1
1011100111001010
EW124
0000000000000000
AW124
1011100111001010
EW124
1 011100111001010
AW124
FC1 E126.0
MOVE EN
EW124 IN
ENO
OUT AW124
Programación en AWL
_001:
U E 126.0 SPBNB _001 L EW 124 T AW 124 NOP 0
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 12/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E6.2. FUNCION MOVER (CONSTANTES A UNA MISMA PALABRA). -En este caso queremos enviar diferentes constantes a una misma palabra. -PAW752 es una salida analógica que trabajara entre valores 0 y 27648. Con esos valores, dará una señal exterior de tensión que estará entre 0 y 10 Voltios que en nuestro caso seria la consigna de velocidad de un variador de frecuencia de tal modo que 0 V serian 0 rpm y 10 V serian 1500 rpm. -En este caso tengo seis pulsadores del E124.0 al E124.5. Accionando los pulsadores en orden ascendente queremos que la salida analógica nos de valores de 0, 2, 4, 6, 8 y 10 voltios. -Cuando accione la entrada E124.6, un potenciómetro que dará de 0 a 10 V a la entrada analógica PEW752 enviara su valor a la salida analógica PAW752. Haciendo una regla de 3, calculo las siguientes correspondencias: Valor en PAW752 0 5529 11058 16578 22118 27648
Voltios en salida 0V 2V 4V 6V 8V 10 V
FC2 E124.0
MOVE
1
EN
ENO
0 IN
E124.1
OUT PAW752
MOVE
2
EN
ENO
5529 IN
E124.2
OUT PAW752
MOVE
3
EN
ENO
11058 IN
E124.3
OUT PAW752
MOVE
4
EN
16578 IN
ENO
OUT PAW752
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 13/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E124.4
MOVE
5
EN
ENO
22118 IN
E124.5
OUT PAW752
MOVE
6
EN
ENO
27648 IN E124.6 6
OUT PAW752 MOVE
EN
PEW752 IN
ENO
OUT PAW752
Nota: Probar que ocurre cuando acciono dos pulsadores al mismo tiempo. -Indicar que solución puedo tomar para que el ultimo valor activo sea el efectivo. -Una vez probado el ejercicio, calcular los valores que tendríamos que enviar para tener 1, 3, 5, 7 y 9 voltios de salida en PAW752.
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 14/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E7.1. PRESELECCIÓN VARIABLE Y VISUALIZACIÓN DEL VALOR DE UN TEMPORIZADOR. -Realizaremos la preselección de un temporizador con un valor variable. Cada vez que accionemos el E124.0, el temporizador cogerá como preselección el valor que tenga en ese momento el MW0. El valor de MW0, debe estar en BCD o en tiempo Simatic, en caso contrario el temporizador no lo entenderá y el PLC en caso de no estar programado el OB121, se ira a STOP. MW0 MB0
MB1 0010 0011 1001 0101 = Base T. Centenas Decenas Unidades La base de tiempos es: 3 2 1 0
Valor Valor Valor Valor
W#16#2395
X 10 seg. X 1 seg. X 0’1 seg. X 0’01 seg.
En nuestro caso, Base Tiempos = 2
1 Segundo x 395 = 395 segundos
-Una vez se haya activado el temporizador, aunque cambie el valor de MW0, el temporizador seguirá trabajando con el valor que tenia al ponerse en marcha. -Para cargar el valor del temporizador, lo podremos ver en BCD (MW4) o en Binario (MW2). -El valor cargado en BCD, contiene el valor y la base de tiempos. No obstante el MW4 lo podemos visualizar en BCD (formato hexadecimal) o en tiempo Simatic. FC3 T1 S_EVERZ
E124.0 1
S MW0
TW
R
A124.0 Q
DUAL
DEZ
MW2
MW4
Nota: Cuando se coloca un tiempo en formato S5T (Tiempo Simatic), ajusta automáticamente el valor a 3 dígitos y adapta la base de tiempos. Forzar valores en el MW0 (Hexadecimal) con diferentes bases de tiempos en el digito 3 y diferentes valores en los dígitos 0 al 2 y comprobar que tiempo Simatic coge.
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 15/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E7.2. PROGRAMACIÓN DE UN TEMPORIZADOR CON TRES TIEMPOS DIFERENTES. -Tenemos un proceso de llenado de botes. Hay tres tamaños de botes. Para llenar el bote pequeño, la electro válvula (A124.0) debe funcionar 3 segundos. Para llenar el bote mediano, la electro válvula (A124.0) debe funcionar 8 segundos. Para llenar el bote grande, la electro válvula (A124.0) debe funcionar 15 segundos. Tendremos tres pulsadores que seleccionaran el tipo de bote a llenar. Nota: El tiempo que enviamos a MW0, lo podemos expresar en tiempo Simatic (S5T#15S) o en BCD W#16#1150. •
Nota: Indica como funcionaria el circuito si el segmento 4 estuviera programado delante del segmento 1. FC4 E124.0
1
MOVE EN
ENO
S5T#3S IN
E124.1 2
OUT MW0
MOVE EN
ENO
S5T#8S IN
E124.2 3
OUT MW0
MOVE EN
ENO
S5T#15S IN
E124.0
OUT MW0
A124.1
4
T1
SV MW0 E124.1
E124.2
T1
A124.1
5
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 16/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
A124.1
P
M
G
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 17/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E8.1. PRESELECCIÓN VARIABLE Y VISUALIZACIÓN DEL VALOR DE UN CONTADOR. CONTROL DE PIEZAS EN UNA CINTA TRANSPORTADORA. -Tenemos una cinta transportadora que llena de piezas una caja. -El operario primero accionara el selector E124.0 y después pondrá en un terminal de operador o en un SCADA un valor al MW0 (preselección del número de piezas que deseamos controlar en ese proceso). Una vez hecho esto accionara el pulsador E124.1 que cargara el valor de preselección, esto provoca que la cinta A124.0 se ponga en marcha al instante. -Hay un detector de piezas E124.7 que cuenta las piezas que pasan. Cuando ha contado las piezas preseleccionadas (el contador llega a 0), se para la cinta y se pone en marcha de forma intermitente la lámpara A124.7. -El operario retira entonces la caja llena, pone una caja vacía y repite el proceso (Pone la nueva preselección en MW0 y acciona de nuevo el pulsador E124.1 con lo cual el ciclo comienza de nuevo.
FC5 E124.7
E124.0
Z1
ZR E124.1
E124.0
Z1
SZ MW0 Z1
Z1
M255.5
E124.0
A124.0
E124.0
A124.7
A124.0
E124.7 A124.7 E124.0 E124.1 Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 18/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 19/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E8.2. INSTRUCCIONES DE COMPARACIÓN. -Tenemos tres tipos de comparadores, según el formato a comparar: • Comparación entre dos números enteros. Formato INT 16 bits. • Comparación entre dos números de dobles enteros. Formato DINT 32 bits. • Comparación entre dos números reales. Formato REAL 32 bits.
-Hay seis tipos de comparadores según su condición de comparación: • • • • • •
Segmento 1. Tendremos un 1 en el comparador si IN1 es igual a IN2. Segmento 2. Tendremos un 1 en el comparador si IN1 diferente a IN2. Segmento 3. Tendremos un 1 en el comparador si IN1 es mayor a IN2. Segmento 4. Tendremos un 1 en el comparador si IN1 es menor a IN2. Segmento 5. Tendremos un 1 en el comparador si IN1 es mayor o igual a IN2. Segmento 6. Tendremos un 1 en el comparador si IN1 es menor o igual a IN2.
NOTA: Un comparador, actúa como un contacto en el que habrá un 1 cuando se cumpla la comparación. FC6 E124.0
AWL A124.0
CMP==I
1 MW0
IN1
MW2
IN2
E124.1
A124.1 CMPI
2 MW0
IN1
MW2
IN2
E124.2
A124.2 CMP>I
3 MW0
IN1
MW2
IN2
E124.3
A124.3 CMP=I
5 MW0
IN1
MW2
IN2
E124.5
A124.5 CMP=I
4 MW0
IN1
10
IN2
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 32/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E10.5. CREACIÓN DE UN CONTADOR DE TIEMPOS. -Mediante un generador de impulsos y una operación incremento hemos creado un contador de tiempos. -El MW0 contara los segundos y el MW2 contara las horas de funcionamiento de un motor (A124.0). -Si incluimos un comparador, conseguiremos que cuando el motor lleve por ejemplo 5000 horas nos indique que le debemos hacer un mantenimiento preventivo.
FC13 E124.0
A124.0
S
1
E124.1
A124.0
R
2 A124.0
M255.5
M10.0 ADD_I
P
3
MW0
ENO
IN1 OUT MW0
1
IN2
CMP==I
4
ADD_:I
MOVE
ENO IN
MW0
IN1
MW2
ENO
IN1 OUT MW2
3600
IN2
E124.2 5
1
IN2
0 IN
OUT MW0
MOVE EN
ENO
0 IN
OUT MW0
MOVE EN
ENO
0 IN
OUT MW2
M255.5
A124.7
CMP > I
6 MW2
IN1
5000
IN2
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 33/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
Para probar el ejercicio, cambiar: -En IN2 del comparador del segmento 4, poner 6. -En IN2 del comparador del segmento 6, poner 10. En este caso, la salida A124.7 se activara cuando el motor lleve 60 segundos de funcionamiento y no 5000 horas.
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 34/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E10.6. OPERACIONES ARTIMETICAS CON NÚMEROS EN COMA FLOTANTE. - (Segmento 1)Suma de números reales: ADD_R suma los registros que tenga en IN1 e IN2 y envía el resultado a OUT. (OUT= IN1+IN2). - (Segmento 2)Resta de números reales: SUB_R resta los registros que tenga en IN1 e IN2 y envía el resultado a OUT. (OUT= IN1-IN2). - (Segmento 3)Multiplicación de números reales: MUL_R multiplica los registros que tenga en IN1 e IN2 y envía el resultado a OUT. (OUT= IN1*IN2). - (Segmento 4) División de números reales: DIV_R divide los registros que tenga en IN1 e IN2 y envía el resultado a OUT. (OUT= IN1/IN2). - (Segmento 5)Raíz cuadrada: SQRT realiza la raíz cuadrada de IN y envía el resultado a OUT. - (Segmento 6)Elevar al cuadrado: SQR eleva al cuadrado el valor que hay en IN y envía el resultado a OUT. - (Segmento 7)Valor absoluto de un número: ABS toma el valor de IN (sea positivo o negativo) y lo envía a OUT siempre con signo positivo. FC14 E124.0
ADD_R
1
EN
ENO
MD0 IN1 OUT MD8 MD4 IN2 E124.1
SUB_R
2
EN
ENO
MD0 IN1 OUT MD8 MD4 IN2 E124.2
MUL_R
3
EN
ENO
MD0 IN1 OUT MD8 MD4 IN2 E124.3
DIV_R
4
EN
ENO
MD0 IN1 OUT MD8 MD4 IN2
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 35/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E124.4
SQRT
5
EN
ENO
MD0 IN
E124.5
OUT MD8
SQR
6
EN
ENO
MD0 IN
E124.6
OUT MD8
ABS
7
EN
MD0 IN
ENO
OUT MD8
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 36/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E11.1. DIFERENTES MÉTODOS DE INCREMENTAR Y DECREMENTAR.
Se trata de realizar un circuito que responda al funcionamiento expresador en la siguiente figura:
Una posible solución seria: OB1
FB1
FB2
FB3
U E1.0 UN E1.1 CC FB1
U E0.0 SPB incr U E0.1 SPB decr BEA incr: L MB20 INC 1 T MB20 BEA decr: L MB20 DEC 1 T MB20 BE
U E0.0 FP M0.0 SPB incr U E0.1 FP M0.1 SPB decr BEA incr: L MB20 INC 1 T MB20 BEA decr: L MB20 DEC 1
U E0.0 FP M0.0 CC FC1
UN E1.0 U E1.1 CC FB2 U E1.0 U E1.1 CC FB3
FC1 L INC T
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
U FP CC
E0.1 M0.1 FC2
FC2 MB20 1 MB20
L MB20 DEC 1 T MB20
Fecha: 05/02/06 Página: 37/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E12.1. CREACIÓN DE LA PLANTILLA DE UN GENERADOR DE IMPULSOS STANDARD. -Combinando el funcionamiento de dos temporizadores, conseguimos crear un generador de impulsos que standard. -Creamos con ese circuito una plantilla que usaremos cuando nos convenga. -En el primer segmento del OB1 usamos la plantilla con preselecciones variables. Los tiempos en este caso los podríamos cambiar desde un terminal de operador o un sistema SCADA. -En el segmento usamos la plantilla con un tiempo fijo de 1 segundo de conexión y 2 segundos de desconexión. Para crear la plantilla, debemos de rellenar la tabla de declaración de variables y definir estas. Declaración In In In In Out
Nombre TIEMPO_OFF TIEMPO_ON T1 T2 GENERADOR
Tipo Comentario S5TIME S5TIME TIMER TIMER BOOL FC15
#T2
#T1
SE #TIEMPO_OFF #T1
#T2
SE #TIEMPO_ON #T1
#GENERADOR
OB1 FC15 1
EN
ENO
MW0 TIEMPO_OFF
GENERA DOR
M10.0
MW2 TIEMPO_ON T10 T1 T11 T2
E124.0
M10.0
A124.0
2
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 38/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
FC15 3
EN
ENO
S5T#2S TIEMPO_OFF
GENERA DOR
M10.1
S5T#1S TIEMPO_ON T12 T1 T13 T2
E124.1
M10.1
A124.0
4
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 39/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E12.2. CREACIÓN DE UNA PLANTILLA CON NÚMEROS REALES. -Queremos hacer una plantilla con la cual podamos calcular el resultado del tanto por ciento de un valor. Para eso debemos realizar las siguientes operaciones: Resultado= (Tanto por ciento*valor) / 100 Debemos realizar dos operaciones 1ª Auxiliar= Tanto por ciento*valor 2ª Resultado= Auxiliar /100 Para crear la plantilla, debemos de rellenar la tabla de declaración de variables y definir estas. Declaración In In Out In_out temp
Nombre Tanto por ciento Valor Resultado Auxiliar
Tipo REAL REAL REAL
Comentario
REAL FC16
MUL_R 1
EN #Tanto por ciento
DIV_R
ENO
EN
IN1
#Auxiliar OUT
#Valor
ENO
IN1
#Auxiliar
OUT
IN2
100.0
#Resultado
IN2
Usaremos la plantilla tantas veces como nos sea necesario OB1 E124.1 1
FC16 EN
MD0
MD4
ENO
Tanto por Ciento
FC16 EN
MD20
MD24
ENO
Tanto por Ciento
Resultado
MD28
Valor
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
MD8
Valor
E124.2 2
Resultado
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 40/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Nota: Proteger la plantilla para que no se pueda abrir (KNOW_HOW_PROTECT)
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 41/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
E13.1. DIRECCIONAMIENTO INDIRECTO DE REGISTROS. -Mediante el direccionamiento indirecto podemos direccionar diferentes módulos y registros. -Para el direccionamiento de OB, temporizadores o contadores el direccionamiento se hará mediante el valor de una palabra. -Para direccionar el valor de un registro, se hará con una doble palabra. -El MD0 ha de estar en formato puntero y como direccionamos palabras, el ultimo número ha de ser siempre 0 y se expresa P# X. 0 (Donde X indicara el número de la palabra a direccionar). L DBW[MD0] T MW10 Si MD0 = P#0.0
L DBW 0 T MW 0 Si MD0 = P#2.0 L DBW 2 T MW 0 Si MD0 = P#4.0 L DBW 4 T MW 0 Si MD0 = P#6.0 L DBW 6 T MW 0 Si MD0 = P#8.0 L DBW 8 T MW 0 ......................................................... ......................................................... Si MD0 = P# X.0 L DBW X T MW 0 Ejercicio 1. -Queremos que unos datos grabados en 20 palabras del DB1 puedan ser movidas al MW10. 1º Para ello crearemos primero el DB1 con los siguientes valores actuales.
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 42/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
2º Crearemos el programa en el FC17 FC17 AUF DB 1 L DBW [MD 0] T MW 10 3º Transferimos el DB1 y el OB1 al PLC. 4º Crearemos y editaremos la siguiente tabla de variables. 5º Forzaremos valores en MD0 en formato puntero y comprobaremos el resultado en MW10. Nota: No direccionar un valor superior a 20, ya que el DB solo tiene 20 palabras y por lo tanto al no encontrar la palabra buscada el PLC se iría a STOP.
Ejercicio 2 -Queremos realizar la suma de dos palabras del DB1 y mover el resultado al MW20. 1º Crearemos el programa en el FC18 FC18 AUF DB 1 L DBW [MD 0] L DBW [MD 4] +I T MW 20 2º Forzaremos valores en MD0 y en MD4 en formato puntero y comprobaremos el resultado en MW20. Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 43/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E14.1. LECTURA DE DATOS DE UN BLOQUE DE DATOS (DB). -Tenemos un proceso idéntico para realizar tres tipos de mezclas de dos productos. -En ese proceso, se hace una mezcla de una cantidad de un material con otra cantidad de otro material durante un tiempo determinado. -La única diferencia que existe en el proceso, la cantidad del producto A ( va por tiempo de apertura de una válvula), la cantidad del producto B y el tiempo de mezclado de los dos productos. Al accionar un pulsador se abren las dos electro válvulas que dan paso a los productos y se pone en marcha el mezclador. Según van pasando los tiempos, se cierra la válvula A, se cierra la válvula B y se para el mezclador. -Pondremos los datos de los tiempos de cada tipo de pieza en un DB diferente.
Mezcla 1
DB1
Tiempo producto A 5 segundos Tiempo producto B 8 segundos Tiempo Mezclador 12 segundos
Mezcla 2
DB2
Tiempo producto A 7 segundos Tiempo producto B 5 segundos Tiempo Mezclador 10 segundos
Mezcla 3
DB3
Tiempo producto A 8 segundos Tiempo producto B 8 segundos Tiempo Mezclador 15 segundos
-Crear el DB1 (Mezcla 1) Dirección Nombre 0.0 0.0 Tiempo_P_A 2.0 Tiempo_P_B 4.0 Tiempo_Mezc =6.0 Ir a “Ver” Ir a “Edición”
Tipo STRUCT S5TIME S5TIME S5TIME END_STRUCT
Valor inicial
Comentario
S5T#5S S5T#8S S5T#12S
Tiempo producto A Tiempo producto B Tiempo mezclado
“Datos” “Inicializar bloques de datos” (con esto el valor inicial se copiara en el valor actual).
Dirección
Nombre
Tipo
0.0 2.0 4.0
Tiempo_P_A Tiempo_P_B Tiempo_Mez
S5TIME S5TIME S5TIME
Valor inicial S5T#5S S5T#8S S5T#12S
Valor actual S5T#5S S5T#8S S5T#12S
Comentario Tiempo producto A Tiempo producto B Tiempo mezclado
-Repetir el mismo proceso en DB2 (Mezcla 2) y DB3 (Mezcla 3)
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 44/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
FC19 E124.0
PEQU
1
JMPN
2
OPN
DB1
PEQU E124.1
MEDI JMPN
3
DB2 4
OPN
MEDI
E124.2
GRAN
5
JMPN
6
OPN
DB3
GRAN E124.0 7
FC20 EN
ENO
E124.1
E124.2
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 45/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
FC20 MOVE 1
EN
ENO
DBW0 IN
OUT MW0 MOVE
2
EN
ENO
DBW2 IN
OUT MW2 MOVE
3
EN
ENO
DBW4 IN
OUT MW4
OB1 FC19 1
EN
ENO
E124.7
T1 SV
2
MW0 T2 SV MW2 T3 SV MW4
T1
A124.0
T2
A124.1
3
4
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 46/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
T3
A124.2
5
PRODUCTO A
PRODUCTO B
A124.1
A124.0 A124.2
E124.2
E124.1
SELECCIÓN MEZCLA
E124.0
M
MARCHA PROCESO
E124.7
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 47/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E14.2. LECTURA DE DATOS DE UN BLOQUE DE DATOS (DB) II. DIRECCIONAMIENTO INDIRECTO DE UN BLOQUE DE DATOS. -Realización del ejercicio anterior utilizando el direccionamiento indirecto. Modificar solo el FC19, el resto de módulos utilizarlos tal como están. -En este ejercicio, mediante el E124.0 seleccionaremos el número de DB que queremos abrir y al leerse el FC2 se cargaran los datos de ese DB en MW0, MW2 y MW4. -Al accionar el E124.7 se pondra en marcha el proceso Nota: La instrucción AUF en AWL es igual a OPN en KOP. AUF DB10 (Esto significa “Abre el DB10”) -La instrucción que usaremos la programaremos en AWL. Al utilizar el direccionamiento indirecto para direccionar un DB, deberemos cargar un valor en una palabra en este caso la MW210 AUF DB [MW 210] Si MW210=1 AUF DB 1 Si MW210=2 AUF DB 2 Si MW210=3 AUF DB 3 ................................................. ................................................. Si MW210=’N’ AUF DB ‘N’ FC19 E124.0
M10.0
ADD_I
P
1
EN MW210 IN1
ENO OUT MW210
1 IN2
MOVE CMP==I
2 MW210
IN1
4
IN2
EN 1 IN
ENO OUT MW210
CMP==I
3
MW210
IN1
0
IN2
AUF DB [MW 210]
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 48/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
FC 20 4
EN
ENO
NOTA: Si tuviéramos el mismo proceso con 20 datos diferentes, crearíamos 20 DBs, pondríamos esos datos desde el DB1 al DB20 y en el primer comparador del segmento 2 sustituiríamos el valor 4 por el valor 21. -Razonar que ocurriría si el segmento 3 lo ponemos delante del segmento 2. Cambiarlo y comprobar su funcionamiento.
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 49/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
E15.1. PROGRAMACION DEL RELOJ. -La hora y fecha, se pueden cambiar en el editor o en el administrador en ”Sistema de destino” ”Diagnostico/configuración” ”ajustar la hora” . Cuando se pone la fecha y hora nueva, se valida pulsando “Aplicar”. Para trabajar con los datos del reloj, se puede hacer de dos formas: -Una de ellas es la de trabajar con funciones especiales SFC. -Otra de las formas, es recuperar los datos del reloj del OB1 Datos del reloj del OB1 Hay un registro temporal en el OB1, el “OB1_DATE_TIME” donde se carga la fecha y hora actual en la que se esta ejecutando el OB1 (variable 12.0 y la componen 12 bytes) las variables de lectura son del LB12 al LB19. -Si quiero trabajar con el reloj solo en el OB1, puedo trabajar con esas variables temporales. En caso que quiera trabajar en otro módulo, tendré que cargar esas variables temporales en unos registros (por ejemplo en un DB). Los datos del reloj están en BCD, por lo tanto deberé leerlos en hexadecimal: LB12 LB13 LB14 LB15 LB16 LB17 LB18 LB19
B#16#02 (Año) B#16#11 (Mes) B#16#23 (Día) B#16#15 (Hora) B#16#47 (Minuto) B#16#34 (Segundos) B#16#68 (Décimas y Centésimas) B#16#11 (Milésimas, día de la semana)
Día de la semana
1 2 3 4 5 6 7
Domingo Lunes Martes Miércoles Jueves Viernes Sábado
Ejercicio 1 : -En este ejercicio, queremos que a las 5 y 15 de la tarde, se ponga en funcionamiento el riego (A124.0) y que se pare a las 5 y 17 de la tarde. -Programar después el mismo funcionamiento, pero que solo funcione de lunes a viernes.
Dirección 0.0 +0.0 *2.0
Nombre Reloj
=16.0
Tipo STRUCT ARRAY[1..8] BYTE
Comentario
B#16#0
END_STRUCT
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
DB6 Valor inicial
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 50/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
OB1 Dirección
Declaración
0.0 1.0 2.0 ----12.0
Temp Temp Temp Temp Temp
Nombre
Tipo
Valor inicial
----------------------------------------------------------------------------OB1_DATE_TIME
----------------------------------------------------------------------------------------DATE__AND_TIME
MOVE 1
EN
MOVE ENO
LD12 IN
Comentario
OUT DB6.DBD0
LD16
EN
ENO
IN
OUT DB6.DBD4
FC21 2
EN
ENO
Al realizar este programa en OB1, los datos del reloj estarán en: DB6.DBB0 (Año) DB6.DBB1 (Mes) DB6.DBB2 (Día) DB6.DBB3 (Hora) DB6.DBB4 (Minuto) DB6.DBB5 (Segundos) DB6.DBB6 (Décimas y Centésimas) DB6.DBB7 (Milésimas, día de la semana)
FC21 L DB6.DBW3 L W#16#1715 ==I S A124.0 L DB6.DBW3 L W#16#1830 ==I R A124.0
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 51/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
-Ejercicio 2 -Queremos que de lunes a viernes una sirena funcione desde la 1 y 30 de la tarde hasta la 1 y 32 Para poder solucionar el ejercicio, debemos filtrar el día de la semana en una palabra o en un byte para poder realizar comparaciones con el. (En este caso lo hemos puesto en MW0) FC22 L DB6.DBW6 L W#16#F UW T MW 0 L MW 0 L B#16# 7 ==I = M10.0 L MW 0 L B#16# 1 ==I = M10.1
L DB6.DBW3 L W#16#1330 ==I S M10.2 L DB6.DBW3 L W#16#1332 ==I R M10.2
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
U M10.2 UNM 10.0 UNM10.1 = A124.1
Fecha: 05/02/06 Página: 52/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
Ejercicio 3 -Creación de una plantilla para poder realizar la conexión y desconexión de un elemento entre unas horas determinadas. -Desde un terminal de operador o un sistema SCADA podremos programar ese reloj (forzando las MW20 y MW22) para que la salida funcione cuando que nos interese Para crear la plantilla, debemos de rellenar la tabla de declaración de variables y definir estas.
Declaración In In Out In_out temp
FC23 Nombre Tipo HORA_INICIO WORD HORA_FINAL WORD SALIDA BOOL
Comentario
REAL L DB6.DBW3 L #HORA_INICIO == I S #SALIDA L DB6.DBW3 L #HORA_FINAL == I R #SALIDA OB1 MOVE
1
EN
LD12 IN
E124.2 2
OUT DB6.DBD0
IN
OUT DB6.DBD4
HORA_INICIO A124.0
HORA_FINAL
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
ENO
ENO
SALIDA MD22
LD16
EN
FC23 EN
MW20
MOVE ENO
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 53/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E16.1. FUNCION SCALE (ESCALAR UNA ENTRADA ANALOGICA). -Esta función la podemos encontrar en: Librerías Standard Library TI-S7 Converting Blocks
FC105
-La función SCALE sirve para escalar el valor de una entrada analógica entre dos valores (máximo y mínimo). También podríamos escalar cualquier otro registro que no sea una entrada analógica. Parámetros: EN Cuando tengamos un 1 se ejecuta la función. Si hay un 0, la función es saltada (no se ejecuta). IN Valor de entrada (número de entrada analógica). Formato entero 16 bits INT. HI_LIM Valor máximo deseado de salida (OUT). Número REAL, doble palabra o constante. LOW_LIM Valor mínimo deseado de salida (OUT). Número REAL, doble palabra o constante. BIPOLAR Si vale 0 (trabajamos con valores entre 0 y 27648). Entrada analógica de 0 a 10 V. Si vale 1 (trabajamos con valores entre –27648 y +27648) Entrada analógica de –10V a +10 V. OUT Valor de salida escalado entre el valor máximo y mínimo. Formato REAL. ENO Vale 0 si el valor de IN es superior o inferior al limite (-27648 o + 27648). En este caso, además en OUT sale el valor máximo o el mínimo según se rebase en positivo o en negativo. RET_VALUE Registro de error. Vale W#16#0000 si el escalado se ha hecho correctamente. Vale W#16#0008 si IN sale de los limites máximo o mínimo. -En este caso, queremos controlar el valor de temperatura de una sonda que da 0 Voltios a 0ºC y 10 Voltios a 100ºC y queremos tener en MD100 el valor real de esa temperatura. FC24 FC105 SCALE 1
EN
ENO RET_ VALUE
PEW752 IN
100.0 HI_LIM
OUT
MW0
MD10
0.0 LO_LIM
E124.0 BIPOLAR
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 54/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
UNIPOLAR
27648
27648
PEW752
PEW752
13824
13824
0
0 0V 0º
5V
0ºC
10 V
50ºC
100ºC
MD10 RESULTADO ESCALADO DE PEW752
PEW752 100º SONDA DE TEMPERATURA BIPOLAR
-Comprobar el funcionamiento de la función cuando activo el E124.0 +27648 Sonda de temperatura 0 a 100ºC
PLC
PEW752
0- 10 V PEW752 PAW12 8
0 0ºC
50ºC MD10
100ºC
-27648
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 55/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
E16.2. FUNCION UNSCALE (DESESCALAR A UNA SALIDA ANALOGICA). -Esta función la podemos encontrar en: Librerías Standard Library TI-S7 Converting Blocks
FC106
-La función UNSCALE sirve para desescalar el valor (máximo y mínimo) de una registro sobre una salida analógica.. También podríamos desescalar cualquier otro registro que no sea una salida analógica. Parámetros: EN Cuando tengamos un 1 se ejecuta la función. Si hay un 0, la función es saltada. IN Valor de entrada .Registro en formato REAL 32 bits. HI_LIM Valor máximo deseado del valor de entrada (IN). Número REAL, doble palabra o constante LOW_LIM Valor mínimo deseado del valor de entrada (IN) . Número REAL, doble palabra o constante BIPOLAR Si vale 0, daremos valores de salida entre 0 y 27648). Salida analógica de 0 a 10 V Si vale 1, daremos valores de salida entre –27648 y +27648) .Salida analógica de –10V a +10 V OUT Valor de salida escalado . Formato INT 16 bits. ENO Vale 0 si el valor de IN es superior al limite inferior o al superior (HI_LIM o LOW_LIMIT). En este caso, además en OUT sale el valor máximo o el mínimo según se rebase en por encima o por debajo. ( 0 o 27648). RET_VALUEÆRegistro de error. Vale W#16#0000 si el escalado se ha hecho correctamente. Vale W#16#0008 si IN sale de los limites máximo o mínimo. -En este caso, queremos controlar la velocidad de un motor mediante un convertidor de frecuencia. El variador tiene una consigna de 0- 10 Voltios. Con 0 voltios, el motor ira a 0 rpm y con 10 voltios, ira a 1500 rpm Iremos dando un valor a MD100 entre 0 y 1500, ese valor se convertirá en un valor en la salida analógica entre 0 y 27648, que a su vez hará que la salida analógica de una señal entre 0 y 10 Voltios.. FC25 FC 106 UNSCALE
1
EN MD10 IN
1500.0 HI_LIM
ENO RET_VALUE
OUT
MW0
PAW752
0.0 LO_LIM
E124.0 BIPOLAR
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 56/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
Electricitat/Electrònica
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
-Edita la siguiente tabla de estado y fuerza valores en el MD10. ( 0 a 1500) -Fuerza un valor inferior a 0 o superior a 1500 y comprueba que ocurre en el AW752 y en el MW0
Ejercicio 1 : Añadir a este ejercicio las líneas del ejercicio E2 colocando en los IN de la función mover: 0.0, 300.0, 600.0, 900.0, 1200.0 y 1500.0 y en todos los OUT colocar MD10. El colocar .0 se añade para decirle que ese valor es un número real.
Realizado por:
Ramon L. Yuste Yuste Luis Martinez Novoa
IES SEP COMTE DE RIUS
Fecha: 05/02/06 Página: 57/84 Fichero: Instrucciones avanzadas Versión: 2.2
Departament d’Educació
PROGRAMACIÓN AVANZADA CON EL PLC S7-300
Electricitat/Electrònica
E16.3. CONSIGNA DE MAXIMA Y MINIMA DE UNA ENTRADA ANALOGICA. -Queremos tener una alarma de mínimo y una de máximo de una temperatura. La temperatura la lee la entrada analógica PEW752. -Debe de activarse la alarma de máxima cuando el valor de la temperatura supere los 90ºC -Debe de activarse la alarma de mínima cuando el valor de la temperatura este por debajo de 40ºC. -El E124.0 es el pulsador de enterado. Al accionarlo se borra la alarma de mínimo y de máximo -Las alarmas de mínimo o máximo, no volverán a activarse hasta que su valor no suba (mínima) o baje(máxima) del valor de la consigna y se den de nuevo las condiciones de activación de las alarmas. -Para poder colocar las consignas de máxima y mínima, debo hacer una regla de tres y así deduzco que: Tendré 90ºC cuando el valor en PEW752 sea de 24883. Tendré 40ºC cuando el valor en PEW752 sea de 11059. FC26 CMP>I
1 PEW752
IN1
24883
IN2 CMPR
2 MD10
IN1
MD20
IN2 CMP