Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación Con Win FST
Programación Con Win FST
Contenido
El lenguaje de programacin
Win FST 4.10 para PLCs
2
Tabla de contenido
01/2004 Edward Gasper Cristbal Jimnez, Festo Mxico by Festo Didactic GmbH & Co.,
Partes de esta publicacin pueden ser copiadas por los usuarios autorizados con el nico propsito de entrenamiento.
Win FST Festo Didactic
3
Contenido
Contenido
Contenido ........................................................................................ 3
Primeros pasos
1
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13
Primeros pasos
Iniciando el software Win FST .............................................. 9 Creacin de un nuevo proyecto............................................ 9 Creacin de un programa .....................................................11 Configuracin de las Entradas/Salidas ................................12 Declaracin de las variables.................................................14 Escritura de un programa.....................................................16 Verificacin de un programa ................................................17 Compilacin y construccin de un programa........................18 Configuracin del Controlador .............................................20 Transferencia del Programa al PLC .......................................22 Monitoreo en lnea...............................................................22 Respaldo y restauracin de proyectos .................................24 1.12.1 Respaldo .................................................................24 1.12.2 Restauracin ...........................................................25 Salida del programa.............................................................26
4
Tabla de contenido
Utilizacin de temporizadores
5
5.1 5.2 5.3
Utilizacin de contadores
6
6.1 6.2 6.3
Utilizacin de contadores............................................ 57
Introduccin.........................................................................57 Utilizacin de la funcin de conteo.......................................57 Aplicacin del contador en nuestro proyecto .......................58
Multitarea
7
7.1 7.2
Multitarea.................................................................... 63
Introduccin.........................................................................63 Trminos asociados con la Multitarea ..................................63 7.2.1 CFM Llamada a mdulo de funcin........................64 7.2.2 CMP Llamada a mdulo de programa ....................64 7.2.3 Llamado de un mdulo ............................................65 7.2.4 Llamado de programas ............................................66 Utilizacin de banderas........................................................66 Utilizacin del mdulo de seal intermitente (Blink) ............66 Tarea de control inicial .........................................................69 7.5.1 Lista de asignaciones...............................................69 Estructura de los proyectos y de los programas ...................70 7.6.1 Arbol del proyecto ...................................................70 7.6.2 Programa de organizacin principal.........................70 7.6.3 Programa de secuencia............................................71
Win FST Festo Didactic
5
Contenido
7.7 7.8 Requerimientos adicionales de control ................................71 7.7.1 Lista de asignaciones ..............................................72 Estructura de los proyectos y de los programas ...................73 7.8.1 Arbol de proyecto ....................................................73 7.8.2 Programa principal ..................................................74 7.8.3 Programa de secuencia............................................75 7.8.4 Programa de generacin de seal intermitente........76
Redes de Comunicacin
8
8.1 8.2 8.3 8.4
Redes de Comunicacin............................................... 81
Introduccin.........................................................................83 Verificacin de la direccin de su PC ....................................83 Localizacin de una direccin IP libre para sus PLCs...........84 Modificacin de la direccin IP de sus PLCs ........................84 8.4.1 Configuracin de E/S ...............................................87 8.4.2 Configuracin del Controlador .................................88 8.4.3 Carga del proyecto y de los Drivers al PLC ...............89 Conexin de par de cables trenzados...................................90 Verificacin de la Comunicacin...........................................90 Comunicacin con el Controlador.........................................91
Utilizacin de Ethernet
9
9.1 9.2
9.3
6
Tabla de contenido
10.4
10.5 10.6
11.3 11.4
7
Primeros Pasos
Captulo1
Primeros Pasos
8
Primeros Pasos
9
Primeros Pasos
Win FST
Este manual est elaborado para quienes inician la programacin con el software Win FST. Este manual contiene algunos ejemplos.
1.2
10
Primeros Pasos
La ventana de dilogo aparecer con el signo ? en el campo para la introduccin del nombre. Introduzca el nombre de su proyecto. De un Click en [OK] Una nueva ventana de dilogo aparecer para que introduzca los ajustes del proyecto.
11
Primeros Pasos
Tal vez desee aadir un comentario para el proyecto. Sin embargo, no es necesario. De un Click en [OK] Ser llevado a la ventana principal con una nueva ventana (Project Tree) en la parte superior izquierda. Es all donde se lleva a cabo la navegacin por todo el proyecto.
1.3
Creacin de un programa
Hay varias formas de crear un programa. De un Click en [Insert], [New Program] o [Program], [New]. O puede dar un click en el botn derecho del ratn en Program y dar un click en Insert Program Una ventana de dilogo aparecer.
12
Primeros Pasos
El nuevo programa que ha creado aparecer bajo la carpeta Program en el rbol del proyecto.
13
Primeros Pasos
1.4
Configuracin de Entradas/Salidas
Antes de declarar las variables, necesita configurar las E/S. De un doble click en IO Configuration en la lista del rbol del proyecto.
Mueva al ratn a la pantalla y de un click derecho. De un Click en Insert IO Module Una nueva ventana de dilogo aparecer
14
Primeros Pasos
Escoja el PLC que est empleando.
Escoja 0 tanto para OW como para IW. ste es el nmero de palabra tanto para las entradas como para las salidas de la cual comenzaremos a direccionar. De un Click en OK Cierre la ventana.
15
Primeros Pasos
1.5
Necesita declarar las variables que utilizar en su programa. Esto se hace en Lista de Asignaciones (Allocation List). De un doble click en la opcin Allocation List del rbol del proyecto. Aparecer una nueva pantalla con tres encabezados: Operando Smbolo Comentario Operand es la direccin absoluta que reconoce el PLC de las entradas y la salidas. Symbol es el operando simblico el cual le es familiar al programador. Comment son los comentarios acerca del operando en cuestin. Los operandos simblicos y los comentarios son opcionales; sin embargo se aconseja definirlos con el fin de documentar al proyecto. Para insertar una variable de un click derecho, y de un click en [Insert Operand] Otra manera es presionando la tecla [Insert].
16
Primeros Pasos
1.6
De un doble click en el programa que cre. Se abrir una ventana de programacin. Si tiene abierta ms de una ventana, sta se sobreposicionar.
Win FST Festo Didactic
17
Primeros Pasos
Junto con la ventana de programacin, la ventana STL Shortcuts aparecer para auxiliarle. Escriba su programa en Lista de Instrucciones. Puede introducir los comandos por el teclado o bien utilizar el men de comandos. Puede introducir los operandos por el teclado o por el botn derecho del ratn y utilizar la opcin insert Operand. La ventana de la lista de asignaciones aparecer.
1.7
Despus de escribir el programa, puede verificarlo con el fin de detectar y corregir los posibles errors de sintaxis y de direccionamiento. Con esta funcin, es possible eliminar dichos errores antes de cargar el programa. De un Click en su programa en el navegador del proyecto. Su programa debe estar abierto y con la ventana del editor activa. De un Click en el cono Compile Active Module o pulse [Ctrl] + [F7]
18
Primeros Pasos
Entonces el programa es verificado. Los resultados de la verificacin aparecern en una nueva ventana de dilogo. Si el programa est libre de errores, entonces puede proceder con la siguiente tarea; de otra manera necesita corregir el error. La lista de errores le permite saber dnde se encuentra el error, al indicarle en qu lnea se encuentra dicho error. Para dirigirse al error en la lnea del programa correspondiente, de un doble clic en la lnea donde se list el error. Si ocurriesen varios errores, siempre corrija el primero y vuelva a compilar debido a que los dems errores pueden serconsecuencia del primero. Sin embargo, tome en cuenta que solo se verifica la sintaxis, lo cual no significa que el programa funcionar. Es similar a la verificacin que hacen los procesadores de texto, pueden no haber errores de escritura pero el prrafo podra no tener sentido.
19
Primeros Pasos
1.8
Antes de cargar su programa al PLC, tiene que compilar y construir su programa. Recuerde que esto es diferente que compilar el programa, ya que esta segunda opcin le construye todo el proyecto con todos los drivers, etc. De un Clic en la cono Make Project o pulse la tecla [F7] Este cono se utiliza para compilar cualquier cambio efectuado. Cuando de un clic en el cono Build Project, se reconstruir todo el proyecto. Se recomienda construir su proyecto al menos una vez antes de realizar la carga.
Hacer proyecto
20
Primeros Pasos
Construir proyecto
1.9
Antes de cargar el programa, requiere configurar a su controlador De un doble clic en la opcin Controller Settings en la ventana del rbol del proyecto.
21
Primeros Pasos
De un clic en la caja marcada como Autostart. Esto le asegura no reiniciar al PLC para iniciar el proyecto. De un clic en la pestaa Download y seleccione la opcin Download Source File
22
Primeros Pasos
De un Clic en OK A continuacin abra la ventana Preferences del men [Extra] , [Preferences] Elija la pestaa Communications Port Elija el puerto COM y ajuste la velocidad de comunicacin Baudrate a 9600 bauds.
De un Click en OK
Win FST Festo Didactic
23
Primeros Pasos
Aparecer una ventana de dilogo una vez que la carga se haya completado y si no existe algn error. Ejecute el programa moviendo el interruptor de Stop a Run.
24
Primeros Pasos
Para ir a modo en lnea y ver los operandos, de un clic en el cono Online Display.
Monitoreo en lnea
25
Primeros Pasos
Note que puede forzar las salidas dando un clic a los bits respectivos . Sin embargo, sea cuidadoso cuando force dichas variables, asegrese de no ocasionar que su equipo afecte a otro equipo. Tambin recuerde desactivar todas las salidas una vez que haya terminado.
Elija el Proyecto que require respaldar. De un Clic en OK Elija el lugar en donde desee respaldar al proyecto, regularmente es la unidad de discos de 3 . De un Clic en Save
26
Primeros Pasos
27
Primeros Pasos
De un Clic en OK Una vez que ha sido recuperado, aparecer la ventana Message Window.
28
Primeros Pasos
El proyecto se recueprar en la carpeta de Proyectos.
29
Programacin en lista de insrucciones
Captulo 2
30
Programacin en lista de instrucciones
31
Programacin en lista de insrucciones
El lenguaje STL (Statement List) le permite al programador resolver tareas de control utilizando instrucciones simples en ingls para describir la operacin deseada del controlador. La naturaleza modular del lenguaje le permite al programador resolver tareas complejas de una manera eficiente y de manera documentada.
2.2
Elementos de STL.
Parte condicional Parte ejecutiva
Step (Paso)
A pesar de que el uso de la instruccin STEP es opcional, la mayora de los programadores la utiliza. La instruccin STEP se utiliza para marcar el comienzo de un bloque lgico de cdigo de programa. Cada programa en STL puede contener 255 pasos. Cada paso puede contener una o varias frases. Se le puede asignar a cada paso de manera opcional una etiqueta o nombre. Slo se require una etiqueta de paso cuando algn otro paso haga referencia al primero por medio de una instruccin de salto. Frases
2.2.2
La frase forma el nivel ms bsico dentro de la organizacin del programa. Cada frase est compuesta de una parte condicional y una parte ejecutiva
a. Parte condicional
La parte condicional para listar una o ms condiciones que tienen que ser evaluadas al momento de la ejecucin ya sea como verdaderas o falsas. Esta parte comienza regularmente con la instruccin IF (si condicional) y contina con una o varias frases las cuales describen las condiciones que sern evaluadas. Si las condiciones resultan verdaderas, entonces se llevarn a cabo todas las acciones programadas en la parte ejecutiva. Algunos ejemplos:
32
Programacin en lista de instrucciones
o o IF I0.1 IF I0.2 AND I0.3
b. Parte Ejecutiva
Esta es la seccin de la Frase donde se acivan las salidas siempre que la parte Condicional haya sido evaluada como verdadera. Algunos ejemplos son: o THEN SET Y1 o THEN RESET Y2 o THEN JMP TO START
2.3
La instruccin STEP
STEP (Etiqueta)
alfanumricos
IF THEN SET
siguiente paso
Es importante entender que el programa esperar en este paso hasta que las condiciones sean verdaderas y hasta entonces se llevarn a cabo las acciones. Slo hasta entonces el programa avanzar al siguiente paso.
2.4
El programa ejecutar el primer paso, STEP Start. Si la condicin I0.0 es verdadera, entonces efectuar la parte ejecutiva (Set O0.0) y proceder con el siguinete paso, STEP Stop. Si la condicin es falsa, esxperar en el paso Start.
Win FST Festo Didactic
33
Programacin en lista de insrucciones
2.5
STEP Start IF THEN IF THEN IF THEN STEP Stop IF THEN RESET RESET RESET I0.1 O0.0 O0.1 O0.2 SET SET O0.1 SET I0.2 O0.2 I0.0 O0.0 I0.1
Si la parte condicional de la primera frase es verdadera, entonces se realizar la parte ejecutiva y continuar con la segunda frase. Si no es verdadera, proceder con la segunda frase sin realizar ejecucin alguna. No se espera en la primera frase. Si la parte condicional de la segunda frase es verdadera, entonces se llevar a cabo la parte ejecutiva y proceder con la tercre frase. Si no es verdadera, entonces proceder con la tercera frase sin hacer ejecucin alguna. No se espera en la segunda frase. Si la parte condicional de la tercera frase es verdadera, entonces se realizar la parte ejecutiva y proceder con el siguiente paso. Si no es verdadera, proceder con la primera frase, la segunda frase y la tercera frase y quedar encerrado en el mismo paso. Generalmente, slo cuando la ltima frase del paso es verdadera, se proceder con el siguiente paso.
34
Programacin en lista de instrucciones
2.6
STEP Start IF THEN SET OTHRW RESET O0.0 STEP Stop IF THEN I0.1 RESET O0.0
El programa ejecutar el primer paso, STEP Start. Si la condicin I0.0 es verdadera, entonces se realizar la parte ejecutiva (Set O0.0) y se proceder con el siguiente paso, STEP Stop. De otra manera (si no es verdadera), efectuar la instruccin RESET O0.0 y se proceder con el siguiente paso, STEP Stop. En este caso, no habr espera en el paso STEP Start, y se ejecutar ya sea la accin SET O0.0 o RESET O0.0 y proceder con el siguiente paso.
2.7
El software WinFST ofrece la facilidad de utilizar el comando ELSE en lugar del commando OTHRW. Algunos programadores estn ms familiarizados con el comando ELSE por ser utilizado ms comnmente por los lenguajes de programacin de computadoras. Para utilizar el comando ELSE, necesita cambiar las preferencias. Vaya a la ventana Extras, Preferences y elija la opcin STL Editor Marque el cuadro Use ELSE instead of OTHRW. De un clic en OK
35
Comandos estndar utilizados en STL
Captulo 3
36
Comandos estndar utilizados en STL
37
Comandos estndar utilizados en STL
Los siguientes commandos son algunos de los ms utilizados en el lenguaje de Lista de Instrucciones.
3.2
Lista de comandos
38
Comandos estndar utilizados en STL
OTHRW Permite continuar con la ejecucin del programa an cuando la parte condicional de la frase sea falsa.
LOAD
DEC
INC
Incrementa a un operando multi bit/al acumulador Es la function negacin. Le permite invertir una condicin de entrada.
39
Inicio del proyecto Dispositivo de Elevacin
Captulo 4
proyecto
40
Comenzando el proyecto Dispositivo de Elevacin
41
Inicio del proyecto Dispositivo de Elevacin
En este manual comenzaremos con el proyecto del dispositivo de elevacin y lo iremos construyendo. Para este dispositivo, el Cilindro 1A elevar la plataforma y entonces el cilindro 2A empujar al paquete hacia la segunda banda transportadora. Entonces el cilindro 2A retraer su vstago y acto seguido se retraer el vstago del cilindro 1A.
Simblico
SB B1 B2 B3 B4 Y1 Y2
Absoluto
I0.0 I0.1 I0.2 I0.3 I0.4 O0.0 O0.1
Comentarios
Botn de marcha Cilindro 1A retrado Cilindro 1A extendido Cilindro 2A retrtado Cilindro 2A extendido Solenoide para el cilindro 1A Solenoide para el cilindro 2A
42
Comenzando el proyecto Dispositivo de Elevacin
4.2
Crear un Nuevo proyecto de la misma manera en que fue descrito en el captulo Primeros pasos. Despus de crear el proyecto, crear el programa.
Inseertar el programa
4.3
Antes de declarar las variables, necesitamos establecer la configuracin de E/S. Como en este proyecto utilizaremos un FEC 34, elija FEC como el mdulo de E/S correcto.
43
Inicio del proyecto Dispositivo de Elevacin
4.4
4.5
Comiennce con la escritura del cdigo del programa. Recuerde la secuencia y qu entradas activarn la siguiente secuencia. Dado a que es una programacin a pasos, cada paso esperar al paso anterior antes de comenzar el siguiente. No habr problemas de sincrona siempre que el programa se haya escrito correctamente.
44
Comenzando el proyecto Dispositivo de Elevacin
Note que puede escribir todo en una sola lnea y automticamente tomar el formato, como se muestra a continuacin.
STEP 10 IF THEN STEP 20 IF THEN STEP 30 IF THEN STEP 40 IF THEN B3 RESET Y1 JMP TO 10 Cilindro 2A retrado Solenoide para cilindro 1A B4 RESET Y2 Cilindro 2A extendido Solenoide para cilindro 2A SET B2 Y2 Cilindro 1A extendido Solenoide para cilindro 2A AND AND SET SB B1 B3 Y1 Botn de marcha Cilindro 1A retrado Cilindro 2A retrado Solenoide para cilindro 1A
45
Inicio del proyecto Dispositivo de Elevacin
4.6
Despus de haber escrito el proyecto, requiere verificarlo. Este se puede realizar en cualquier momento mientras est escribiendo el programa.
De un clic en el cono Compile Active Module y con el fin de detectar los errores.
4.7
De un clic en el cono Make Project Este cono se utiliza para compilar cualquier cambio realizado. Cuando da un clic en el cono Rebuild Project, se reconstruye todo el proyecto. Se recomienda contruir el proyecto al menos una vez antes de cargarlo al PLC.
46
Comenzando el proyecto Dispositivo de Elevacin
4.8
Antes de cargar el programa, debemos asegurar que la configuracin para establecer la comunicacin entre el control FEC y la PC sea la correcta.
A continuacin abra la ventana Preferences de la opcin [Extras], [Preferences] Elija la opcin Communications Port Elija el puerto COM correcto y establezca la velocidad de 9600 Bauds.
47
Inicio del proyecto Dispositivo de Elevacin
De un clic OK
4.9
Conecte su PLC a su PLC con el cable de interfaz, introduciendo el conector tipo RJ al conector COM de su PLC, y el otro extremo con conector tipo DB9 al puerto serial de la PC. Despus de construer su proyecto y de configurar al controlador, es posible cargar su programa. De un clic en el cocno Download Project o pulse la tecla [F5]
Aparecer una ventana de dilogo una vez que se haya completado la carga o si existiera algn error. Ejecute el programa en el PLC.
48
Comenzando el proyecto Dispositivo de Elevacin
49
Inicio del proyecto Dispositivo de Elevacin
Para monitorerar en lnea a los operandos, de un clic en el cono Online Display.
Monitoreo en lnea
50
Utilizacin de temporizadores
51
Utilizacin de temporizadores
Captulo 5
Utilizacin de temporizadores
52
Utilizacin de temporizadores
53
Utilizacin de temporizadores
5 Utilizacin de temporizadores
5.1 Introduccin
Hasta ahora, hemos escrito el programa utilizando solamente entradas y salidas del FEC. Ahora utilizaremos los temporizadores que estn incorporados en el PLC. Modificaremos el proyecto Dispositivo de elevacin para aadir un temporizador. Despus de que el cilindro 2A se haya retrado, por rezones de seguridad, el Cilindro 1A deber esperar un tiempo de 5 segundos antes de retraer su vstago.
5.2
Antes de utilizar el temporizador, echemos un vistazo a la funcin de Ayuda en el programa. De un clic en Help Despus de un clic en Help Topics De un clic en el tabulador Index y digite Timers El tema referente a los temporizadores aparecer en la ventana derecha. Encontrar toda la informacin necesaria acerca de los temporizadores.
54
Utilizacin de temporizadores
Hay algunos trminos asociados con los temporizadores: o T0 Temporizador 0 o TP0 Preselector para el temporizador 0 La forma ms comn de escribirlo se muestra a continuacin.
STEP 10 IF THEN SET SET with I0.1 O0.2 T1 5s Input 0.1 Lamp Timer 1
5.3
En nuestro programa original, no es necesario cambiar todo el programa solo es necesario modificar el ltimo paso (STEP 40).
STEP 10 IF THEN STEP 20 IF THEN STEP 30 IF THEN STEP 40 IF THEN B3 RESET Y1 JMP TO 10 Cilindro 2A retrado Solenoide para el cilindro 1A B4 RESET Y2 Cilindro 2A extendido Solenoide para el cilindro 2A SET B2 Y2 Cilindro 1A extendido Soenoide para el cilindro 2A AND AND SET SB B1 B3 Y1 Botn de marcha Cilindro 1A retrado Cilindro 2A retrado Solenoide para el cilindro 1A
55
Utilizacin de temporizadores
Despus de que el cilindro 2A se retrae, el temporizador inicia un tiempo de 5 segundos antes de que el vstago del cilindro 1A se retraiga. En cuanto se introduce la variable T1 aparece la ventana de entrada de la lista de asignaciones con el fin de declarar al temporizador. Se recomienda definir un smbolo y un comentario para dicha variable, con el fin de documentar al proyecto.
56
Utilizacin de temporizadores
57
Utilizacin de contadores
Captulo 6
Utilizacin de contadores
58
Utilizacin de contadores
59
Utilizacin de contadores
6 Utilizacin de contadores
6.1 Introduccin
En este captulo, introduciremos la funcin del contador. Por lo que modificaremos el programa, para que una vez que el proceso haya completado 10 ciclos, se detenga automticamente. Para llevar a cabo dicha tarea se debe de pulsar una vez el botn de marcha.
6.2
Los siguientes trminos estn asociados con los contadores: o C0 Contador 0 o CP0 Preselector para el contador 0 o CW0 Valor acumulado de eventos del contador 0 Existen dos formas de utilizar al contador en nuestro programa. A continuacin se muestra el primer mtodo:
Contador 0 Solenoide 1
STEP 20 IF THEN STEP 30 IF THEN STEP 40 IF N C0 THEN JMP TO 50 OTHRW JMP TO 20 STEP 50 THEN SET Y1 JMP TO 10 Solenoide 1 Contador 0 N B1 NOP Sensor 1 INC B1 C0 Sensor 1 Contador 0
60
Utilizacin de contadores
Y a continuacin se muestra el segundo mtodo:
Solenoide 1
STEP 20 IF THEN STEP 30 IF CW0 = V10 THEN JMP TO 40 OTHRW JMP TO 20 STEP 40 THEN SET Y1 JMP TO 10 Solenoide 1 Contador 0 INC B1 CW0 Sensor 1 Contador 0
6.3
Modifcaremos el programa que utiliza el temporizador para aadirle la funcin del contador. El proceso debe realizar lo siguiente: Al pulsar el botn de marcha deber comenzar el ciclo. El ciclo solo se detendr despus de haber transportado 10 cajas. Habr que considerer un retardo para que el vstago del cilindro 1A se retraiga.
Tambin debern de aadirse a la lista de asignaciones los siguientes operandos: C0 CP0 CW0 Contador 0 Preselector del contador 0 Valor acumulado de eventos registrados
61
Utilizacin de contadores
A continuacin se muestran dos diferentes mtodos para la programacin con contadores:
Mtodo A
STEP 10 IF THEN AND AND SET LOAD TO SET SB B1 B3 Y1 V10 CPO C0 Botn de marcha Cilindro 1A retrado Cilindro 2A retrado Solenoide para el cilindro 1A Valor acumulado de eventos registrados Contador 0
STEP 20 IF THEN STEP 30 IF THEN STEP 40 IF THEN STEP 50 IF THEN STEP 60 IF N CO THEN JMP TO 10 OTHRW NOP STEP 70 IF THEN B1 AND B3 SET Y1 JMP TO 20 Cilindro 1A retrado Cilindro 2A retrado Solenoide para el cilindro 1A Contador 0 N T1 RESET Y1 INC C0 Timer 1 Solenoide para el cilindro 1A Contador 0 SET with B3 T1 5s Cilindro 2A retrado Timer 1 B4 RESET Y2 Cilindro 2A extendido Solenoide para el cilindro 2A SET B2 Y2 Cilindro 1A extendido Solenoide para el cilindro 2A
62
Utilizacin de contadores
Mtodo B
STEP 10 IF THEN AND AND SET LOAD TO SB B1 B3 Y1 V0 CWO Botn de marcha Cilindro 1A retrado Cilindro 2A retrado Solenoide para el cilindro 1A Valor acumulado de eventos registrados
STEP 20 IF THEN STEP 30 IF THEN STEP 40 IF THEN STEP 50 IF THEN STEP 60 IF CWO = V10 THEN JMP TO 10 OTHRW NOP STEP 70 IF THEN B1 AND B3 SET Y1 JMP TO 20 Cilindro 1A retrado Cilindro 2A retrado Solenoide para el cilindro 1A Valor acumulado de eventos registrados N T1 RESET Y1 INC CW0 Timer 1 Solenoide para el cilindro 1A Valor acumulado de eventos registrados SET with B3 T1 5s Cilindro 2A retrado Timer 1 B4 RESET Y2 Cilindro 2A extendido Solenoide para el cilindro 2A SET B2 Y2 Cilindro 1A extendido Solenoide para el cilindro 2A
63
Multitarea
Captulo 7
Multitarea
64
Multitarea
65
Multitarea
7 Multitarea
7.1 Introduccin
En este captulo, introduciremos el concepto de multitarea. Multitarea es el trmino utilizado para una ejecucin Simultnea de un nmero de tareas distintas. La multitarea le permite organizar el proyecto en secciones de programas utilizando Tcnicas de Programacin Modular. El programa del PLC puede estar compuesto por varias partes, cada una de las cuales es, de hecho, un programa. Estos programas tienen varias funciones. La ventaja de este mtodo de trabajo es que se incluyen estructuras ms claras de programa y adems, los tiempos de ciclo son ms cortos. Con la multitarea es fcil programar diferentes modos de operacin y adems es posible llamarlos en cualquier momento y ejecutarlos de manera paralela con el programa principal .
7.2
Con la multitarea, podemos utilizar varios programas en el proyecto. Estos programas se ejecutarn en paralelo con el programa principal cuando sean llamados. stos se numeran como: P1, P2, etc. Adems de los programas, tambin se utilizan los mdulos. Generalmente utilizados como subrutinas. Existen dos tipos de mdulos:
CFM CMP
P0 Main Programa Principal Control Program P0 is se Activa de activated Manera automatic automtica ally when power on Al aplicar Energa al control
Llamada a Mdulo de Funcin (Call Function Module) Llamada a Mdulo de Programa (Call Module Program)
P1 CMP 0 CFM 0
P2
CMP 49
CFM 49
CMP 99
CFM 99
66
Multitarea 7.2.1 CFM Llamada a Mdulo de Funcin (Call Function Module)
La instruccin de Llamada al Mdulo de Funcin se utiliza para solicitar la ejecucin de una rutina externa. Los mdulos de funcin se pueden considerar como llamadas a funciones especiales. Cuando se invoca un CFM, la funcin se activar y se ejecutar junto con el programa principal, el cual seguir ejecutndose. La funcin se ejecuta en paralelo. Estos CFM estn disponibles desde el programa, y para tener una mejor referencia abra el archivo de Ayuda para obtener informacin del mtodo de llamada del CFM. Para insertar un mdulo: De un clic derecho en CFM en el rbol del proyecto (Project Tree) De un clic en Import Aparecer una ventana de dilogo con los mdulos predefinidos.
Elija el mdulo que desee emplear. De un clic en OK El mdulo elegido estar en el proyecto.
67
Multitarea
Cuando se invoca a un CMP, el programa principal se detiene y permanecer en el paso en que fue invocado el CMP y la subrutina se activar. Slo cuando la subrutina se haya completado, regresar el control al programa principal en el punto en el que se qued.
STEP Start IF FBlink1 THEN SET Lamp OTHRW RESET Lamp IF THEN SET SET Start P1 Lamp 0.25s Blinks Lamp Lamp Start Button Sequence Program Lamp
68
Multitarea
STEP Initial THEN SET P2 Blinking Program
STEP Start THEN IF THEN LOAD TO SET SET FBlink1 Lamp Start P1 Lamp 0.25s Blinks Lamp Start Button Sequence Program Lamp
7.3
Utilizacin de banderas
Hasta este momento, hemos escrito programas utilizando las entradas y salidas del FEC. Ahora es tiempo de utilizar banderas, tambin llamadas memorias, recordadores, marcas o relevadores internos. Las banderas son esenciales sobretodo cuando deseamos ligar diferentes programas cuando utilizamos la multitarea. El operando absoluto para las banderas depende del hardware que est utilizando. Por ejemplo: F0.0 F0.15 a F999.0 F999.15
Es conveniente utilizar operandos simblicos los cuales le ayudarn a relacionarlos con la tarea de control. Algunos ejemplos son Start_Flag, Stop_Flag, etc.
69
Multitarea
7.4
En la mayora de los programas, existe la necesidad de encender lmparas de manera intermitente. Para lograr esto, se utiliza el modulo blink. Se utilize para crear una seal intermitente. Por ejemplo, si necesitamos que la lmpara del botn de marcha encienda de manera intermitente antes de comenzar el ciclo. Para obtener esta funcin, se necesita importar el modulo Blink en nuestro CFM. De un clic derecho en CFM De un clic en Import Aparecer la siguiente ventana de dilogo.
Una vez importado el modulo, reuqerimos escribir un programa con el fin de asignar las seales intermitentes a banderas. De un clic derecho en Programs De un clic en Insert Program Escriba el nombre del programa Defina el nmero de programa Defina la versin Escriba los comentarios correspondientes
70
Multitarea
Compile y guarde el programa. Este programa cargar las seales intermitentes a la palabra 10 de banderas. Slo necesita declarar estas seales en la lista de asiganciones
Absoluto
F10.1 F10.2 F10.3 F10.4 FW10
Simblico
FBlink1 FBlink2 FBlink3 FBlink4
Comentario
0.25s Blink 0.5s Blink 1s Blink 2s Blink Banderas del blink
Ahora puede usar estas banderas en su programa. Por ejemplo, si desea que la lmpara del botn de inicio se encienda en intervalos de 0.5 segundos, puede aadir el paso correspondiente a su programa.
71
Multitarea
STEP Initial THEN SET P2 Blinking Program
STEP Start IF FBlink2 THEN SET oStart OTHRW RESET oStart IF THEN .. AND SET SET iStart B1 P1 oStart 0.5s Blinks Lmpara de inicio Lmpara de inicio Botn de inicio Cilindro elevador retraido Programa de la secuencia Lmpara de inicio
En el paso anterior la lmpara de inicio encender de manera intermitente cuando se inicia el programa. Cuando el botn de inicio se pulsa, la lmpara detiene su encendido intermitente para mantenersa encendida.
7.5
En los programas anteriores, el ciclo comienza solo cada vez que se pulsa el botn. Este no es el caso en la mayora de las mquinas, en las cuales existen botones para ciclo nico y para ciclo continuo, para restablecimiento del programa y botn para paro de emergencia. Esto requerir de multitarea. La tarea inicial de control requiere que el programa permita al operador elegir entre ciclo nico y ciclo continuo. El proyecto que escribiremos estar compuesto por los siguientes programas: Programa de secuencia principal Programa de secuencia
72
Multitarea 7.5.1 Lista de asignaciones Absoluto
I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 O0.0 O0.1 F11.0 P1
Simblico
iStart B1 B2 B3 B4 AutoMan iStop Y1 Y2 FCStop
Comentario
Botn de inicio Cilindro 1A retrado Cilindro 1A extendido Cilindro 2A retrado Cilindro 2A extendido Selector Auto/Manual Botn de paro Solenide para cilindro 1A Solenoide para cilindro 2A Paro de ciclo Programa de secuencia
7.6
Como el proyecto requiere tareas diferentes, entonces aplicaremos multitarea. Por lo que el proyecto consistir de: Programa principal de organizacin Programa de secuencia
Win FST Festo Didactic
73
Multitarea
El programa principal de organizacin es donde se lleva a cabo la administracin del proyecto. En este programa, se activan y desactivan los dems programas y mdulos de programa. El programa de la secuencia es donde el programa del dispositivo de elevacin se ejecutar de manera continua hasta que se oprima el botn de paro.
STEP Stop IF THEN IF THEN SET iStop FCStop Botn de paro Paro de ciclo Programa de la secuencia Paro de ciclo
N P1 RESET FCStop
74
Multitarea
STEP Check IF THEN FCStop JMP TO End Paro de ciclo Automatic/Manual Switch
7.7
Esta es una modificacin del programa el cual fue escrito paralos requerimientos iniciales. El programa inicial se desarroll con el fin de activar los subprogramas. Pero ahora nos enfocaremos en los requerimientos iniciales. La nueva tarea de control va a requerir que se le permita al operador elegir entre ciclo nico o ciclo continuo. Tambin se incluir un botn de paro de emergencia y otro de restablecimiento. Tambin se incluirn inidicadores visuales para los botones de inicio, paro y de restablecimiento. Tambin se incluir el encendido intermitente para estas lmparas. El programa incluir lo siguiente:
Win FST Festo Didactic
75
Multitarea
Interruptor selector de ciclo nico/continuo. La lmpara de inicio encender de manera intermitente para indicar que el dispositivo est listo. Una vez que la secuencia haya iniciado, deber detenerse la intermitencia en la lmpara. Cuando se est ejecutando la secuencia, la lmpara del botn de paro encender de manera inetrmitente. Cuando se pulse el botn de paro de emegencia, la secuencia se detendr independientemente que se encuentre en ciclo nico o en ciclo continuo. Los vstagos de los cilindros regresrn a su posicin de reposo y la lmpara del botn de restablecimiento encender de manera retentiva. Cuando se pulse el botn de restablecimiento, la lmpara se deber de apagar.
El proyecto ahora tendr los siguientes programas: Programa principal de organizacin Programa de la secuencia Programa de encendido intermitente
Simblico
iStart B1 B2 B3 B4 AutoMan iStop iReset iEStop Y1 Y2 oStart oStop oReset FBlink1 FBlink2 FBlink3 FBlink4 FCStop
Comentario
Botn de inicio Cilindror 1A retrado Cilindro 1A extendido Cilindro 2A retrado Cilindro 2A extendido Selector nico/continuo Botn de paro Botn de restablecimiento Botn de paro de emergencia Solenoide para el cilindro 1A Solenoide para el cilindro 2A Lmpara de inicio Lmpara de paro Lmpara de restablecimiento 0.25s Blinks 0.5s Blinks 1s Blinks 2s Blinks Paro de ciclo Programa de la secuencia Programa de encendido intermitente
76
Multitarea
7.8
Como el proyecto requiere realizar diferentes tareas, necesitamos programar con multgitarea. El proyecto consistir de: Programa principal de organizacin Programa de la secuencia Programa para el encendido intermitente Mdulo de encendido intermitente
El programa principal de organizacin es el que administra al proyecto. En este programa, se activan o desactivan los dems programas y subprogramas. El programa de la secuencia es donde se controla la secuencia del dispositivo de elevacin. El programa de encendido intermitente llama al modulo de programa correspondiente para utilizarlo en el proyecto.
77
Multitarea 7.8.2 Programa principal de organizacin
STEP Start IF THEN iEStop JMP TO Emergency Botn de paro de emergencia 0.25s Blinks Lmpara de inicio Lmpara de inicio Botn de inicio Cilindro1A retrado Cilindro 2A retrado Programa de la secuencia Lmpara de inicio
IF FBlink1 THEN SET oStart OTHRW RESET oStart IF THEN AND AND SET RESET iStart B1 B3 P1 oStart
STEP Stop IF THEN iEStop JMP TO Emergency Botn de paro de emergencia 0.5s Blinks Lmpara de paro Lmpara de paro Botn de paro Paro de ciclo Programa de la secuencia Paro de ciclo Lmpara de paro
IF FBlink2 THEN SET oStop OTHRW RESET oStop IF THEN IF THEN SET N RESET RESET JMP TO iStop FCStop P1 FCStop oStop Start
STEP Emergency IF THEN RESET RESET RESET RESET RESET N NOP Y1 Y2 P1 oStart oStop iEStop NOP Solenoide para el cilindro 1A Solenoide para el cilindro 2A Programa de la secuencia Lmpara de inicio Lmpara de paro Botn de paro de emergencia
IF THEN
78
Multitarea
STEP Reset IF THEN iEStop JMP TO Emergency Botn de paro de emergencia 1s Blinks Lmpara de restablecimiento Lmpara de restablecimiento Botn de restablecimiento Lmpara de restablecimiento
IF FBlink3 THEN SET oReset OTHRW RESET oReset IF THEN iReset RESET oReset JMP TO Start
79
Multitarea
STEP Check IF THEN FCStop JMP TO End Paro de ciclo Selector ciclo nico/continuo
IF AutoMan THEN JMP TO Aplus OTHRW NOP STEP End THEN NOP
STEP Blink THEN CFM 0 LOAD FU32 TO FW10 JMP TO Blink Mdulo de encendido intermitente
80
Multitarea
81
Utilizacin de Ethernet
Captulo 8
Redes de Comunicacin
82
Utilizacin de Ethernet
83
Utilizacin de Ethernet
8 Redes de Comunicacin
8.1 Introduccin
El software Win FST nos permite utilizar Ethernet (TCP/IP) para establecer la comunicacin entre diferentes controladores y la PC. Utilizaremos TCPIP por las siguientes razones: Programacin va Ethernet significa UNA PC para la programacin y VARIOS controladores. La comunicacin entre varios controladores va Ethernet.
8.2
Verificacin de la direccin IP de su PC
Su PC que utilizar para la programacin necesita tener una direccin IP. Si no conoce la direccin IP de su PC, entonces necesita investigar esta direccin. Por medio de Windows, puede obtener su IP como a continuacin se indica: De un clic en Start. De un clic Run
84
Utilizacin de Ethernet
Digite Command en su ventana abierta. De un clic en OK La ventana tradicional de MS-DOS se abrir. Digite IPConfig Pulse la tecla [Enter] La informacin referente a la direccin IP de su PC ser desplegada. Esto ocurrir slo si tienen un adaptador de Ethernet en su PC. Podr obtener la siguiente informacin:
C:\>ipconfig Windows 2000 IP Configuration Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . . . . . IP Address . . . . . . . . . . . . . . . . . . . . . . Subnet Mask . . . . . . . . . . . . . . . . . . . . Default Gateway . . . . . . . . . . . . . . . . . C:\> : : : : sg.festo.net 10.10.24.163 255.255.255.248 10.10.24.161
8.3
Para hacer funcionar sus controladores con Ethernet, necesitamos configurar nuestra propia red. Existen dos formas para hacer esto: Teniendo su propia red para sus controladores y su PC de programacin. Entonces simplemente utilice cualquier direccin comprendida entre 1 y 254. Utilizando su PC y sus controladores en una red de rea local (LAN) y entonces debe solicitar a su administrador de la red las direcciones IP libres.
8.4
Despus de haber decidido acerca de las direcciones IP de sus controladores, necesitamos modificar la direccin IP. Siga los siguientes pasos para asignar la direccin IP a su controlador. Adems, cuando por primera vez configure los parmetros de la red y los drivers para su controlador, necesita utilizar la comunicacin serial RS232
Win FST Festo Didactic
85
Utilizacin de Ethernet
para cargar los parmetros y los drivers al controlador. Despus de hacer esto, el controlador podr ser programado por la red y por lo tanto, el cable RS232 podr desconectarse. Para configurar los parmetros y drivers de la red: Conecte su controlador a la fuente de alimentacin. Conecte el cable de programacin SM14 al controlador (puerto COM) y a su PC. Ejecute el software Win FST y abra un nuevo proyecto. De un doble clic en la opcin Driver Configuration en la ventana Project View. Esto abrir la ventana Driver Configuration.
De doble clic dentro de la ventana Driver Configuration para abrir la ventana de seleccin de drivers.
86
Utilizacin de Ethernet
Seleccione TCPIPFEC o TCPIPFC2 dependiendo del controlador elegido y de un clic en OK para incluir el driver TCP/IP en el proyecto. Esto abrir la ventana Driver Options. Introduzca el nmero de IP que utilizar el controlador, la mscara de red IP y la direccin de compuerta IP que obtuvo de su administrador del sistema de red.
87
Utilizacin de Ethernet
88
Utilizacin de Ethernet
De un doble clic dentro de la ventana IO Configuration para abrir IO Module Entry. Elija el controlador apropiado.
Note que cuando un controlador est indicado en la lista como Palabra (Word) se refiere a que las E / Ss estn organizadas en 16 bits y no en 8 bits.
89
Utilizacin de Ethernet 8.4.3 Carga del proyecto y de los drivers al controlador
Hasta este punto los drivers TCP/IP se han configurado y el proyecto est listo para cargarse en el controlador. Como se mencion antes, cuando se cargan los drivers de la red a los controladores por vez primera, necesita utilizar el cable serial RS232 con el controlador para llevar a cabo dicha transferencia. Una vez que se ha cargado el proyecto con los drivers de la red, el controlador puede ser accesado desde la red. Para cargar el proyecto que contiene los drivers de la red: Guarde todos los archivos al dar clic en la opcin Save All de la barra de herramientas. Verifique que la opcin RS232 sea el modo actual de comunicacin al seleccionar la opcin Preferences del men Extras al elegir la opcin Communication Port. Asegrese que est seleccionada la opcin Use RS232. Pulse la tecla [F5] o de un clic en el cono de carga de proyecto. El software Win FST detectar los cambios en el proyecto y le solicitar hacer (Make) el proyecto nuevamente. De un clic en Yes para recompilar el proyecto. Cuando se haya completado la carga la ventana de estado aparecer de manera similar a como se muestra a continuacin:
90
Utilizacin de Ethernet
8.5
Despus de la configuracin de las direcciones de su PC y de los controladores, necesitamos conectarlos. Usualmente utilizaremos un HUB o SWITCH. Conecte el cable TP de cualquier controlador y de cualquier PC de programacin a su Hub o Switch. Verifique el LED de Link en el Hub o Switch y en el FEC y en su PC.
LED Link: TP
8.6
Verificacin de la Comunicacin
Despus de conectar los controladores y la PC, necesitamos verificar si es posible establecer la comunicacin. Windows ofrece el comando Ping para verificar si existe comunicacin TCPIP. De un clic en Start, Run y pulse la tecla Enter. Algo similar a lo que hizo antes con IPCconfig. Digite PING <direccin IP de su CPU> El comando PING enva paquetes de prueba para el controlador y trata de recibirlos de ste. Si los parmetros de la red del controlador son correctos obtendr una rplica del controlador, como lo que se muestra a continuacin:
91
Utilizacin de Ethernet
C:\>ping 10.10.24.162 Pinging 10.10.24.162 with 32 bytes of data: Reply from 10.10.24.162: Bytes=32 time=10ms TTL=128 Reply from 10.10.24.162: Bytes=32 time<10ms TTL=128 Reply from 10.10.24.162: Bytes=32 time<10ms TTL=128 Reply from 10.10.24.162: Bytes=32 time<10ms TTL=128 Ping-Statistics for 10.10.24.162: Packets: Sent = 4, Received = 4, Lost = 0 <0% loss>, Approximate round trip time in milli-seconds: Minimum = 0ms, Maximum = 10ms, Average = 2ms C:\>
Si la comunicacin es correcta para todos los controladores, entonces ya est listo. Si no hay respuesta (indicado por el mensaje Request timeout), entonces existe algn error con la configuracin de la red del controlador. Verifique la configuracin retornando al driver TCP/IP en el software Win FST (opcin Driver Configuration en la ventana de Proyecto) o contacte con su administrador de sistema.
8.7
Si la prueba anterior fue exitosa, entonces el controlador est listo para establecer la comunicacin en red. El ltimo paso para la puesta a punto de un proyecto para la comunicacin en red es elegir la opcin de modo de comunicacin por red en el software Win FST. Seleccione la opcin Preferences del men Extras del software Win FST y de un clic en la pestaa Communication Port. Introduzca la direccin IP del controlador (por ejemplo 199.237.83.68) y seleccione el uso de TCP/IP:
92
Utilizacin de Ethernet
Si elige la opcin Save in Project, todos los ajustes sern grabados dentro de este proyecto. De otra manera, los ajustes sern tomados de manera general por el software Win FST. Marque la opcin Save in Project y de un clic en OK.
Ahora est listo para comunicarse con su controlador a travs de la red y por lo tanto, podr desconectar el cable RS232.
93
Utilizacin de Ethernet
Captulo 9
Utilizacin de Ethernet
94
Utilizacin de Ethernet
95
Utilizacin de Ethernet
9 Utilizacin de Ethernet
9.1 Introduccin
Una vez completada la puesta a punto y la conexin de los controladores y la PC, estamos en condiciones de programar utilizando la red Ethernet.
9.2
Cuando se programa va Ethernet, podemos conectar varios controladores a una sola PC para la programacin sin necesidad de conectar y desconectar el cable de interfaz.
Para utilizar Ethernet en la programacin, deber haber puesto a punto la red como se describi anteriormente.
96
Utilizacin de Ethernet
Descripcin Solicita un bloque de operandos de otro controlador Enva un bloque de operandos hacia otro controlador Verifica si se conoce una direccin IP Obtiene/Define nuestra direccin IP Obtiene/Define nuestra mscara de red IP Obtiene/Define la direccin IP desde/hacia una tabla
Importaremos los mdulos IP_TABLE, EASY_R and EASY_S. As mismo, importaremos Special Modules. La funcin Special modules tambin se puede encontrar en el archivo de ayuda. Una vez importados dichos mdulos, el rbol del Proyecto (Project Tree) deber mostrarse como se indica a continuacin:
97
Utilizacin de Ethernet
Parmetros de entrada
Parmetro FU32 FU33 FU34 FU35 FU36 FU37 Descripcin 1 para asignar direccin IP 2 para obtener dirteccin IP Nmero de ndice en la tabla IP Direccin IP Direccin IP Direccin IP Direccin IP Ejemplo V1 V3 V140 V131 V170 V3
Parmetros de salida
Parmetro FU32 FU33 FU34 FU35 FU36 FU37 Descripcin 0 - Si fue exitoso De otra manera hubo error Nmero de ndice en la tabla IP Direccin IP Direccin IP Direccin IP Direccin IP
98
Utilizacin de Ethernet
Parmetros de entrada
Parmetro FU32 Descripcin Nmero de ndice en la tabla IP Tipo de Operando: 1 - Banderas 2 - Entradas 3 - Salidas 4 - Registros 11 - Caracteres Nmero de operandos requeridos (mximo 256) Nmero del primer operando local para almacenar respuesta Nmero del primer operando en el controlador remoto Nmero de la palabra de banderas para el estatus Ejemplo V3
FU33
V1
V2 V12 V0 V99
Parmetros de salida
Parmetro FU32 Descripcin 0 - Si solicita lectura De otra manera hubo un error
99
Utilizacin de Ethernet
Parmetros de entrada
Parmetro FU32 Descripcin Nmero de ndice en tabla IP Tipo de operando: 1 - Banderas 2 - Entradas 3 - Salidas 4 - Registros 11 - Caracteres Nmero de operandos a enviar (mximo 256) Nmero del primer operando a enviar Nmero del primer operando en el controlador remoto Nmero de la palabra de bandera para el estatus (-1 si no desea reconocimiento) Ejemplo V3
FU33
V1
V2 V12 V0 V99
Parmetros de salida
Parmetro FU32 Descripcin 0 - Si enva requisicin De otra manera hubo error
9.3
En este simple programa, utilizaremos el control FEC34 para leer y enviar informacin a un control FEC440. Los siguientes pasos le mostrarn cmo el dato se lee de un FEC440 y tambin se enva dato al FEC440. Una vez recibido el dato, los controladores lo utilizarn al igual que cualquier seal de entrada.
100
Utilizacin de Ethernet 9.3.1 Ejercicio
Se trata de dos estaciones: La primera estacin identifica si la pieza de trabajo es roja o metlica. Elevar al porta pieza y expulsar la pieza a la siguiente estacin La segunda estacin recibir la pieza de trabajo en su porta pieza. Utilizar el dato recibido de la primera mquina, elevar el porta pieza y expulsar a la pieza de trabajo roja por el deslizador A y la pieza metlica por el deslizador B. Al inicio del proceso, la lmpara del botn de marcha encender de manera intermitente. Cuando el proceso se inicie, la lmpara deber de permanecer encendida. Cuando se pulse el botn de paro en modo continuo, la lmpara del botn de paro se encender de manera intermitente y la lmpara del botn de marcha se deber de apagar. Cuando se active el botn de paro de emergencia, el proceso se detendr y la lmpara del botn de reset se deber de encender de manera intermitente. Cuando el botn de reset se oprima, el sistema se restablecer y la lmpara del botn de marcha encender de manera intermitente.
101
Utilizacin de Ethernet
Si la pieza de trabajo es roja, el porta pieza se elevar por emdio de un cilindro de doble efecto y ser expulsada por el deslizador A por medio de otro cilindro de doble efecto. Si es metlica, el porta pieza se elevar y ser expulsada hacia el deslizador B por un tercer cilindro de doble efecto. Los cilindro sern actuados por electrovlvulas 5/2 monoestables.
Estacin A
Absoluto
I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7 I1.0 I1.1 I1.2 O0.0 O0.1 O0.2 O0.3 O0.4 F1.0 F10.1 F10.2 F10.3
Festo Didactic Win FST
Simblico
iStart B1 B2 B3 B4 S1 S2 AutoMan iStop iReset iEStop Y1 Y2 oStart oStop oReset FCStop FBlink1 FBlink2 FBlink3
Comentario
Start Button Lifting Cylinder Back Lifting Cylinder Forward Pushing Cylinder Back Pushing Cylinder Forward Inductive Sensor Optical Sensor Auto/Manual Switch Stop Button Reset Button Emergency Stop Button Solenoid for Lifting Cylinder Solenoid for Pushing Cylinder Start Lamp Stop Lamp Reset Lamp Cycle Stop Flag 0.25s Blink 0.5s Blink 1s Blink
102
Utilizacin de Ethernet
F10.4 F12.0 F14.0 F14.1 F14.2 FW10 FU32 P1 P2 FBlink4 ReadyFlag Red Metal FSent 2s Blink Next Station Ready Red Workpiece Metal Workpiece Workpiece has been Sent Flagword or Blinks Sequence Program Blinking Program
Estacin B Absoluto
I0.0 I0.1 I0.2 I0.3 I0.4 I0.5 I0.6 I0.7 I1.0 I1.1 I1.2 I1.3 O0.0 O0.1 O0.2 O0.3 O0.4 O0.5 F0.0 F1.0 F10.1 F10.2 F10.3 F10.4 FW10 F11.0 F11.1 F11.2 FU32 P1 P2
Simblico
iStart B1 B2 B3 B4 B5 B6 S1 AutoMan iStop iReset iEStop Y1 Y2 Y3 oStart oStop oReset ReadyFlag FCStop FBlink1 FBlink2 FBlink3 FBlink4 Red Metal FReceived
Comentario
Start Button Lifting Cylinder Back Lifting Cylinder Forward Red Cylinder Back Red Cylinder Forward Metal Cylinder Back Metal Cylinder Forward Workpiece Present Auto/Manual Switch Stop Button Reset Button Emergency Stop Button Solenoid for Lifting Cylinder Solenoid for Red Cylinder Solenoid for Metal Cylinder Start Lamp Stop Lamp Reset Lamp Station Ready Cycle Stop Flag 0.25s Blink 0.5s Blink 1s Blink 2s Blink Flagword or Blinks Workpiece Red Workpiece Metal Workpiece Received Sequence Program Blinking Program
103
Utilizacin de Ethernet
Inicie Win FST. Elija la opcin Driver Configuration Seleccione el driver TCPIPFEC driver. Configure la direccin IP 141.131.170.2 Realice la configuracin de Entradas y Salidas en IO Configuration Configure al Controlador en Controller Setting Importe ; los siguientes mdulos CMP: o IP_TABLE o EASY_R o EASY_S Inserte el mdulo de funcin CFM Blinking Module Introduzca un nuevo programa. Tendremos entonces 3 programas: o El programa principal de organizacin o El programa de la secuencia o El programa de generacin de pulsos (seal intermitente) En el programa de la secuencia, verificaremos el tipo de pieza de trabajo al inicio y lo almacenaremos en una palabra de banderas. Cuando el cilindro de elevacin est arriba, la estacin A leer el dato de la estacin B si ya se encuentra lista para recibir la pieza de trabajo. Si la estacin B est lista, la pieza de trabajo ser expulsada. Cuando la pieza es expulsada, enviar el dato del tipo de pieza de trabajo: roja o metlica y que la pieza ha sido enviada. Cuando se introduzcan los mdulos, puede teclearlos directamente o utilizar la tabla preestablecida. Cualquiera de los dos mtodos da lo mismo. Por ejemplo, para teclear directamente un mdulo IP_TABLE
STEP IP_TABLE THEN CMP 0 WITH WITH WITH WITH WITH WITH V1 V3 V140 V131 V170 V3 IP_TABLE 1:SET, 2:GET Index Number in Table IP Address (1) IP Address (2) IP Address (3) IP Address (4)
O puede utilizar la tabla preestablecida. o De un clic en Insert o De un clic en Module Call o Seleccione el mdulo IP_TABLE o Introduzca la informacin en los espacios provistos o De un clic en OK
104
Utilizacin de Ethernet
105
Utilizacin de Ethernet
STEP IPTable THEN CMP 0 WITH WITH WITH WITH WITH WITH V1 V3 V140 V131 V170 V3 IP_TABLE 1:SET, 2:GET Index Number in Table IP Address (1) IP Address (2) IP Address (3) IP Address (4)
STEP Start IF THEN iEStop JMP TO Emergency Emergency Stop Button 0.25s Blinks Start Lamp Start Lamp Start Button Lifting Cylinder Back Pushing Cylinder Back Sequence Program Start Lamp
IF FBlink1 THEN SET oStart OTHRW RESET oStart IF THEN AND AND SET SET iStart B1 B3 P1 oStart
STEP Stop1 IF THEN IF THEN OR N SET iEStop JMP TO Emergency iStop AutoMan FCStop Emergency Stop Button Stop Button Auto/Manual Switch Cycle Stop Flag
STEP Stop2 IF THEN iEStop JMP TO Emergency Emergency Stop Button 0.5s Blinks Stop Lamp Stop Lamp Sequence Program Cycle Stop Flag Stop Lamp
IF FBlink2 THEN SET oStop OTHRW RESET oStop IF THEN N RESET RESET JMP TO P1 FCStop oStop Start
106
Utilizacin de Ethernet
STEP Emergency IF THEN RESET RESET RESET RESET NOP Y1 Y2 oStart oStop Solenoid for Lifting Cylinder Solenoid for Pushing Cylinder Start Lamp Stop Lamp 1s Blinks Reset Lamp Reset Lamp Emergency Stop Button Reset Button Reset Lamp Sequence Program
IF FBlink3 THEN SET oReset OTHRW RESET oReset IF THEN N AND RESET RESET JMP TO iEStop iReset oReset P1 Initial
STEP Sort IF THEN AND SET RESET JMP TO N AND SET RESET S1 S2 Metal Red Up S1 S2 Red Metal Inductive Sensor Optical Sensor Metal Workpiece Red Workpiece Inductive Sensor Optical Sensor Red Workpiece Metal Workpiece
SET
B1 Y1
107
Utilizacin de Ethernet
STEP ReadyPush1 IF THEN B2 NOP Lifting Cylinder Forward
STEP ReadyPush2 THEN CMP WITH WITH WITH WITH WITH WITH = THEN STEP Push IF ReadyFlag THEN SET Y2 OTHRW JMP TO ReadyPush STEP Retract IF THEN B4 RESET Y2 RESET ReadyFlag SET FSent Pushing Cylinder Forward Solenoid for Pushing Cylinder Next Station Ready Workpiece has been Sent Next Station Ready Solenoid for Pushing Cylinder 1 V3 V1 V2 V12 V0 V99 FU32 V0 NOP Easy IP request data Index number in IP table Type (1:F 2:I 3:O 4:R 11:Str) Number of operands wanted Number of first local operand Number of first remote operand Number of flagword for status
IF
STEP SendData THEN CMP WITH WITH WITH WITH WITH WITH = THEN STEP Down IF THEN B3 RESET Y1 RESET ReadyFlag RESET FSent Pushing Cylinder Back Solenoid for Pushing Cylinder Next Station Ready Workpiece has been Sent 2 V3 V1 V3 V14 V11 V99 FU32 V0 NOP Easy IP send data Index number in IP table Type (1:F 2:I 3:O 4:R 11:Str) Number of operands to send Number of first local operand Number of first remote operand Number of flagword for status
IF
108
Utilizacin de Ethernet
STEP Check IF THEN IF THEN FCStop OR N AutoMan JMP TO End AutoMan JMP TO Sort Cycle Stop Flag Automatic/Manual Switch Automatic/Manual Switch
STEP Blink THEN CFM 0 LOAD FU32 TO FW10 JMP TO Blink Blink Module Flagword for Blinks
109
Utilizacin de Ethernet
Tendremos 3 programas: o El programa principal de organizacin o El programa de secuencia o El programa de generacin de seal intermitente En los programas tanto principal como de secuencia, tendremos que encender una bandera siempre y cuando la estacin est lista para recibir la pieza de trabajo proveniente de la estacin A. Una vez que la estacin B recibe la pieza de trabajo y el dato referente al tipo de pieza, llevar a cabo la secuencia correspondiente. Como la estacin B solo utiliza los datos enviados por la estacin A, no necesitamos utilizar mdulos TCP/IP
110
Utilizacin de Ethernet 9.3.11 Programa principal para la estacin B
STEP Initial THEN SET P2 Blinking Program
STEP Start IF THEN iEStop JMP TO Emergency Emergency Stop Button 0.25s Blinks Start Lamp Start Lamp Start Button Lifting Cylinder Back Red Cylinder Back Metal Cylinder Back Sequence Program Start Lamp Station Ready
IF FBlink1 THEN SET oStart OTHRW RESET oStart IF AND AND AND SET SET SET iStart B1 B3 B5 P1 oStart ReadyFlag
THEN
STEP Stop1 IF THEN IF THEN OR N SET iEStop JMP TO Emergency iStop AutoMan FCStop Emergency Stop Button Stop Button Auto/Manual Switch Cycle Stop Flag
STEP Stop2 IF THEN iEStop JMP TO Emergency Emergency Stop Button 0.5s Blinks Stop Lamp Stop Lamp Sequence Program Cycle Stop Flag Stop Lamp
IF FBlink2 THEN SET oStop OTHRW RESET oStop IF THEN N RESET RESET JMP TO P1 FCStop oStop Start
111
Utilizacin de Ethernet
STEP Emergency IF THEN RESET RESET RESET RESET RESET NOP Y1 Y2 P1 oStart oStop Solenoid for Lifting Cylinder Solenoid for Pushing Cylinder Sequence Program Start Lamp Stop Lamp 1s Blinks Reset Lamp Reset Lamp Emergency Stop Button Reset Button Reset Lamp Sequence Program
IF FBlink3 THEN SET oReset OTHRW RESET oReset IF THEN N AND RESET RESET JMP TO iEStop iReset oReset P1 Initial
STEP Initial IF S1 THEN RESET ReadyFlag OTHRW SET ReadyFlag IF THEN AND AND SET RESET RESET S1 B1 FReceived Y1 Ready Flag FReceived Workpiece Present Station Ready Station Ready Workpiece Present Lifting Cylinder Back Workpiece Received Solenoid for Lifting Cylinder Station Ready Workpiece Received
112
Utilizacin de Ethernet
STEP Push IF THEN IF THEN AND SET B2 Red Y2 Lifting Cylinder Forward Workpiece Red Solenoid for Red Cylinder Red Cylinder Forward Solenoid for Red Cylinder Workpiece Red Lifting Cylinder Forward Workpiece Metal Solenoid for Metal Cylinder Metal Cylinder Forward Solenoid for Metal Cylinder Workpiece Metal
IF THEN IF THEN
STEP Down IF THEN B3 OR B5 RESET Y1 Red Cylinder Back Metal Cylinder Back Solenoid for Pushing Cylinder
STEP Confirm Back IF THEN STEP Check IF THEN IF THEN FCStop OR N AutoMan JMP TO End AutoMan SET ReadyFlag JMP TO Initial Cycle Stop Auto/Manual Switch Automatic/Manual Switch Station Ready B1 NOP Lifting Cylinder Back
113
Utilizacin de Ethernet 9.3.13 Programa de seal intermitente para la estacin B
Este programa llama al mdulo de programa de seal intermitente.
STEP Blink THEN CFM 0 LOAD FU32 TO FW10 JMP TO Blink Blink Module Flagword for Blinks
114
HMI Development
115
HMI Development
Captulo 10
116
HMI Development
117
HMI Development
10
10.1 Introduccin
Como se vio en el captulo anterior, los controladores se pueden conectar a una red utilizando el driver TCP/IP hacienda con esto possible que otras computadoras tengan acceso a l utilizando el protocolo TCP/IP. Adems, el controlador puede actuar como un servidor de la red Internet proporcionando pginas web que pueden visualizarse utilizando exploradores estndares como el Explorador de Internet de Microsoft o el navegador Netscape. Al utilizar esta pgina web es posible desplegar y modificar los contenidos de los registros del controlador. Como resultado obtenido es posible monitorear y configurar de manera remota.
118
HMI Development
De un doble clic en cualquier parte dentro de dicha ventana para abrir la ventana de seleccin de los drivers.
Seleccione WEB_SRVR y de un clic en OK para incluir a dicho driver en el proyecto. Esto abrir la ventana Driver Options.
119
HMI Development
Esta ventana le solicitar la unidad de discos virtual en la que instalar el servidor web. Escoja B y de un clic en OK. La ventana de configuracin del driver listar ahora a ambos drivers. Cierre dicha ventana.
Hasta este punto los drivers TCP/IP y servidor web se han configurado y el proyecto est listo para cargarse al controlador. Como se mencion antes, cuando se cargan por primera vez los drivers al controlador necesita utilizar la comunicacin serial RS232 para llevar a cabo la transferencia de los drivers. Una vez realizado esto, ya se puede tener acceso a travs de la red.
120
HMI Development
Hemos completado la configuracin del controlador. Con el fin de utilizar el servidor web, necesitamos comprender conceptos bsicos acerca del diseo de pginas web.
Estilo de letra en <H1>Festo</H1> encabezado 1 Estilo de letra en <H3>Festo</H3> encabezado 3 <A HREF=www.festo.com>Festo Hiperliga site</A>
web
121
HMI Development
<IMG> <PRE> <HR> <BR> Imagen Texto preformateado <IMG SRC=Festo.jpg> <PRE>Hello World</PRE>
Lnea horizontal con medida <HR> (Inserta una lnea) Interrupcin (Fin de <BR> lnea)
La seccin de la cabecera se define con los comandos <HEAD> y </HEAD>. Contiene la informacin acerca del documento como su ttulo (comando <TITLE> ), teclas clave, etc. La seccin del cuerpo se define con los commandos <BODY> y </BODY>. Contiene el texto de la pgina y todos los comandos embebidos. Por ejemplo, a continuacin se muestra un documento HTML simple: <HTML> <HEAD> <TITLE> Pgina Web del Controlador Festo FC34 </TITLE> </HEAD> <BODY> Controlador Festo FC34 </BODY> </HTML>
Note que todo el contenido del documento se encuentra encerrado entre los comandos <HTML> y </HTML> lo cual indica que esta es una pgina Web. Los espacios en blanco son ignorados por el navegador en cuanto se presenta la pgina. Por lo que, la pgina mostrada arriba puede ser tambin como sigue:
122
HMI Development
<HTML> <HEAD><TITLE>Pgina Web del Controlador FC34</TITLE></HEAD> <BODY>Controlador Festo FC34</BODY></HTML> Sin embargo, la primer version es ms fcil de leer.
Festo
Los editores HTML estn diseados para crear documentos HTML utilizando una interfase grfica de usuario. En otras palabras, puede crear un documento como si lo hiciera en Microsoft Word al teclear el texto, seleccionando diferentes tipos de letra e insertando imgenes, etc. Cuando se salva el documento, se convierte a comandos HTML y se graba como un documento HTML. Se encuentran disponibles varios editores. Sin embargo, debe puntualizarse que la traduccin a HTML no siempre resulta perfecta en la versin HTML del documento que se mira diferente que la versin original. Aqu utilizaremos un editor de textos simple, llamado Notepad. Este editor est incluido en el sistema operativo Windows.
Inicie Notepad dando clic en el botn de INICIO de Windows Navegue a Programas, Accesorios y Notepad Digite lo siguiente: <HTML> <HEAD> <TITLE> Festo FC34 Controller Web Page </TITLE> </HEAD> <BODY> Festo FC34 Controller </BODY> </HTML>
Win FST Festo Didactic
123
HMI Development
Note que los comandos pueden digitarse tambin con letras minsculas. Sin embargo, de manera convencional se teclean en maysculas para hacer ms fcil la diferencia con el resto del texto del documento.
Guarde el archivo como archivo HTML. Esto requiere indicar la extension htm o html despus del nombre del archivo. Notepad aadir automticamente la extensin txt a cualquier nombre de archivo utilizado. Para evitar esto, encierre el nombre del archivo y la extensin en dobles comillas. Para guardar el archivo de un clic en Archivo y seleccione Guardar como. Navegue al directorio donde desee guardar el archivo. Teclee main1.htm (incluyendo las dobles comillas) como nombre del archivo y de clic en OK.
124
HMI Development
Actualmente, la pgina Web que acaba de crear se localiza en el disco duro de la PC (copia local). Por lo tanto, primeramente lo veremos desde el disco duro. Posteriormente, enviaremos la pgina al control servidor de la Web y lo veremos desde ah.
a.
Esta pgina no luce tan interesante pero nos muestra los conceptos bsicos de la creacin y vista de una pgina HTML.
b.
Ahora enviaremos esta pgina Web al controlador FC34. Ahora, utilizando el explorador le pediremos al servidor Web FC34 que nos entregue la pgina a travs de la red. En este ejemplo, la pgina Web estar localizda en el controlador FC34. Para enviar la pgina al controlador FC34:
Inicie el programa WinFST. Seleccione File Transfer del men Online. Esto iniciar la opcin de transferencia de archivo y le mostrar los archivos que actualmente se encuentran en el disco virtual A del control FC34. Cambie al drive B que es donde los archivos del servidor Web se almacenan.
Win FST Festo Didactic
125
HMI Development
The default display mode of the utility is List. Change it to Details by clicking the last button on its toolbar. This will show the file extensions, size and date information. Click the download button (the one with blue arrow pointing down). Navigate to the main1.htm Web page file on the hard drive of the PC. Select the file and click Open. This will download the file to the FC34. You should see the file in the listing of virtual drive B of the FC34.
To view the Web page on the FC34 controller: Start Internet Explorer.
126
HMI Development
Enter the IP number of your FC34 controller followed by the name of the Web page at the URL address. For example, http://140.131.170.2/main1.htm (substitute your own IP number)
The page will be delivered to your browser over the network by the FC34 Web server.
Please note:
The Explorer has to be configured in a way that it allows to search for WEB pages within the network not necessarily via a modem or similar.
127
HMI Development
Modify the file as follows: <HTML> <HEAD> <TITLE> Festo FC34 Controller Web Page </TITLE> </HEAD> <BODY> Festo FC34 Controller <BR><BR> This is Input Word 0: <FSTCI DEW0> </BODY> </HTML>
The <BR><BR> tags insert two blank lines in the page after the Festo FC34 Controller text. The embedded CI command <FSTCI DEW0> will be replaced by the current value of the input word zero when the page is requested from the controller Web server by the browser. Save the file as main2.htm (with the quotation marks !). Download it to the FC34 using the File Transfer utility of FST (as explained in the previous section). Run the Internet Explorer and enter your FC34 IP number followed by the main2.htm filename as the URL:
Notice how the embedded <FSTCI DEW0> tag is replaced by number 5 (the current value of the input register)
128
HMI Development 10.5.2 Repeated Inquiries to the Web Server
A Web server delivers a Web page to the requesting browser and the browser renders the page formatting it with the embedded tags. This is a static mechanism of content delivery. After the page is delivered to the browser, if the state of the station changes the change will not be reflected in the Web page currently being viewed unless the user hits the refresh button of the browser. Even then, it is not guaranteed that the content will be updated because, by default, the browser will make a copy of the Web page (cache the page) on the local hard drive when it is first delivered. Later, if the refresh button is pressed, it will get the cached copy and display it instead of requesting the Web server to deliver the document over the network again. This mechanism was developed to help reduce network traffic. Remember that the controller Web server goes through the requested Web page and replaces the embedded CI commands with the current values of registers. Therefore, unless we force the browser to request a copy of the same page from the Web server again, we will not get an updated page reflecting the current state of the register. A simple way of requesting the Web server to deliver the page repeatedly is to use the Refresh HTML meta tag. This tag has the following format and must be placed in the head section of an HTML document: <META http-equiv=refresh content=3> This tag tells the browser to request the current file from the Web server every 3 seconds. Open the main2.htm file and place the above meta tag into the head section of the HTML document
129
HMI Development
<HTML> <HEAD> <TITLE> Festo FC34 Controller Web Page </TITLE> <META http-equiv=refresh content=3> </HEAD> <BODY> Festo FC34 Controller <BR><BR> This is Input Word 0: <FSTCI DEW0> </BODY> </HTML>
Save the file and download it to the FC34 using the File Transfer utility of FST. Run the Internet Explorer and enter your FC34 IP number followed by the main2.htm filename as the URL. You should see the Web page being refreshed every 3 seconds and therefore, the input word being updated. However, sometimes it is hard to correlate the input word to the current state of the station since the station may change its state faster than the Web page can be updated.
130
HMI Development 10.6.1 Design of an Advanced Web Page
The advanced Web page you will design in this section will have the following layout. We will be designing a web page based on our earlier project of the Lifting Device.
The design will have a title and a table that displays all input and output registers of the Lifting Device. Using such a page it is possible to monitor the station remotely over a network such as the Internet. The HTML code is as follows:
<HTML> <HEAD> <TITLE> Lifting Device Remote Monitor </TITLE> <META http-equiv="Content-Type"content="text/html;charset=iso-8859-1"> <META http-equiv="refresh"content="3"> </HEAD> <BODY bgcolor="#CCCCCC"> <DIV align="center"> <H2><FONT color="#0000CC">Lifting Device Remote Monitor</FONT></H2> <HR width="80%" align="center"> <BR>
131
HMI Development
<TABLE width="80%" border="1"align="center"> <TR> <TD width="50% bgcolor="#CCCC99"valign="middle"> <H3 align="center"><FONT color="336633">Inputs</FONT></H3> </TD> <TD width="50% bgcolor="#CCCC99"valign="middle"> <H3 align="center"><FONT color="336633">Outputs</FONT></H3> </TD> </TR> <TR> <TD width="50% valign="top" height="222" bgcolor="#DDDDDD"align="center"> <PRE><FONT color="#000000"> Start Button (E0.0):<FSTCI DE0.0> Cylinder 1A Back (E0.1):<FSTCI DE0.1> Cylinder 1A Forward (E0.2):<FSTCI DE0.2> Cylinder 2A Back (E0.3):<FSTCI DE0.3> Cylinder 2A Forward (E0.4):<FSTCI DE0.4> AutoMan Switch (E0.5):<FSTCI DE0.5> Stop Button (E0.6):<FSTCI DE0.6> Reset Button (E0.7):<FSTCI DE0.7> Emergency Stop Button (E1.0):<FSTCI DE1.0> (E1.1):<FSTCI DE1.1> (E1.2):<FSTCI DE1.2> (E1.3):<FSTCI DE1.3> </FONT></PRE> </TD> <TD width="50% valign="top" height="222" bgcolor="#DDDDDD"align="center"> <PRE><FONT color="#000000"> Cylinder 1A Solenoid (A0.0):<FSTCI DA0.0> Cylinder 2A Solenoid (A0.1):<FSTCI DA0.1> Start Lamp (A0.2):<FSTCI DA0.2> Stop Lamp (A0.3):<FSTCI DA0.3> Reset Lamp (A0.4):<FSTCI DA0.4> (A0.5):<FSTCI DA0.5> (A0.6):<FSTCI DA0.6> (A0.7):<FSTCI DA0.7> </FONT></PRE> </TD> </TR> </TABLE> </DIV> </BODY> </HTML>
132
HMI Development 10.6.2 Creating, Downloading and Viewing the Page
To create this page:
Start the Notepad editor by clicking the START button of Windows and by selecting Programs, Accessories, Notepad. Type the HTML code for the page exactly as shown in the listing. Save the file as main3.htm (do not forget to use the quotes when saving).
Start the FST software and select File Transfer from the Online menu. This will start the file transfer utility to send the files to the FC34. Make sure that the virtual drive B is selected. This is where the Web server looks for files.
Click on the download button (with the downward blue arrow) and navigate to the main3.htm file on your hard drive. Click OK to download to the FC34.
To view the page, Start the Internet Explorer browser. Type the IP address of your FC34 controller followed by the main3.htm file name. In this chapter, we used: http://140.131.170.2/main3.htm (Use your own IP address) Press the START button of the Lifting Device and observe the changing states of its inputs and outputs on the Web page.
Win FST Festo Didactic
133
HMI Development
Chapter 11
HMI Development
134
HMI Development
135
HMI Development
11
HMI Development
A typical Web page with a form can process the user input data by either sending it to a program running on a server (typically called a CGI program) or can process the data on the client machine that the user is using with the help of a scripting language such as JavaScript or VBScript. In this chapter, we will use client-side processing with JavaScript. Specifically, we will explore the relationship between HTML forms and JavaScript to implement dynamic Web pages. Using this technology, we will implement human-machine interfaces (HMI) for the Lifting Device.
136
HMI Development
137
HMI Development 11.2.2 Checkbox Element
Checkbox is designed for the user to check it. When the checkbox is checked, its value is set to 1. This value can later be examined by a script to determine whether the checkbox was checked or not. Use the following tag: <INPUT type=button name = Cylinder 1A Out value=Cylinder 1A Out onClick=CISend (A0.0,1)> Attributes of the tag are: Attribute Type Name Value Definition Specifies that this will be a checkbox Assigns a name to the checkbox object. Later this name can be used in a script (program) to refer to the checkbox object Is the value that will be sent to the processing program when the checkbox is checked.
138
HMI Development 11.3.1 CISend and CISend2 Javascript Function
Remote control of the station can be accomplished by sending appropriate CI commands to the station as a result of user interactions with a Web page. This requires development of a JavaScript function that can parse a string to form the necessary CI command for the controller. Here we will use two CI commands
a.
CISend
The CISend() function has two arguments. The Operand is the CI command to be sent to the controller. The Value is the parameter value for the command. For example, if we want to send MAW0 with a parameter value of 0 (turning all outputs OFF), we could use the following function call: CISend(AW0, 0) The function then takes these arguments and first checks the value that was passed to it to make sure that it is acceptable. Then, it forms a query string to the controller Web server to deliver the CI command to the station.
b.
CISend2
In many situations it is necessary or suitable to send more than just one CI command. The following example combines two CI commands into one function call so that we have 4 arguments: 2 operands and 2 parameters. To use this function it is very simple to modify the 2 coils of a valve in one call. Both functions are saved in a single file so that each function can be added to any HTML document by simply referring to this file from the HTML document (as shown in the next section). For this book, the functions are saved into Fst.js file. Note that this file must be in the same directory as the Web page that is referring to it. CISend2(Operand1, Value1, Operand2, Value2 )
139
HMI Development
You need to download this file to the controller if you intend to use the CISend and CISend2 functions in your HTML file.
// CISend sends a modify command to the web server // Parameters: // Operand: for example MW0 // Value function CISend(Operand,Value) { var found; var href; if ( Value == "NaN" ) { alert("Value is not a number"); return; } // Verify variable value if ( (Value < -65535) || (Value > 65535) ) { alert("Allowed range for value is -65535 to 65535"); return; } // Strip previous modify command from URL href = this.location.href; found = href.indexOf("?"); if ( found > 0 ) { href = href.substring(0, found); } // Now add modify command to URL and reload this.location.href = href + "?ci:" + "M" + Operand + "=" + Value; } // CISend2 sends 2 modify command to the web server // Parameters: // Operand1: for example MW0 // Value1 // Operand2: for example MW1 // Value2 function CISend2(Operand1,Value1,Operand2,Value2) { var found; var href; if ( Value1 == "NaN" ) { alert("Value1 is not a number"); return; } // Verify variable value1 if ( (Value1 < -65535) || (Value1 > 65535) ) { alert("Allowed range for value1 is -65535 to 65535"); return; } if ( Value2 == "NaN" ) { alert("Value2 is not a number"); return; Festo Didactic Win FST }
140
HMI Development
// Verify variable value2 if ( (Value2 < -65535) || (Value2 > 65535) ) { alert("Allowed range for value2 is -65535 to 65535"); return; } // Strip previous modify command from URL href = this.location.href; found = href.indexOf("?"); if ( found > 0 ) { href = href.substring(0, found); } // Now add modify command to URL and reload this.location.href = href + "?ci:" + "M" + Operand1 + "=" + Value1 + ";M" + Operand2 + "=" + Value2; } // CISendStr sends a modify string command to the web server // Parameters: // Operand: for example 3 // Value function CISendStr(Operand,Value) { var found; var href; // Strip previous modify command from URL href = this.location.href; found = href.indexOf("?"); if ( found > 0 ) { href = href.substring(0, found); } // Now add modify command to URL and reload this.location.href = href + "?ci:" + "!3M" + Operand + "=" + Value; } // CISendStr sends a modify string command to the web server // Parameters: // Operand: for example 3 // Value function CISetAndSendStr(Operand,Value,StringNumber,StringText) { var found; var href; if ( Value == "NaN" ) { alert("Value is not a number"); return; } // Verify variable value if ( (Value < -65535) || (Value > 65535) ) { alert("Allowed range for value is -65535 to 65535"); return; }
141
HMI Development
// Strip previous modify command from URL href = this.location.href; found = href.indexOf("?"); if ( found > 0 ) { href = href.substring(0, found); } // Now add modify command to URL and reload this.location.href = href + "?ci:" + "M" + Operand + "=" + Value + ";!3M" + StringNumber + "=" + Stringtext; }
To control the functions we will use the function CISend( ). The web page should look like this. After writing the script, remember to download the file and the fst.js file to the controller.
142
HMI Development
143
HMI Development
For the start and stop buttons it is different, we need to use flags to activate the inputs. It is not possible to activate the inputs directly as the signal might not be going in at the right time as the page refreshes. It is usual to set a flag and use this flag to start and stop your program. The javascript is as follows:
<td bgcolor="#e0e0e0"> <form> <DIV align="center"> <input type="button" value=" Start Button " onclick="CISend('MW30', '1')"> <input type="button" value=" Stop Button " onclick="CISend('MW30', '2')"> </DIV> </form> </td>
We also need to modify our Win FST program to include the two flags. The modification is made in the Main Organisation Program. This means that the process can be started by pressing the actual buttons or the buttons on the web page. Remember to declare them in the Allocation List.
144
HMI Development
Main Organisation Program of the Lifting Device
STEP Start IF THEN iEStop JMP TO Emergency Emergency Stop Button 0.25s Blinks Start Lamp Start Lamp Start Button Start Flag Cylinder 1A Back Cylinder 2A Back Sequence Program Start Lamp
IF FBlink1 THEN SET oStart OTHRW RESET oStart IF OR AND AND SET RESET iStart Fstart B1 B3 P1 oStart
THEN
STEP Stop IF THEN iEStop JMP TO Emergency Emergency Stop Button 0.5s Blinks Stop Lamp Stop Lamp Stop Button Stop Flag Cycle Stop Start Flag Stop Flag Sequence Program Cycle Stop Stop Lamp
IF FBlink2 THEN SET oStop OTHRW RESET oStop IF THEN OR SET RESET RESET N RESET RESET JMP TO iStop Fstop FCStop FStart Fstop P1 FCStop oStop Start
IF THEN
145
HMI Development 11.4.2 The Complete HTML File
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title> FST Web Server </title> <meta name="Author" content="Edward Gasper"> <script language="JavaScript" src="fst.js"> </script> </head> <body> <table width="100%"> <tr> <td align=center> <b><H2> Lifting Device Remote Monitor </b></H2> </td> <td align=right width="25%"> <a href="http://www.festo.com" target="_Blank"><img src = "http_in_logof.gif" alt="Festo" border=0 height=15 width=83></a> </td> </tr> </table> <br> <table width="50%" border="0" cellspacing="0" cellpadding = "0" align = "center"> </tr> <tr> <td width="15%" bgcolor="#CCCCCC"> <div align="center"><B><font face="Vendana, Arial, Helvetica, sans-serif" size="2" color="#0000CC">Cylinder 1A</font></B></div> </td> <td width="15%" bgcolor="#CCCCCC"> <div align="center"><B><font face="Vendana, Arial, Helvetica, sans-serif" size="2" color="#0000CC">Cylinder 2A</font></B></div> </td> <td width="15%" bgcolor="#CCCCCC"> <div align="center"><B><font face="Vendana, Arial, Helvetica, sans-serif" size="2" color="#0000CC">Switches</font></B></div> </td> </tr> <br> <tr> <td bgcolor="#e0e0e0"> <form> <DIV align="center"> <input type="button" value="Cylinder 1A Forward" onclick = "CISend('A0.0', '1')"> <input type="button" value=" Cylinder 1A Return " onclick = "CISend('A0.0', '0')"> </DIV> </form> </td>
Festo Didactic Win FST
146
HMI Development
<td bgcolor="#e0e0e0"> <form> <DIV align="center"> <input type="button" value="Cylinder 2A Forward" onclick = "CISend('A0.1', '1')"> <input type="button" value=" Cylinder 2A Return " onclick= "CISend('A0.1', '0')"> </DIV> </form> </td> <td bgcolor="#e0e0e0"> <form> <DIV align="center"> <input type="button" value=" Start Button " onclick= "CISend('MW30', '1')"> <input type="button" value=" Stop Button " onclick= "CISend('MW30', '2')"> </DIV> </form> </td> </tr> </table> <br> <table width="70%" border="1"align="center"> <tr> <td width="35% bgcolor="#CCCC99"valign="middle"> <H3 align="center"><font color="336633">Inputs</font></H3> </td> <td width="35% bgcolor="#CCCC99"valign="middle"> <H3 align="center"><FONT color="336633">Outputs</font></H3> </td> </tr> <tr> <td width="35% valign="top" height="222" bgcolor="#DDDDDD"align="center"> <pre><font color="#000000"> Start Button (E0.0):<FSTCI DE0.0> Cylinder 1A Back (E0.1):<FSTCI DE0.1> Cylinder 1A Forward (E0.2):<FSTCI DE0.2> Cylinder 2A Back (E0.3):<FSTCI DE0.3> Cylinder 2A Forward (E0.4):<FSTCI DE0.4> AutoMan Switch (E0.5):<FSTCI DE0.5> Stop Button (E0.6):<FSTCI DE0.6> Reset Button (E0.7):<FSTCI DE0.7> Emergency Stop Button (E1.0):<FSTCI DE1.0> </font></pre> </td>
147
HMI Development
<td width="35% valign="top" height="222" bgcolor="#DDDDDD"align="center"> <pre><font color="#000000"> Cylinder 1A Solenoid (A0.0):<FSTCI DA0.0> Cylinder 2A Solenoid (A0.1):<FSTCI DA0.1> Start Lamp (A0.2):<FSTCI DA0.2> Stop Lamp (A0.3):<FSTCI DA0.3> Reset Lamp (A0.4):<FSTCI DA0.4> </font></pre> </td> </tr> </table> </body> </html>
Save the file and download it to the controller. When downloading the file to the controller remember to also download the Fst.js file.
148
Project Flow Chart
149
Project Flow Chart
Chapter 12
150
Project Flow Chart
151
Project Flow Chart
12
Set IO Configuration
Declare Variables
152
Project Flow Chart
Write Program
Double-Click on the Program You Created Write Your Program in STL You Can Type in the Operand or Right-Click and Insert Operand Your Program Must be Open Click Compile Active Module Icon or Press [Ctrl] + [F7] If there is an Error, it Will be Displayed. Remove All Errors Click Make Project Icon or Press [F7] Click Build Project Icon Double-Click on Controller Settings in Project Tree Window Tick Autostart box Click Download Tab Tick Download Source File Click OK Click on Extra and Preferences from the Menu Bar Choose Communications Port Select Correct COM Port Set Baud Rate t 9600 Click OK Click on Download Project icon or Press [F5] Switch On PLC and Run Program Right-Click on Program and Click Online You Can Switch Between Online and Editor Anytime
Win FST Festo Didactic
Check Program
Set Preferences
153
Project Flow Chart
Click on Online Display Icon You Can Force the Operands by Clicking the Respective Bits Click on Project Click on Backup Choose Project Choose Location Click Save Click on Project Click on Restore Choose File Click Open Click OK Click on Project Click Exit If Project has Not been Saved, You Will be Prompted
Backup Project
Restore Project
Quit