Sunteți pe pagina 1din 32

Cadenas ASCII de controladores

Logix5000

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)
Información importante para el usuario
Las 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.

Identifica información sobre prácticas o circunstancias que entrañan peligro de explosión según
ADVERTENCIA
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.
Identifica información sobre prácticas o circunstancias que pueden provocar lesiones personales,
ATENCIÓN
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 En el equipo o dentro del mismo puede haber etiquetas (por ejemplo, en el variador o en el motor)
QUEMADURA
para advertir que determinadas superficies pueden alcanzar temperaturas peligrosas.

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.
Tabla de contenido

Prefacio Finalidad de este manual. . . . . . . . . . . . . . . . . . . . . . . . . . . . 5


Cómo usar este manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

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

Capítulo 2
Procesamiento de caracteres Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
ASCII Extracción de una parte de un código de barras. . . . . . . . . . 19
Búsqueda de un código de barras . . . . . . . . . . . . . . . . . . . . 20
Creación del tipo de datos PRODUCT_INFO . . . . . . . . . . 21
Búsqueda de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . 21
Identificación del número de carril . . . . . . . . . . . . . . . . . 22
Rechazo de caracteres incorrectos. . . . . . . . . . . . . . . . . . 22
Introducción de números de ID de productos y
números de carril. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Verificación de los caracteres de código
de barras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Conversión de un valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Decodificación de un mensaje ASCII . . . . . . . . . . . . . . . . . . 25
Creació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 Haga clic con el botón derecho Haga clic con el botón derecho del ratón
aparece en la pantalla o en un del ratón en User-Defined … en el elemento denominado
ejemplo User-Defined.
en courier información que debe proporcionar Haga clic con el botón derecho Debe identificar el programa adecuado
según su aplicación (una variable) del ratón en en su aplicación. Habitualmente, se
name_of_program … 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.

Conexión del puerto serie del controlador al dispositivo ASCII

42237

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.

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


Capítulo 1 Comunicación con un dispositivo ASCII

Conexión del dispositivo 1. En el puerto serie del dispositivo ASCII, determine cuáles pines
envían señales y cuáles reciben señales.
ASCII
2. Conecte los pines de envío a los pines de recepción
correspondientes y conecte los puentes.

Si las comunicaciones Cablee los conectores


Tienen handshake
Dispositivo ASCII Controlador

1 CD 1 CD

2 RDX 2 RDX

3 TXD 3 TXD
4 DTR 4 DTR
COMMON COMMON

6 DSR 6 DSR

7 RTS 7 RTS

8 CTS 8 CTS

9 9 42231

No tienen handshake
Dispositivo ASCII Controlador

1 CD 1 CD

2 RDX 2 RDX

3 TXD 3 TXD
4 DTR 4 DTR
COMMON COMMON

6 DSR 6 DSR

7 RTS 7 RTS

8 CTS 8 CTS

9 9 42232

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

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

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


Comunicación con un dispositivo ASCII Capítulo 1

Configuración del puerto 1. En la barra de herramientas en línea, en el proyecto del


controlador, haga clic en el botón del controlador.
serie

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:

Si Y Y éste es el Seleccione Entonces


No está usando No Handshaking
un módem
Está usando un Ambos módems en un vínculo Full Duplex
módem punto a punto son full-duplex
El módem maestro es controlador maestro. Full Duplex
full-duplex mientras que el
controlador esclavo Half Duplex Marque la casilla de selección
módem esclavo es
half-duplex Continuous Carrier

Todos los módems en el Half Duplex Desmarque la casilla de


sistema son half-duplex selección Continuous Carrier
(opción predeterminada).

• 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.

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


Capítulo 1 Comunicación con un dispositivo ASCII

Configuración del 1. Seleccione la ficha User Protocol.


protocolo de usuario

42252

• 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.

Si el dispositivo Entonces Notas


envía
Un carácter de • En el cuadro de texto Termination Para caracteres
terminación Character 1, escriba el código ASCII imprimibles, tales
hexadecimal del primer carácter. como 1 o A,
• En el cuadro de texto Termination escriba el carácter.
Character 2, escriba $FF.
Dos caracteres de En los cuadros de texto Termination
terminación Character 1 y 2, escriba el código ASCII
hexadecimal de cada carácter.

• Para la instrucción AWA, introduzca los caracteres añadidos.


Para los códigos ASCII, consulte la contraportada de este
manual.

Para añadir Entonces Notas


Un carácter • En el cuadro de texto Append Para caracteres
Character 1, escriba el código ASCII imprimibles, tales
hexadecimal del primer carácter. como 1 o A,
• En el cuadro de texto Append escriba el carácter.
Character 2, escriba $FF.
Dos caracteres En los cuadros de texto Append
Character 1 y 2, escriba el código ASCII
hexadecimal de cada carácter.

