Como usar SQI sin SQO Cuando se utiliza un SQI sin un SQO es necesario incrementar externamente el arreglo del secuenciador.
La función SQI compara el valor de origen. La instrucción ADD incrementa el arreglo de secuenciador. La instrucción GRT si hay otro valor disponible para verificar el arreglo del secuenciador. La instrucción MOV restablece el valor de posición después de pasar por el arreglo de secuenciador una vez.
Pág. 27
Sequencer output (SQO)
Operandos: Operando: Tipo: Array DINT (Arreglo)
Formato: Tag de Arreglo
Mask (Máscara)
Tag Valor Inmediato
Source (Origen) Control
Length (Longitud)
SINT INT DINT DINT
Tag
CONTROL Tag
DINT
Valor inmediato
Descripción: Arreglo de secuenciador. Especifique el primer elemento del arreglo de secuenciador. No use CONTROL.POS en el subíndice. Qué bits se bloquean o se pasan. Datos de entrada para el arreglo de secuenciador. Estructura de control para la operación. Generalmente se usa en el mismo CONTROL que las instrucciones SQI y SQL. Número de elementos en el arreglo (tabla de Pág. 28
Position (Posición)
DINT
Valor inmediato
secuenciadores) que se comparan. Posición actual en el arreglo. El valor inicial es típicamente 0.
Estructura de control. Mnemónico: .EN .DN
.ER .LEN .POS
Tipo de Datos: Descripción: BOOL El bit de Enable indica que la instrucción SQO está habilitada. BOOL Se establece el bit de efectuado cuando todos los elementos especificados han sido desplazados al destino. BOOL Se establece el bit de error cuando .LEN ≤ 0, .POS < 0 ó .POS > .LEN DINT La longitud especifica el número de pasos en el arreglo del secuenciador. DINT La posición identifica el elemento que la instrucción compara actualmente.
La instrucción SQO establece las condiciones de salida para el próximo paso de una pareja secuencial de las instrucciones SQO/SQI. Un a vez habilitada, la instrucción SQO incrementa la posición, mueve todos los datos en la posición mediante la máscara y almacena el resultado en el destino. Si .POS > .LEN, la instrucción da la vuelta al inicio del arreglo de secuenciador y continúa con .POS = 1. Generalmente se usa la misma estructura CONTROL que las instrucciones SQI y SQL.
Pág. 29
La instrucción realiza la operación en la memoria de datos contiguos.
Como introducir un valor de máscara inmediato. Cuando se introduce una máscara, el software de programación tiene valores decimales predeterminados. Sí desea introducir una máscara usando otro formato, se tiene que colocar el prefijo correcto antes del valor.
Prefijo: 16# 8# 2#
Descripción: Hexadecimal. Ejemplo: 16#0F0F Octal. Ejemplo: 8#17 Binario. Ejemplo: 2#00110011
Ejemplo:
Una vez habilitada, la instrucción SQO incrementa la posición, pasa los datos a dicha posición en array_dint a través de la máscara y almacena el resultado en value_1.
Pág. 30
Operando SQO. Arreglo. Máscara. Destino.
Ejemplo de valores (DINT mostrados en binarios Xxxxxxxx xxxxxxxx xxxx0101 xxxx1010 00000000 00000000 00001111 00001111 Xxxxxxxx xxxxxxxx xxxx0101 xxxx1010
Una cifra 0 en la máscara no cambia el bit.
Como usar SQI con SQO. Si usted combina una instrucción SQI con una instrucción SQO, se tiene que asegurar de que ambas instrucciones usen los mismos valores de control, longitud y posición.
Cada vez que el controlador va del modo de programación al modo de marcha, la instrucción SQO restablece (inicializa) el valor .POS. Para restablecer .POS en el valor de la inicialización (.POS=0), use la instrucción RES para borrar el valor de posición.
Pág. 31
En éste ejemplo ejemplo se utiliza utiliza el estado estado del bit del primer primer escán escán para borrar borrar el valor de .POS. Sequencer load (SQL)
La inst instru rucc cció ión n SQL SQL carg carga a cond condic icio ione ness de refe refere renc ncia ia en un arre arregl glo o de secuen secuencia ciado dor. r. Una vez habil habilita itada, da, la instru instrucci cción ón SQL se incre incremen menta ta a la próxima posición en el arreglo de secuenciador y carga el valor de origen en Pág. 32
dicha posición. Si el bit .DN está establecido o si .POS ≥ .LEN, la instrucción establece .POS = 1. Ejemplo:
Antes de la carga
después de la carga
Una vez habilitada, la instrucción SQL carga value_3 en la próxima posición en el arreglo de secuenciador, el cual es array_dint[5] en éste ejemplo. Pág. 33
2.2. OPERACIONES CON ARCHIVOS. Instrucción FAL. La inst instru rucc cciión FAL FAL realiz aliza a ope operac racion iones arit aritm métic éticas as,, desplazamiento y función en valores en arreglos.
lógi lógica cas, s,
de
Operandos. Operando: Control
Tipo: Formato: CONTROL Tag
Descripción: Estructura de control para la operación. Valor Inmediato Número de elementos en el arreglo que se manipulan. Valor inmediato Elemento actual en el arreglo. El valor inicial es típicamente 0 Valor inmediato Como distribuir la operación Seleccio Seleccione ne INC, TODOS TODOS o introduzca un número. Tag Tag pa p ara al almacenar el el
Longitud
DINT
Posición
DINT
Modo
DINT
Destino
SINT
Pág. 34
Expresión
INT DINT REAL SINT INT DINT REAL
resultado. Valor inmediato Una expresión que consiste Tag en tag y/o valores inmediatos separados por operadores.
Estructura de control. Mnemónico: .EN .DN
.ER
.LEN
.POS
Tipo de Datos: Descripción: BOOL El bit de Enable indica que la instrucción FAL está habilitada. BOOL El bit de efectuado se establece cuando la instrucción ha efectuado la operación en el último elemento. (.POS = .LEN ) BOOL El bit de error se establece si la expresión genera un overflow (se establece S:V). .La instrucción ya no ejecuta hasta que el programa restablece el bit .ER. El valor .POS contiene la posición del elemento que causó el overflow. DINT La longitud especifica el número de elementos en el arreglo en que la instrucción realiza una operación. DINT La posición contiene la posición del elemento actual al cual la instrucción obtiene acceso.
Pág. 35
La instrucción FAL realiza operaciones de copiar, aritméticas, lógicas y función en los datos almacenados en un arreglo. La instrucción FAL realiza las mismas operaciones en los arreglos que la instrucción CPT realiza en sus elementos. Se usa el valor .POS para proporcionar el avance secuencial a través del arreglo. Si un subíndice de la expresión del destino se encuentra fuera de rango, la instrucción FAL genera un fallo mayor (Tipo 4, código 20).
Ejemplos de operación.
Pág. 36
Pág. 37
Pág. 38
Pág. 39
Pág. 40
Instrucción FSC.
La instrucción FSC es una instrucción de salida, campara los valores en un arreglo, elemento por elemento, para las operaciones lógicas que se especifican en la expresión. Cuando la instrucción FSC está habilitada y la comparación es verdadera, la instrucción establece el bit .FD y el bit .POS refleja la posición del arreglo donde la instrucción encontró la comparación verdadera. La instrucción establece el bit .IN para interrumpir la búsqueda.
Pág. 41
Operandos. Operando: Control
Tipo: Formato: CONTROL Tag
Longitud
DINT
Valor Inmediato
Posición
DINT
Valor inmediato
Modo
DINT
Valor inmediato
Expresión
SINT INT DINT REAL
Valor inmediato Tag
Descripción: Estructura de control para la operación. Número de elementos en el arreglo que se manipulan. Offset en el arreglo. El valor inicial es típicamente 0. Como distribuir la operación Seleccione INC, TODOS o introduzca un número. Una expresión que consiste en tags y/o valores inmediatos separados por operadores.
Estructura de control. Mnemónico: .EN
Tipo de Datos: BOOL
.DN
BOOL
.ER .IN
BOOL BOOL
.FD
BOOL
Descripción: El bit de Enable indica que la instrucción FSC está habilitada. El bit de efectuado se establece cuando la instrucción ha operado en el último elemento (.POS = .LEN). El bit de error no se modifica. El bit de inhibición indica que la instrucción FSC ha detectado una comparación verdadera. Usted debe restablecer este bit para poder continuar la operación de buscar. El bit de encontrado indica que la instrucción FSC ha detectado una Pág. 42
.LEN
DINT
.POS
DINT
comparación verdadera. La longitud especifica el número de elementos en el arreglo en que la instrucción realiza una operación. La posición contiene la posición del elemento actual al cual la instrucción obtiene acceso.
Como determinar el orden de operación. Las operaciones que usted describe en la expresión son realizadas por la instrucción en un orden determinado y no necesariamente según el orden que las escribió. Puede anular el orden de operación agrupando los términos entre paréntesis, lo cual causa que la instrucción realice una operación entre paréntesis antes de las otras operaciones. Las operaciones de orden igual se realizan desde la izquierda hacia la derecha. Orden
operación.
Pág. 43
Ejemplos de aplicación FSC.
Pág. 44
Instrucción COP. La instrucción COP copia los valores de un origen a un destino. El origen no se cambia. El número de bytes copiados es: Conteo de bytes = longitud * (el número de bytes en el tipo de datos de destino). La instrucción COP realiza la operación en la memoria de datos contiguos y realiza una copia directa de memoria de byte a byte, lo cual requiere entender la configuración de memoria del controlador.
Pág. 45
La instrucción COP no escribe más allá del fin del arreglo. Si la longitud es mayor que el número total de elementos en el arreglo destino, la instrucción COP se detiene al final del arreglo. No se genera un fallo mayor.
Operandos. Operando: Origen
Tipo: SINT INT DINT REAL estructura
Destino
SINT INT DINT REAL estructura
Longitud
DINT
Formato: Tag.
Descripción: Elemento inicial que se copia. Importante: Los operandos de origen y destino deben ser del mismo tipo, de lo contrario pueden ocurrir resultados inesperados. Tag. El elemento inicial se puede sobrescribir por el origen. Importante: Los operandos de origen y destino deben ser del mismo tipo, de lo contrario pueden ocurrir resultados inesperados. Valor inmediato Número de elementos de Tag. destino que se copian.
Pág. 46
Ejemplos de aplicación COP.
Este ejemplo inicializa un arreglo de estructuras de temporizador. Una vez habilitadas, las instrucciones MOV inicializan los valores .PRE y .ACC del primer elemento de array_timer. Una vez habilitada, la instrucción COP copia un bloque contiguo de bytes a partir de array_timer[0]. La longitud es nueve estructuras de temporizador.
Pág. 47
Instrucción FLL. La instrucción FLL llena los elementos de un arreglo con el valor de origen. El origen no se cambia. El número de bytes llenados es: Conteo de bytes = longitud * (número de bytes en el tipo de datos de destino) La instrucción FLL realiza la operación en la memoria de datos contiguos. No escribe más allá del fin de un arreglo. Si la longitud es mayor que el número total de elementos en el arreglo de destino, la instrucción FLL se detiene al final del arreglo. No se genera un fallo mayor.
Pág. 48
El origen y el destino deben de ser del mismo tipo para obtener los resultados óptimos. Si usted desea llenar una estructura, use la instrucción COP. Si combina los tipos de datos para el origen y destino, los elementos de destino se llenan con los valores de origen convertidos.
Ejemplo de aplicación FLL.
Una vez habilitada la instrucción FLL copia el valor en value_1 a dest_1.
Pág. 49
Pág. 50
2.3 BRINCOS Y SUBRUTINAS. Utilice las instrucciones de control del programa para cambiar el flujo de la lógica. Para saltar por encima de una seccion de lógica que no necesita ejecutarse cada vez: Utiliza las instrucciones JMP y LBL. Para saltar a una rutina separada, pasar datos a la rutina, ejecutar la rutina y retornar los resultados: Utiliza las instrucciones JSR, SBR y RET. Instrucciones JMP y LBL.
La instrucción JMP es una instrucción de salida y LBL es de entrada. Estas instrucciones saltan porciones de la lógica de escalera, una vez habilitada la instrucción JMP salta a la instrucción LBL referenciada y el controlador continúa ejecutándose en ese lugar. Cuando está deshabilitada, la instrucción JMP no afecta la ejecución de la lógica de escalera. La instrucción JMP puede avanzar o invertir la ejecución de la lógica de escalera. El salto de avance de una etiqueta ahorra el tiempo de escán del programa omitiendo un segmento de la lógica hasta que sea necesario. El salto de retroceso permite que el controlador repita iteraciones de la lógica.
Pág. 51
Es necesario tener cuidado de no saltar hacia atrás un número excesivo de veces, ya que el temporizador de control (watch dog) puede sobre pasar el tiempo de espera puesto que el controlador no llega al fin de la lógica, lo cual a su vez, hace que el controlador entre en fallo. La instrucción LBL es el receptor de la instrucción JMP que tiene el mismo nombre de etiqueta. Asegurarse de que la instrucción es la primera instrucción en el renglón. Un nombre de etiqueta debe ser único dentro de una rutina. El nombre puede: Tener hasta 40 caracteres. Contener letras, números y caracteres de subrayado (_). • •
Una vez habilitada la instrucción JMP, la ejecución salta renglones sucesivos de lógica hasta llegar en el renglón que contiene la instrucción LBL con label_1.
Si la etiqueta no existe puede ocurrir una falla mayor .
Pág. 52
Instrucciones JSR, SBR y RET.
Las instrucciones JSR y RET son instrucciones de salida y la instrucción SBR es una instrucción de entradas. Operando Instrucción JSR Nombre de rutina Parámetro de entrada
Tipo
rutina SINT INT DINT REAL Parámetro de SINT retorno INT DINT REAL Instrucción SBR Parámetro de SINT
Formato
Descripción
nombre Valor inmediato Tag Tag de arreglo
Rutina que se ejecuta. Parámetros que pasan a la rutina.
Tag Tag de arreglo
Parámetros (0 – n) que se reciben de la rutina.
Tag
Parámetros
(0 Pág. 53
–
n)
entrada
INT DINT REAL
Instrucción RET Parámetro de SINT retorno INT DINT REAL
Tag de arreglo
recibidos de JSR.
Valor inmediato Tag Tag de arreglo
Parámetros (0 – n) que se retornan a JSR.
Las instrucciones JSR, SBR y RET conducen la ejecución de la lógica a una subrutina distinta dentro del programa, escanea dicha subrutina una vez y retornan al punto inicial. Una vez habilitada, la instrucción JSR conduce la ejecución de la lógica a la subrutina especificada y, si fuese necesario, pasa los parámetros a la subrutina. Si no hay parámetros de entrada, el control pasa de la instrucción JSR al primer renglón de la subrutina. La instrucción SBR recibe los parámetros de entrada y copia los valores de los mismos en los tags especificados. El número y tipo de parámetros de entrada en la instrucción JSR debe de coincidir con los de la instrucción SBR. Si la instrucción JSR tiene menos parámetros que la instrucción SBR asociada, el controlador puede entrar en un fallo mayor. Situación distinta que si tiene más parámetros que la instrucción SBR. Usa la instrucción SBR en la subrutina solamente si desea pasar parámetros a la subrutina. Si usa una instrucción SBR, ésta debe ser la primera instrucción en el renglón de la rutina. No se puede colocar una instrucción SBR en la rutina principal. Use la instrucción RET solamente si retorna los parámetros a la instrucción JSR. La instrucción RET pone fin a la subrutina y, si fuese necesario, retorna los parámetros a la instrucción JSR. Una subrutina puede tener más de una instrucción RET.
Pág. 54
Una vez habilitada, la instrucción RET pasa sus parámetros, si los hay, y reanuda la ejecución del renglón que sigue a la instrucción JSR asociada. El número y tipo de parámetros de retorno en la instrucción RET debe coincidir con los de la instrucción SBR. Si el número de parámetros de retorno en la instrucción RET es menor que el número de parámetros de retorno en la instrucción JSR, el controlador entra en un fallo mayor. La instrucción RET puede tener más parámetros de retorno que la instrucción JSR asociada sin causar un fallo. Cuando esta inhabilitada, la instrucción RET no afecta la ejecución de la lógica. El controlador continúa ejecutando la subrutina actual. No hay restricciones, excepto la memoria del controlador, para el número de rutinas anidadas que pueden existir ni para el número de parámetros que se pasan o retornan.
Pág. 55
Ejemplos de aplicación JSR/SBR/RET.
Pág. 56
Pág. 57
2.4 CORRIMIENTO DE BITS.
Se usan las instrucciones de arreglo (archivo) /desplazamiento para modificar la ubicación de datos dentro de los arreglos. Instrucción BSL. La instrucción BSL es una instrucción de salida, ésta instrucción desplaza los bits especificados dentro del arreglo una posición a la izquierda. Una vez habilitada, la instrucción descarga el bit superior de los bits especificados al bit .UL, desplaza el resto de los bits una posición a la izquierda y carga el bit de origen en el bit 0 del arreglo. Ejemplos de aplicación BSL.
Pág. 58
Instrucción BSR. La instrucción BSR desplaza los bits especificados dentro del arreglo una posición a la derecha. Una vez habilitada, la instrucción descarga el valor en el bit 0 del arreglo al bit .UL, desplaza el resto de los bits una posición a la derecha y carga el bit de origen en el bit superior de los bits especificados.
Pág. 59
Ejemplos de aplicación BSR.
Pág. 60
2.5 INSTRUCCIONES DE COMUNICACION.
La instrucción MSG funciona para comunicarse entre un controlador logix5000 y otro controlador. Como comunicarse con otro controlador Logix5000. Los controladores logix5000 pueden usar las instrucciones MSG para comunicarse entre si. Tipo de instrucción MSG. Logix5000 escribe a logix5000 (escritura de la tabla de datos protocolo de control e información) Logix5000 lee desde logix5000 (lectura de la tabla de datos protocolo de control e información)
Ejemplo de origen y destino. tag de origen array_1 tag de destino array_2 tag de origen array_1 tag de destino array_2
Cuando se introducen los tags de origen y destino para una instrucción MSG entre dos controladores logix5000: •
•
•
•
El tag de origen y el tag de destino deben ser tags del controlador cubiertos. El tag de origen y el tag de destino pueden ser de cualquier tipo de datos, excepto AXIS, MESSAGE o MOTION_GROUP. No se pueden especificar las dimensiones de arreglo ni miembros de estructura. Use un alias. Por ejemplo, en vez de array_1 [3], especifique mytimer.acc, el cual es un alias de dicho elemento de arreglo. No se puede transferir una porción de un arreglo. Especifique todo el arreglo (introduciendo el nombre del arreglo) o un elemento de un arreglo (introduciendo un alias). Pág. 61
Como comunicarse con otros procesadores. El controlador Logix5000 también usa las instrucciones MSG para comunicarse con los procesadores PLC y SLC. Las instrucciones MSG son diferentes según cuál controlador inicia la instrucción. Para las instrucciones MSG de un controlador Logix5000 a un procesador PLC o SLC: Tipo de instrucción Ejemplo de origen y MSG: destino Logix5000 escribe a Elemento de origen array_1 PLC-5 Tag de destino N7:10 Logix5000 escribe a SLC ó Micrologix1000 Se puede usar un tag de alias para el tag de origen. Si se desea usar un offset dentro de un arreglo, hay que usar un alias para indicar el offset. Logix5000 escribe PLC2 array_1 Logix5000 lee desde Elemento de origen N7:10 PLC-5
Tipo de archivo compatibles: Para PLC-5: SINT, INT, DINT o real. Para SLC: INT. Para typedwrite PLC-5: s, B, N o F. Para escritura de rango de palabra PLC-5: s, B, N, F, I, O, A o D. Para SLC:INT SINT, INT, DINT o real Para typedread PLC-5: s, B, N o F Para lectura de rango de palabra PLC-5: s, B, N, F, I, O, A o D. Para SLC: B ó N Para PLC-5: SINT, INT, DINT o real. Para SLC: INT.
Logix5000 lee desde Se puede usar un tag de SLC ó Micrologix1000 alias para el tag de destino. Si se desea usar un offset dentro de un arreglo, hay que usar un alias para indicar el offset. Logix5000 lee desde Elemento de origen 010 SINT, INT, DINT o real Pág. 62
PLC2
Tag de destino array_1
El controlador logix5000 puede enviar comandos TypedWrite, TypedRead o de rango de palabra a los procesadores PLC-5. Estos comados leen y escriben datos de una manera diferente. Los siguientes diagramas muestran la diferencia entre los comandos TypedWrite/TypedRead y de rango de palabra.
El controlador Logix5000 puede procesar mensajes iniciados desde los procesadores PLC y SLC. Estos mensajes usan direcciones de la tabla de datos. Los tags se asignan a direcciones de la tabla de datos para que los procesadores obtengan acceso a los tag dentro del controlador Logix5000. Mapeo de direcciones El software de programación incluye una herramienta de asignación PLC/SLC que le permite hacer disponible a los procesadores PLC2, PLC3, PLC5 o SLC un tag de arreglo de controlador existente en el controlador local.
Pág. 63
1. Desde el menú de Lógica, selecciona Map PLC/SLC Messages. La ventana de mapeo PLC/SLC se desplega como se muestra.
2. Especifica la siguiente información:
El tag en el controlador local debe ser un arreglo entero (SIN, INT o DINT) que sea bastante grande para aceptar los datos de mensaje. Pág. 64
2.7 OPERACIONES CON VARIABLES TIPO STRING. Es común utilizar un lector de código de barras para recibir datos con un controlador a través de su puerto serial. Para ello se utiliza los caracteres de tipo ASCII que almacenan en tags que utilizan un tipo de datos de STRING (cadena). Se puede Utilizar el tipo de dato STRING predeterminado. Almacena hasta 82 caracteres. También se puede crear un nuevo tipo de datos de cadena que almacene menos ó más caracteres. Para crear un tipo de datos de cadena: Como ya lo comentamos se puede utilizar el tipo de dato STRING predeterminado. Este almacena hasta 82 caracteres.
O bien cree un nuevo tipo de datos de cadena para almacenar el número de caracteres definido.
Pág. 65
Pág. 66
Por lo general antes de leer el buffer se recomienda usar una instrucción ACB o ABL para verificar que el buffer tenga los caracteres requeridos: •
•
•
Una instrucción ARD o ARL continúa leyendo el buffer hasta que la instrucción lee los caracteres de requeridos. Mientras una instrucción ARD o ARL lee el buffer, no se pueden ejecutar otras instrucciones del puerto en serie ASCII, excepto la instrucción ACL. El verificar que el buffer tenga los caracteres requeridos evita que la instrucción ARD o ARL interrumpa la ejecución de las otras instrucciones del puerto en serie ASCII mientras el dispositivo entrada envía los datos.
1. Si el dispositivo es un lector código de barras? 2. Introduzca el siguiente renglón.
3. Introduzca 0. (el puerto en serie es el canal 0). 4. Introduzca un nombre de tag para la instrucción ACB y defina el tipo de datos como SERIAL_PORT_CONTROL. 5. Introduzca el bit EN del tag ACB. (el tag del paso 4.)
Pág. 67
6. Introduzca el siguiente renglón:
7. Introduzca el elemento POS del tag ACB. (El tag del paso 4.) 8. Introduzca el número de caracteres en los datos. 9. Introduzca 0. 10. Introduzca un nombre de tag para almacenar los caracteres ASCII. Defina el tipo de datos como un CADENA. 11. Introduzca un nombre de tag para la instrucción ARD y defina el tipo de datos como SERIAL_PORT_CONTROL. 12. Introduzca el número de caracteres en los datos.
Pág. 68
Procesamiento de caracteres ASCII. Use los siguientes pasos para extraer una parte de un código de barras a fin de realizar una acción basada en este valor. Por ejemplo, un código de barras puede tener información acerca de un equipaje en un transportador en un aeropuerto. Para verificar el número de vuelo y destino de equipaje se extraen los caracteres 10-18.
Pág. 69
Pasos: 1. Introduzca el siguiente renglón.
2. Introduzca el bit EM de la instrucción ARD que lee el código de barras. 3. Introduzca el tag cadena que contiene el código de barras.
Pág. 70
4. Introduzca el número de caracteres en la parte de código de barras que desea verificar. 5. Introduzca la posición del primer carácter en la parte del código de barras que desea verificar. 6. Introduzca el nombre del tag que va almacenar la parte del código de barras que desea verificar. Defina el tipo de datos como una cadena.
Pág. 71
Verificar los caracteres del código de barras. En esta ocasión utilizaremos instrucciones de comparación (EQU, GEQ, GRT, LEQ, LES, NEQ) para verificar caracteres específicos. •
•
Los valores hexadecimales de los caracteres determinan si una cadena es mayor o menor que otra cadena. Cuando las cadenas están clasificadas como en un directorio telefónico, el orden de las cadenas determina cual es el mayor.
Pasos: 1. Introduzca un renglón y una instrucción de comparación: Para ver si la cadena es: Igual a caracteres específicos Diferentes a caracteres específicos Mayor Que caracteres específicos Igual o mayor que caracteres específicos Menor que caracteres específicos
Introduzca esta instrucción: EQU NEQ GRT GEQ LES Pág. 72
Igual o menor que caracteres específicos
LEQ
2. Introduzca el tag que almacena la parte del código de barras que desea verificar. (El destino de extraer una parte del código de barras, paso 6.) 3. Introduzca un nombre de tag para almacenar los caracteres contra los cuales desea realizar la prueba. Defina el tipo de datos como una cadena. 4. Haga doble clic en el área del valor de origen B. 5. Escriba los caracteres ASCII contra los cuales va a realizar la prueba y seleccione aceptar . 6. Introduzca la salida requerida.
Pág. 73
3.0 UTILIZACIÓN DE LA RED ETHERNET. 3.1 CONEXION Y CONFIGURACION DE EQUIPOS. Para conectar el módulo de red EtherNet directamente con la computadora es necesario un cable EtherNet Estándar con Conector RJ-45.
La siguiente figura muestra la configuración del cable:
Pág. 74
El módulo EtherNet acepta comunicación gateway de datos de control e información a través de EtherNet a otras redes tales como ControNet, DeviceNet y Data Highway Plus.
Pág. 75
Aplicaciones de información.
Pág. 76
En un sistema de control industrial, las aplicaciones de información generalmente se utilizan para descargar programas a PLC, monitorear procesos y recolectar estadísticas, datos de proceso y diagnósticos. El desempeño de este tipo de aplicación no es tan crucial como el de una aplicación de control, donde la velocidad, el rendimiento efectivo, el tiempo de respuesta y el tiempo improductivo son críticos para un proceso de fabricación. Aplicaciones de control. Las aplicaciones de control requieren tiempos de respuesta rápidos y un alto rendimiento efectivo de los datos. La disponibilidad de la red es de mayor importancia. Las intrusiones a la red deben de limitarse mediante el uso de barreras contra fuego y puentes. Conexión principal EtherNet. La conexión principal EtherNet es la parte de la red que maneja la mayor cantidad de tráfico. Utiliza las rutas de transmisión de más alta velocidad en la red y también puede ejecutar la distancia más larga. Puentes. Un puente es un dispositivo que conecta dos segmentos de red. Los segmentos pueden ser de tipo similares o diferentes. El puente se inserta en una red para segmentarla y mantener el tráfico contenido dentro de los segmentos para mejorar el rendimiento.
Interruptores EtherNet.
Pág. 77
Los interruptores permiten una alta velocidad al paso del tráfico entre dos puertos en el interruptor. Los interruptores son básicamente puentes multipuertos que pueden transferir simultáneamente marcos entre parejas de puertos a plena velocidad del cable. Por ejemplo, un conector 10 base T de 16 puertos comparte un ancho de banda de 10 Mbps con los 16 nodos conectados. Al remplazar el conector con un interruptor, cada pareja de transmisor/receptor tiene la plena capacidad de 10 Mbps, por lo tanto un interruptor 10 base T de 16 puertos efectivamente tendría un ancho de banda de 80 Mbps con capacidad para 8 parejas. Segmentos. Un segmento es una sección de una red de área local (LAN) usada por un grupo de trabajo o departamento particular y separado del resto de la LAN por un puente, o interruptor. Las redes se dividen en múltiples segmentos por razones de seguridad y para mejorar el flujo de tráfico filtrando los paquetes no destinados para el segmento.
Planificación del sistema de cable EtherNet. Determinación de la conectividad a la conexión principal. Pág. 78
Determinación del número de dispositivos y puertos. El número de puertos que se necesita depende del número de dispositivos que desea conectar a la red. Necesitará un puerto para cada nodo en un segmento. Considere el número y la ubicación de los siguientes componentes cuando determine cuantos puertos necesitará en la red: • • • • •
Estaciones de trabajo. Rack de entradas y salidas. Estaciones Panel View. Puentes e interruptores. E/S futuras.
Longitudes y límites de los segmentos horizontales.
Pág. 79
La longitud total de cada segmento de cable horizontal no debe tener más de 100 metros entre dos dispositivos activos. Uso de Fast EtherNet (100 Mbps). Una velocidad de datos más alta proporcionará un ancho de banda de red más amplio. Pero generalmente, a más alta la velocidad de los datos, menos tolerante al ruido será una red de comunicaciones. El uso de Fast EtherNel (100 Mbps) para el control es la aplicación más crítica en términos de ruido. Además, la red no debe tener errores, ya que a mayor el número de errores en un sistema EtherNet /IP, más cantidad de tráfico. Cuando aumenta el tráfico también aumenta el tiempo de respuesta. Si su aplicación depende de tiempos de respuesta cortos, debe implementar medidas de seguridad para minimizar los errores debidos a ruidos y otras causas de aumento de tráfico. El rendimiento efectivo puede aumentarse más aún usando comunicaciones fullduplex. Uso de cable blindado (STP) o sin blindaje (UTP) Se debe seleccionar el cable correcto para el entorno, dependiendo de la ubicación donde va a encaminar el cable. El cable blindado ofrece un mejor desempeño que el cable sin blindaje en ambientes industriales. En particular, si la aplicación está en un ambiente de alto ruido o el cable debe instalarse cerca de fuentes que irradian ruido, entonces se debe usar cables blindados.
Se deben considerar cables blindados si la aplicación incluye uno o más de los siguientes componentes:
• • •
Control de soldadura por puntos Centro de control de motores Variaciones de más de 10 HP Pág. 80
• • • •
Proceso de soldadura por inducción Proximidad a la radiación de frecuencias de radio de alta potencia Procesos electrostáticos Dispositivos de alta corriente (más de 100 amps)
Ubicación de Interruptores Debe considerarse el ambiente al seleccionar interruptores y decidir dónde colocarlos. A menos que sean de resistencia industrial especificados, los interruptores deben instalarse en un envolvente adecuados para protegerlos contra la electricidad estática, las temperaturas extremas, la humedad y las interferencias electromagnéticas (EMI) generadas por los equipos circundantes. Asegúrese de considerar la temperatura al interior de los envolventes (armarios) cuando planifique dónde ubicar los interruptores, ya que los envolventes pueden no tener aire acondicionado. El interruptor debe conectarse a tierra según las recomendaciones del fabricante. Selección y ubicación de las E/S Se debe tomar en cuenta el ambiente al seleccionar las E/S y al decidir dónde ubicarlas. Se deben considerar las especificaciones del fabricante con respecto a: • • • •
Vibración Temperatura Húmedad Ruido
En ambientes hostiles es posible que tenga que proporcionar envolventes apropiados para las E/S seleccionadas.
3.2 CONFIGURACION DE CANALES DE COMUNICACION. Pág. 81
La configuración de un Módulo EtherNet/IP incluye: • • • • •
Dirección IP (requerida) Mascara de subred (recomendada) Dirección de gateway (opcional) Nombre de dominio (opcional) Direcciones de servidor (opcional)
EtherNet. Al nivel más básico, EtherNet es un cable que conecta computadoras computadoras y dispositivos periféricos a fin de que puedan comunicarse. El cable utilizado para una red se denomina medio físico de red. El Protocolo de Control de Transmisión/P ransmisión/Protocolo Internet (TCP/IP) es un protocolo de capa de transporte (TCP) y un protocolo de capa de red (IP) que generalmente se usa para comunicación dentro de redes y a través de redes de Internet. El módulo EtherNet utiliza TCP/IP para la comunicación EtherNet. Dirección IP La dire direcc cció ión n IP iden identitififica ca cad cada nodo nodo en la red red IP (o sist siste ema de rede redess conectadas). conectadas). Cada nodo TCP/IP es una red (incluyendo el módulo EtherNet) y debe tener una dirección IP exclusiva. La dirección IP tiene 32 bits de largo y tiene una parte de ID de dispositivo principal. Cada red es una red Clase A, Clase B, Clase C. La clase de red determina como se formatea una dirección IP.
Pág. 82
Cada nodo en en la red física debe debe tener una dirección IP de la misma misma clase y el mismo ID de red. Cada nodo en la misma red tener un ID de dispositivo principal diferente, dando de este modo una dirección IP exclusiva. Las direccio direcciones nes IP se escriben escriben como enteros enteros decimales decimales (0-255) (0-255) separad separados os por puntos, donde donde cada entero entero proporciona proporciona el valor de un byte byte de la dirección IP. Por ejemplo, la dirección IP de 32 bits: Ejemplo: 00000011 00000000 00000000 00000001 se escribe como
3.0.0.1
Usted puede distinguir la clase de una dirección IP del primer entero en su dirección IP decimal como sigue:
Pág. 83
Máscaras de Subred. El direccionamiento de subred es una extensión del esquema de dirección IP que permite que una instalación use un solo ID de red para múltiples redes físicas. El encaminamiento fuera de la instalación continúa al dividirse la dirección IP en un ID de red y un ID de dispositivo principal a través de la clase. Dentro de una instalación, la máscara de subred se usa para dividir la dirección IP en una porción de ID de red personalizada y una porción de ID de dispositivo principal personalizada. Dirección Gateways Un gateway gateway conec conecta ta redes redes física físicass indivi individua duales les en un sistema sistema de redes. redes. Cuando un nodo necesita comunicarse con un nodo en otra red, un gateway transfiere los datos entre las dos redes. La siguiente figura muestra el gateway G conectado a la red 1 con la red 2.
Pág. 84
Para configurar un módulo de EtherNet/IP se usa uno de los siguientes programas de software: • • •
RSLogix 5000 RSLinx Servidor BOOTP
Rslogix 5000. 1. Agregar un nuevo módulo de comunicación 1756-ENET.
2. Seleccionar la revisión, escribir el IP Adress, y el nombre de la tarjeta.
Pág. 85
2. Se descarga la aplicación al procesador a través del puerto serial. RSLinx.
Si se encuentra conectado con el puerto serial.
Pág. 86
Configuración de un driver EtherNet.
Pág. 87
Servidor BOOTP. Si se encuentra conectado con un interruptor.
Pág. 88
4.0
UTILIZACIÓN DE LA RED DEVICENET PARA LA COMUNICACIÓN CON CONTROLADORES DE ROBOTS. 4.1
CONCEPTOS BASICOS DE LA RED DEVICENET.
Termino: DeviceNet.
Significado. Red abierta que permite la transmisión y recepción de datos de/hacia dispositivos de entrada y/o salida Puente. La capacidad del módulo de interface de realizar transferencia de mensajes explícitos. Cambio de estado. Un tipo de comunicación de datos de E/S. El modulo de interface puede enviar y recibir datos con dispositivos esclavos que tienen la función de cambio de estado. Los cambios se envían cada vez que ocurre un cambio de datos. Los datos se actualizan a la velocidad del temporizador de registro. Módulo de Módulo de interfase 1756-DNB. Comunicación. Cíclico. Un tipo de comunicación de datos de E/S. El módulo de interface puede enviar y recibir datos con dispositivos esclavos que tienen la función de cíclico. Los datos se envían según el régimen configurable por el usuario. EDS Hoja de datos electrónicos. Una plantilla proporcionada por el suministrador que especifica cómo aparece la información en la pantalla así como la entrada apropiada (valor). Mensajes Explícitos Un tipo de mensaje usado para tareas de baja prioridad, tales como configuración y monitoreo de datos. Régimen de los Los dispositivos configurados para datos de cambio de Impulsos estado también pueden enviar una señal de “impulso” para indicar una correcta operación. Plataforma de La computadora principal del módulo de interface 1756computadora DNB principal E/S La abreviatura de “entrada y salida” Pág. 89
Mensajes Implícitos
Datos de entrada ID MAC Red Nodo Fuera de línea En línea Datos de salida
Encuestados
Registros Rx Lista de escán Escáner Modo esclavo
El tipo de mensaje usado para datos de control de E/S de alta prioridad; por ejemplo, cambio de estado, cíclicos, encuestas o seleccionado en forma estroboscópica. Datos producidos por un dispositivo DeviceNet y recolectados por el módulo de interface para la lectura de una plataforma de computadora principal. La dirección de red de un nodo DeviceNet. La red DeviceNet o la representación de la red del software RSNetWorx para DeviceNet. Hardware al cual se ha asignado una sola dirección en la red (también llamado dispositivo). Cuando la interface de comunicación PC no se está comunicando en la red. Cuando la interface de comunicación PC está configurada y puede comunicarse en la red. Datos producidos por una plataforma de computadora principal y escritos a la memoria del módulo de interface. Estos datos son enviados por el módulo de interface a los dispositivos DeviceNet. Un tipo de comunicación de datos de entrada/salida. Un mensaje de encuesta solicita una respuesta desde un dispositivo especificado en la red (una transferencia de datos punto a punto) La dirección de nodo y memoria de canal específico asignado, en el almacenamiento no volátil del módulo de interface, para un nodo en la lista de escán. La abreviatura de “recibir” La lista de dispositivos (nodos) con la cual el escáner se configura para intercambiar datos de E/S. La función del módulo de interface 1756-DNB que permite intercambiar E/S con módulos esclavos. El módulo de interface está el el modo esclavo cuando es colocado en la lista de escán de otro módulo de interface como dispositivo esclavo.
Pág. 90
Estroboscópico
Tx
4.2
Un tipo de comunicación de datos E/S. Un mensaje estroboscopio solicita una respuesta de cada dispositivo estroboscópico (una transferencia de difusión múltiple). Es un mensaje de 64 bits que contiene un bit por cada dispositivo en la red. La Abreviatura de “transmitir”
DETERMINACION DE REQUERIMIENTOS Y UBICACIÓN DE FUENTES DE PODER
Para configurar una red DeviceNet se necesita: 1. Entender los medios Físicos. 2. Efectuar terminaciones en la red. 3. Suministrar alimentación. 4. Conectar la red a tierra. 5. Usar la lista de comprobación.
Pág. 91
Entender los medios físicos. El sistema de cables DeviceNet utiliza una topología de línea troncal/ línea derivación.
Pág. 92
Las opciones de cable son: Redondo grueso: La línea troncal de la red DeviceNet. Redondo delgado: La línea de derivación que conecta dispositivos a la línea principal o troncal. El cable redondo grueso y delgado contienen cinco conductores: un par trenzado (rojo y negro) para la alimentación de corriente continua de 24 VCD, un par trenzado (azul y blanco) para señal y un cable de tierra (sin forro).
Determinar la longitud de la línea troncal. La distancia entre dos puntos cualesquiera no debe superar el recorrido máximo del cable en función de la velocidad de transmisión de datos.
Pág. 93
Las resistencias de terminación reducen las reflexiones de las señales de comunicación en la red. Estas resistencias deben tener un valor de 121 Ω ohmios, 1%, ¼ de Watt.
Pág. 94
Suministro de Alimentación. El sistema de cables requiere que el tiempo de elevación de la fuente de alimentación sea inferior a 250 milisegundos hasta el 5% de su voltaje de salida nominal. •
•
•
•
La fuente de alimentación tiene su propia protección limitadora de corriente. Cada segmento del sistema de cables dispone de protección por fusibles. La fuente de alimentación será dimensionada correctamente para proporcionar a cada dispositivo la alimentación necesaria. Reducir el régimen de alimentación según la temperatura utilizando las normas del fabricante.
Como elegir una fuente de alimentación. El conjunto de todos los factores siguientes no debe superar en 3.25% los 24 VCD nominales necesarios para un sistema de cables DeviceNet. • • • • •
Selección inicial de fuente de alimentación – 1.00% Regulación de línea – 0.30% Deriva de temperatura – 0.60% (total) Deriva de tiempo – 1.05% Regulación de carga – 0.30 %
El cable grueso redondo posee una capacidad máxima de 8 amperes, y las líneas de derivación de 3 amperes.
Pág. 95
Como dimensionar una fuente de alimentación.
Pág. 96
Fuente de alimentación 1. Sume la corriente consumida por cada dispositivo (D1, D2) de DeviceNet para obtener el valor de la alimentación 1 (1.50 + 1.05 = 2.55 A). 2.55 A. es la capacidad nominal de la fuente de alimentación 1. Fuente de alimentación 2. Sume la corriente de cada dispositivo (D3, D4, D5) para obtener el valor de la fuente de alimentación 2 (0.25 + 1.00 + 0.10 = 1.35 A). 1.35 A. es la capacidad nominal de la fuente de alimentación 2.
Pág. 97
4.4
CONFIGURACIÓN DE SCANNER 1756-SDN.
1. Agregar un nuevo módulo en el Backplane en Rslogix 5000.
2. Se selecciona el número de revisión correspondiente, así como el tamaño de las entradas, salidas y status.
Pág. 98
3. A través de RSlinx podemos ver los nodos conectados sobre la red DeviceNet.
Pág. 99
4. 5 MAPEO DE DATOS DE LOS DISPOSITIVOS EN EL SCAN LIST. 1. A través de Rsnetworx podemos configurar la tarjeta Scanner para que comience a transmitir y recibir datos hacia el PLC. Para ello es necesario abrirlo y a través de Rslinx colocarnos en línea.
2. Una vez en línea y observando todos los elementos de la red. Sobre el scanner le damos clic izquierdo y seleccionamos propiedades, para que se abra la ventana de configuración.
Pág. 100
3. En al ventana de propiedades podremos observar la identidad de la tarjeta, Configurar la tarjeta en el slot donde se encuentra, colocar los dispositivos a la lista de escaneo, mapear las entradas y salidas de la red.
Pág. 101
Pág. 102
Pág. 103
Pág. 104
Pág. 105
4.5
REVISIÓN DE RUTINAS DE PROGRAMACIÓN PARA LA COMUNICACIÓN CON LOS CONTROLADRES DE ROBOTS.
Pág. 106
5 UTILIZACION DE LA RED CONTROLNET PARA LA COMUNICACIÓN CON LOS PLC´S PILZ. 5.1
CONCEPTOS BASICOS DE LA RED CONTROLNET.
ControlNet es una red de comunicación en tiempo real que permite una arquitectura de control flexible que puede trabajar con múltiples procesadores y hasta 99 nodos en la parte troncal del cable de red. No existe un mínimo de separación entre taps y se puede acceder a la red ControlNet desde cualquier nodo.
Ejemplo de configuración de red ControlNet.
Pág. 107
Utilizando el cable coaxial ControlNet soporta varias configuraciones en la topología de la red.
El medio físico es un cable coaxial R6/U blindado tipo BNC como el que se utiliza para TV, pero inmune al ruido de 75 ohms. También se puede utilizar fibra óptica Los Taps pueden ser instalados donde quiera con un mínimo de espacio requerido. La distancia y la velocidad del Bus de comunicación pueden ser: • • • • •
1000 m con cable coaxial con 2 nodos @ 5 Mb/s. 250 m con 48 nodos. 3000 m con fibra óptica @ 5 Mb/s. 5000 m con repetidor coaxial @ 5/Mb/s. 30 km con fibra óptica.
Pág. 108
Network Update Time (NUT) – La base de tiempo en la red en el cual el dato es transmitido. Este valor es configurable por el usuario (de rango de 2.00 – 100.00 milisegundos) y deben considerarse para tipos discretos, analógicos, y datos agendados punto –punto. El valor de por default es 5.00 milisegundos. Cada NUT es divido en 3 componentes principales: mensajes Scheduled, mensajes Unscheduled, y mensajes de maintenance. Network Update Interval (NUI) – Un intervalo sobre la red igual a un NUT. Dentro de cada NUI, datos Scheduled, datos Unscheduled, y red maintenance es transmitido. Maximum Scheduled Address - Este es el nodo más alto dentro de la red que puede ser utilizada y que usa el scheduled time sobre la red ControlNet. Maximum Unscheduled Address – Este es el nodo más alto de la red que puede usar unscheduled time sobre la red ControlNet. Slot Time - Tiempo de espera para mantener o perder un nodo de la red. Este valor esta basado sobre los atributos físicos de la red, como la longitud y el número de repetidores. Keeper - El controlador capaz mantener la configuración de la red ControlNet.
Pág. 109
5.5 CONFIGURACIÓN DE LA TARJETA 1756-CNB. INICIAR RSLOGIX 500 y crear Nuevo proyecto. Configurar el modulo 1756-CNB(R): Dar Click sobre la pestaña de I/O configuración en el explorador del proyecto. Con el botón derecho dar clic para ver otro submenú, escoger New Module (nuevo modulo)
Pág. 110
En la nueva ventana que aparece seleccionar el tipo de modulo que se va insertar, Escoger el modulo de control Net ya sea simple o redundante según sea el caso y dar click en OK
Asignarle el nombre al modulo, dar enter en el slot derecho, (localización del modulo en el chasis de Control Logix ) y posteriormente dar FINISH (terminar) en la selección del modulo 1756-CNB®. El fólder de I/O Configuración muestra el nuevo modulo por separado.
Pág. 111
CONFIGURACION DEL MODULO BAJO EL MODULO 1756-CNB(R) Con el botón izquierdo del Mouse si no esta seleccionado. Dar Click sobre el modulo de control net. Nuevamente seleccionar Nuevo modulo,. Asegurarse que este realmente seleccionado el modulo 1756-CNB®
Pág. 112
En esta ocasión seleccionar el “CONTROLNET-MODULE Generic Control Net Module” dar enter. Click OK.
Pág. 113
Si se pierde la secuencia o o se coloca algún valor erróneo, s debe corregir antes de dar aceptar o finalizar la configuración de otra manera tendra que volver a realizar todo el llenado desde el paso 5 Name: NOMBRE DEL ADAPTADOR PILZ. Comm Format: Data-INT. (TIPO DE DATO DE CONTROLOGIX) Node: Numero de nodo de Control Net del Modulo de Pilz (NODO 5), seleccionado con los switches rotatorios. Connection Parameters: Para metros de Conexion Assembly Instance Input = 1, Input size = 18 (Range: 3 - 202).* Assembly Instance Output = 2, Output size = 16 (Range: 1 - 200). Assembly Instance Configuration = 4; Configuration size = 0.
Pág. 114
Dar doble click en cada parámetro para que los acepte. Asegurarse que el tamaño de entradas (inputs) sean realmente 18 palabras , adicionarle 2
Ahora dar finalizar. Si se perdió algún parámetro volver a seleccionar el adaptador de Pilz on el botón izquierdo del Mouse. Con el botón derecho si es necesario adicionar nuevamente el modulo o borrarlo y empezar desde el paso 5 Salvar programa y descargar en el procesador.
Pág. 115
El RsLogix se vera similar a este.
Note que si aparece el signo de admiración con el triangulo Amarillo. El modulo 1756-CNB® NO ESTA TENIENDO COMUNICACIÓN. Y ESTA PARTE ES EL FINDE CONFIGURACION DENTRO DE RSLOGIX. Para que el modulo este en running se debe configurar los parámetros globales con el RSNETWorks. Después de configurar esta parte regresar al Rslogix y verificar que este signo desaparezca y podrían verse datos en el Controlador.
Pág. 116
RSNetworks Configuration Es necesario haber conseguido el EDS del dispositivo antes de iniciar con el upload del programa. Abrir RSNetWorks for Control Net y crear un Nuevo folder ( File-New ). Ir a Go online y buscar la red usando el modulo e 1756-CNB(R) configurado en la ruta (path) RSLogix5000
Pág. 117
Dar Click OK y despues browsing, para llegar a ver una pantalla similar a la de abajo. Abrir la ventana de spreadsheet.
Seleccionar el cuadro de “Edits Enabled”. Al configurar existen diferencias entre los dispositivos en online y offline , dar CLICK OK para actulizar y salvar la configuración.
Pág. 118
Después de actualizar, dar click con botón derecho y una nueva ventana aparecerá dar click en PROPERTIES.
Pág. 119
EN tu configuración global de control Net dar el numero máximo de nodos, Schedule node etc etc.
Click OK. Salvar esta configuración ( File-Save).
Pág. 120
Click OK para finalizar la siguiente par en RSLogix5000. (regresar a logix) RSLogix5000 Controller Tags Si fue configurado exitosamente el triangulo Amarillo desapareció
Pág. 121
Ahora observemos que los tags dentro del controlador están en el fólder con el nombre del modulo pilz que le fue asignado.
Pág. 122
Dar Click sobre el signo de + en Pilz_adapter:I and Pilz_adapter:I.Data. Este abre las tabla de datos de entradas que fueron asignadas en este caso 18 palabras las primeras 2 palabras son para la comunicación control net y la palabra ya usable para datos es la palabra dos.
Pág. 123