Documentos de Académico
Documentos de Profesional
Documentos de Cultura
infoPLC - Net - Practica TwinCAT PDF
infoPLC - Net - Practica TwinCAT PDF
net
TwinCAT parado
TwinCAT arrancando
TwinCAT funcionando
TwinCAT configuracin
-1-
www.infoPLC.net
La precisin de estos tiempos de ciclo es de TCiclo 15s (Jitter). Tareas con la mnima
prioridad se esperan a que el resto haya finalizado. En cada comienzo de ejecucin, se
ejecutan las diferentes tareas en funcin de las prioridades, que pueden verse dentro de
System Manager Tiempo real-Configuracin Priorities (vase imagen siguiente).
-2-
www.infoPLC.net
Dentro del System Manager, se pueden configurar todos los terminales o equipos
conectados a nuestro PC. Las pasarelas a otros tipos de buses se pueden insertar desde la
opcin Configuracin E/S. Aqu, apretando botn derecho podemos agregar todos los
terminales, equipos y pasarelas (vase imagen).
Para ello, nos dirigimos al icono de TwinCAT de la parte derecha de nuestro ordenador
y pulsamos a PLC Control. Una vez iniciado el entorno, pulsamos a FileNew y nos
aparecer una ventana como la siguiente imagen:
-3-
www.infoPLC.net
Para este ejemplo, pulsamos a PC or CX. Una vez seleccionado el dispositivo, el IEC
61131-3 define una tarea como un elemento que controla la ejecucin y que permite llamar
diferentes programas. Esta rutina se conoce como MAIN (programa principal), que se crear
a travs de la interfaz que se muestra en la siguiente imagen:
Este programa MAIN es el que se ejecutar de forma cclica al igual que el programa de
control del PLC. Como se puede ver en la imagen anterior, cada rutina o programa puede
estar definida en tres tipos de POUs (unidades de programacin):
Programs
Function blocks
Functions
Cada POU consiste en un rea de declaracin y otra rea de programacin. El rea de
declaracin es la misma para todos los lenguajes IEC, pero el rea de programacin puede
estar escrita en IL (lista de instrucciones), ST (texto estructurado), SFC (Grafcet), FBD
(diagrama de funciones), LD (diagrama de contactos) o CFC (grfico continuo de funciones).
www.infoPLC.net
Program PRG
Llamado por una tarea de TwinCAT.
Ejecuta : FBs, Functions u otros Programs.
Variables locales: estticas, las variables locales mantienen el valor del ltimo ciclo.
Inputs: frecuentemente 0, pero VAR_INPUT es posible
Outputs: frecuentemente 0, pero VAR_OUTPUT es posible
Function block FB
Llamada por programas u otras FBs.
Llama a: FBs.
Variables locales: estticas.
Inputs: declaradas como VAR_INPUT (pueden ser varias).
Outputs: declaradas como VAR_OUTPUT (pueden ser varias).
Paso por referencia VAR_IN_OUT.
Function FC
Llamadas por: Programs, Function Blocks y otras Functions.
Llama a otras Functions.
Variables locales: temporales. Una vez utilizadas las variables en el siguiente ciclo
vuelven a las condiciones iniciales.
Inputs: declaradas como VAR_INPUT (pueden ser varias).
Outputs: declaradas como VAR_OUTPUT (slo puede ser una).
Para las funciones, se puede especificar el valor de la salida. A continuacin se muestra una
imagen de cmo se programa y configura la salida de una funcin:
-5-
www.infoPLC.net
Declaracin de variables
A la hora de declarar variables, hay que tener cuidado con algunas palabras reservadas
de Twincat, que son las definidas por el IEC61131-3. Son palabras utilizadas en la sintaxis y
no deben ser utilizadas para otros propsitos: TRUE, FALSE, AND, FUNCTION, etc. Para los
comentarios, se introduce el texto limitado por los caracteres (* *). La siguiente imagen
muestra un ejemplo:
Los tipos de variables existentes con su respectivo rango de valores dentro de TwinCAT
se muestran en las siguientes tablas:
-6-
www.infoPLC.net
TwinCAT tambin permite definir la zona de memoria de las variables como se muestra a
continuacin (que es lo ms aconsejable):
La siguiente tabla, muestra de nuevo cmo se definen las variables y las zonas de memoria
disponibles dentro de TwinCAT. Cmo se puede observar, la zona I es la zona de memoria de
entradas y Q la de salidas.
Como ejemplo para practicar, se puede realizar el que se muestra en la siguiente imagen,
donde se crean una serie de variables, entre ellas una de tipo String y dnde se asocia el valor
del trabajo y longitud real de ese String a otras de tipo INT. Para ello, se crea un nuevo
proyecto en el PLC Control (File New). Posteriormente, creamos el programa MAIN, e
introducimos el cdigo que se muestra en la siguiente imagen.
-7-
www.infoPLC.net
Posteriormente, para ver si existe algn error dentro del programa creado, en el proyecto del
PLC Control, debemos pulsar a ProjectBuild. Si existe algn error nos avisar.
Posteriormente, pulsaremos a OnlineLogin para volcar nuestro programa sobre el PLC
virtual. Finalmente, tendremos que pulsar a Run (vase imagen) para ejecutar el programa.
En la parte inferior del proyecto, se colorear el control de RUN tal y como se muestra la
imagen.
-8-
www.infoPLC.net
-9-
www.infoPLC.net
Esto nos abre el editor de programacin LD. Existen dos reas, una superior de declaracin
de variables y otra rea de programacin donde escribiremos el programa.
- 10 -
www.infoPLC.net
Para asignarle una variable nos posicionamos sobre el contacto y le ponemos el nombre
deseado (para este ejemplo P_Marcha, P_Paro, Motor). Automticamente, aparece un
dilogo desde el que se permite crear la nueva variable introducida (que no existe). Aqu, le
indicamos la case de variable, el nombre y el tipo.
- 11 -
www.infoPLC.net
Programa de visualizacin
Ahora, vamos a crear una pantalla con dos pulsadores: uno de MARCHA (P_Marcha) y otro
de PARO (P_Paro) y una bombilla que nos indicar cuando el motor est en marcha (Motor).
Para ello, seleccionamos el panel de visualizacin (Visualizations), botn derecho sobre la
carpeta, seleccionamos Add Object y le damos un nombre a nuestra nueva pantalla
("Pulsadores"):
Para cada control que se inserta en la pantalla, haciendo doble clic sobre dicho control se abre
la ventana de configuracin pulsando la opcin Configure, donde introducimos una serie de
valores para modificar su apariencia (color, forma, etc.) y darle tambin acciones de control
(cambio de color, activar bits, etc). Para el control de la marcha del motor, se inserta un botn
y se introducen las siguientes propiedades:
- Text: Le damos el nombre MARCHA
- Input: Seleccionamos Tap variable (activar bit al pulsar) y pulsamos F2 donde se
despliegan todas las variables que hemos creado en el programa de PLC y seleccionamos la
variable P_Marcha.
- 12 -
www.infoPLC.net
Hacemos lo mismo pero con el pulsador de paro asignndole la variable P_Paro. Para la
lmpara de indicacin de que el motor est en marcha insertamos un rectngulo y le
asignamos las siguientes propiedades:
- Text: Le damos el nombre MOTOR
- Color: Color - Inside (Rojo) Color - Inside (Verde).
- Variables: Change Color - Motor (Pulsar F2 y seleccionar variable).
Simulacin
Para realizar la simulacin hemos de arrancar el System Manager desde el icono localizado a
la derecha de nuestro PC.
- 13 -
www.infoPLC.net
- 14 -
www.infoPLC.net
Denominacin
Declaracin
NMAX
AT%I*:BOOL
NALT
AT%I*:BOOL
- 15 -
www.infoPLC.net
NBAJ
AT%I*:BOOL
NMIN
AT%I*:BOOL
REFERENCIA
AT%I*:WORD
NIVEL
AT%I*:WORD
P_LLEN
AT%I*:BOOL
P_VAC
AT%I*:BOOL
P_MA
AT%I*:BOOL
P_STOP
AT%I*:BOOL
P_MARCHA
AT%I*:BOOL
L_AUT
AT%Q*:BOOL
L_MAN
AT%Q*:BOOL
L_ALARMA
AT%Q*:BOOL
EVENT
AT%Q*:WORD
EVSAL
AT%Q*:WORD
- 16 -
www.infoPLC.net
- 17 -
www.infoPLC.net
- 18 -
www.infoPLC.net
Interfaz de control
A continuacin se muestra una posible interfaz de control del problema propuesto:
A realizar: El alumno tendr que realizar el resto del programa de control y conectar con las
variables de la interfaz para monitorizar y actuar sobre el programa de control.
NOTA: esta prctica se encuentra abierta a cualquier propuesta por el alumno.
Es decir, si el alumno desea realizar el control con otras funciones, con otro
tipo de programacin, hacer una interfaz ms completa, etc. no hay ningn
inconveniente. Siempre se valorar el trabajo realizado.
- 19 -
www.infoPLC.net
Expresiones
Una expresin es una construccin que devuelve un valor despus de su evaluacin. Las expresiones
se componen de operadores y operandos. Un operando puede ser una constante, una variable, una
llamada a funciones u otra expresin.
Evaluacin de expresiones
- 20 -
www.infoPLC.net
www.infoPLC.net
Operador de asignacin
En el lado izquierdo de una asignacin se encuentra un operando (variable, direccin) al cual
se asigna el valor de la expresin del lado derecho junto con el operador de asignacin :=
Ejemplo:
Var1 := Var2 * 10;
Despus de la ejecucin de esta lnea, Var1 tiene un valor diez veces superior a Var2. Llamada
a Bloques de Funciones en el lenguaje ST Una llamada a un Bloque de Funciones en lenguaje
ST se realiza escribiendo el nombre de la instancia del Bloque de Funciones y asignando a
continuacin, y entre parntesis, los valores que desee de los parmetros.
En el siguiente ejemplo se llama a un temporizador con asignaciones para los parmetros IN
y PT. A continuacin, se asigna la variable de resultado Q a la variable A.
La variable de resultado se activa, como en el lenguaje IL, con el nombre del Bloque de
Funciones seguido de un punto y del nombre de la variable:
Instruccin IF
Con la instruccin IF se puede comprobar una condicin y ejecutar instrucciones en funcin
de esta condicin.
Sintaxis:
www.infoPLC.net
Sintaxis:
Supongamos que la variable Var1 se haya establecido por defecto con el valor 1; en este caso,
despus del bucle secuencial FOR, tendr el valor 32.
Bucle secuencial WHILE
El bucle secuencial WHILE se puede utilizar igual que el bucle secuencial FOR, con la
diferencia de que la condicin de cancelacin puede ser cualquier expresin de tipo BOOL.
- 23 -
www.infoPLC.net
Esto significa que se indica una condicin que, en caso de cumplirse, produce la ejecucin del
bucle secuencial. Sintaxis:
Los bucles secuenciales WHILE y REPEAT son, en cierto sentido, ms potentes que el bucle
secuencial FOR, ya que no es necesario saber antes de la ejecucin el nmero de pasos del
bucle secuencial. En ciertos casos, slo podr trabajar con estos dos tipos de bucles
secuenciales. No obstante, si el nmero de pasos de bucle secuencial est claro, se dar
preferencia a un bucle secuencial FOR, ya que no se permiten los bucles secuenciales
infinitos.
Bucle secuencial REPEAT
El bucle secuencial REPEAT se distingue de los bucles secuenciales WHILE por el hecho de
que la condicin de cancelacin se comprueba solamente despus de la ejecucin del bucle
secuencial, de modo que el bucle secuencial se ejecuta por lo menos una vez,
independientemente de la condicin de cancelacin. Sintaxis:
- 24 -