1756-pm013_-es-p

32
Manual de programación (Números de catálogo 1756-L1, 1756-L55, 1756-L61, 1756-L62, 1756-L63, 1769-L31, 1769-L32C, 1769- L32E, 1769-L35CR, 1769-L35E, 1789-L60, 1794-L34, PowerFlex 700S/SE) Cadenas ASCII de controladores Logix5000

Transcript of 1756-pm013_-es-p

Manual de programación

(Números de catálogo 1756-L1, 1756-L55, 1756-L61, 1756-L62, 1756-L63, 1769-L31, 1769-L32C, 1769-

L32E, 1769-L35CR, 1769-L35E, 1789-L60, 1794-L34, PowerFlex 700S/SE)

Cadenas ASCII de controladores Logix5000

Información importante para el usuarioLas características de funcionamiento de los equipos de estado sólido son distintas a las de los equipos electromecánicos. En la publicación “Safety Guidelines for the Application, Installation and Maintenance of Solid State Controls” (publicación SGI-1.1 que podrá obtener en su oficina local de ventas de Rockwell Automation o en línea en la dirección http://literature.rockwellautomation.com) se describen algunas diferencias importantes entre los equipos de estado sólido y los dispositivos electromecánicos de lógica cableada. Debido a estas diferencias y a la gran diversidad de usos que se puede dar a los equipos de estado sólido, las personas responsables de la utilización de este equipo deberán asegurarse de la idoneidad de cada aplicación.

Rockwell Automation, Inc. no será responsable en ningún caso de daños directos o indirectos que resulten del uso o aplicación de este equipo.

Los ejemplos y diagramas incluidos en este manual tienen exclusivamente un fin ilustrativo. Debido a la gran cantidad de variables y de requisitos de cualquier instalación en particular, Rockwell Automation, Inc. no puede asumir ninguna responsabilidad u obligación por el uso que se dé siguiendo los ejemplos y los diagramas.

Rockwell Automation, Inc. no asume ninguna obligación de patente relativa al uso de la información, circuitos, equipo o software descritos en este manual.

Se prohíbe la reproducción total o parcial del contenido de este manual sin la autorización por escrito de Rockwell Automation, Inc.

En este manual se utilizan notas para advertirle sobre consideraciones de seguridad siempre que sea necesario.

Allen-Bradley, Rockwell Automation y TechConnect son marcas comerciales de Rockwell Automation, Inc.

Todas las marcas comerciales que no pertenecen a Rockwell Automation son propiedad de sus respectivas empresas.

ADVERTENCIAIdentifica información sobre prácticas o circunstancias que entrañan peligro de explosión según la peligrosidad del ambiente y que pueden provocar lesiones personales o la muerte, daños materiales o pérdidas económicas.

IMPORTANTE Identifica información crítica para emplear correctamente y entender el producto. Tenga en cuenta que en esta publicación se usa el punto decimal para separar los decimales del número entero.

ATENCIÓN Identifica información sobre prácticas o circunstancias que pueden provocar lesiones personales, la muerte, daños materiales o pérdidas económicas. Los mensajes de atención le ayudan a identificar un peligro, a evitarlo y a reconocer las consecuencias.

PELIGRO DE CHOQUE En el equipo o dentro del mismo puede haber etiquetas (por ejemplo, en el variador o en el motor) para advertir sobre la posibilidad de un alto voltaje.

PELIGRO DE QUEMADURA

En el equipo o dentro del mismo puede haber etiquetas (por ejemplo, en el variador o en el motor) para advertir que determinadas superficies pueden alcanzar temperaturas peligrosas.

Tabla de contenido

Prefacio Finalidad de este manual. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Cómo usar este manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Capítulo 1Comunicación con un dispositivo ASCII

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Conexión del dispositivo ASCII . . . . . . . . . . . . . . . . . . . . . . . 8Configuración del puerto serie. . . . . . . . . . . . . . . . . . . . . . . . 9Configuración del protocolo de usuario . . . . . . . . . . . . . . . . 10Creación de tipos de datos de cadena . . . . . . . . . . . . . . . . . 11Lectura de caracteres desde el dispositivo . . . . . . . . . . . . . . 12Envío de caracteres al dispositivo . . . . . . . . . . . . . . . . . . . . 15Introducción de caracteres ASCII . . . . . . . . . . . . . . . . . . . . . 17

Capítulo 2Procesamiento de caracteres ASCII

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Extracción de una parte de un código de barras. . . . . . . . . . 19Búsqueda de un código de barras . . . . . . . . . . . . . . . . . . . . 20

Creación del tipo de datos PRODUCT_INFO. . . . . . . . . . 21Búsqueda de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . 21Identificación del número de carril . . . . . . . . . . . . . . . . . 22Rechazo de caracteres incorrectos. . . . . . . . . . . . . . . . . . 22Introducción de números de ID de productos y números de carril. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Verificación de los caracteres de código de barras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Conversión de un valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Decodificación de un mensaje ASCII . . . . . . . . . . . . . . . . . . 25Creación de una cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Códigos de caracteres ASCII . . . . . . . . . . . . . . . . . . . . . . 31

Publicación 1756-PM013B-ES-P – Julio 2008 3

Tabla de contenido

4 Publicación 1756-PM013B-ES-P – Julio 2008

Prefacio

Finalidad de este manual En este manual se muestra cómo manejar las cadenas ASCII en los controladores Logix5000. Este manual forma parte de un conjunto de manuales relacionados que describen los procedimientos habituales para programar y operar controladores Logix5000. Para obtener una lista completa de manuales de procedimientos comunes, consulte el documento Logix 5000 Controllers Common Procedures Programming Manual, publicación 1756-PM001.

El término controlador Logix5000 usa para referirse a cualquier controlador basado en el sistema operativo Logix5000 como, por ejemplo:

• Controladores CompactLogix

• Controladores ControlLogix

• Controladores DriveLogix

• Controladores FlexLogix

• Controladores SoftLogix5800

Cómo usar este manual Algunas frases tienen un formato de texto distinto al resto.

El texto Identifica Por ejemplo Significa

En letra cursiva el nombre real de un elemento que aparece en la pantalla o en un ejemplo

Haga clic con el botón derecho del ratón en User-Defined …

Haga clic con el botón derecho del ratón en el elemento denominado User-Defined.

en courier información que debe proporcionar según su aplicación (una variable)

Haga clic con el botón derecho del ratón en name_of_program …

Debe identificar el programa adecuado en su aplicación. Habitualmente, se tratará de un nombre o variable que haya definido.

entre corchetes un tecla del teclado Presione [Enter]. Presione la tecla Enter.

Publicación 1756-PM013B-ES-P – Julio 2008 5

Notas:

6 Publicación 1756-PM013B-ES-P – Julio 2008

Capítulo 1

Comunicación con un dispositivo ASCII

Introducción Usted puede intercambiar datos ASCII con un dispositivo a través del puerto serie del controlador. Por ejemplo, puede usar el puerto serie para:

• leer caracteres ASCII de un módulo de báscula o lector de código de barras.

• enviar y recibir mensajes desde un dispositivo ASCII disparado, tal como un terminal MessageView.

Además del puerto serie del controlador, las revisiones de firmware 3.1 y posteriores del módulo servidor de web 1756-EWEB EtherNet/IP es compatible con una interface de socket que permite a los controladores Logix5000 intercambiar datos ASCII usando servicios de socket TCP o UDP. Consulte el documento EtherNet/IP Web Server User Manual, publicación ENET-UM0527, revisión C o posterior.

Conexión del puerto serie del controlador al dispositivo ASCII

42237

Publicación 1756-PM013B-ES-P – Julio 2008 7

Capítulo 1 Comunicación con un dispositivo ASCII

Conexión del dispositivo ASCII

1. En el puerto serie del dispositivo ASCII, determine cuáles pines envían señales y cuáles reciben señales.

2. Conecte los pines de envío a los pines de recepción correspondientes y conecte los puentes.

3. Conecte el blindaje del cable a los dos conectores.

4. Conecte el cable al controlador y al dispositivo ASCII.

Si las comunicaciones Cablee los conectores

Tienen handshake

No tienen handshake

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

Dispositivo ASCII Controlador

42231

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

2 RDX

3 TXD

4 DTR

COMMON

6 DSR

7 RTS

8 CTS

9

1 CD

Dispositivo ASCII Controlador

42232

8 Publicación 1756-PM013B-ES-P – Julio 2008

Comunicación con un dispositivo ASCII Capítulo 1

Configuración del puerto serie

1. En la barra de herramientas en línea, en el proyecto del controlador, haga clic en el botón del controlador.

2. Seleccione la ficha Serial Port.

3. Seleccione User mode e introduzca los ajustes de configuración para el puerto serie.

• Seleccione la velocidad de transmisión, los bits de datos, la paridad y los bits de parada.

• Seleccione la opción Control Line:

• En RTS Send Delay, introduzca el retardo (en unidades de 20 ms) entre el momento en que se activa la señal RTS (nivel alto) y el momento en que se envían los datos. Por ejemplo, un valor de 4 produce un retardo de 80 ms.

• En RTS Off Delay, introduzca el retardo (en unidades de 20 ms) entre el momento en que se envía el último carácter y el momento en que se activa la señal RTS (nivel bajo).

4. Haga clic en Apply.

Si Y Y éste es el Seleccione Entonces

No está usando un módem

No Handshaking

Está usando un módem

Ambos módems en un vínculo punto a punto son full-duplex

Full Duplex

El módem maestro es full-duplex mientras que el módem esclavo es half-duplex

controlador maestro. Full Duplex

controlador esclavo Half Duplex Marque la casilla de selección Continuous Carrier

Todos los módems en el sistema son half-duplex

Half Duplex Desmarque la casilla de selección Continuous Carrier (opción predeterminada).

Publicación 1756-PM013B-ES-P – Julio 2008 9

Capítulo 1 Comunicación con un dispositivo ASCII

Configuración del protocolo de usuario

1. Seleccione la ficha User Protocol.

• Introduzca un tamaño de búfer mayor o igual que la cantidad máxima de caracteres en una transmisión. (Una buena pauta es usar dos veces el número de caracteres).

• Para las instrucciones ABL o ARL, introduzca caracteres de terminación para marcar el final de los datos. Para los códigos ASCII, consulte la contraportada de este manual.

• Para la instrucción AWA, introduzca los caracteres añadidos. Para los códigos ASCII, consulte la contraportada de este manual.

• Si el dispositivo ASCII se configura para control de flujo XON/XOFF, marque la casilla de selección XON/XOFF.

Si el dispositivo envía

Entonces Notas

Un carácter de terminación

• En el cuadro de texto Termination Character 1, escriba el código ASCII hexadecimal del primer carácter.

• En el cuadro de texto Termination Character 2, escriba $FF.

Para caracteres imprimibles, tales como 1 o A, escriba el carácter.

Dos caracteres de terminación

En los cuadros de texto Termination Character 1 y 2, escriba el código ASCII hexadecimal de cada carácter.

Para añadir Entonces Notas

Un carácter • En el cuadro de texto Append Character 1, escriba el código ASCII hexadecimal del primer carácter.

• En el cuadro de texto Append Character 2, escriba $FF.

Para caracteres imprimibles, tales como 1 o A, escriba el carácter.

Dos caracteres En los cuadros de texto Append Character 1 y 2, escriba el código ASCII hexadecimal de cada carácter.

42252

10 Publicación 1756-PM013B-ES-P – Julio 2008

Comunicación con un dispositivo ASCII Capítulo 1

• Si el dispositivo ASCII es un CRT o está preconfigurado para transmisión half-duplex, marque la casilla de selección Echo Mode.

• Seleccione Delete Mode:

2. Haga clic en OK.

Creación de tipos de datos de cadena

Los caracteres ASCII se almacenan en tags que usan un tipo de datos de cadena.

42811

42812

o bienPuede usar el tipo de datos STRING predeterminado. Almacena hasta 82 caracteres.

Puede crear un nuevo tipo de datos de cadena para almacenar el número de caracteres que usted haya definido.

Si el dispositivo ASCII es Seleccione Notas

CRT CRT • El carácter DEL ($7F) y el carácter que precede al carácter DEL no se envían al destino.

• Si se selecciona el modo de eco y una instrucción ASCII lee el carácter DEL, el eco devuelve tres caracteres: BACKSPACE SPACE BACKSPACE ( $08 $20 $08).

Impresora Impresora • El carácter DEL ($7F) y el carácter que precede al carácter DEL no se envían al destino.

• Si se selecciona el modo de eco y una instrucción ASCII lee el carácter DEL, el eco devuelve dos caracteres: / ($2F) seguido por el carácter que fue eliminado.

Ninguno de los anteriores Ignorar El carácter DEL ($7F) se trata como cualquier otro carácter.

IMPORTANTE Tenga cuidado cuando cree un nuevo tipo de datos de cadena. Si posteriormente decide cambiar el tamaño del tipo de datos de cadena, puede perder datos en cualquier tag que actualmente use ese tipo de datos.

Si usted Entonces

Hace un tipo de datos de cadena más pequeño

• Los datos se truncan.

• LEN no se cambia.

Hace un tipo de datos de cadena más grande

Los datos y LEN se ponen en cero.

Publicación 1756-PM013B-ES-P – Julio 2008 11

Capítulo 1 Comunicación con un dispositivo ASCII

1. En el Controller Organizer, haga clic con el botón derecho del mouse en Strings y seleccione New String Type...

2. Escriba un nombre para el tipo de datos.

3. Escriba el número máximo de caracteres que almacenará este tipo de datos de cadena.

4. Haga clic en OK.

Lectura de caracteres desde el dispositivo

Como regla general, antes de leer el búfer use una instrucción ACB o ABL para verificar que el búfer contiene los caracteres requeridos.

• Una instrucción ARD o ARL continúa leyendo el búfer hasta que la instrucción lee los caracteres requeridos.

• Mientras una instrucción ARD o ARL está leyendo el búfer, no puede ejecutarse ninguna otra instrucción de puerto serie ASCII, excepto ACL.

• Al verificar que el búfer contiene los caracteres requeridos, se evita que ARD o ARL retenga la ejecución de otras instrucciones de puerto serie ASCII mientras que el dispositivo de entrada envía sus datos.

Para obtener información adicional sobre las instrucciones de puerto serie ASCII, consulte el documento Logix5000 Controllers General Instruction Set Reference Manual, publicación 1756-RM003.

Por ejemplo, el dispositivo envía un número fijo de caracteres, tal como un lector de código de barras:

42233

12 Publicación 1756-PM013B-ES-P – Julio 2008

Comunicación con un dispositivo ASCII Capítulo 1

EJEMPLO Un lector de códigos de barras envía códigos de barras al puerto serie (canal 0) del controlador. Cada código de barras contiene 24 caracteres. Para determinar cuándo el controlador recibe un código de barras, la instrucción ACB cuenta continuamente los caracteres en el búfer.

Cuando el búfer contiene por lo menos 24 caracteres, el controlador ha recibido un código de barras. La instrucción ARD mueve el código de barras al tag bag_bar_code.

/bar_code_count.EN

ENDNER

ASCII Chars in BufferChannel 0SerialPort Control bar_code_countCharacter Count 0

ACB

Grtr Than or Eql (A>=B)Source A bar_code_count.pos 0Source B 24

GEQEN

DN

ER

ASCII ReadChannel 0Destination bag_bar_code ''SerialPort Control bar_code_readString Length 24Characters Read 0

ARD

42227

Publicación 1756-PM013B-ES-P – Julio 2008 13

Capítulo 1 Comunicación con un dispositivo ASCII

Por ejemplo, el dispositivo envía un número variable de caracteres, tal como un terminal de pantalla o de mensajes.

EJEMPLO Pruebe continuamente el búfer para determinar si tiene un mensaje.

• Puesto que cada mensaje termina en un retorno de carro ($0D), el retorno de carro se configura como el carácter de terminación en el cuadro de diálogo Controller Properties, ficha User Protocol.

• Cuando ABL encuentra un retorno de carro, establece el bit FD.

Cuando la instrucción ABL encuentra el retorno de carro (MV_line.FD se establece), el controlador retira los caracteres del búfer, hasta el retorno de carro inclusive, y los coloca en el tag MV_msg.

/MV_line.EN

ENDNER

ASCII Test For Buffer LineChannel 0SerialPort Control MV_lineCharacter Count 0

ABL

MV_line.FD

EN

DN

ER

ASCII Read LineChannel 0Destination MV_msg ''SerialPort Control MV_readString Length 12Characters Read 0

ARL

42226

14 Publicación 1756-PM013B-ES-P – Julio 2008

Comunicación con un dispositivo ASCII Capítulo 1

Envío de caracteres al dispositivo

Cuando usted envía caracteres al dispositivo, necesita especificar si siempre enviará el mismo número de caracteres o si desea añadir caracteres de terminación a los datos.

Por ejemplo, usted siempre envía el mismo número de caracteres y desea añadir automáticamente uno o dos caracteres al final de los datos.

Y para enviar siempre el mismo número de caracteres:

EJEMPLO Cuando la temperatura excede el límite alto (temp_high está activado) la instrucción AWA envía cinco caracteres desde el tag string[1] al terminal MessageView.

• $14 se cuenta como un carácter. Es el código hexadecimal del carácter Ctrl-T.

• La instrucción también envía (añade) los caracteres definidos en el protocolo de usuario. En este ejemplo, la instrucción AWA envía un retorno de carro ($0D), que marca el final del mensaje.

temp_high

EN

DN

ER

ASCII Write AppendChannel 0Source string[1] '$1425\1'SerialPort Control temp_high_writeString Length 5Characters Sent 6

AWA

42229

EJEMPLO Cuando la temperatura llega al límite bajo (temp_low está activado) la instrucción AWT envía nueve caracteres desde el tag string[2] al terminal MessageView. ($14 se cuenta como un carácter. Es el código hexadecimal del carácter Ctrl-T).

temp_low

EN

DN

ER

ASCII WriteChannel 0Source string[2] '$142224\01$r'SerialPort Control temp_low_writeString Length 9Characters Sent 9

AWT

42229

Publicación 1756-PM013B-ES-P – Julio 2008 15

Capítulo 1 Comunicación con un dispositivo ASCII

Por ejemplo, usted envía un número diferente de caracteres cada vez y desea añadir automáticamente uno o dos caracteres al final de los datos.

Y para enviar un número diferente de caracteres cada vez:

EJEMPLO Cuando se activa la alarma, la instrucción AWA envía los caracteres en alarm_msg y añade un carácter de terminación.

• Puesto que el número de caracteres en alarm_msg varía, el renglón primero mueve la longitud de alarm_msg (alarm_msg.LEN) a la longitud de la instrucción AWA (alarm_write.LEN).

• En alarm_msg, $14 se cuenta como un carácter. Es el código hexadecimal del carácter Ctrl-T.

alarm

MoveSource alarm_msg.LEN 5Dest alarm_write.LEN 5

MOVEN

DN

ER

ASCII Write AppendChannel 0Source alarm_msg '$1425\1'SerialPort Control alarm_writeString Length 5Characters Sent 6

AWA

42229

EJEMPLO Cuando se activa MV_update, la instrucción AWT envía los caracteres en MV_msg.

• Puesto que el número de caracteres en MV_msg varía, el renglón primero mueve la longitud de MV_msg (MV_msg.LEN) a la longitud de la instrucción AWT (MV_write.LEN).

• En MV_msg, $16 se cuenta como un carácter. Es el código hexadecimal del carácter Ctrl-V.

MV_update

MoveSource MV_msg.LEN 10Dest MV_write.LEN 10

MOVEN

DN

ER

ASCII WriteChannel 0Source MV_msg '$161365\8\1$r'SerialPort Control MV_writeString Length 10Characters Sent 10

AWT

42229

16 Publicación 1756-PM013B-ES-P – Julio 2008

Comunicación con un dispositivo ASCII Capítulo 1

Introducción de caracteres ASCII

1. Haga doble clic en el área de valor de Source.

Aparece un cuadro de entrada de texto.

2. Introduzca los caracteres para la cadena.

3. Haga clic en OK.

IMPORTANTE Esta ventana String Browser muestra los caracteres hasta el valor del miembro LEN del tag de cadena. El tag de cadena puede contener datos adicionales, que la ventana String Browser no muestra.

42616

Nueva línea ($0D$0A)

42615

Salto de línea ($0A)

Retorno de carro ($0D)

El número de caracteres que usted ve en la ventana. Es igual que el miembro LEN del tag de cadena.

El número máximo de caracteres que puede contener el tag de cadena.

Signo de dólar ($24)

Comillas sencillas ($27)

Avance de página ($0C)

Tab ($09)

Publicación 1756-PM013B-ES-P – Julio 2008 17

Capítulo 1 Comunicación con un dispositivo ASCII

Notas:

18 Publicación 1756-PM013B-ES-P – Julio 2008

Capítulo 2

Procesamiento de caracteres ASCII

Introducción Usted puede procesar caracteres ASCII para:

• interpretar un código de barras y tomar acción con base en el código de barras.

• usar el peso indicado por una báscula cuando el peso se envía como caracteres ASCII.

• decodificar un mensaje proveniente de un dispositivo ASCII activado, tal como un terminal de operador.

• construir una cadena para un dispositivo ASCII activado usando variables de su aplicación.

Extracción de una parte de un código de barras

Por ejemplo, un código de barras puede contener información acerca de una maleta en un transportador en un aeropuerto. Para verificar el número de vuelo y el destino de la maleta, usted extrae los caracteres 10 – 18.

Línea aérea Origen N.º de vuelo Destino Fecha

Código de barras N W A H O P 5 0 5 8 A m S 0 2 2 2 0 1

Número de caracteres 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

5 0 5 8 A m S

9 caracteres

EJEMPLO En el transportador de maletas de un aeropuerto, cada equipaje tiene un código de barras Los caracteres 10 a 18 del código de barras indican el número del vuelo y el aeropuerto de destino de la maleta. Después de que se lee el código de barras (bag_read.EM se activa) la instrucción MID copia el número de vuelo y el aeropuerto de destino en el tag bag_flt_and_dest.

42808

Publicación 1756-PM013B-ES-P – Julio 2008 19

Capítulo 2 Procesamiento de caracteres ASCII

Búsqueda de un código de barras

Por ejemplo, en una operación de clasificación, una matriz de un tipo de datos definido por el usuario crea una tabla que muestra el número de carril de cada tipo de producto. Para determinar por cuál carril hay que encaminar un producto, el controlador busca en la tabla el ID del productos (los caracteres de código de barras que identifican el producto).

Para buscar un código de barras:

• Creación del tipo de datos PRODUCT_INFO.

• Búsqueda de caracteres.

• Identificación del número de carril.

• Rechazo de caracteres incorrectos.

• Introducción de números de ID de productos y números de carril.

Nombre del tag Valor

sort_table

product_id sort_table[0]

’GHI’ sort_table[0].Product_ID ’ABC’

sort_table[0].Lane 1

sort_table[1]

sort_table[1].Product_ID ’DEF’

sort_table[1].Lane 2

sort_table[2]

sort_table[2].Product_ID ’GHI’ carril

sort_table[2].Lane 3 3

+

+

+

+

+

+

SUGERENCIA Para copiar los componentes anteriores desde un proyecto de muestra, abra la carpeta …\RSLogix 5000\Projects\Samples.

43039

Abra este proyecto.

20 Publicación 1756-PM013B-ES-P – Julio 2008

Procesamiento de caracteres ASCII Capítulo 2

Creación del tipo de datos PRODUCT_INFO

Cree este tipo de datos definido por el usuario.

Búsqueda de caracteres

La instrucción SIZE:

• cuenta el número de elementos en la matriz sort_table (tipo PRODUCT_INFO). Esta matriz contiene el ID de producto de cada ítem y el número de carril correspondiente al ítem.

• cuenta el número de elementos en la dimensión 0 de la matriz. En este caso, ésta es la única dimensión.

• establece la longitud de la instrucción FSC subsiguiente igual al tamaño de la matriz sort_table.

La instrucción FSC busca cada miembro Product_ID en la matriz sort_table hasta que la instrucción encuentra una coincidencia con el tag product_id.

• El tag sort_table_search controla la instrucción FSC.

• Si bien la instrucción previa establece la longitud de esta instrucción, usted introduce un valor inicial para verificar el proyecto.

• El tag product_id contiene los caracteres del código de barras que usted desea encontrar.

Tipo de datos: PRODUCT_INFO

Nombre PRODUCT_INFO

Descripción Identifica el destino de un ítem con base en una cadena ASCII de caracteres que identifica el ítem.

Miembros

Nombre Tipo de datos

Estilo Descripción

Product_ID Cadena Caracteres ASCII que identifican el ítem

Carril DINT Decimal Destino del ítem según su ID

Para crear un nuevo tipo de datos:

Controller Your_Project

Tasks

Motion Groups

Trends

Data Types

User Defined

Haga clic con el botón derecho del mouse y seleccione New Data Type.

+

+

+

+

43038

Publicación 1756-PM013B-ES-P – Julio 2008 21

Capítulo 2 Procesamiento de caracteres ASCII

Identificación del número de carril

Cuando la instrucción FSC encuentra el ID de producto dentro de la matriz sort_table, la instrucción establece el bit FD. El miembro POS indica el número de elemento dentro de la matriz sort_table de la coincidencia. El miembro LANE correspondiente indica el número de carril de la coincidencia.

Con base en el valor POS, la instrucción MOV mueve el número de carril correspondiente al tag de carril. El controlador usa el valor de este tag para encaminar el ítem.

Después de que la instrucción MOV establece el valor del tag de carril, la instrucción RES restablece la instrucción FSC para que pueda buscar la siguiente ID de producto.

Rechazo de caracteres incorrectos

Si la instrucción FSC no encuentra la ID de producto dentro de la matriz sort_table, la instrucción establece el bit DN. La instrucción MOV mueve 999 al tag de carril para notificar al controlador que rechace o reencamine el ítem.

Después de que la instrucción MOV establece el valor del tag de carril, la instrucción RES restablece la instrucción FSC para que pueda buscar la siguiente ID de producto.

43038

43038

22 Publicación 1756-PM013B-ES-P – Julio 2008

Procesamiento de caracteres ASCII Capítulo 2

Introducción de números de ID de productos y números de carril

En la matriz sort_table, introduzca los caracteres ASCII para identificar cada ítem y el número de carril correspondiente al ítem.

Verificación de los caracteres de código de barras

Use una instrucción de comparación (EQU, GEQ, GRT, LEQ, LES, NEQ) para verificar los caracteres específicos.

• Los valores hexadecimales de los caracteres determinan si una cadena es menor o mayor que otra cadena.

• Cuando las dos cadenas están clasificadas, como en un directorio telefónico, el orden de las cadenas determina cuál es mayor.

Use una de estas instrucciones de comparación:

Nombre del tag Valor

sort_table {…}

sort_table[0] {…}

sort_table[0].Product_ID Caracteres ASCII que identifican el primer ítem

sort_table[0].Lane Número de carril del ítem

sort_table[1] {…}

sort_table[1].Product_ID Caracteres ASCII que identifican el siguiente ítem

sort_table[1].Lane Número de carril del ítem

+

+

+

+

Caracteres ASCII Códigos hexadecimales

1ab $31$61$62

1b $31$62

A $41

AB $41$42

B $42

a $61

ab $61$62

Para ver si esta cadena es: Introduzca esta instrucción:

Igual a caracteres específicos EQU

Diferente a caracteres específicos NEQ

Mayor que caracteres específicos GRT

Mayor o igual que caracteres específicos GEQ

Menor que caracteres específicos LES

Menor o igual que caracteres específicos LEQ

mayor

menor

AB < B

a > B

Publicación 1756-PM013B-ES-P – Julio 2008 23

Capítulo 2 Procesamiento de caracteres ASCII

Por ejemplo:

Conversión de un valor Usted puede convertir la representación ASCII de un valor en un valor DINT o REAL que se puede usar en su aplicación.

• Las instrucciones STOD y STOR saltan cualquier control inicial o caracteres no numéricos (excepto el signo menos frente a un número).

• Si la cadena contiene múltiples grupos de números separados por delimitadores (por ej., / ), las instrucciones STOD y STOR convierten solamente el primer grupo de números.

Por ejemplo, para convertir caracteres ASCII en un valor con punto flotante (coma flotante):

Por ejemplo, para convertir caracteres ASCII en un valor entero:

EJEMPLO Cuando bag_flt_and_dest es igual a gate[1], xfer[1] se activa. Esto hace que la maleta se encamine a la compuerta requerida.

42808

EJEMPLO Después de leer el peso de la báscula (weight_read.EM se activa) la instrucción STOR convierte los caracteres numéricos en weight_asco en un valor REAL y almacena el resultado en el peso.

42810

EJEMPLO Cuando MV_read.EM se activa, la instrucción STOD convierte el primer conjunto de caracteres numéricos en MV_mg en un valor entero. La instrucción salta el carácter de control inicial ($06) y se detiene en el delimitador ( \ ).

42620

24 Publicación 1756-PM013B-ES-P – Julio 2008

Procesamiento de caracteres ASCII Capítulo 2

Decodificación de un mensaje ASCII

Usted puede extraer y convertir un valor de un mensaje ASCII que contiene múltiples valores. Por ejemplo, un mensaje puede ser similar a éste:

La instrucción FIND ubica caracteres dentro de una cadena.

• Source contiene el tag de cadena que se va a buscar.

• Result contiene la ubicación donde la instrucción FIND ubica el valor de búsqueda que usted especifica.

La instrucción MID identifica un grupo de caracteres dentro de una cadena y los coloca en su propio tag de cadena.

• Source es el mismo tag de cadena que para la instrucción FIND.

• Los valores Qty indican a la instrucción MID cuántos caracteres hay que extraer de Source.

• El valor Start es igual que el valor Result proveniente de la instrucción FIND. Esto indica a la instrucción MID dónde debe comenzar a extraer caracteres de Source.

• Destination contiene los caracteres que usted ubicó.

Primer valor Segundo valor Tercer valor

[Ctrl-F] número de mensaje

\ Tecla F \ Acción de la tecla F

[CR]

Carácter de control Delimitador Delimitador Carácter de terminación

42810

Renglón A: Búsqueda y conversión de un valor con punto flotante (coma flotante)

42810

Renglón B: Búsqueda y conversión de un valor entero

Publicación 1756-PM013B-ES-P – Julio 2008 25

Capítulo 2 Procesamiento de caracteres ASCII

Creación de una cadena Este ejemplo crea una cadena que contiene dos variables. Por ejemplo, un terminal de operador puede requerir una cadena similar a esta:

• Para incluir más variables, use instrucciones adicionales INSERT o CONCAT.

• Si usted necesita un valor con punto flotante (coma flotante), use una instrucción RTOS en lugar de la instrucción DTOS.

• La cadena final no incluye el carácter de terminación. Cuando envíe la cadena use una instrucción AWA para añadir automáticamente el carácter de terminación.

[Ctrl-F] número de mensaje

\ dirección [CR]

Carácter de control Delimitador Carácter de terminación

EJEMPLO Para activar un mensaje en un terminal MessageView, el controlador envía al terminal un mensaje en este formato: [Ctrl-T] número de mensaje \ dirección [CR]

Cuando send_msg está activado, el renglón hace lo siguiente:

• La primera instrucción DTOS convierte el número de mensaje en caracteres ASCII.

• La instrucción INSERT inserta el número de mensaje (en ASCII) después del carácter de control [Ctrl-T]. (El código hexadecimal de Ctrl-T es $14.)

• La segunda instrucción DTOS convierte el número de nodo del terminal en caracteres ASCII.

• La instrucción CONCAT coloca el número de nodo (en ASCII) después del signo diagonal [ \ ] y almacena la cadena final en msg.

Para enviar el mensaje, una instrucción AWA envía el tag msg y añade el retorno de carro [CR].

42813

26 Publicación 1756-PM013B-ES-P – Julio 2008

Procesamiento de caracteres ASCII Capítulo 2

Notas:

Publicación 1756-PM013B-ES-P – Julio 2008 27

Códigos de caracteres ASCII

Carácter Dec. Hex.

[ctrl-@] NUL 0 $00

[ctrl-A] SOH 1 $01

[ctrl-B] STX 2 $02

[ctrl-C] ETX 3 $03

[ctrl-D] EOT 4 $04

[ctrl-E] ENQ 5 $05

[ctrl-F] ACK 6 $06

[ctrl-G] BEL 7 $07

[ctrl-H] BS 8 $08

[ctrl-I] HT 9 $09

[ctrl-J] LF 10 $l ($0A)

[ctrl-K] VT 11 $0B

[ctrl-L] FF 12 $0C

[ctrl-M] CR 13 $r ($0D)

[ctrl-N] SO 14 $0E

[ctrl-O] SI 15 $0F

[ctrl-P] DLE 16 $10

[ctrl-Q] DC1 17 $11

[ctrl-R] DC2 18 $12

[ctrl-S] DC3 19 $13

[ctrl-T] DC4 20 $14

[ctrl-U] NAK 21 $15

[ctrl-V] SYN 22 $16

[ctrl-W] ETB 23 $17

[ctrl-X] CAN 24 $18

[ctrl-Y] EM 25 $19

[ctrl-Z] SUB 26 $1A

ctrl-[ ESC 27 $1B

[ctrl-\] FS 28 $1C

ctrl-] GS 29 $1D

[ctrl-^] RS 30 $1E

[ctrl-_] US 31 $1F

SPACE 32 $20

! 33 $21

“ 34 $22

# 35 $23

$ 36 $24

% 37 $25

& 38 $26

‘ 39 $27

( 40 $28

) 41 $29

* 42 $2A

+ 43 $2B

, 44 $2C

- 45 $2D

. 46 $2E

/ 47 $2F

0 48 $30

1 49 $31

2 50 $32

3 51 $33

4 52 $34

5 53 $35

6 54 $36

7 55 $37

8 56 $38

9 57 $39

: 58 $3A

; 59 $3B

< 60 $3C

= 61 $3D

> 62 $3E

? 63 $3F

Carácter Dec. Hex.

@ 64 $40

A 65 $41

B 66 $42

C 67 $43

D 68 $44

E 69 $45

F 70 $46

G 71 $47

H 72 $48

I 73 $49

J 74 $4A

K 75 $4B

L 76 $4C

M 77 $4D

N 78 $4E

O 79 $4F

P 80 $50

Q 81 $51

R 82 $52

S 83 $53

T 84 $54

U 85 $55

V 86 $56

W 87 $57

X 88 $58

Y 89 $59

Z 90 $5A

[ 91 $5B

\ 92 $5C

] 93 $5D

^ 94 $5E

_ 95 $5F

Carácter Dec. Hex.

‘ 96 $60

a 97 $61

b 98 $62

c 99 $63

d 100 $64

e 101 $65

f 102 $66

g 103 $67

h 104 $68

i 105 $69

j 106 $6A

k 107 $6B

l 108 $6C

m 109 $6D

n 110 $6E

o 111 $6F

p 112 $70

q 113 $71

r 114 $72

s 115 $73

t 116 $74

u 117 $75

v 118 $76

w 119 $77

x 120 $78

y 121 $79

z 122 $7A

{ 123 $7B

| 124 $7C

} 125 $7D

~ 126 $7E

DEL 127 $7F

Carácter Dec. Hex.

29

Publicación 1756-PM013B-ES-P - Julio 2008 32 Sustituye la publicación 1756-PM013A-ES-P - Julio 2007 Copyright © 2008 Rockwell Automation, Inc. Todos los derechos reservados. Impreso en EE.UU.

Servicio de asistencia técnica de Rockwell Automation

Rockwell Automation proporciona información técnica en la web para ayudarle a usar sus productos. En http://support.rockwellautomation.com, encontrará manuales técnicos, respuestas a preguntas formuladas frecuentemente, notas técnicas y de aplicación, ejemplo de códigos y vínculos a paquetes de servicio de software, además de la función MySupport, que podrá personalizar para aprovechar al máximo estas herramientas.

Con el fin de brindarle un nivel adicional de asistencia técnica por teléfono para la instalación, configuración y resolución de problemas, ofrecemos los programas TechConnect Support. Para obtener más información, comuníquese con el distribuidor local o con el representante de Rockwell Automation, o visite http://support.rockwellautomation.com.

Asistencia para la instalación

Si tiene algún problema durante las primeras 24 horas tras la instalación, revise la información contenida en este manual. También puede comunicarse con un número especial de asistencia al cliente y obtener ayuda inicial para la puesta en marcha de su producto.

Procedimiento de devolución de productos nuevos

Rockwell prueba todos sus productos para asegurar que estén en perfecto estado de funcionamiento cuando se envían de la fábrica. Sin embargo, si el producto no funciona y necesita devolverlo:

Estados Unidos +1.440.646.3434Lunes a viernes, de 08:00 a 17:00, hora oficial del Este de los EE.UU.

Fuera de Estados Unidos

Para la resolución de dudas técnicas, comuníquese con su representante local de Rockwell Automation.

Estados Unidos Comuníquese con el distribuidor. Deberá proporcionar al distribuidor un número de caso de asistencia al cliente (llame al número de teléfono anterior para obtener uno) a fin de completar el proceso de devolución.

Fuera de Estados Unidos

Comuníquese con el representante local de Rockwell Automation para obtener información sobre el procedimiento de devolución.