• Si el dispositivo ASCII se configura para control de flujo


XON/XOFF, marque la casilla de selección XON/XOFF.

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:

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.

2. Haga clic en OK.

Creación de tipos de datos Los caracteres ASCII se almacenan en tags que usan un tipo de datos
de cadena.
de cadena

42811

42812

Puede usar el tipo de datos STRING predeterminado. o bien Puede crear un nuevo tipo de datos de cadena para almacenar
Almacena hasta 82 caracteres. el número de caracteres que usted haya definido.

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 • Los datos se truncan.
pequeño • LEN no se cambia.
Hace un tipo de datos de cadena más Los datos y LEN se ponen en cero.
grande

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.

42233

Lectura de caracteres 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.
desde el dispositivo • 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:

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.

bar_code_count.EN ACB
/ ASCII Chars in Buffer EN
Channel 0 DN
SerialPort Control bar_code_count ER
Character Count 0

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.

GEQ ARD
Grtr Than or Eql (A>=B) ASCII Read EN
Source A bar_code_count.pos Channel 0
0 Destination bag_bar_code DN
Source B 24 ''
SerialPort Control bar_code_read ER
String Length 24
Characters Read 0
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.

MV_line.EN ABL
/ ASCII Test For Buffer Line EN
Channel 0 DN
SerialPort Control MV_line ER
Character Count 0

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.FD ARL
ASCII Read Line EN
Channel 0
Destination MV_msg DN
''
SerialPort Control MV_read ER
String Length 12
Characters Read 0

42226

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


Comunicación con un dispositivo ASCII Capítulo 1

Envío de caracteres al Cuando usted envía caracteres al dispositivo, necesita especificar si


siempre enviará el mismo número de caracteres o si desea añadir
dispositivo 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.

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 AWA
ASCII Write Append EN
Channel 0
Source string[1] DN
'$1425\1'
SerialPort Control temp_high_write ER
String Length 5
Characters Sent 6
42229

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

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 AWT
ASCII Write EN
Channel 0
Source string[2] DN
'$142224\01$r'
SerialPort Control temp_low_write ER
String Length 9
Characters Sent 9
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.

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 MOV AWA


Move ASCII Write Append EN
Source alarm_msg.LEN Channel 0
5 Source alarm_msg DN
Dest alarm_write.LEN '$1425\1'
5 SerialPort Control alarm_write ER
String Length 5
Characters Sent 6
42229

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

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 MOV AWT


Move ASCII Write EN
Source MV_msg.LEN Channel 0
10 Source MV_msg DN
Dest MV_write.LEN '$161365\8\1$r'
10 SerialPort Control MV_write ER
String Length 10
Characters Sent 10
42229

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


Comunicación con un dispositivo ASCII Capítulo 1

Introducción de caracteres
ASCII 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.

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

42616

Aparece un cuadro de entrada de texto.

Signo de dólar ($24)


Comillas sencillas ($27)
Salto de línea ($0A)
Nueva línea ($0D$0A)
Avance de página ($0C)
Retorno de carro ($0D)
Tab ($09)

42615

El número de caracteres que usted ve en la El número máximo de caracteres que puede


ventana. Es igual que el miembro LEN del contener el tag de cadena.
tag de cadena.

2. Introduzca los caracteres para la cadena.

3. Haga clic en OK.

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 Por ejemplo, un código de barras puede contener información acerca
de una maleta en un transportador en un aeropuerto. Para verificar el
un código de barras 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 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
barras 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).

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

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.

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

Abra este proyecto.


43039

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


Procesamiento de caracteres ASCII Capítulo 2

Creación del tipo de datos PRODUCT_INFO


Para crear un nuevo tipo de datos:
Cree este tipo de datos definido por el usuario.
+ Controller Your_Project Tipo de datos: PRODUCT_INFO
+ Tasks Nombre PRODUCT_INFO

+ Motion Groups Descripción Identifica el destino de un ítem con base en una cadena ASCII de
caracteres que identifica el ítem.
Trends
Miembros
Data
− Types Nombre Tipo de Estilo Descripción
datos
User Defined
+ Product_ID Cadena Caracteres ASCII que identifican el ítem

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


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

Búsqueda de caracteres

43038

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.

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


Capítulo 2 Procesamiento de caracteres ASCII

Identificación del número de carril

43038

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

43038

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.

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.

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

Verificación de los Use una instrucción de comparación (EQU, GEQ, GRT, LEQ, LES,
NEQ) para verificar los caracteres específicos.
caracteres de código • Los valores hexadecimales de los caracteres determinan si una
de barras 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.

Caracteres ASCII Códigos


hexadecimales
1ab $31$61$62
1b $31$62
m m A $41
e a
n y AB $41$42 AB < B
o o
B $42
r r
a $61 a>B
ab $61$62

Use una de estas instrucciones de comparación:

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

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


Capítulo 2 Procesamiento de caracteres ASCII

Por ejemplo:

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

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):

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

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

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 Usted puede extraer y convertir un valor de un mensaje ASCII que


contiene múltiples valores. Por ejemplo, un mensaje puede ser similar
mensaje ASCII a éste:

Primer valor Segundo valor Tercer valor

[Ctrl-F] número de \ Tecla F \ Acción de [CR]


mensaje la tecla F

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

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

42810

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ó.

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:

[Ctrl-F] número de \ dirección [CR]


mensaje

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

• 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.

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. Carácter Dec. Hex. Carácter Dec. Hex. Carácter Dec. Hex.
[ctrl-@] NUL 0 $00 SPACE 32 $20 @ 64 $40 ‘ 96 $60
[ctrl-A] SOH 1 $01 ! 33 $21 A 65 $41 a 97 $61
[ctrl-B] STX 2 $02 “ 34 $22 B 66 $42 b 98 $62
[ctrl-C] ETX 3 $03 # 35 $23 C 67 $43 c 99 $63
[ctrl-D] EOT 4 $04 $ 36 $24 D 68 $44 d 100 $64
[ctrl-E] ENQ 5 $05 % 37 $25 E 69 $45 e 101 $65
[ctrl-F] ACK 6 $06 & 38 $26 F 70 $46 f 102 $66
[ctrl-G] BEL 7 $07 ‘ 39 $27 G 71 $47 g 103 $67
[ctrl-H] BS 8 $08 ( 40 $28 H 72 $48 h 104 $68
[ctrl-I] HT 9 $09 ) 41 $29 I 73 $49 i 105 $69
[ctrl-J] LF 10 $l ($0A) * 42 $2A J 74 $4A j 106 $6A
[ctrl-K] VT 11 $0B + 43 $2B K 75 $4B k 107 $6B
[ctrl-L] FF 12 $0C , 44 $2C L 76 $4C l 108 $6C
[ctrl-M] CR 13 $r ($0D) - 45 $2D M 77 $4D m 109 $6D
[ctrl-N] SO 14 $0E . 46 $2E N 78 $4E n 110 $6E
[ctrl-O] SI 15 $0F / 47 $2F O 79 $4F o 111 $6F
[ctrl-P] DLE 16 $10 0 48 $30 P 80 $50 p 112 $70
[ctrl-Q] DC1 17 $11 1 49 $31 Q 81 $51 q 113 $71
[ctrl-R] DC2 18 $12 2 50 $32 R 82 $52 r 114 $72
[ctrl-S] DC3 19 $13 3 51 $33 S 83 $53 s 115 $73
[ctrl-T] DC4 20 $14 4 52 $34 T 84 $54 t 116 $74
[ctrl-U] NAK 21 $15 5 53 $35 U 85 $55 u 117 $75
[ctrl-V] SYN 22 $16 6 54 $36 V 86 $56 v 118 $76
[ctrl-W] ETB 23 $17 7 55 $37 W 87 $57 w 119 $77
[ctrl-X] CAN 24 $18 8 56 $38 X 88 $58 x 120 $78
[ctrl-Y] EM 25 $19 9 57 $39 Y 89 $59 y 121 $79
[ctrl-Z] SUB 26 $1A : 58 $3A Z 90 $5A z 122 $7A
ctrl-[ ESC 27 $1B ; 59 $3B [ 91 $5B { 123 $7B
[ctrl-\] FS 28 $1C < 60 $3C \ 92 $5C | 124 $7C
ctrl-] GS 29 $1D = 61 $3D ] 93 $5D } 125 $7D
[ctrl-^] RS 30 $1E > 62 $3E ^ 94 $5E ~ 126 $7E
[ctrl-_] US 31 $1F ? 63 $3F _ 95 $5F DEL 127 $7F

29
Servicio de asistencia Rockwell Automation proporciona información técnica en la web para
ayudarle a usar sus productos. En http://support.rockwellautomation.com,
técnica de Rockwell encontrará manuales técnicos, respuestas a preguntas formuladas
Automation 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.

Estados Unidos +1.440.646.3434


Lunes a viernes, de 08:00 a 17:00, hora oficial del Este de los EE.UU.
Fuera de Estados Para la resolución de dudas técnicas, comuníquese con su
Unidos representante local de Rockwell Automation.

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 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 Comuníquese con el representante local de Rockwell Automation para
Unidos obtener información sobre el procedimiento de devolución.

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.

S-ar putea să vă placă și