Está en la página 1de 164

INSTITUTO POLITCNICO

NACIONAL
CENTRO DE INNOVACIN Y
DESARROLLO TECNOLGICO EN
CMPUTO DEL IPN

METODOLOGA PARA EL
DESARROLLO DE APLICACIONES
RFID: UN EJEMPLO PRCTICO

T E S I
S
QUE PARA OBTENER EL GRADO
DE: MAESTRA EN TECNOLOGA DE
CMPUTO

PRESENT
A:
LIC. BEATRIZ PREZ
BERNABE

Directores de
Tesis

M. en C. Eduardo Vega
Alvarado
M. en C. Jess A. lvarez
Cedillo

Mxico, D.F.
2009

Noviembre

SIP-14

INSTITUTO POLITECNICO
SECRETARA DE INVESTIGACiN
ACTA DE REV/S/ON

En la Ciudad de
noviembre

de

Mxico, D.F.
2009

NACIONAL
Y POSGRADO

DE TESIS

siendo las

14:30

horas del da

del mes de

19

se reunieron los miembros de la Comisin Revisora de Tesis designada

por el Colegio de Profesores de Estudios de Posgrado e Investigacin del

CIDETEC

para examinar la tesis de grado titulada:


METODOLOGA

PARA EL DESARROLLO

DE APLICACIONES

RFID: UN EJEMPLO PRCTICO

Presentada por la alumna:


PREZ
Apellido paterno

BEATRIZ

BERNABE
materno

nombre(s<L_) ,.--_,-_,.--------._---,-_,.------,

Con registro:

L.:I

B:.

---Lj__:7:I.........:..:.l
.1......:o...1

aspirante al grado de:


MAESTRA EN TECNOLOGA

DE CMPUTO

_15:::.. 1L.:6:... j_1..::._..9J

Despus de intercambiar opiniones los miembros de la Comisin manifestaron SU APROBACIN DE


LA TESIS, en virtud de que satisface los requisitos sealados por las disposiciones reglamentarias
vigentes.
LA COMISION REVISORA

M.ENC.~

M. EN C. JESUS ANT

Segun
ocal
(Director de Tesis)

M. EN C. JUAN e,

HERRERALaZADA

Suplente

EL PRESIDENTE DEL

.fJ,....J.'yc" .il'
~lfI,.f':':{~:;:."'.

-~"._"J!J..

fNSTITU

ro

S. E. P.

POl!TECNi:O

NAC ONAl

(filTRO Of INNOVAOON y fit~AR~UllO


TtCNOL061CO [N CUMPUTU

INSTITUTO POLITCNICO NACIONAL


SECRETARA DE INVESTIGACIN

Y POSGRADO

CARTA CESIN DE DERECHOS

En la Ciudad de Mxico, D.F el da 30 del mes noviembre del rulo 2009, la que suscribe
Beatriz Prez Bernabe del Programa de Maestra en Tecnologa de Cmputo con nmero de
registro B071569, adscrito a Centro de Innovacin y Desarrollo Tecnolgico

en Cmputo,

manifiesta que es autora intelectual del presente trabajo de Tesis bajo la direccin del M. en C.
Eduardo Vega Alvarado y el M. en C. Jess A. lvarez Cedillo

y cede los derechos del

trabajo intitulado Metodologa para el Desarrollo de Aplicaciones RFID: Un Ejemplo Prctico,


al Instituto Politcnico Nacional para su difusin, con fines acadmicos y de investigacin.

Los usuarios de la informacin no deben reproducir el contenido textual, grficas o datos del
trabajo sin el permiso expreso del autor y/o director del trabajo.

Este puede ser obtenido

escribiendo a la siguiente direccin bperez@ipn.mx. Si el permiso se otorga, el usuario deber


dar el agradecimiento correspondiente y citar la fuente del mismo.

Agradecimien
tos
Principalmente le agradezco a Dios por las bendiciones que me ha dado, al
darme el gozo de contar con una familia que me ama y me apoya en todo
momento de mi vida; tambin quiero agradecer a mi pas, que me ha dado
una formacin profesional y humana.
A mi madre, que ya no est conmigo, y que s estara muy orgullosa de
saber que sus enseanzas y consejos me han ayudado en todo momento
de mi vida.
A mi esposo Enrique, quien ha estado conmigo en todo
momento.
A mi hermana Edith y mis sobrinos Zayra y Fernando, que son parte
fundamental de mi familia y que siempre me han apoyado.
Un agradecimiento especial a m amigo y director de tesis M. en C.
Eduardo Vega, por su apoyo y confianza.
A mi amigos, porque s que puedo contar con ellos y que siempre hemos
salido

adelante,

trabajando

en

equipo

compartiendo

momentos

agradables y tristes, siempre unidos.


Al IPN-CIDETEC, por ser la Institucin que me permiti adquirir mis
conocimientos y experiencia en tecnologa de cmputo.
Un especial agradecimiento al Dr. Miguel Lindig, ya que sin l no estara
realizando este proyecto.

Agradecimien
tos
I

Resume
n
El propsito general de este trabajo es plantear una metodologa para el diseo
e implementacin

de

aplicaciones

utilizando

tecnologa

RFID,

tomando

como ejemplo el desarrollo de un sistema de control de existencias de bienes.


El constante avance de la tecnologa RFID, aunado a un descenso creciente en
los costos implicados en su utilizacin, la han convertido en una alternativa
importante para el diseo de sistemas de identificacin y control en una
diversidad de campos. Esta situacin es la que motiva el desarrollo del
presente trabajo, con la finalidad de establecer una metodologa que sirva de
base para el desarrollo de aplicaciones generales implementadas sobre esta
tecnologa.
Para su desarrollo, este trabajo se divide en dos partes; En la primera de ellas
(Captulos 1,2 y
3) se hace un estudio de las variantes ms importantes de tecnologa RFID,
evalundolas entre s y comparando su desempeo con respecto a otras
tecnologas; as mismo, se hace un anlisis del estado actual del campo o
arte. La segunda seccin (Captulos 4 y 5) describe la metodologa

para

desarrollar aplicaciones basadas en RFID, utilizando como ejemplo un


sistema de control de existencias, mismo que permite mostrar todos los
aspectos fsicos y lgicos involucrados en estos diseos.

II

Abstra
ct
The general purpose of this thesis is the proposal of a methodology for the
design and implementation of applications using RFID technology, having as
an example the development of an inventory control system assets.
The constant development of RFID technologies, in addition to a fall in the cost
derived from its usage, has converted those technologies into an important
alternative for designing identification and control systems. This is the
foundation for the present work, with the final objective of establishing a
methodology as a base for developing general applications implemented in
RFID.
This research includes two sections: the first one (Chapters 1, 2 and 3)
studies the most relevant variations in RFID technology, with an evaluation of
them and their performance in relation with other technologies; besides it
includes an analysis of the state-of-the-art in this field. The second section
(Chapters 4 and 5) describes the methodology for the development of
applications based on RFID, using a system for inventories control as an
example, in order to show every physical and logical aspect involved in these
designs.

III

ndice
General
Glosario ................................................................................................................
............................

VIII

Introduccin

..............................................................................................................................
.........

IX

Antecedentes........................................................................................................
..............................

Planteamiento

del

Problema

...........................................................................................................

XII

Objetivos

de

Trabajo..................................................................................................................
.......

XII

Organizacin

de

la

.................................................................................................................
Captulo

1.

Tecnologa

de

identificacin

por

radiofrecuencia

Tesis
XIII
(RFID).

...........................................14
1.1
Definicin
de
RFID
.................................................................................................................... .14
1.2
Componentes........................................................................................................
.....................14
1.2.1 Etiqueta (Tag)
................................................................................................................. .15
1.2.2 Antenas
.........................................................................................................................
.. 17
1.2.3 Lectores
RFID................................................................................................................. .
18
1.2.4 Rango de Frecuencias y Velocidades
............................................................................18
1.3
Estndares
de
RFID.................................................................................................................. .20
1.4
Conectividad
............................................................................................................................. .
20

ndice
1.5
General

Middleware............................................................................................................
.....................21
1.6
Seguridad
..............................................................................................................................
.....23
1.7
Esquemas
de
Seguridad
........................................................................................ .23

para

1.8
Anticolisin
y
Mltiples
.............................................................................................. 24
Captulo 2. Comparacin de
............................................25

las

Tecnologas

2.1
Comparacin
de
las
Tecnologas
.........................................................25

de
de

2.2
Beneficio
del
Uso
de
.....................................................................................29

RFID
Lecturas

Auto-identificacin
Auto-identificacin

Tecnologa

2.3
Aplicaciones
de
RFID
(sistemas
identificacin).................................................................29

RFID
de

2.3.1 Sistemas de Seguridad


EAS.......................................................................................... .29
2.3.2 Sistemas de
Localizacin.............................................................................................. .29
Captulo
3.
Metodologa
para
.....................................................................32

implementacin

RFID

IV

3.1. Metodologa para la implementacin


RFID.............................................................................32
3.1.1 Costo- Beneficio
............................................................................................................ .33
3.1.2. Identificacin de Soluciones RFID
...............................................................................33
3.1.3. Definicin de Solucin y Desarrollo
Piloto...................................................................34
3.1.4. Evaluacin del proyecto piloto
.....................................................................................35
3.1.5 Plan de
Implantacin.....................................................................................................
.36
3.1.6. Evaluacin de Resultados
............................................................................................. 37
3.2 Descripcin del sistema.
........................................................................................................... 37
3.2.1 Infraestructura Hardware y Software
........................................................................... 37
3.2.2 Arquitectura del Sistema de Desarrollo
.......................................................................38
3.2.3. Funcionamiento
............................................................................................................. 41
3.3 Estudio del Equipo lector RFID
................................................................................................. 41
3.3.1 Transponder (Tarjetas RFID)
......................................................................................... 41
Circuito convertidor de seales TTL a RS232........................................................................45
Captulo 4 Diseo de software
....................................................................................................... .50
4.2 Diseo de la aplicacin.
................................................................................................... .52
Capitulo 5 Experimentacin, Resultados y
Conclusiones..............................................................60
5.1 Experimentacin
............................................................................................................... .60
5.2 Conclusiones
..................................................................................................................... .6

3
5.3 Trabajos a futuro
............................................................................................................... .64
Bibliografa.............................................................................................................
...........................66
Anexo.....................................................................................................................
............................68

ndice de tablas
TABLA 1. 1 CONSUMO DE POTENCIA DE VARIOS SISTEMAS RFID
(AMTEL)..................................................................... 16
TABLA 1. 2 RANGOS DE FRECUENCIA DE RFID
....................................................................................................... . 19
TABLA 2. 1 COMPARACIN ENTRE LA TECNOLOGA DE CDIGO DE BARRAS Y LOS SISTEMAS RFID
.................................... 28
TABLA 2. 2 COMPARACIONES PRIMARIAS DE LAS TECNOLOGAS DE AUTO-ID.
................................................................ 30
TABLA 2. 3 PROVEEDORES DE TECNOLOGA RFID EN MXICO
................................................................................... . 31
TABLA 4. 1 CATALOGO DE LA BASE DE
DATOS........................................................................................................... . 51

VI

ndice de figuras
FIGURA 1. 1 FUNCIONAMIENTO DE RFID
................................................................................................................ . 14
FIGURA 1. 2 ESQUEMA DE UN TRANSPONDER DE RFID
............................................................................................ . 15
FIGURA 1. 3 LECTOR
RFID................................................................................................................................... .
18
FIGURA 1. 4 CAPAS DEL MIDDLEWARE RFID
.......................................................................................................... . 22
FIGURA 1.5 JAULA DE
FARADAY.............................................................................................................................. .
24
FIGURA 2 1 CDIGO DE
BARRAS............................................................................................................................ .
25
FIGURA 3.1 ARQUITECTURA FSICA DEL SISTEMA
..................................................................................................... . 39
FIGURA 3.2 DIAGRAMA DEL SISTEMA
..................................................................................................................... . 40
FIGURA 3. 3 DIAGRAMAS LGICOS DEL SISTEMA
...................................................................................................... . 40
FIGURA 3.4 LECTOR ID12
................................................................................................................................... . 43
FIGURA 3.5 DIAGRAMA DEL CIRCUITO PARA LA ID12
................................................................................................ . 44
FIGURA 3.6 CIRCUITO CONVERTIDOR DE SEALES TTL A RS-232
.............................................................................. 45
FIGURA 3.7 APLICACIN PARA DESARROLLO ESQUEMTICO
....................................................................................... . 46
FIGURA 3.8 DIAGRAMA ESQUEMTICO
................................................................................................................... . 46
FIGURA 3.9 DIAGRAMA PCB
................................................................................................................................ . 47
FIGURA 3.10 PROCESO DE FABRICACIN
................................................................................................................ . 48
FIGURA 3.11 CIRCUITO TERMINADO
....................................................................................................................... . 48
FIGURA 3.12 PRUEBA DE LECTURA DE UN
TAG......................................................................................................... . 49
FIGURA 4.1 DIAGRAMA DE RELACIN ENTIDAD DE LA BASE DE DATOS
........................................................................... 52
FIGURA 4.2 PANTALLA DE USUARIO
........................................................................................................................ . 53
FIGURA 4.3 CONFIGURACIN DE PUERTO
................................................................................................................ . 53
VII

FIGURA 4.4 MEN PRINCIPAL


............................................................................................................................... . 54
FIGURA 4.5 ALTA DE
USUARIO............................................................................................................................... .
54
FIGURA 4.6 AGREGAR O EDITAR OPCIONES DE REA Y CARGO
.................................................................................... . 55
FIGURA 4.7 PANTALLA GENERAL DE MDULO DE ADMINISTRACIN DE PLATILLAS
................................. 55

Y ALTA DE BIENES

FIGURA 4.8 PANTALLA DE ALTA DE UN BIEN


............................................................................................................ . 56
FIGURA 4.9 PANTALLA DE DESCRIPCIN DE PRODUCTO
............................................................................................. . 56
FIGURA 4.10 ASIGNACIN DE BIENES
.................................................................................................................... . 57
FIGURA 4.11 ASIGNACIN DE BIENES A USUARIOS
................................................................................................... . 57
FIGURA 4.12. DUPLICIDAD DEL BIEN
..................................................................................................................... . 58
FIGURA 4.13 MODIFICACIN DE ASIGNACIN
.......................................................................................................... . 58
FIGURA 4.14 VENTANA DE BSQUEDA
................................................................................................................... . 59
FIGURA 4.15 MDULO DE MONITOREO
.................................................................................................................. . 59
FIGURA 5. 1 ASIGNACIN DE IDENTIFICACIN DE IMAGEN
.......................................................................................... . 61
FIGURA 5. 2 SISTEMA DE CONTROL DE EXISTENCIA DE BIENES
................................................................................... . 62

VII

Glosari
o
Antena.- Dispositivo normalmente metlico que provee una inductancia para
emitir ondas de radio frecuencia.
Anti-colisin.- Tcnica para evitar choques por lecturas simultneas entre las
etiquetas activas en un sistema RFID.
Cdigo de barras.- Tipo de identificacin muy ampliamente utilizada para
el manejo de cadenas de suministro, en donde se asigna un cdigo grfico de
acuerdo a las normas internacionales.
EPC.- Cdigo electrnico de producto (Electronic Product Code), definido para
dar un cdigo a nivel mundial de los objetos a travs de las normas ISO.
Frecuencia.- Medida para indicar el nmero de repeticiones de una longitud de
onda en un segundo.
Hardware.- Componentes electrnicos capaces de proporcionar los medios para
procesar las seales.
Middleware.- Software de conectividad que ofrece un conjunto de servicios
que hacen posible el funcionamiento de aplicaciones distribuidas sobre
plataformas heterogneas.
Mitigacin.- Reduccin de la vulnerabilidad, es decir la atenuacin de los daos
potenciales sobre la vida y los bienes causados por un evento.
Modulacin.- Conjunto de tcnicas para transportar informacin sobre una onda
portadora. RFID.-

Identificacin

de

radio

frecuencia

en

un

medio

de

comunicacin a travs de ondas de


radio que permiten la deteccin de objetos de
manera nica.
Tag.- Etiqueta para RFID que contienen un arreglo de capacitores que
almacenan de forma momentnea la energa suficiente para poder responder a
los eventos del lector.
Transceiver.- Circuito electrnico que contiene la etapa de transmisin y
receptor de seal para las ondas de radio frecuencia.
TTL.- Tecnologa TTL (Transistor-Transistor Logic), una tecnologa de
construccin de circuitos electrnicos digitales, con base en niveles de voltaje 0
5 V.

VII
IVI

Introducci
n
Hoy ms que nunca, el desarrollo de la ciencia se ha traducido en
productos
tecnologas

que permiten
de

la

innovar

informacin

de

manera

constante

las comunicaciones; como un ejemplo de

esta tendencia, en el presente trabajo se disea e implementa


aplicacin

para

control

de

las

existencias

basada

en

la

tecnologa

una
de

identificacin por radio frecuencia (RFID: Radio Frecuency Identification


Technology). No cabe duda que esta tecnologa puede aportar numerosas
ventajas; sin embargo, depender en gran medida de la solucin de una serie
de obstculos tales como son los costos, el alcance y capacidad de
almacenamiento de los dispositivos (tarjetas).
Por ello, ltimamente se ha extendido el anlisis ms profundo del
potencial de la tecnologa RFID, sobre todo por iniciativa de las grandes
compaas que requieren de su utilizacin; as, empresas

como Wal-Mart,

Procter & Gamble, Target y Gillette (1) han invertido fuertemente en esta
tecnologa y su futuro es muy prometedor. Esto ha tenido un impacto notable
en la tendencia del mercado hacia su popularizacin, incrementando la
demanda de nuevas

aplicaciones

para

la

identificacin

gestin

de

informacin de entes en general (objetos, personas, animales, equipos, etc.),


lo cual a su vez ha generado que en el mbito acadmico aumente el inters
hacia las implementaciones con esta tecnologa y su combinacin con otras
aplicaciones, especialmente aquellas tipo red para facilitar las actividades por
Internet y aprovechando la visibilidad en tiempo real de la informacin de
productos (1).

I
X

Antecedent
es
Es difcil determinar un punto de partida exacto o un solo inventor para la
tecnologa RFID, ya que su desarrollo se encuentra entrelazado con el de
muchas otras tecnologas aparecidas a lo largo del siglo XX, tales como
las

computadoras,

telfonos

mviles,

redes

LAN inalmbricas,

comunicaciones por satlite, tecnologas de informacin (TI) y GPS, por


mencionar algunas (2); sin embargo, pueden resaltarse algunos sucesos clave,
mismos que se describen en los prrafos siguientes.
En 1939, durante la segunda guerra mundial, los britnicos utilizaron
un radar que permita la deteccin de aviones a gran distancia, por medio de
una antena instalada en el fuselaje de las aeronaves, de manera que diera la
respuesta correcta a una seal de interrogacin

enviada;

as,

un

avin

aliado poda ser distinguido de uno enemigo. Dicho sistema fue conocido
como IFF (Identify Friend or Foe, identificar amigo enemigo), y sirvi de base
para los sistemas actuales de reconocimiento en la aviacin privada y
comercial. Hacia
1950, aparecen los sistemas de largo alcance conocidos como sistemas de
radar, y de comunicaciones por radio frecuencia, iniciando una serie de
investigaciones para explicar cmo identificar objetos remotamente y dando
como resultado el primer Sistema electrnico de vigilancia (EAS) para detectar
robos en grandes almacenes.
En la dcada de los 70 se registra en Estados Unidos la primera patente de
una etiqueta activa conocida como tag, por Mario W. Cardullo, y de un sistema
pasivo RFID por Charles Walton; esta primera etiqueta activa portaba una
memoria re-escribible, mientras que el sistema pasivo permita el acceso
abriendo las puertas sin necesidad de llaves. Otras aplicaciones se originaron
en la automatizacin industrial, la identificacin de los animales y el rastreo de
vehculos, existiendo al mismo tiempo mejoras en las etiquetas con funciones
de escritura en memoria y velocidades mayores de lectura.
As, en 1980 se da la creacin de aplicaciones tiles de logstica, transporte
y rastreo de vehculos, lo cual hace que EU se interese realmente en estos
desarrollos, mientras que los pases europeos se centraron en aplicaciones
industriales y sistemas de corto alcance para controlar animales. Dado el
X

Antecedent
inters
de esta
es

tecnologa se da el control electrnico para el peaje de

autopistas en 1990, mismo que se comenz a utilizar en las autopistas de


Oklahoma y Houston, al tiempo que en Europa surgen los billetes electrnicos,
cuyo uso se fue extendiendo por Asia, frica, Sudamrica y Australia; en esa
misma dcada, RFID se convirti en la tarjeta de claves ms popular como
reemplazo para los tradicionales mecanismos de control de acceso, tales como
llaves metlicas y cerraduras de combinacin.

X
I

Las

denominadas

tarjetas

inteligentes

sin

contacto

proporcionan

informacin sobre el usuario y por tanto, ofrecen un mtodo ms personalizado


de control de acceso, barato y fcil de programar. El avance de la tecnologa
RFID durante esta ltima dcada ha sido vertiginoso, permitiendo fabricar
equipos cada vez ms pequeos, con ms memoria y mayor rango
recepcin/alcance.

X
II

Planteamiento
Problema

del

La tecnologa RFID permite desarrollar aplicaciones confiables y seguras


utilizando interfaces amigables, pero a pesar de sus ventajas evidentes no se
utilizan muchas implementaciones de esta tecnologa en Mxico, debido tanto
a desconocimiento como a los costos implicados actualmente. Por lo anterior,
la mayora de las aplicaciones disponibles se han

desarrollado

para

empresas grandes y organismos gubernamentales, lo que abre un campo


amplio de posibilidades entre las pequeas y medianas empresas (PYMES).
As entonces, es totalmente justificable el establecer una metodologa para el
desarrollo de aplicaciones RFID simples, ejemplificada a travs del diseo e
implementacin de un prototipo de bajo costo formando un sistema de control
de existencia de equipos de cmputo, proporcionando informacin actualizada
y la administracin de entradas y salidas, que permita ser escalable, confiable
y seguro, con una interfaz amigable y considerando su adaptabilidad con otras
tecnologas.

Objetivos
Trabajo

de

Objetivo
General
Considerar

una

metodologa

para

implantar

sistemas

basados

en

tecnologa RFID, definiendo las ventajas y desventajas que puedan tener


respecto a otras soluciones tecnolgicas, as como establecer los elementos
ideales para desarrollar aplicaciones con esta tecnologa.
Objetivos Par ticulares:
o Disear y desarrollar un sistema basado en RFID, para el control
de existencias aplicado a un inventario de equipo de cmputo.
o

Disear la interfaz de comunicacin del sistema.

o Determinar el tipo de informacin que el sistema debe manejar


para llevar el control preciso de existencias.
XI
I

o Definir tipo de tarjeta de radio frecuencia para implementar en


los equipos de cmputo y obtener su reconocimiento.
o Analizar su posible implementacin o compatibilidad para diferentes
fabricantes.

XI
I

Organizacin de la Tesis
Este documento se desarroll analizando los componentes de un
sistema RFID, esto para determinar los efectos de la radio frecuencia de esta
tecnologa en los equipos de oficina y poder determinar la programacin de la
tarjeta y seleccionar el software apropiado para desarrollar la aplicacin y
planear al mismo tiempo el modelo relacional de la base de datos y llevar a
cabo el anlisis de la infraestructura de comunicaciones con el que permitir
realizar la interfaz e implementacin del prototipo, a su vez se llevar el
estudio y anlisis de la metodologa o procedimiento para medir las
actuaciones y elaborar guas de aplicacin para las pruebas de desempeo y
obtener un prototipo final.

XII
I

Captulo 1. Tecnologa de
identificacin por
radiofrecuencia
(RFID).

1.1 Definicin de RFID


En los ltimos aos el uso de los procedimientos de identificacin
automtica (Auto-ID) se ha popularizado en muchas industrias de servicios,
compras y logstica de distribucin, as como en

sistemas de flujo de

materiales. RFID es un sistema que permite la identificacin nica de un


objeto, mediante la transmisin y recepcin remota de datos a travs de ondas
de radio, para el

almacenamiento y recuperacin de la informacin,

utilizando una antena emisora y un transmisor conocido como etiqueta, tal


como se muestra en la Figura 1. 1:

Figura 1. 1 Funcionamiento de
RFID

1.2 Componentes
Un sistema bsico RFID est formado por los siguientes componentes:

Un tag (transponder + etiqueta): consiste en un pequeo circuito con


una mini antena, capaz de transmitir un nmero de serie nico hacia un
dispositivo de lectura, como respuesta a una peticin. Algunas veces puede
incluir una batera.

Una antena como conducto para la comunicacin de datos entre la etiqueta y


el lector.

Un lector (el cual puede ser de lectura o lectura/escritura) compuesto por


una antena, un mdulo electrnico de radiofrecuencia y un mdulo
electrnico de control.

Un controlador o un equipo anfitrin, comnmente una computadora


personal, en la cual
se ejecuta una base de datos y algn software de control.
14

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

1.2.1 Etiqueta (Tag)


La

etiqueta,

tambin

conocido

como

el

transponder

(TRANSmitir/RESponder) (3), se muestra en la Figura 1. 2, y est formada por:

Una memoria para almacenar datos.

Memoria ROM donde se almacenan instrucciones bsicas para su


funcionamiento.
Memoria RAM para almacenar datos durante la comunicacin de flujo de
datos.

Antena que detecta el campo creado por el diseador de la aplicacin, y


del que extrae energa para su comunicacin.

Componentes electrnicos que procesan la seal de la antena y paran


el proceso de datos, como buffers, filtros, etc.

Figura 1. 2 Esquema de un transponder de RFID

La etiqueta contiene informacin para realizar tareas bsicas como


lectura, lectura/escritura o en su caso manipular los datos de la memoria en
alguna forma especfica. En el caso de lectura se tienen datos grabados de
fbrica con un cdigo de identificacin nico (ID), el cual no puede ser
cambiado, mientras que en la lectura/escritura cuentan con informacin
actualizada cada vez que ocurre un evento, y por lo tanto son aplicables para
requerimientos de informacin variable. Existen dos tipos de etiquetas
dependiendo de la energa que utilizan para la comunicacin, las pasivas y las
activas.
15

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

Las etiquetas pasivas se pueden producir a un costo muy bajo y


son de tamao pequeo, debido a que no requieren de energa de la batera,
pues obtienen su energa mediante el aprovechamiento de la energa
electromagntica emitida por el lector. Se activan

16

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

al recibir la potencia emitida por la antena del lector, y su problema principal


es el rango de lectura limitado, que oscila entre decenas de centmetros y
algunos metros. Actualmente estas tarjetas se estn utilizando para remplazar
el sistema de cdigo de barras tradicional.
Tabla 1. 1 Consumo de potencia de varios sistemas RFID (Amtel).
Memoria
Circuito

(bytes)

Distancia
Lectura/escritura

Consumo Frecuencia

ASIC#1

15 cm

10 A

ASIC#2

32

13 cm

600
A

120kH
z

256

2 cm

ASIC#4

256

0.5 cm

6 A

100 cm

ASIC#7

2048

0.3 cm

ASIC#8

1024

10 cm

ASIC#9

100 cm

<10m
A

ASIC#1
0

128

100 cm

1mA

obtienen

activas

energa suficiente

mercancas, control

Transporte pblico

4MHz

mercancas,

4/13.56MH
z

de

lector.

125
kHz
4.91
MHz
13.56

bateras
Este

Flujo de
mercancas

500
A

necesitan
del

Flujo

transporte pblico
1
mA

256

etiquetas

de

128kH
z

< 2 cm

ASIC#6

Las

Flujo

120kH
z

<1
mA
256

Animales ID

de acceso

ASIC#3

ASIC#5

Aplicacin

Control de
acceso Tarjetas
sin contacto
Control de

adicionales,
tipo

ya

de etiqueta

que

no

tiene

la

ventaja de un alcance mayor de comunicacin, e incluso no necesitan que el


lector sea quin inicie la comunicacin; adems permiten procesos de lectura y
reescritura enviando previamente instrucciones al lector y la utilizacin de
memorias ms grandes (existen etiquetas con 1Mb de memoria). Como
desventaja tienen una vida til limitada (menor a 10 aos), dependiendo del
tipo de batera y de la temperatura a la que opera.
Existe una tercera clase de etiquetas llamadas semi-activas o semi-pasivas.
16

Capitulo 1. Tecnologa de identifcacin de Radio

Este tipo de etiqueta se basa en Frecuencia


la potencia de la batera para realizar tareas
simples; sin embargo, todava utiliza el lector de campo electromagntico
al "despertarse" y poder transmitir los datos

17

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

almacenados en la etiqueta de nuevo para el lector. Un ejemplo muy comn


de esta etiqueta es el cobro electrnico de peaje, en uso desde los aos 80. La
Tabla 1 muestra el consumo de potencia de algunas tarjetas comerciales (4).
Las etiquetas se pueden clasificar segn el rango de frecuencia en el que
operan para comunicacin con el lector:
o

LF (baja frecuencia), 120 KHz-134KHz.

HF (alta frecuencia), 13.56 MHz.

UHF (Ultra alta frecuencia), 868.956 MHz.

Microondas, 2.45 GHz.

1.2.2
Antenas
Las antenas son el canal de comunicacin de datos entre la etiqueta y
el lector; su diseo y colocacin constituyen un factor muy importante en la
determinacin

de

la

zona

de

cobertura,

alcance

exactitud

de

la

comunicacin. Por ejemplo, una comunicacin lector- antena lineal ofrece


mayor calidad que una antena circular si la etiqueta no cambia de orientacin
respecto al lector, mientras que la misma antena lineal producir resultados
menos precisos en aplicaciones en las que la orientacin puede variar al azar.
Esto hace que las antenas lineales sean ms adecuadas en situaciones
relativamente estticas, tal como en una lnea de montaje automatizada.

18

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

1.2.3 Lectores RFID


Los lectores (ver Figura 1. 3) constituyen el elemento principal de un
sistema RFID, siendo los encargados de enviar la seal de radiofrecuencia
para detectar las posibles etiquetas en un rango de accin determinado. En
general, existen dos tipos de lectores:

Sistemas con bobina simple,

que sirven para transmitir tanto

energa como datos; son sencillos y econmicos, pero tienen un menor


alcance.

Sistemas interrogadores con dos bobinas, una para transmitir


energa y otra para datos; son ms caros pero alcanzan frecuencias
mayores.

El contacto con el lector proporciona la alimentacin de energa y un


pulso

de

reloj, mientras que la transferencia de datos entre el lector y la

tarjeta suele usar un medio de transmisin serial bidireccional (puerto E/S).


Una de sus principales ventajas es la facilidad de almacenamiento de
informacin, as como su proteccin contra accesos indeseados.

Figura 1. 3 Lector
RFID

1.2.4 Rango de Frecuencias y Velocidades


Uno de los aspectos ms importantes de la etiqueta y un lector de
conexin (acoplamiento) es la frecuencia de operacin, la cual vara
dependiendo de la aplicacin, con base en normas y reglamentos, tratando de
asegurar que no haya interferencia con otras fuentes emisoras, tales como la
televisin o los servicios de radio mviles; es por ello que la eleccin del rango
de frecuencia es uno de los parmetros ms importantes a la hora de planear
19

Capitulo 1. Tecnologa de identifcacin de Radio

Frecuencia
un sistema RFID. La frecuencia de
operacin en aplicaciones RFID se divide en

cuatro rangos,
tablas

de

mismos

asignacin

que

se

resumen

en

la

Tabla

2.

Existen

de radiofrecuencias elaboradas con base en normas

elaboradas en cada pas, de acuerdo con la IEC (International Electrotechnical


Commission), mediante un proceso que se denomina normalizacin de
radiofrecuencia; en Mxico son reguladas por la COFETEL (Comisin Federal de
Telecomunicaciones) (5).

20

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

Las

condiciones

importante

en

ambientales

pueden

desempear

un

papel

la determinacin de la frecuencia de funcionamiento ptimo

para una aplicacin particular. Por ejemplo, el sustrato de las etiquetas que se
adjuntan a objetos tales como latas de refresco, o la presencia de otras ondas
de radio producidas por dispositivos tales como hornos de microondas o
telfonos inalmbricos.
Tabla 1. 2 Rangos de frecuencia de RFID
Tipo
LF, Low
Frecuency

Rango de
frecuencia
Menores de 135 KHz

Observaciones
Baja
potencia,
distancias de

se

utilizan

en

lectura de unos cuantos centmetros y


solo se puede leer un elemento a la vez;
HF,
High

6.765 6796 MHz

Frecuency

se utilizan en accesos a edificios.


Se utilizan en la industria cientfica y
mdica; la
desventaja es que tienen un alcance de
lectura bajo (30 centmetros), su ventaja

7.400 8.800 MHz

es la lectura fcil y sin problemas en


Usado para seguridad de artculos en
tiendas

13.553 y 13.567 MHz

departamentales.
Tarjetas inteligentes, esquemas de
seguridad y
control de acceso. Banda medica,

UHF,
High

Ultra

Frecuency

868 MHz 956 MHz

industrial y cientfica.
Se utiliza en telfonos celulares, para
cadenas
de

suministros

aplicaciones

detallistas. Tienen rangos mayores a


tres metros y se pueden leer cientos de
etiquetas
embargo,

simultneamente,
no

pueden

ser

Sin
ledas

fcilmente en altas concentraciones de

21

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

Microondas

2.45 GHz

Tiene un intervalo amplio de


frecuencias, lo que otorga resistencia
contra los campos electromagnticos
producidos

por

motores

elctricos,

permitiendo su aplicacin en lneas de


produccin; obviamente las tarjetas son
muy

costosas,

pero

pueden

lograr

lecturas de hasta
6
metros.
1.3 Estndares de RFID
Los principales estndares que debe cumplir la tecnologa RFID estn
administrados por las organizaciones EPC (Electronic Product Code) e ISO
(International Organization for Standardization). La organizacin EPC Global (6),
se encarga de establecer los estndares para el uso de cdigos electrnicos de
producto, conjuntamente con EAN (European Article Number) y UCC (Uniform
Code Council), y tiene como objetivo principal reducir el mnimo de contraccin
y escasez de los productos en el mercado, acelerando las ordenes de proceso y
permitiendo el flujo de informacin en tiempo real sobre el consumo y status
de mercancas dentro de la cadena de suministros. Su sistema de numeracin
permite la asignacin de un identificador nico a cualquier objeto fsico.
Por su parte, la ISO maneja tres estndares para RFID:

ISO 14443 para sistemas de contacto.

ISO 15693 para sistemas de proximidad.

ISO 18000 para la interfaz area en una serie de aplicaciones.

1.4 Conectividad
Para el desarrollo de un Sistema de Autentificacin con RFID, es necesario
considerar la conectividad de los lectores, esto es, su capacidad de integrarse
con otras tecnologas existentes. Desde el inicio de esta tecnologa se han
utilizado

comunicaciones

seriales, teniendo como opciones de conectividad


22

las siguientes:

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

23

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

Protocolo RS-232: comunicacin de corto alcance; sus limitantes son la baja


velocidad de comunicacin (de 9600 bps a 115.2 kbps), largo de cable
limitado a 30 metros, falta de control de errores y que la comunicacin es
punto a punto.
Protocolo RS-485: protocolo tipo bus, por lo cual permite a mltiples
dispositivos estar conectados al mismo cable; maneja longitudes de cable de
hasta 1200 metros y velocidades de hasta 2.5 Mbps.
Ethernet.: se considera la mejor opcin, ya que su velocidad es ms que
suficiente para los lectores, adems de la confiabilidad de los protocolos TCP/IP
sobre Ethernet, asegurando la integridad de los datos enviados sobre una
infraestructura comn.
USB.: considerando la casi desaparicin del puerto serial en las computadoras,
algunos proveedores de lectores RFID han habilitado sus equipos para
comunicarse mediante el puerto USB.
Wireless 802.11: esta tecnologa tiene gran aceptacin ltimamente, ya que
no requiere de cables para la comunicacin.
1.5 Middleware
El middleware desempea un papel fundamental en los sistemas RFID,
ya que es el software para la conexin entre el hardware RFID y los sistemas
de tecnologas de informacin; esta capa se encarga de la recoleccin de
datos para su envo, permitiendo filtrar, administrar y enrutar datos de las
redes

RFID

hacia

los

sistemas,

por

lo

que

debe

de

incluir

una

combinacin balanceada de cinco capas (7) (ver Figura 1. 4). Empresas como
Cisco, Oracle, Microsoft, SUN e IBM han desarrollado plataformas middleware,
aprovechando al mximo los productos con que cuentan para dar soluciones
integrales.

24

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

Figura 1. 4 Capas del Middleware RFID

Inter faz de lectores RFID. Debe permitir al usuario configurar,


monitorear y aplicar comandos directamente a los lectores, a travs de una
interfaz comn.
Procesamiento de datos. Una vez que el software de RFID (8) captura los
datos enviados por los lectores, debe ser capaz de filtrar lecturas duplicadas o
errneas y enrutar los datos a su destino correcto.
Integracin de Aplicaciones empresariales. Debe proveer caractersticas
de conectividad, ruteo y mensajes, requeridas para integrar los datos RFID con
otros sistemas existentes.
Administracin de proceso de negocios. Algunos de los beneficios ms
prometedores de RFID se dan al compartir los datos RFID con los socios de
negocio para uso en procesos colaborativos; esto requiere compatibilidad con
protocolos de transporte B2B (Business to Business).
Aplicaciones empresariales. La adopcin de RFID produce mucha
25

Capitulo 1. Tecnologa de identifcacin de Radio

informacin, y el middleware deFrecuencia


RFID es la primera lnea de defensa para
un procesamiento de los datos

26

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

confiable, con la capacidad de hacer balanceo de carga dinmico y reenrutamiento de los datos en caso de que un servidor falle.
1.6
Seguridad
En un momento dado, las mismas ventajas de la tecnologa RFID
representan una amenaza en la privacidad del consumidor: cualquier etiqueta
enva un identificador a cualquier lector cercano, lo que significa que
cualquiera puede extraer informacin personal, degradando la privacidad.
Existen diversas reas conflictivas relacionadas con la tecnologa RFID:

Privacidad personal

Lectura de etiquetas RFID y creacin de duplicados

Espionaje corporativo.
La privacidad de etiquetas RFID desde la perspectiva de la identificacin

se refiere a que slo las aplicaciones autorizadas deben poder identificar las
etiquetas; las lectoras pueden explorar las etiquetas, pero los resultados
obtenidos no deberan tener significado a las aplicaciones a no ser que stas
sean autorizadas. La privacidad desde la perspectiva de la autorizacin se
refiere a tener permisos de acuerdo a una cierta poltica de seguridad.
Las seis categoras de amenazas a las etiquetas
RFID son:
Suplantar la identidad, si un atacante entra como usuario autorizado del
sistema.
1.
2.

Falsificacin de los datos de una etiqueta, cuando el intruso modifica,


aade, borra reordena los datos.

3.

Repudio, cuando un usuario niega una accin y no existe prueba de


que la accin se realiz.

4.

Revelacin de informacin, ocurre cuando la informacin se ve


expuesta a un usuario no autorizado.

Denegacin de servicios, consiste en denegar un servicio a un usuario


vlido.
5.
6.

Elevacin de privilegios, ocurre cuando un usuario sin privilegios un


atacante obtiene privilegios mayores a los que est autorizado.
27

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

1.7 Esquemas
para RFID

de

Seguridad

Desactivar Etiquetas (9). El enfoque ms simple para proteger la privacidad del


cliente consiste en desactivar las etiquetas antes de que sean entregadas
al

consumidor.

Una

vez desactivadas, las etiquetas no pueden ser

reactivadas; una etiqueta puede desactivarse si se

28

Capitulo 1. Tecnologa de identifcacin de Radio


Frecuencia

le enva un comando especial. Este enfoque no es adecuado, ya que una


tecnologa tan poderosa como RFID es utilizada en muchas aplicaciones, lo que
requiere que las etiquetas permanezcan activas cuando estn en posesin del
cliente.
La Jaula de Faraday. Una etiqueta puede ser protegida por medio de una jaula
de Faraday (Figura 1.5), que consiste en un contenedor hecho de malla de
metal, impenetrable a las seales de radio de ciertas frecuencias (10).

Figura 1.5 Jaula de


faraday

Interferencia Activa. Es otra forma de proteger las etiquetas de la vista de


otros; el consumidor tiene un dispositivo que transmite seales de radio para
bloquear o alterar el funcionamiento de cualquier lector RFID cercano. Sin
embargo, este esquema puede causar severas alteraciones en todos los
sistemas RFID del rea, incluso de aquellos cuya aplicacin sea legtima y no
representen un riesgo a la privacidad (11) .
1.8 Anticolisin y Mltiples
Lecturas
Para que un lector de RFID tenga la capacidad de comunicarse con
mltiples tarjetas simultneamente es necesario implementar algoritmos
anticolisin; un lector no sabe cuntas tarjetas se encuentran a su alrededor
antes de emitir una seal de lectura, por ello debe existir un plan de cmo
realizar dichas lecturas y evitar as choques. Existen tres tcnicas anticolisin:
espacial, por frecuencia y en dominio de tiempo. Las tres son utilizadas para
establecer un orden jerrquico, o algn mtodo aleatorio en el sistema.
29

Captulo 2. Comparacin de las Tecnologas de


Auto-identificacin

Existen

diversos

tipos

de

tecnologa

de

captura

identificacin

automtica de datos: almacenamiento magntico (tarjetas de crdito, tickets


de

transporte),

almacenamiento

ptico

(cdigos

de

barras

lineales

matriciales), y almacenamiento electrnico (etiquetas RFID); a continuacin se


presenta un anlisis de algunas de las tecnologas de identificacin existentes,
y se presenta un comparativo de sus principales caractersticas.
2.1 Comparacin de las Tecnologas de Auto-identificacin
Los tres principales tipos de tecnologa de Auto-ID son: cdigos de barras,
memorias de contacto o tambin conocidos como botones de memoria, e
identificacin por radiofrecuencia (RFID).
A.

Cdigos de Barras
El uso del cdigo de barras para obtener informacin de algn producto

tiene ms de 25 aos (12), y durante este tiempo, ha sido la tecnologa ms


utilizada para identificar objetos en reas donde se requiera mantener el
control de existencias de enseres; por ello se puede decir que est en todas
partes. Este sistema realiza la identificacin codificando datos en una imagen
formada por combinaciones de barras y espacios, las cuales son ledas por
equipos pticos a travs de los cuales se pueden comunicar datos a la
computadora tal como se muestra en la Figura 2. 1 Cdigo de barras.

Figura 2. 1 Cdigo de
barras

25

Capitulo 2. Comparacin de las Tecnologas de Autoidentifcacin

Se han inventado alrededor de 270 diferentes simbologas para soportar


requerimientos especficos, de las cuales aproximadamente 50 se utilizan
ampliamente en la actualidad. Cada una de estas simbologas cae en alguna de
las siguientes categoras:
Lineal.- Consiste en lneas verticales, de diferentes anchos, con espacios
blancos que separan dos lneas adyacentes. El mximo nmero de caracteres
que pueden ser codificados es 50.
Do s

dimensiones.-

Esta

simbologa

tiene

la

mayor

capacidad

de

almacenamiento, el mximo nmero de caracteres que pueden ser codificados


es 3,750.
Tres dimensiones.- Este tipo de cdigo de barras es ledo utilizando el
relieve de las barras, es decir, no depende del contraste entre barras obscuras
y espacios; por ello puede incluirse directamente en los productos, como por
ejemplo en llantas o en partes plsticas directamente desde el molde. La
ventaja de estos cdigos es que pueden ser utilizados en ambientes de uso
rudo.
B. Acceso con Memorias de Contacto
Son

dispositivos

fsicos

de

almacenamiento

utilizados

para

leer,

almacenar y modificar datos; actan como una placa identificadora tipo base
de datos porttil, en la que los datos pueden ser ledos y modificados (10). Sus
requerimientos de hardware son un equipo de cmputo, el

elemento de

medicin y el botn de memoria. En general, las memorias de contacto


vienen con un nico nmero de identificacin, aunque presentan una gran
variedad de configuraciones de memoria y se puede almacenar una gran
cantidad de informacin. Su estructura incluye:
o

Una carcasa de acero inoxidable, la cual sirve de tapa y base, sellada


para resistir la humedad, la radiacin y temperaturas extremas.

Un circuito de silicio, el cual almacena informacin.

o Un dispositivo lector mediante el cual los datos se transfieren a


velocidades desde 16.6
26

Capitulo 2. Comparacin de las Tecnologas de Autoidentifcacin

Kbps (esto vara en funcin del fabricante).


o

Bateras en algunos modelos, que garantizan la retencin de datos hasta


por 10 aos a partir de la fecha de fabricacin. Cuando el botn de
memoria lee recibe una pequea

27

Capitulo 2. Comparacin de las Tecnologas de Autoidentifcacin

cantidad de energa adicional, razn por la cual algunos dispositivos


funcionan sin bateras.
A diferencia de otras tecnologas como el cdigo de barras y RFID, en los
botones de memoria se tiene la posibilidad de editar informacin; otra ventaja
es su adaptabilidad para operar en ambientes inestables o bruscos, as como
su alta durabilidad. En lo que respecta a las desventajas, la principal es que
no

son

dispositivos

estndar,

sino

que

dependen

de tecnologas

propietarias; as mismo, la distancia de lectura requiere de contacto fsico para


la captura de datos, lo que a su vez puede provocar interferencias, adems de
que solo puede realizarse una operacin a la vez.
C.

Identificacin por Radiofrecuencia (RFID)


Los sistemas de captura de datos que leen etiquetas RFID, obtienen la

informacin asociada
sistema

de

al

objeto

informacin;

as,

al

que

acompaan,

la

reenvan

al

las etiquetas actan como portadoras de

informacin a lo largo del ciclo de vida de un producto. Esta tecnologa facilita


la

integracin

de

toda la cadena

de

suministros, permitiendo

una

interaccin inteligente entre mltiples actores, (fabricantes o productores,


proveedores, distribuidores, vendedores) que pueden disponer en todo
momento de informacin actualizada sobre cada producto individual.
La tecnologa RFID presenta las siguientes ventajas (13), en relacin a
otras tcnicas de identificacin:

No requiere visibilidad directa, las etiquetas RFID pueden ser ledas a travs
de materiales sin tener lnea de vista.

Las etiquetas se leen automticamente cuando los productos etiquetados


pasan cerca del lector.

Admite

un

amplio

rango

de

capacidades

de

almacenamiento

de

informacin, dependiendo del tipo de etiqueta es posible almacenar desde


unos pocos bits hasta varios kilobits.

Presenta robustez y resistencia a la suciedad y al deterioro fsico.

Posibilita la recoleccin descentralizada de datos, y dependiendo del


28

Capitulo 2. Comparacin de las Tecnologas de Auto-

identifcacin
tipo de etiqueta puede no
ser necesaria la conexin a una base de datos,

ya que es posible almacenar la informacin directamente en la memoria de


las tarjetas.
Posee capacidad de lectura/escritura, lo que permite reprogramacin y
reutilizacin.

29

Capitulo 2. Comparacin de las Tecnologas de Autoidentifcacin

Proporciona mayor seguridad en los datos, ya que permite aplicar


algoritmos de deteccin y correccin de errores, as como de autenticacin
y encriptacin.

Posee

mecanismos

anticolisin

que

permiten

realizar

mltiples

lecturas de forma simultnea.

Ofrecen

mayores

especialmente

en

tasas

de

lectura

que

los

cdigos

de

barra,

las operaciones de alta velocidad, tales como la

clasificacin de empaques.

Presentan gran flexibilidad, ya que el tamao y forma de la tarjeta pueden


adaptarse segn necesidades, adems de facilitar su completa integracin
en el producto durante su fabricacin.

Por lo que respecta a los inconvenientes, estos se mencionan a continuacin:

Su costo actualmente sigue siendo elevado.

Falta an la regulacin de estndares que faciliten su difusin.

Presenta vulnerabilidad al metal y otros materiales conductivos, los


lquidos y a las interferencias electromagnticas de baja frecuencia.

No es posible asegurar la lectura de una sola etiqueta de modo


selectivo; esto es, no puede realizarse la lectura de una etiqueta sin
recibir la lectura de otras estando dentro del radio de cobertura del
interrogador.

Aun es imposible asegurar que todas las etiquetas en el rea de


cobertura de un interrogador han sido ledas.

Tabla 2. 1 Comparacin entre la tecnologa de cdigo de barras y los sistemas RFID


Sistem
a
Tecnologa de Transmisin de
datos
Tamao de memoria

ptica

Electromagntica

Hasta 100 bytes

Hasta 128 kbytes

Escritura

No

Posible

Posicin de escaneo/lectura

Lnea de visin

Sin lnea de visin

Rango de lectura

Hasta varios
metros
Baja

Centmetros a
metros
Alta

Seguridad acceso

Cdigo de barras

RFID

30

Capitulo 2. Comparacin de las Tecnologas de AutoSusceptibilidad al medio identifcacin


Alta
Bajo
ambiente
Anticolisin
No es posible
Posible

31

Capitulo 2. Comparacin de las Tecnologas de Autoidentifcacin

2.2 Beneficio del Uso de Tecnologa RFID


La tecnologa RFID seguro tendr un uso importante en los aos por venir
y seguramente ser en beneficio de la cadena de suministro para poder
atender las exigentes demandas del pblico consumidor. Sin embargo, hoy en
da su aplicacin todava requiere de un anlisis de costo-beneficio profundo
en espera de que la cadena de suministro se prepare y la integre a sus
procesos de negocios y puedan evaluar los beneficios que para ellos como
elementos de la cadena puedan representar para que de esa manera
comprometan las inversiones que se requieren para implantar esta tecnologa.
En los ltimos 50 aos, aproximadamente 1,5 millones de etiquetas RFID
(14) se han vendido en todo el mundo, y se espera que las ventas para el ao
2009 excedan los mil millones, con una estimacin de 1 billn para 2015. La
cadena de suministros es la primera en adoptar la tecnologa RFID para reducir
los costos, registrndose beneficios del 2 al 7% en aumentar sus ingresos de
acuerdo con un estudio realizado por AMR Research (15).
2.3 Aplicaciones de RFID (sistemas de identificacin)
2.3.1 Sistemas de Seguridad EAS
El sistema de vigilancia electrnica de artculos, EAS, es un mtodo muy
eficiente, ya que permite proteger los artculos extrados en comercios y
almacenes; su funcionamiento se basa en

el

empleo

de

etiquetas

detectables electrnicamente cuando atraviesan el rea de cobertura de un


lector, situado a la salida, y que detecta dos estados: etiqueta dentro del
campo ninguna etiqueta en el campo. Los tipos de etiqueta que se
emplean en estos sistemas son: electromagntica, magneto-acstica, por
microondas o por radio frecuencia. Esta tecnologa est siendo ampliamente
usada en los grandes centros comerciales, donde se adiciona a cada artculo, y
gracias a un lector y una gran antena es posible detectar la salida no
autorizada de los bienes disponibles en el local.
2.3.2 Sistemas de Localizacin
La tecnologa RFID puede utilizarse para localizar personas u objetos
32

Capitulo 2. Comparacin de las Tecnologas de Auto-

identifcacin
dentro de un entorno determinado.
Frente a otras tcnicas de localizacin

(WiFi, Bluetooth, ultrasonido, infrarrojo), los sistemas basados en RFID


presentan ventajas; por ejemplo, no necesitan lnea de visin directa con la
etiqueta, son baratos y son rpidos de leer. Sin embargo, el que la tecnologa
RFID no haya sido creada con propsitos de localizacin provoca una serie
de

33

Capitulo 2. Comparacin de las Tecnologas de Autoidentifcacin

inconvenientes, destacando el elevado tiempo de latencia y su pequea


cobertura. La latencia se refiere al tiempo que transcurre desde que una
etiqueta enva su informacin hasta que puede volver a enviarla; la duracin
de este intervalo se debe por un lado a la configuracin de la propia etiqueta,
relacionada con el mecanismo anticolisin, y por otro al tiempo que requiere el
lector para calcular la posicin, ya sea mediante diferencias de retardos o
mediante comparacin de potencias. La Tabla 2.2 muestra las comparaciones
primarias de las tecnologas de Auto-ID.
Tabla 2. 2 Comparaciones primarias de las tecnologas
de Auto-ID.

Modificacin
de
datos
Seguridad de
datos
Cantidad de
datos

Cdigo de
barras

Contacto
de

No modifcables

memori
Modifcable

Mnim
a
Lnea de cdigo
de
barras

Alta

Arriba de
8MB

RFID pasivo

Modifcable
Alta seguridad

Arriba de 64KB

RFID activo

Modifcable
Alta

Arriba de 8MB

caracter
Preci
o
Estndar

Vida til

Distancia de
lectura

Bajo
es

Estables

Corto plazo
lnea de visin
30cm
Cualquier

Interferencia

Alto

Propietario

Medio

Involucrando a

no

una norma

estndar

acordada

Larg
o
Contacto
requerido
Bloqueo

modifcacin

de

en la barras

contacto

Indefnida
Distancia de
hasta
10m.
Puede ser
bloqueo
de contacto o
inclusive el

Muy alto
De propiedad y
la
evolucin de los
estndares
3-5 aos
de vida
abiertos
la
bater
a
Distancia de
hasta
100
m.
La interferencia
es
muy
limitada

ruido

34

Capitulo 2. Comparacin de las Tecnologas de Autoidentifcacin

2.4 Proveedores de Tecnologa RFID en Mxico


Existe una amplia variedad de dispositivos y materiales para implementar
aplicaciones RFID, disponibles en Mxico. Sin embargo, como se mencion
anteriormente, uno de los principales factores que han dificultado la utilizacin
de esta tecnologa es su desarrollo sin estndares, por lo que organismos como
EPC Global, representado en Mxico por la Asociacin Mexicana de Estndares
para el Comercio Electrnico (AMECE), han trabajado para generar normas y
regulaciones que permitan ayudar a los compradores y desarrollar empresas
ms productivas,

resultando en

ventajas

para todos

los actores de la

cadena de suministro y consumo.


Los proveedores de esta tecnologa estn impulsando la definicin de
normas internacionales que se encuentran en fase de investigacin para
impulsar el desarrollo del EPC en Mxico; entre estos destacan (Tabla 2.3):
Tabla 2. 3 Proveedores de Tecnologa RFID en Mxico
Empresas en Mxico
GRUPO HASAR MEXICO

Contacta
r
http://www.grupohasar.com

MAS RFID SOLUTIONS SA DE CV

solutions.com

UNITED BARCODE SYSTEMS DE AMERICA, S.A. http://www.ubscode.com


DE C.V.
LEVICOM, S.A. DE C.V.
yelina@levicom.edc.com.mx
ELECTRONICS TO GO, S.A. DE C.V.

jorgem@egomexico.com

CREADISEO, S.C.

ecobos@creadinet.com.mx

EDUWEB, S.A. DE C.V.

felipe.rangel@entercs.com.mx

ETIFLEX, S.A. DE C.V.

ventas_directas@etifex.com.mx

El potencial del mercado para la tecnologa RFID es amplio, con


posibilidades de aplicacin en diferentes reas, pero principalmente enfocado
en la identificacin de objetos, por

lo que

requiere la participacin

de

proveedores e integradores de soluciones de tecnologas de informacin


para aportar su experiencia; actualmente en Mxico existen empresas como
Nadro, Unilever, Wal-Mart, Casa Cuervo, Elektra, Chedraui, Liverpool, Bimbo y
Soriana, quienes han realizado implementaciones con esta tecnologa.

35

3.1. Metodologa para la


implementacin RFID.

Captulo 3. Metodologa
para
implementacin
RFID

La metodologa a desarrollar intenta cubrir la mayor parte de los puntos


tecnologas que podran estar involucrados en las aplicaciones de esta
naturaleza; la idea es desarrollar las bases que permitan detectar todos los
problemas que se deben resolver cuando se desea implementar un sistema con
tecnologa RFID. Por lo tanto, en esta tesis se presenta como ejemplo una
solucin de prototipo para el control de existencias de productos, que sirva
como caso de estudio.
Consideraciones previas:

En caso de existir una implementacin, medir la situacin actual.

Identificar los procesos previos bsicos susceptibles de mejora.

Recoleccin de datos para cada proceso.

Estimar costos del

proyecto. Durante el
desarrollo:

Control de tiempos, costos y equipo de desarrollo.

Participacin de las reas involucradas.

Medir paso a paso los resultados que se vayan obteniendo.

Estimar desviaciones y hacer ajustes.

Calcular costos involucrados en cada etapa del

proyecto. Despus del desarrollo:


Resultados numricos tras la inversin (costos finales, beneficios
obtenidos).

Conversin de estos datos en valores monetarios.

Analizar su incidencia en ahorro de costos, incremento de ventas,


aumento de mrgenes con respecto a las situaciones anteriores.

32

Captulo 3. Metodologa para


implementacin RFID

Puntos a considerar para integrar una tecnologa RFID:

Comprender las necesidades especficas del negocio.

Conocer diferentes tecnologas de RF, ambiente de uso y tipos de


producto y de embalaje.

Aportar referencia de casos de xito.

Estar asociados con otros sectores de RFID.

Proporcionar una gama de completa de etiquetas, lectores y software.

No intentar cambia un entorno general de la empresa para ajustar una


solucin.

Aportar desarrollo y asistencia continua siempre que sea necesario.

3.1.1 Costo- Beneficio


El primer criterio a considerar es la relacin costo-beneficio, esto es,
minimizar los costos pero cubriendo totalmente los requerimientos. Si bien
para la cuantificacin de los costos simplemente se consideran todos los rubros
en los que se ha invertido, el clculo del beneficio es difcil de medir; sin
embargo, se puede determinar mediante una estimacin de los ahorros
generados por el ordenamiento de los procesos, el incremento de los niveles
de confianza, las rebajas de mano de obra o la satisfaccin del usuario y las
mejoras de comunicacin, entre otros factores.

3.1.2. Identificacin de Soluciones RFID


Para determinar los procesos y aplicar la identificacin de radiofrecuencia
en las reas que se requiera, es necesario identificar los puntos que cambiaran
los procesos de negocio y que a continuacin se mencionan.

En qu reas se considera usar RFID.

Que retos resolver la implementacin.

Como impactar en su entorno de computacin.

Cul ser el beneficio.

Cules son las metas inmediatas y a largo plazo con RFID.

33

Captulo 3. Metodologa para


implementacin RFID

Con esta informacin se integra la estrategia de diseo con la tecnologa


RFID y as proporcionar una infraestructura en la organizacin para su correcta
ejecucin; para su alineacin estructurada se deben considerar los siguientes
lineamientos:

Identificacin del problema y las diferentes reas de oportunidad.

Definir soluciones posibles y su impacto.

Crear un plan la introduccin de la tecnologa que sea acertado y


que este bien soportado.

Evaluacin de resultados.

3.1.3. Definicin de Solucin y Desarrollo Piloto

Esta fase proporciona la oportunidad de probar la solucin en un


ambiente ms controlado, mientras se preparan los planes detallados para la
ejecucin real; el saltar esta etapa traera consecuencias costosas, ya que por
una mala definicin del problema la empresa podra incurrir en esfuerzos
adicionales y riesgos, causando un efecto negativo. Por ello, en esta etapa es
necesario contar con un programa piloto a pequea escala que permitir
determinar cules son los requerimientos potenciales, cambios en los
procesos, costos, beneficios, impacto y riesgos en la introduccin RFID.
Es necesario definir una arquitectura de distribucin con informacin
detallada de la forma en que se recopilar y utilizar la informacin de RFID
dentro de la empresa, as como a largo de la cadena de distribucin.
I.

Preparar los sistemas actuales para manejar los datos


recopilados por RFID

Eliminar datos incorrectos que residan en los sistemas anteriores

Identificar los indicadores clave de desempeo de los procesos ms


importantes y determinar la forma en que los datos RFID pueden
mejorar dichos procesos.

Evaluar las condiciones de recopilacin de datos para determinar la


colocacin optima de los lectores.

Disear la forma en la que los datos sern filtrados, sincronizados y


34

distribuidos.

Captulo 3. Metodologa para


implementacin RFID

35

Captulo 3. Metodologa para


implementacin RFID

Administrar y utilizar los datos generados por RFID

Elaborar un plan con tiempos para el proceso de implantacin de RFID,


comenzando con un proceso sobre el que se tenga un control total.

La aplicacin de las mejoras en incrementos a cadenas de


distribucin complejas puede producir resultados significativos.

II.
Identificar la infraestructura para la recopilacin de datos con las tarjetas
RFID

Seleccionar el software y dispositivos que se utilizarn para recopilar


datos e informar en ellos.

Validar el proyecto de RFID est bien integrado con el resto de


los sistemas empresariales.

III.

Definir la afectacin de su implementacin.

Identificar y resolver las preocupaciones de privacidad de los usuarios

A travs de la combinacin de tecnologa, procesos y polticas


destinadas a proteger la informacin de los usuarios.

La implementacin piloto permitir proporcionar una metodologa eficaz


para verificar la validez de la arquitectura tcnica y del negocio, adems de
proporcionar informacin adicional para los ajustes a la solucin. As mismo,
servir para probar el desempeo del hardware y software permitiendo
identificar las limitaciones de la arquitectura. Por ello es recomendable
estructurar el proyecto piloto de tal forma que los alcances sean delimitados y
acotados a ciertos procesos preseleccionados y tener un mejor control.

3.1.4. Evaluacin del proyecto piloto


Una vez desarrollado el piloto, es necesario evaluar sus resultados antes
de iniciar un proyecto completo de RFID, por lo que se deben considerar los
36

siguientes puntos:

Captulo 3. Metodologa para


implementacin RFID

37

Captulo 3. Metodologa para


implementacin RFID

Arquitectura Tcnica.- La definicin de la arquitectura tcnica debe de ser


robusta y escalable para el manejo de datos generados por las etiquetas de
RFID, por lo que deber de operar en un esquema de 24/7(horas/das) para
apoyar las necesidades de la empresa. As mismo, especificar los modelos de
datos correctos que debern ser capturados y procesados, mismos que
debern ser flexibles y extensibles para que la solucin pueda relacionarse
ms fcilmente con una o varias aplicaciones.
Arquitectura de Negocio u Organizacional.- Los procesos deben de
establecerse correctamente de acuerdo a los objetivos de las reas, grupos de
trabajo y personas participantes, mismos que debern de ser alineados e
integrarlos al proyecto; de igual manera, las

reglas

de

compromiso

responsabilidad debern ser claras para evitar confusin y conducir a la


toma rpida de decisiones.
Identificacin de riesgo y plan de mitigacin.- Es importante tener una
identificacin de riesgos bien trabajada y el plan de mitigacin para identificar
los factores potenciales de amenaza internos y externos, proporcionando
soluciones para minimizar o anular su impacto.
Anlisis de costo-beneficio.- Con el anlisis de costo beneficio se podr
tomar la decisin final para continuar con la siguiente etapa del proyecto, as
como el periodo de retorno de inversin, mientras ms corto sea ste, ms
atractivo ser el proyecto desde el punto de vista financiero.
Aceptacin

del

proyecto.

Los

integrantes

debern

de

conciliar

asegurarse de estar de acuerdo con la solucin propuesta y confirmar su papel


en el desarrollo del proyecto.}

3.1.5 Plan de Implantacin


Para la implantacin del proyecto RFID se debern contemplar los
siguientes puntos:

Establecer primero los proyectos pequeos.

Cimentar los estndares.

Comenzar con un proyecto piloto al nivel de transacciones.

Movimiento de los datos piloto de las transacciones a la


38

Captulo 3. Metodologa para

implementacin
informacin determinante de
la empresa. RFID

Analizar los procesos de la empresa para identificar los valores


potenciales.

39

Captulo 3. Metodologa para


implementacin RFID

3.1.6. Evaluacin de Resultados


Ninguna solucin est completa si no incluye una evaluacin del xito
obtenido en cubrir los requerimientos de inicio. El desarrollo de la mtrica de
los resultados es crtico para garantizar

que

los

datos pertinentes

el

proceso para su captura se han desarrollado y aplicado correctamente.

El

no hacer una mtrica correcta puede significar un problema y requerir la


revisin completa y actualizacin de varios factores como la arquitectura, del
proyecto, el plan de mitigacin 1

y de riesgo 2

y el piloto inclusive. La

definicin de la mtrica
vara por el tipo de aplicacin y los procesos de ser medidos.
3.2 Descripcin del sistema.
Una vez considerada la parte administrativa de la metodologa, se
analizan los componentes fsicos y lgicos de la implementacin.
3.2.1 Infraestructura Hardware y Software
A continuacin se describe la infraestructura utilizada para la realizacin
del ejemplo de esta tesis:
Tarjetas RFID pasivas.- Estos componentes se utilizan para identificar
el producto mediante el nmero de identificacin nico, usando un lector
para intercambiar la informacin; las tarjetas utilizadas para este proyecto
son de tipo pasivas, de diferentes proveedores.
Lector de RFID.- Para que el costo no fuera un factor prohibitivo para su
implementacin se utiliz un prototipo de lectora que permite evaluar esta
tecnologa en los diferentes procesos de control de existencias. Este lector
es un RFID 132Kz con conexin serie RS232, que permite realizar la lectura de tarjetas y enviar a un equipo
los datos del
identificador nico, mismo que permitir enlazar
los objetos.

40

Captulo 3. Metodologa para

Mitigacin.- Abarca todas aquellas acciones tendientes


a reducir la exposicin
implementacin
RFID o la vulnerabilidad de una
comunidad, de un elemento o de un sistema, amenazadas por uno o por varios fenmenos de origen natural o tecnolgico
previsibles. Las principales medidas de mitigacin se conciben en el mediano y largo plazo, e incluyen medidas de
planificacin de desarrollo.
2 Riesgo.- Es la probabilidad de ocurrencia de efectos adversos sobre el medio natural y humano en un rea de
influencia. En trminos de TI es la conjugacin de las caractersticas de amenaza y de las vulnerabilidades; es el clculo
anticipado de perdidas esperables para un fenmeno de origen tecnolgico, que acta sobre el conjunto social y sobre la
infraestructura.
1

41

Captulo 3. Metodologa para


implementacin RFID

Convertidor SerialUSB.- Actualmente la mayora de equipos de cmputo


ya no disponen de puerto serie, por lo que esta es una opcin en caso de
no tener un puerto serial fsico RS232.
Equipo de cmputo.- El equipo debe permitir la interfaz entre hardware y
software para la integracin de los datos en el sistema; esto permite el
almacenamiento y explotacin de la informacin, para controlar las
existencias en general. Para este caso en especial se us una computadora
laptop Vaio, modelo VGN-SZ450FN con procesador Intel Core Duo 2,
@1.83 GHz, 2 GB de RAM, almacenamiento en disco duro de 120GB, y
sistema operativo
Windows
Pack 3.

XP,

Base

datos.

de

Service

Para

esta eleccin

se

consider

el conjunto

de

manejadores de base de datos existentes en el mercado, tanto propietarias


como de cdigo abierto (open source), como por ejemplo: Oracle XE,
Postgres,

y MySQL, entre otros. Finalmente se escogi SQL Server 2005

express, ya que cuenta con una mejor integracin con el entorno de


desarrollo y est disponible en una versin gratuita.
Visual Basic 2008. Herramienta para programacin orientada a objetos, que
cuenta con facilidad de conexin, transparencia para la generacin de
aplicaciones de redes, con una amplia biblioteca de clases disponible al
programador.
Software para diseo de circuitos impresos.- Aplicacin que permite disear
circuitos impresos y esquemas electrnicos actualmente existen varios
paquetes

como

EAGLE (Easily Aplicable Graphical Layout Editor) y

Electronics Workbench, Orcad, ect


3.2.2 Arquitectura del Sistema de Desarrollo
Para proponer un sistema efectivo, proporcionando seguridad y sobre
todo que los componentes sean de bajo costo, es importante considerar en la
metodologa la implantacin los siguientes componentes:
42

Captulo 3. Metodologa para


implementacin RFID

Conectividad.-

Los

componentes

que

se

deben

considerar

para

interconexin son el equipo de cmputo, el lector RFID y las tarjetas


controladoras, mismas que se deben conectar a travs de un cable serial
RS232.

43

Captulo 3. Metodologa para


implementacin RFID

Funcionamiento bsico.- El funcionamiento se basa en uno de los mdulos de


software, que constantemente se encuentra haciendo un muestreo de
peticiones formuladas a la base de datos (BD), desde el lector serial. Cuando
el lector RFID recibe una instruccin se realiza una lectura; para ello se enva
una seal al entorno en bsqueda de emisores RFID, si encuentra una
lectura, obtiene el nmero de identificacin y lo enva a la computadora.

Arquitectura fsica.- El sistema permitir adems llevar la administracin del


personal que labora en la empresa y que tiene asignado alguno de los bienes
controlados por el mismo; para ello se implementarn mdulos de registro de
bienes, de autorizacin de entrada y salida de equipos y de generacin de
reportes de existencia de usuarios y de actividad, tal como se muestra en las
Figura 3.1 y Figura 3.2 , (arquitectura fsica y diagrama general del sistema):

Figura 3.1 Arquitectura Fsica del Sistema

44

Captulo 3. Metodologa para


implementacin RFID

Figura 3.2 Diagrama del


Sistema

Arquitectura Lgica.- Como ya se mencion, el sistema permite el registro de


los bienes y la administracin de los usuarios del sistema, contando con las
opciones para generacin de reportes de altas, bajas y modificaciones, as
como la autorizacin de salida de los bienes; en la Figura 3. 3 se muestra el
diagrama lgico de estos procesos:

45

Captulo 3. Metodologa para


implementacin
Figura 3. 3 Diagramas
lgicos del RFID
sistema

46

Captulo 3. Metodologa para


implementacin RFID

3.2.3. Funcionamiento
El circuito RFID se encarga de sensar etiquetas y emite a travs de sus
terminales la identificacin nica (UID)

del dispositivo detectado, a travs de

uno de sus puertos TTL, y posteriormente realiza la trasformacin de esta


salida al protocolo RS-232, para su conexin con el equipo de cmputo que
alberga el sistema de base de datos. Para la aplicacin especfica que se
desarroll en esta tesis se requiri de un adaptador de USB a RS232, dado que
la computadora careca de este ltimo puerto. Con la idea de reducir los costos
del hardware a lo mnimo posible se busc la tarjeta lectora RFID de menor
costo y complejidad en el mercado mexicano, pero que cumpliera con los
requisitos mnimos del sistema. Sus caractersticas principales son las
siguientes:
-

Mdulo lector RFID de solo lectura

Mdulo de interface serial RS-232

Indicador luminoso de lectura

Envo del UID ledo mediante la interface serial

3.3 Estudio del Equipo lector RFID


3.3.1 Transponder (Tarjetas RFID)
Las tarjetas de RFID empleadas operan a una frecuencia de 125 KHz, y
estn basadas en el estndar ISO 1770 para tarjetas pasivas de lectura; tiene
como dimensiones 85.7mm x
53.98mm, y transmite por medio de una antena de bobina de cobre.
Existente diferentes tarjetas (tags) para la implementacin (16); a
continuacin se describen algunas de ellos. Cabe mencionar que en la mayora
de los casos para adquirir estos productos la compra mnima debe ser 1000
piezas:

47

Captulo 3. Metodologa para


implementacin RFID

Especificaciones:
Dimetr
o:
Grosor
:
Orificio
:
Frecuencia:
Material
:
Temperatura
soportada: de
Temperatura
almacenaje:

34 mm.
8.0 mm.
5.6 mm.
125 kHz
PA6 Alto Impacto
-25 C a +85 C
-40 C a 90 C 1 x
1000h

Tarjeta de proximidad slo


lectura, diseada para
adaptarse a diferentes y
mltiples sistemas de
proximidad 125 kHz

Medidas (Dimetro x
grosor):
Unique
20
Unique
30
Unique
50
Q5 30
Tarjeta de metal.Especfcamente diseado
para uso externo, es ideal
para aplicaciones en metal.
En la parte trasera de la

Q5 50
Frecuencia:
Material
:
Temperatura
soportada:

20 x 2,15 mm.
30 x 2,15 mm.
50 x 2,25 mm.
30 x 2,15 mm.
50 x 2,25 mm.
125 kHz
Policarbonato
-25 C a +70 C

etiqueta ha sido creado para


mejorar la adhesin cuando
se fja con pegamento.

Medidas (Dimetro x
largo): Frecuencia:
Material
:

Transpondedores de 125
kHz que ofrecen una
gran versatilidad para
aplicaciones industriales
y de logstica. Disponible
en diferentes tamaos,
formatos y circuitos.

4mm. x 35,5mm.
125 kHz
Poliamida con fibra de
vidrio
-25 C a +85 C
-25 C a +85 C

Temperatura
soportada:
Temperatura
de
almacenaj
Circuitos
disponibles: 64 bits solo lectura

48

Captulo 3. Metodologa para


implementacin RFID

Medidas (Dimetro x
largo):
Frecuenci
a:Material:
Las etiquetas tipo clavo (Nail
Tag) son transpondedores
robustos que pueden ser
clavados en casi cualquier

Temperatura
soportada:de
Temperatura
almacenaje:
Chips
disponibles:

tipo de madera.

4mm. x
35,5mm.
125 kHz
Poliamida con
fibra de vidrio
-25 C a +85
C
-25 C a +85
CUnique 64
bits
Read
only

.3.2 Lectora de Escritura


El lector ID12 de 125 KHz, codificacin tipo Manchester, (Figura 3.4) es
pequeo y funcional, con dimensiones de 22 x 20 x 6mm, con antena interna y
a un precio sumamente accesible ($474.63); con una antena externa se
pueden alcanzar rangos de lectura de hasta
25 cm. La Figura 3.5 muestra el circuito bsico de conexin:

Caractersticas Fsicas y Operativas


Dimensiones

26 mm x 25 mm x 7 mm

Frecuencia

125 kHz

Formato de la
tarjeta
Codificacin

Compatible con EM 40001

E/S actual
Voltaje de
alimentacin

Manchester 64 bits mdulo


64
5 VDC @ 30 mA nominal
+ 4.6 hasta + 5.4V

Figura 3.4 Lector ID12

49

Captulo 3. Metodologa para


implementacin RFID

Descripcin de Terminales y Formato de Salida


Pin No.

Descripci
n

ASCI
I

Emulacin
magntica

Cero voltios y optimizacin de


condensador

GND 0V

GND 0V

Strap to +5V

Reset Bar

Reset Bar

A antena externa y capacitor de


sintona

Antena

Antena

A antena externa

Antena

Antena

Tarjeta presente

Sin funcin

Tarjeta presente

Uso futuro

Uso futuro

Uso futuro

Selector de formato (+/-)

Strap to GND

Strap to Terminal 10

Dato 1

CMOS

Reloj

Dato 0

Datos TTL
(invertido)

Dato

10

Lgica de 3.1 kHz

Beeper / LED

Beeper / LED

11

Alimentacin CD

+5V

+5V

Diagrama del circuito para la ID12

Figura 3.5 Diagrama del circuito para la ID12

50

Captulo 3. Metodologa para


implementacin RFID

La
costos

decisin
de

de

armar este

circuito

se

origin

por

los

elevados

estos dispositivos; as, se realizaron bsquedas de circuitos

integrados para integrar esta tecnologa sin superar el costo de un dispositivo


disponible en el mercado. As se encontr como opcin el circuito ID12, ya que
sus caractersticas antes mencionadas permiten cubrir los requisitos para la
aplicacin de prueba, as como trabajar con una interfaz serial que facilita la
reduccin de los costos y el realizar pruebas validables con la tecnologa.

Circuito convertidor de seales TTL a


RS-232
El circuito integrado MAX232 cambia los niveles TTL a los del estndar
RS-232 cuando se hace una transmisin, y cambia los niveles RS-232 a TTL
cuando se tiene una recepcin, esto es transforma los niveles de voltaje TTL
de (0V 5V) usados por la comunicacin serial. El circuito tpico se muestra en
la siguiente Figura 3.6:

Figura 3.6 Circuito convertidor de seales TTL a RS-232

Una vez teniendo el circuito y los aditamentos, se procedi a realizar el


esquemtico de las conexiones entre los dispositivos; para apoyo con esa
tarea se us el programa EAGLE
5.4.0, (ver Figura 3.7) que es un software de prueba cuya nica limitante es
51

Captulo 3. Metodologa para

implementacin
RFID
que solo permite desarrollos pequeos.
Dadas las dimensiones
de nuestro

prototipo (placa de circuito impreso, PCB), lo anterior no es un inconveniente.


De igual forma se buscaron las bibliotecas necesarias para poder usar estos
dispositivos con dispositivos tales como el circuito de RFID y las

52

Captulo 3. Metodologa para


implementacin RFID

interfaces serial, de alimentacin y de circuito integrado que se encargarn de


la comunicacin entre la computadora y el dispositivo de RFID.

Figura 3.7 Aplicacin para desarrollo


esquemtico

El esquemtico muestra los elementos interconectados etiquetndolos


para su identificacin, permitiendo verificar que las conexiones de cada
dispositivo correspondan con las sealadas por la especificaciones como se
muestra la Figura 3.8.

Figura 3.8 Diagrama


Esquemtico
53

Captulo 3. Metodologa para


implementacin RFID

Una vez que se verific que las conexiones del prototipo fueran correctas
se procedi a realizar la migracin del esquemtico del diagrama PCB (Figura
3.9), que posteriormente fue impreso sobre una placa fenlica. Para la

impresin se utiliz un papel un tipo especial, donde se dibuja el diagrama y


se pasa a la placa fenlica mediante calor; as queda adherido el dibujo en
la placa, y posteriormente se introduce en un recipiente con agua para
despegar el papel. En la placa quedan las marcas (fotoprint) del diagrama,
mostrando las marcas equivalentes en los dispositivos fsicos y las pistas de las
interconexiones que se vern reflejadas en el circuito impreso.

Figura 3.9 Diagrama


PCB

Una vez que se retira el papel y la placa queda seca, se le sumerge en un


recipiente con una solucin de cloruro frrico y alcohol, para que las zonas
expuestas formen las pistas del circuito. Una vez que la placa adquiere una
coloracin blancuzca se retira de la solucin y se le limpia con alcohol

preferentemente acetona, para retirar los residuos de la tinta de la impresin.


Posteriormente se procede a marcar los hoyos con un punzn con la finalidad
de permitir el acceso a la broca para obtener una cavidad propia para que los
dispositivos queden afianzados y soldar los dispositivos electrnicos, mismos
que a continuacin se enlistan:

5 capacitores 1 F

1 capacitor 1 F cermico

1 Circuito integrado Max 232

1 Circuito ID12 RFID

1 Regulador de voltaje 7805


54

1 Placa PCB

1 Transistor BC547B

2 Conectores de 2 terminales

Captulo 3. Metodologa para


implementacin RFID

55

Captulo 3. Metodologa para


implementacin RFID

1 Conector puerto serie hembra

1 Led

1 Resistencia 470

Las siguientes Figura 3.10 muestran el proceso de fabricacin. El circuito


tiene un led de testigo que enciende cuando realiza una lectura correcta al
recibir la seal de una tarjeta.

Figura 3.10 Proceso de


fabricacin

En la siguiente Figura 3.11 se muestra una fotografa del producto


terminado.

Figura 3.11 Circuito


terminado

Otra prueba realizada consisti en conectar el circuito directamente a una


computadora personal mediante una terminal de comandos, para establecer
los parmetros de conexin y obtener el Id de la tarjeta; esta prueba confirm
el resultado como satisfactorio, por lo que se puede hacer uso del dispositivo.
En la Figura 3.12 siguiente se muestra la pantalla de esta prueba.

56

Captulo 3. Metodologa para


implementacin RFID

Figura 3.12 Prueba de lectura de un tag.

57

Captulo 4 Diseo de
software

En

este captulo se determinan

los mdulos

de software que

se

desarrollaron para la implementacin de control de bienes, para la una


arquitectura de cliente servidor.
4.1 Diseo de la Base de
Datos
El diseo de la base de datos para el sistema se bas en la generacin de
catlogos de los diferentes bienes

que se encuentra en una empresa,

considerando tanto bienes inmuebles como

computadoras.

Para

definir

estos bienes se tom como base la necesidad de identificar los elementos


o propiedades que definen a un bien, considerando lo siguiente:
-

Tipo de
Bien
o

Mobiliario

Escritorios

Sillas

Libreros

Archiveros

Mamparas

Etc.

Equipo de
cmputo

Laptops

Servidores

Impresoras

Scaner

Etc.

De acuerdo a la sub clasificacin del

tipo de bien

se identifican las

propiedades y se genera un esquema que identifique su particularidad; por


ejemplo, tanto una laptop como una computadora de escritorio son equipo
de cmputo, pero cuentan con caractersticas diferentes. Para el control e

identificacin de cada bien se

implement

la tecnologa

de identificacin

mediante radiofrecuencia (RFID).


As mismo, para llevar el control de entradas y salidas de los
bienes

dentro

de

la empresa se consider un catalogo del personal a

quienes se podr hacer asignaciones, y en

50

Captulo 4. Diseo de
software

caso de requerir su salida de la empresa permitirle dicha actividad. Con


base en los puntos anteriores se definieron las diferentes tablas (Tabla 4. 1)
que componen la base de datos:
Tabla 4. 1 Catalogo de la Base de Datos
Son los tipos de grupos que permiten clasificar las
plantilla de los

CatGrupos

bienes.
CatBienes

Integra las sub clasificaciones de los tipos de bienes.

CatBienPropiedades

Catalogo de las propiedades que componen una


plantilla.

CatPropiedades

Catalogo general de todas las propiedades.

CatBienResultado

Catalogo que identifica los bienes.

CatResultados

Valores de las propiedades de cada bien.

CatUsuarios

Catalogo del personal de la empresa.

Catcargos

Catalogo de todos los cargos que existen en la


empresa.

CatAreas

Catalogo de las reas adscritas en la empresa.

CatUsuarioBienResult Catalogo de los bienes asignados a los usuarios.


ado
CatImagenenes

Catalogo de las imgenes de los bienes.

CatUsuariosPermiso

Administracin de los permisos en la aplicacin.

Las tablas antes mencionadas se integraron para obtener el diagrama de


entidad- relacin (Figura 4.1); este diagrama se desarroll con el diseador de
esquemas del

propio Visual Studio .Net, y el motor de base de datos es la

versin de Microsoft SQL Server 2005.

51

Captulo 4. Diseo de
software

Figura 4.1 Diagrama de relacin entidad de la base de datos

4.2 Diseo de la aplicacin.


El sistema est diseado para permitir altas, bajas y modificaciones de los
bienes, integrando tecnologa de identificacin nica con radiofrecuencia; as
mismo, lleva el registro de personal adscrito a la empresa permitiendo las
autorizaciones de salida. As, se integraron diferentes mdulos, mismos que se
describen a continuacin.

52

Captulo 4. Diseo de
software

Pantalla principal.
Ventana de acceso

(Figura 4.2) para el usuario de acuerdo a los roles

definidos, los cuales se mencionan a continuacin.

Figura 4.2 Pantalla de


usuario

Per fil de Administrados de bienes.- El perfil de este usuario permitir


altas, bajas y modificacin de los bienes administrados y del personal al que
se asigne un bien; as mismo,
podr otorgar el permiso de salida de equipo de las instalaciones.
Per fil de Permisos.- El usuario solo podr otorgar permisos de salida del
equipo fuera de las instalaciones.
Per fil de Seguridad.- Tienen como funcin monitorear si un bien tiene
permiso de salir de las instalaciones.
Configuracin general del sistema
Permite configurar el puerto serie para activar el lector RFID, as como
desactivar dicho dispositivo, tal como se muestra en la Figura 4.3 configuracin
de puerto.

53

Figura 4.3 Configuracin de


puerto

Captulo 4. Diseo de
software

54

Captulo 4. Diseo de
software

Men principal
Al acceder al sistema se encuentran el men ( Figura 4.4) que permitir:

Administracin de usuarios

Administracin de bienes

Asignacin de bienes

Bsqueda

Reportes

Figura 4.4 Men


principal

Mdulo de registro de usuarios


Permite el registro del personal adscrito a la empresa considerando

sus

datos particulares tales como nombre, apellidos, sexo, extensin, rea adscrita,
cargo as como una imagen de la persona y su correo electrnico, tal como se
muestra en la siguiente Figura 4.5

55

Figura 4.5 Alta de


Usuario

Captulo 4. Diseo de
software

56

Captulo 4. Diseo de
software

Las opciones de rea y de cargo permiten agregar nuevas opciones, o en


caso necesario modificar dicho campo; para realizar dicha accin solamente se
selecciona la opcin deseada, tal como se muestra en la Figura 4.6 siguiente:

Figura 4.6 Agregar o editar opciones de


rea y cargo

Mdulo de administracin de platillas y alta de bienes


Este mdulo permite crear las plantillas de los tipos de bienes ya sea
mobiliario equipo, as como la modificacin de los catlogos de propiedades
generales y el registro de los nuevos bienes

de acuerdo con las plantillas

creadas tal como se muestra en la Figura 4.7 siguiente.

Figura 4.7 Pantalla general de Mdulo de administracin de platillas y alta de


bienes

Este

mismo

mdulo

permite

dar

de alta

el

bien

indicando

sus

caractersticas especificas tales como marca, modelo, nmero de serie y como


parte principal su identificador nico de radio frecuencia, para efectos del
57

control, tal como se muestra en la Figura 4.8

Captulo 4. Diseo de
software

58

Captulo 4. Diseo de
software

Figura 4.8 Pantalla de alta de


un bien

Para asignar el Id se deber pasar la tarjeta asignada al producto para


dar de alta e iniciar la capturar de datos para la identificacin del bien, tal
como se muestra en la Figura
4.9.

Figura 4.9 Pantalla de descripcin de


producto

Mdulo de asignacin de bienes y permisos


El mdulo de asignacin Figura 4.10 de bienes y permisos muestra
la relacin de usuarios que pertenecen a la organizacin y los bienes que se
59

dieron de alta.

Captulo 4. Diseo de
software

60

Captulo 4. Diseo de
software

Figura 4.10 Asignacin de


bienes

Para asignar el bien nicamente se arrastra el producto hacia el


usuario, con lo que queda asignado de manera automtica, como se muestra
en la Figura 4.11.

Figura 4.11 Asignacin de bienes a


61

usuarios

Captulo 4. Diseo de
software

62

Captulo 4. Diseo de
software

As mismo, si un bien ya se encuentra asignado a un usuario el sistema


ya no permite que este bien se asigne a otra persona; esto evita duplicidad de
asignacin (Figura 4.12).

Figura 4.12. Duplicidad del


bien

Otra funcionalidades de este mdulo es modificar la asignacin quitando y


reasignado a otro usuarios; tambin permite configurar al usuario la
autorizacin de permitir la salida de los bienes o revocar dicha accin (Figura
4.13).

Figura 4.13 Modifcacin de asignacin

63

Captulo 4. Diseo de
software

Mdulo de bsqueda
Permite realizar bsquedas Figura 4.14 de los usuarios o de los bienes
registrados.

Figura 4.14 Ventana de bsqueda

Mdulo de monitoreo.
Monitorea los bienes (Figura 4.15) que solo tienen permisos de
salida de las instalaciones.

Figura 4.15 Mdulo de monitoreo

64

Captulo 5 Experimentacin, Resultados y


Conclusiones

En el presente captulo se exponen los resultados obtenidos al evaluar los


lectores RFID disponibles para el desarrollo de la aplicacin ejemplo, con la
finalidad

de

elegir

el

ms

apropiado

para

dicha

implementacin;

posteriormente se presentan las conclusiones finales y las recomendaciones


para continuar con este trabajo.

5.1 Experimentacin

Para la experimentacin se evaluaron tres lectores:


1.- Lector STMicroelectronics SR176.- Este prototipo fue proporcionado por
la empresa fabricante para su evaluacin por tres meses, y presenta las
siguientes caractersticas:
Caractersticas
Rango de frecuencia
Distanci
a
Lecto
r
Anten
a
Tipo de conector
Voltaj
e
Estnda
r
Preci
o

STMicroelectronics
SR176
Baja frecuencia
LF
(13.56MHz
10 a 20cms
Escritura/lectura
Interna/antena
incorporada
USB
5v
ISO 14443-B
$13,000

Con este dispositivo se realizaron pruebas de lectura y escritura con


tarjetas de control, aprovechando su funcionalidad para el desarrollo de
una aplicacin en Visual Basic .Net
2008 y con SQL server express 2005. Dicho desarrollo consisti en la
Identificacin de personal mediante la asignacin de un nmero de

identificacin (ID), con una tarjeta


electrnica hacia una imagen, tal como se muestra en la figura 5.1.
60

Captulo 5. Experimentacin, Resultados y


Conclusiones

Figura 5. 1 Asignacin de identificacin de imagen

2.-

Lector AGelectronics.- Este prototipo se adquiri en el mercado

nacional para su evaluacin, con un costo de $2,600.00, y presenta las


siguientes caractersticas:

Caractersticas

AG Electronics

Rango de
frecuencia
Distancia

Baja frecuencia LF
(125kHz)
10cms

Lector

Lectura

Antena

Interna

Tipo de conector

Serial

Voltaje

5v

Estndar

ISO 1770

Precio

$2,600

Con este dispositivo se realizaron pruebas nicamente de lectura con


tarjetas de control, aprovechando su funcionalidad para el desarrollo de
una aplicacin en Visual Basic .Net
2008 y con SQL server express 2005. Dicho desarrollo consisti en el
control de existencia de bienes, mediante la
identificacin

ID,

asignacin de un nmero de

de una tarjeta electrnica hacia una imagen como se

muestra en la figura 5.2.

61

Captulo 5. Experimentacin, Resultados y


Conclusiones

Figura 5. 2 Sistema de control de existencia de bienes

3.- Lector prototipo.-

Este prototipo se implement con base a una

tarjeta AGelectronics, tomando en cuenta su diagrama elctrico; as, se


decidi

utilizar

dicho

producto

para identificar su costo de integracin y

compararlo con el de los dispositivos que se encuentran en el mercado. El


prototipo generado cuenta con las siguientes caractersticas:
Caractersticas

Prototipo

Rango de frecuencia
Distancia

Baja frecuencia LF
(125kHz)
10cms

Lector

Lectura

Antena

Interna

Tipo de conector

Serial

Voltaje

5v

Estndar

ISO 1770

Precio

$700

El prototipo se evalu con la aplicacin desarrollada para el control de


existencias de bienes, permitiendo tener la misma funcionalidad y probarlo
con

el

esquema

de

cliente servidor y la aplicacin de monitoreo para

entradas y salidas. De acuerdo a los resultados obtenidos, se puede decir que


esta tecnologa es eficaz y confiable para la implantacin de sistemas para las
pequeas y medianas empresas, con aplicaciones funcionales y de bajo costo.

62

Captulo 5. Experimentacin, Resultados y


Conclusiones

5.2 Conclusiones
El inters por el uso de la tecnologa RFID se ha incrementado en la
actualidad, permitiendo mejorar procesos y reducir costos en las empresas y
reas de gobierno, obtenindose beneficios cada vez mayores. Todo esto ha
motivado la aparicin de diversos fabricantes y el desarrollo de empresas
dedicadas

la

implementacin

implantacin

de

soluciones

para

autoidentificacin y control. Las ventajas que presenta la tecnologa RFID


contra otras opciones para autoidentificacin son evidentes; a pesar de que
existen diferentes propuestas de estandarizacin y an no se cuenta con
regulaciones

en

los

temas

de privacidad y seguridad y su impacto a la

sociedad, se espera que las investigaciones continen abarcando nuevas


reas, y ayudando a complementarse con otras tecnologas.
Del desarrollo de este trabajo de tesis se pudo comprobar la versatilidad y
utilidad del control de presencia y de autoidentificacin construyendo
aplicaciones con dispositivos RFID. La metodologa aqu presentada incluye
todas las etapas del proceso de desarrollo hasta llegar a los usuarios finales,
incluyendo desde los aspectos administrativos (planeacin) hasta la integracin
con dispositivos reales (construccin); as entonces, es importante considerar
una metodologa para estos proyectos, que permita mejorar el proceso y
reducir costos y esfuerzos.
Entre las ventajas que presenta RFID destaca la sencillez de su
implementacin fsica, lo cual permite construir y dar mantenimiento a
prototipos sin necesidad de conocimientos muy especficos de electrnica y
comunicaciones; de hecho, la parte que requiere mayor trabajo es el
desarrollo de los sistemas para el procesamiento de la informacin, lo cual
muestra que estos proyectos son de un carcter totalmente interdisciplinario.
Otra gran ventaja es el tiempo de vida de los dispositivos, que permite su uso
con mnimo mantenimiento y en ambientes de operacin que podran
considerarse como no ptimos; en este punto la nica limitante es el ruido
electromagntico.
Sin embargo, el diseo de aplicaciones RFID en Mxico aun enfrenta
63

Captulo 5. Experimentacin, Resultados y

varios obstculos, destacando el Conclusiones


hecho de que estos dispositivos no se
consiguen para compras en menudeo, por lo que representan una solucin
interesante nicamente para implantaciones a gran escala, para aquellas
empresas de gran prestigio o de gobierno que manejan presupuestos y
volmenes tales que permitan estos niveles de adquisicin. A pesar de que
se comenta que hoy en da es cada vez ms fcil adquirir tecnologa RFID,
los

costos

implicados

aun

no facilitan

que

una

pequea

mediana

empresa (PyMES) pueda hacer uso de ella, debido

64

Captulo 5. Experimentacin, Resultados y


Conclusiones

principalmente a la dependencia tecnolgica de nuestro pas con respecto a los


fabricantes de todos estos dispositivos; el hecho de tener que importarlos eleva
los costos de manera importante.
El sistema desarrollado como ejemplo cumpli plenamente su objetivo,
pues permiti probar la metodologa de diseo, as como mostrar y detectar los
beneficios ya descritos de los sistemas de autoidentificacin basados en RFID.
Es evidente si el sistema se fabrica en serie, los costos involucrados
descenderan de forma total, hasta llegar a cerca de un tercio del costo de una
sola unidad. El prototipo permiti realizar pruebas de funcionalidad con el
sistema de control de bienes, mostrando su funcionalidad y las ventajas de
llevar a cabo el control de productos bajo una arquitectura cliente servidor,
permitiendo ser flexible y fcil de mantener, y con un gran poder de
integracin y optimizacin de procesos.

5.3 Trabajos
futuro

La primera etapa de este proyecto tena como objetivo el implantar


una metodologa para la implementacin de aplicaciones generales con RFID;
desde este punto de vista, el objetivo se cumpli satisfactoriamente. Ahora
bien, es importante recordar que hasta este punto nicamente se contempl
el anlisis y uso de dispositivos ya existentes en el mercado, simplemente
evaluando de

manera comparativa sus caractersticas. Por ello, el objetivo

obvio de la segunda etapa es la mejora de los elementos utilizados o


incluso el diseo de dispositivos propios; un ejemplo de ello es el desarrollo
de una antena que sea capaz de extender la distancia de lectura en la
identificacin de una tarjeta o tag, cuyo costo sea menor que su equivalente
comercial.
De la misma forma, la implantacin de mecanismos de seguridad en las
tarjetas tanto para lectura y escritura representa una lnea prometedora para
continuar y complementar esta tesis. As, la idea sera controlar el acceso
de los usuarios a este medio, asegurando la integridad y confidencialidad
de la informacin, incluso implementando esquemas de encriptacin.
65

Captulo 5. Experimentacin, Resultados y


Conclusiones

Como tercera alternativa para extender estas investigaciones puede


sugerirse

un anlisis y prueba completa de los algoritmos utilizados para

evitar y/o corregir colisiones en las lecturas, y en un momento dado proponer


y desarrollar algoritmos propios.

66

Captulo 5. Experimentacin, Resultados y


Conclusiones

Finalmente, una vez que este trabajo haya avanzado hasta un nivel
considerable de optimizacin, reduccin de costos y rendimiento, lo ideal
sera buscar su aplicacin permitiendo la integracin con otras tecnologas
tales como redes ad-hoc, wireless, o incluso interactuando con otros elementos
tales como video cmaras y localizadores satelitales.

67

Bibliograf
a
[1] Explorando los impactos de la RFID en los procesos de negocios de
una cadena de suministro. Ygal Benavid, Linda Castro, Louis A. Lefebre. 004,
ISSN 0718-2724, Journal of Management & Innovation, pg. 6.
[2] By Bhuptani Manish, Morador Sharan. RFID Field Guide: Deploy Frecuency
Indentification
Systems. s.l. : Prneticel Hall PTR, February Date 08, 2005. ISBN013-185355-4.
[3] Gonzlez, L.I. Luis Miguel Godnez. RFID Oportunidades y riesgos su
aplicacin prctica. Primera Edicin. Mxico, D.F. : Alfa Omega, Enero, 2008.
pg. 192. Vols. Alfa Omega Grupo Editor, S.A, de C.V. . ISBN 978-970-151311-8.
[4] Inc, Amtel Security System. AMTEL. Amtel Security System Inc. [En lnea]
2005. [Citado el:
23

de

marezo

2009

de

marzo

de

2009.]

http://www.amtel-

security.com/Spanish/products/ATMS.html.
[5] Gonzlez, L.I. Luis Miguel Godinez. RFID oportunidades y riesgos su
aplicacion prctica . Mxico : Alfaomega , 2008. ISBN: 978-970-15-1311-8.
[6] AMECE, A.C. AMECE, A.C. . GS1 Mxico. [En lnea] 2009. [Citado el: 23 de
marzo de 2009.]
http://www.amece.org.mx/amece/EPC_EP
C.php.
[7] Systems, Access Control for Middleware in RFID. Kim, Taesung y Kim,
Howon. [ed.] The 8th International Conference. 2006. Advanced Coomunication
Technology. Vols. 2, 20-22 Feb 2006 pp 1020-1022.
[8] PeterWiner. The Missing Piece. Frontline Solutions. [En lnea] 1 de julio de
2004. http://findarticles.com/p/ar ticles/mi_m0DIS/is_7_5/ai_n6206043/.
[9] RFID privacy: an overview of problems and proposed solutions ,&
Security and Privacy
Magazine. Garfinkel, S.L. , Juels A. Pappu. s.l. : IEEE, mayo-junio de 2005, Vols.
volume 3(3):3443
.
[10]

MacSema,

Inc.

MacSema,

Inc.

http://www.macsema.com/Products.htm#ButtonMemor y. [11] A Taxonomy for


RFID System Sciences. Hassan, T. and Chatterjee. HICSS, "06. Proceedings
of the 39th Annual Hawaii International" : s.n., 2006. Vol. Volume 8.
pp:184b - 184b.
[12] II, By Patrick J. Sweeneyv. RFID For Dummies. Indianapolis, Indiana : Wiley
Publishing, Inc,
2005.
5774.

NJ

0703066

[13] Group, Highway. The Information Highway Group . [En lnea] 2004.
http://www.ihg.net/java/X?cgi=lateral.rfid.VentajaVsBarras.pattern.
[14] Intelligence, Allied Business. ABI. RFID Annual Market Overview. [En
lnea]

2009.

[Citado

el:

22

de

May

de

2009.]

http://www.abiresearch.com/research/1003629RFID+Annual+Market+Overview.
[15] Williams, David. The Strategic Implications of Wal-Mart's RFID Mandate.
[En lnea] jul de
2004.

http://www.directionsmag.com/article.php?article_id=629.

Principal,

E911-LBS Consulting.
[16]

Electronics,

Kimaldi

http://www.kimaldi.com/productos/sistemas_r fid/lectores_rfid_y_tags_125_khz/t
ags_rfid_de
_125_khz. Kimaldi Electronics .
http://www.kimaldi.com.

[Citado el: 28 de ago de 2009.]

[17] RFID Guide to Radio Frecuency Identification. V. Daniel Hunt, Albert


Puglia Mike y Mike
Puglia. s.l. : Wiley-Interscien a jhon Wiley & Sons, inc . ISBN 978-0470-10764-5.
[18] V. Daniel Hunt, Albeet Plugia, Mike Puglia. RFID guide to radio
frequency. s.l. : Ed. Wiley
2007.,
2007.
[19] Areitio, Prof. Dr.Javier. GS1 Panam. Consideraciones sobre seguridad en
torno

la

tecnologa

RFID.

[En

lnea]

junio

de

2007.

http://www.gs1pa.org/boletin/2007/junio/boletin- jun07-art4.html.
[20] David H. Williams. Directions Magazine. [En lnea] 29 de julio de 2004.
http://www.directionsmag.com/ar ticle.php?article_id=629. Principal, E911-LBS
Consulting .
[21] Christine Gallen. ABI research. Total RFID Revenue to Exceed $5.6
Billion in 2009. [En lnea]

24

http://www.abiresearch.com/press/1395Total+RFID+Revenue+to+Exceed+
%245.6+Billion+in+2009.

de

2009

de

Marzo.

67

Anexo
Cdigo de programacin
Pantalla Inicio
Public NotInheritable Class ctrlEquiposBienvenida
'TODO: This form can easily be set as the splash screen for the
application by going to the "Application" tab
' of the Project Designer ("Properties" under the "Project" menu).
Private Sub ctrlEquiposBienvenida_Load(ByVal sender As Object, ByVal
e As System.EventArgs) Handles Me.Load
'Set up the dialog text at runtime according to the application's
assembly information.
'TODO: Customize the application's assembly information in the
"Application" pane of the project
' properties dialog (under the "Project" menu).
'Application title
If My.Application.Info.Title <> "Control de bienes" Then
ApplicationTitle.Text = My.Application.Info.Title
Else
'If the application title is missing, use the application
name, without the extension
ApplicationTitle.Text =
System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyNa
me)
End If
'Format the version information using the text set into the
Version control at design time as the
' formatting string. This allows for effective localization if
desired.
' Build and revision information could be included by using the
following code and changing the
' Version control's designtime text to "Version
{0}.{1:00}.{2}.{3}" or something similar. See
' String.Format() in Help for more information.
'
'
Version.Text = System.String.Format(Version.Text,
My.Application.Info.Version.Major, My.Application.Info.Version.Minor,
My.Application.Info.Version.Build, My.Application.Info.Version.Revision)
Version.Text = System.String.Format(Version.Text,
My.Application.Info.Version.Major, My.Application.Info.Version.Minor)
'Copyright info
Copyright.Text = My.Application.Info.Copyright
End Sub
End Class
68

Men inicio.
Public Class dlgInicio
' TODO: Insert code to perform custom authentication using the provided
username and password
' (See http://go.microsoft.com/fwlink/?LinkId=35339).
' The custom principal can then be attached to the current thread's principal
as follows:
'
My.User.CurrentPrincipal = CustomPrincipal
' where CustomPrincipal is the IPrincipal implementation used to perform
authentication.
' Subsequently, My.User will return identity information encapsulated in the
CustomPrincipal object
' such as the username, display name, etc.
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles
OK.Click
Dim db As lnqBienesDataContext
Me.Close
() End Sub
Private Sub Cancel_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel.Click
Me.Close
() End Sub
End Class

Login
Public Class dlgLogin
' TODO: Insert code to perform custom authentication using the provided
username and password
' (See http://go.microsoft.com/fwlink/?LinkId=35339).
' The custom principal can then be attached to the current thread's principal
as follows:
'
My.User.CurrentPrincipal = CustomPrincipal
' where CustomPrincipal is the IPrincipal implementation used to perform
authentication.
' Subsequently, My.User will return identity information encapsulated in the
CustomPrincipal object
' such as the username, display name, etc.
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles
OK.Click
69

Dim usuario As String =


Me.UsernameTextBox.Text Dim password
As String = Me.PasswordTextBox.Text Dim
db As New lnqBienesDataContext
Dim principal As Security.Principal.GenericPrincipal
Dim resultado = From up In db.catUsuarioPermisos _
Where up.Usuario = usuario And up.Password =
password _

70

Select
up
If resultado.LongCount = 1 Then
Dim usuarioConPermiso As
catUsuarioPermiso usuarioConPermiso
= resultado.Single
Dim identidad As New
Security.Principal.GenericIdentity(usuarioConPermiso.Usuario) Dim
roles(1) As String
roles(0) = usuarioConPermiso.Rol
principal = New
Security.Principal.GenericPrincipal(identidad, roles)
System.Threading.Thread.CurrentPrincipal = principal
End If
Me.Close
() End Sub
Private Sub Cancel_Cliok(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel.Click
End
End
Sub
End Class

Menu principal
Imports System.Windows.Forms
Public Class mdiContenedor
Dim
Dim
Dim
Dim

adminEquipos As frmAltaBien
buscar As frmLstUsuarios
asignacion As frmAsignacion
reportes As dlgReportes

Private Sub muestraNuevoUsuario()


Dim usuario As New dlgUsuario
usuario.ShowDialog()
End Sub
Private Sub muestraAdministradorBienes()
If adminEquipos Is Nothing OrElse adminEquipos.IsDisposed Then
adminEquipos = New frmAltaBien
End If
adminEquipos.MdiParent = Me
adminEquipos.Show()
End Sub
Private Sub muestraAsignacion()
If asignacion Is Nothing OrElse asignacion.IsDisposed Then
asignacion = New frmAsignacion
End If
70

asignacion.MdiParent = Me
asignacion.Show()
End Sub
Private Sub muestraBuscar()

71

If buscar Is Nothing OrElse buscar.IsDisposed Then


buscar = New frmLstUsuarios
End If
buscar.MdiParent = Me
buscar.Show()
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripButton1.Click
If Not My.User.IsInRole("ADMINISTRADOR") Then
Exit Sub
End If
muestraNuevoUsuario()
End Sub
Private Sub ToolStripButton2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripButton2.Click
If Not My.User.IsInRole("ADMINISTRADOR") Then
Exit Sub
End If
muestraAdministradorBienes()
End Sub
Private Sub ToolStripButton3_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripButton3.Click
muestraAsignacion()
End Sub
Private Sub ToolStripButton4_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripButton4.Click
muestraBuscar()
End Sub
Private Sub mdiContenedor_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
System.Threading.Thread.CurrentPrincipal = Nothing
ShowSplash()
''CurrentPrincipal.Identity()
While (Not My.User.IsAuthenticated)
dlgLogin.ShowDialog(Me)
End While
For Each puerto As String In My.Computer.Ports.SerialPortNames
Me.puertosDisponibles.DropDownItems.Add(puerto)
Next
Me.puertosDisponibles.DropDownItems.Add("CLOSE")
End Sub
Private Sub admPuertoSerie(ByVal accion As String)
Try
Dim msg As String = ""
7
1

Select Case accion


Case "conectar"
If Not Me.puertoSerie.IsOpen Then
Me.puertoSerie.PortName =
Me.strPuertoSeleccionado.Text
Me.puertoSerie.Open()
msg = String.Format(" conectado por el puero
{0},{1}", Me.puertoSerie.PortName, Me.puertoSerie.BaudRate)
Else
msg = "Desconectado"
End If
Case "desconectar"
If Me.puertoSerie.IsOpen Then
Me.puertoSerie.Close()
End If
msg = "Desconectado"
End Select
Me.estatusPuertoSerie.Text = msg
Catch ex As Exception
Console.WriteLine("Error al desconectar el puerto serie")
End Try
End Sub
Private Sub puertosDisponibles_DropDownItemClicked(ByVal sender As
System.Object, ByVal e As
System.Windows.Forms.ToolStripItemClickedEventArgs) Handles
puertosDisponibles.DropDownItemClicked
Dim opcionPuerto As String = e.ClickedItem.Text
If Not opcionPuerto = "CLOSE" Then
Me.strPuertoSeleccionado.Text = opcionPuerto
admPuertoSerie("conectar")
Else
Me.strPuertoSeleccionado.Text = ""
admPuertoSerie("desconectar")
End If
End Sub
Private Sub puertoSerie_DataReceived(ByVal sender As System.Object,
ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles
puertoSerie.DataReceived
Try
Dim resultado As String = puertoSerie.ReadLine
Console.WriteLine()
resultado = resultado.Replace(vbCr, "").Replace(Chr(2),
"").Replace(Chr(3), "")
SetText(resultado)
Catch ex As Exception
Console.WriteLine(" ERROR EN LA LECTURA DEL PUERTO SERIE")
End Try
End Sub
Delegate Sub SetTextCallback(ByVal text As String)
Private Sub SetText(ByVal text As String)
If Me.InvokeRequired Then
72

Else

Dim d As New SetTextCallback(AddressOf SetText)


Me.Invoke(d, New Object() {text})

Me.datoRecibido.Text = text
eviarTagFormulario(text)
End If
End Sub
Private Sub eviarTagFormulario(ByVal tagRFiD As String)
If adminEquipos Is Nothing OrElse adminEquipos.IsDisposed Then
Exit Sub
End If
Dim pagina As nuevoBien = Me.adminEquipos.tcBienes.SelectedTab
If pagina IsNot Nothing Then
For Each rw As DataRow In pagina.dtPropiedades.Rows
If rw("Propiedad") = "IDTAG RFID" Then
rw("Valor") = tagRFiD
End If
Next
End If
End Sub
Private Sub ToolStripButton5_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripButton5.Click
muestraReportes
Exit Sub
SetText("1234567")
End Sub
Private Sub muestraReportes()
If reportes Is Nothing OrElse reportes.IsDisposed Then
reportes = New dlgReportes
End If
reportes.MdiParent = Me
reportes.Show()
End Sub
Private Sub ShowSplash()
Dim fSplash As New ctrlEquiposBienvenida
fSplash.Owner = Me
fSplash.Show()
Application.DoEvents()
Threading.Thread.Sleep(1000)
fSplash.Close()
fSplash.Dispose()
End Sub
Private Sub mdiContenedor_FormClosing(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles
MyBase.FormClosing
73

Try
If Me.puertoSerie.IsOpen Then
Me.puertoSerie.Close()
End If
Catch ex As Exception
Console.WriteLine("Error al cerrar el puerto serie")
End Try
End Sub
End Class

Permiso
s
Imports
System.Windows.Forms
Public Class dlgPermisos
Private _idUsuario As Integer
Public Property idUsuario() As Integer
Get
Return _idUsuario
End Get
Set(ByVal value As Integer)
_idUsuario = value
End Set
End Property
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
If actualizar Then
actualizarPermi
so()
Else
guardarPermis
o()
End If
Me.DialogResult =
System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub
guardarPermiso() Try
Dim db As New lnqBienesDataContext
Dim permiso As New catUsuarioPermiso
permiso.Usuario = txtUsuario.Text
permiso.Password = txtContrasea.Text
permiso.Rol = cmbRoles.Text
db.catUsuarioPermisos.InsertOnSubmit(p
ermiso) db.SubmitChanges()
7
4

Catch ex As Exception
Console.WriteLine("Error al intentar guardar los permisos
al usuario") End Try
End Sub
Private Sub actualizarPermiso()

7
5

Try
Dim db As New
Dim permiso As New catUsuarioPermiso
lnqBienesDataContext
Dim permisos = From p In db.catUsuarioPermisos Where p.idUsuario =
idUsuario Select p
permiso = permisos.First
permiso.Usuario =
txtUsuario.Text
permiso.Password =
txtContrasea.Text permiso.Rol
= cmbRoles.Text
db.SubmitChanges()
Catch ex As Exception
Console.WriteLine("Error al intentar actualizar los permisos
al usuario") End Try
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close
() End Sub
Private Sub txtUsuario_Validating(ByVal sender As System.Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles txtUsuario.Validating
If Me.txtUsuario.Text.Length = 0 Then
ErrorProvider1.SetError(Me.txtUsuario, "Debe tener
un valor") Else
ErrorProvider1.SetError(Me.txtUsu
ario, "") End If
End Sub
Private Sub txtContrasea_Validating(ByVal sender As System.Object, ByVal e
As
System.ComponentModel.CancelEventArgs) Handles txtContrasea.Validating
If Me.txtContrasea.Text.Length = 0 Then
ErrorProvider1.SetError(Me.txtContrasea, "Debe
tener un valor") Else
ErrorProvider1.SetError(Me.txtContras
ea, "") End If
End Sub
Private Sub cmbRoles_Validating(ByVal sender As System.Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles cmbRoles.Validating
If Me.cmbRoles.Text.Length = 0 Then
ErrorProvider1.SetError(Me.cmbRoles, "Debe tener
un valor") Else
ErrorProvider1.SetError(Me.cmbRo
les, "") End If

Try
End Dim
Sub db As New
lnqBienesDataContext
Private Sub btnQuitar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnQuitar.Click

Try
Dim db As New
Dim permisos = From p In db.catUsuarioPermisos Where p.idUsuario =
lnqBienesDataContext
idUsuario Select p
Dim permiso As New catUsuarioPermiso
permiso = permisos.First
db.catUsuarioPermisos.DeleteOnSubmit(
permiso) db.SubmitChanges()
Catch ex As Exception
Console.WriteLine("Error al intentar quitar los
permisos") End Try
End Sub
Private Sub dlgPermisos_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
actualizar = False
Try
Dim db As New lnqBienesDataContext
Dim permisos = From p In db.catUsuarioPermisos Where p.idUsuario =
idUsuario Select
p
Dim permiso As New
catUsuarioPermiso permiso =
permisos.First Me.txtUsuario.Text
= permiso.Usuario
Me.txtContrasea.Text = permiso.Password
Me.cmbRoles.Text =
permiso.Rol actualizar =
True
Catch ex As Exception
Console.WriteLine("Error al intentar asignar las propiedades al usuario")
actualizar = False
End Try
If actualizar = False Then
Me.btnQuitar.Enabled = False
End If
End Sub
Private _actualizar As Boolean
Public Property actualizar() As Boolean
Get
Return _actualizar
End Get
Set(ByVal value As Boolean)
_actualizar = value
End Set
End Property

Try
Dim db As New
End Class
lnqBienesDataContext

Nueva propiedad.
Imports System.Windows.Forms
Public Class dlgPropiedad
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
agregaPropiedad()
Me.DialogResult =
System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close
() End Sub
Private Sub txtPropiedad_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles txtPropiedad.Validating
If Me.txtPropiedad.Text.Length = 0 Then
ErrorProvider1.SetError(Me.txtPropiedad, "Debe tener
un valor") Else
ErrorProvider1.SetError(Me.txtPropie
dad, "") End If
End Sub
Private Sub txtDescripcion_Validating(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs) Handles txtDescripcion.Validating
If Me.txtDescripcion.Text.Length = 0 Then
ErrorProvider1.SetError(Me.txtDescripcion, "Debe
tener un valor") Else
ErrorProvider1.SetError(Me.txtDescrip
cion, "") End If
End Sub
Private Sub agregaPropiedad()
Dim db As New lnqBienesDataContext
Dim propiedad As New catPropiedades
propiedad.Propiedad =
Me.txtPropiedad.Text
propiedad.Descripcion =
Me.txtDescripcion.Text
db.catPropiedades.InsertOnSubmit(prop
iedad) db.SubmitChanges()
End Sub
Private Sub dlgbien_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
77

limpiaCampo
s() End Sub

78

Private Sub
limpiaCampos()
Me.txtPropiedad.Text
= ""
Me.txtDescripcion.Tex
t = ""
End Sub
End Class

Catalogo de propiedades
Imports System.Windows.Forms
Public Class dlgPropiedades
Private _idPropiedad As Integer
Public Property idPropiedad() As String
Get
Return _idPropiedad
End Get
Set(ByVal value As String)
_idPropiedad = value
End Set
End Property
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
seleccionaPropiedad()
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub dlgPropiedades_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
cargaPropiedades()
End Sub
Private Sub seleccionaPropiedad()
Me.idPropiedad = CInt(dgvCatPropiedades.Item(0,
dgvCatPropiedades.CurrentRow.Index).Value)
End Sub
Private Sub AgregarNuevaPropiedadToolStripMenuItem_Click(ByVal sender
As System.Object, ByVal e As System.EventArgs) Handles
AgregarNuevaPropiedadToolStripMenuItem.Click
Try
If dlgPropiedad.ShowDialog(Me) =
Windows.Forms.DialogResult.OK Then
cargaPropiedades()
End If
Catch ex As Exception
78

End Try

79

End Sub
Private Sub cargaPropiedades()
Me.idPropiedad = -1
Dim l As New lnqBienesDataContext
Dim propiedades = From p In l.catPropiedades Select p
dgvCatPropiedades.DataSource = propiedades
End Sub
End Class

Editor de propiedades
Imports System.Data.Linq
Imports System.ComponentModel
Public Class frmEditorPropiedadesBienes
Private Sub PRUEBA_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
cargaBienes()
End Sub
Private Sub cargaBienes()
Dim l As New lnqBienesDataContext
Dim bienes = From b In l.catBienes Select b.idBien, b.Nombre
Me.cmbBienes.DataSource = bienes.ToList
Me.cmbBienes.ValueMember = "idBien"
Me.cmbBienes.DisplayMember = "Nombre"
End Sub
Private Sub cmbBienes_SelectedIndexChanged(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
cmbBienes.SelectedIndexChanged
cargaPropiedades()
End Sub
Private Sub dgwPropiedades_CellMouseClick(ByVal sender As Object,
ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles
dgwPropiedades.CellMouseClick
Me.dgwPropiedades.CurrentRow.Selected = True
End Sub
Private Sub AgregarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
AgregarToolStripMenuItem.Click
If dlgPropiedades.ShowDialog(Me) = Windows.Forms.DialogResult.OK
Then
If dlgPropiedades.idPropiedad > 0 Then
agregaPropiedad(dlgPropiedades.idPropiedad)
cargaPropiedades()
End If
End If
End Sub
79

Private Sub BorrarToolStripMenuItem_Click(ByVal sender As


System.Object, ByVal e As System.EventArgs) Handles
BorrarToolStripMenuItem.Click
If Me.dgwPropiedades.CurrentRow.Selected = True Then
quitarPropiedad()
cargaPropiedades()
End If
End Sub
Private Sub agregaPropiedad(ByVal idPropiedad As Integer)
'Dim idPropiedad As Integer = CInt(dgvCatPropiedades.Item(0,
dgvCatPropiedades.CurrentRow.Index).Value)
Try
Dim idBien As Integer =
toDiccionario(Me.cmbBienes.SelectedItem)("idBien")
Dim l As New lnqBienesDataContext
Dim bp As New catBienPropiedades
bp.idBien = idBien
bp.idPropiedad = idPropiedad
l.catBienPropiedades.InsertOnSubmit(bp)
l.SubmitChanges()
Catch ex As Exception
MsgBox("La propiedad ya se encuentra dentro del bien",
MsgBoxStyle.Information, "Atencin")
End Try
End Sub
Private Sub quitarPropiedad()
Try
Dim idPropiedad As Integer = CInt(dgwPropiedades.Item(0,
dgwPropiedades.CurrentRow.Index).Value)
Dim idBien As Integer =
toDiccionario(Me.cmbBienes.SelectedItem)("idBien")
Dim db As New lnqBienesDataContext
Dim cbp As catBienPropiedades = (From cb In
db.catBienPropiedades Where cb.idBien = idBien And cb.idPropiedad =
idPropiedad _
Select cb).First
db.catBienPropiedades.DeleteOnSubmit(cbp)
db.SubmitChanges()
Catch ex As Exception
MsgBox("La ya no se encentra dentro del bien",
MsgBoxStyle.Information, "Atencin")
End Try
End Sub
Private Sub cargaPropiedades()
Me.dgwPropiedades.DataSource = Nothing
Console.WriteLine("id:{0} nombre:{1}",
Me.cmbBienes.SelectedValue, Me.cmbBienes.Text)
Dim idBien As Integer =
toDiccionario(Me.cmbBienes.SelectedItem)("idBien")
Console.WriteLine("Propiedad obtenida:{0}", idBien)
Dim l As New lnqBienesDataContext
Dim propiedades = From bp In l.catBienPropiedades _
Join p In l.catPropiedades On bp.idPropiedad
Equals p.idPropiedad _
80

Where bp.idBien = idBien _


Select p
dgwPropiedades.DataSource = propiedades.ToArray
End Sub
Private Sub btnCerrar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnCerrar.Click
Me.Close()
End Sub
Private Sub btnAgregarBien_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles btnAgregarBien.Click
If dlgbien.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
cargaBienes()
End If
End Sub
End Class

Administracin de bienes
Public Class frmAltaBien
Dim dtPropiedades As New DataTable
Private Sub frmAltaBien_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
cargaBienes()
End Sub
Private Sub cargaBienes()
Me.trvBienes.Nodes.Clear()
Dim db As New lnqBienesDataContext
Dim grupos = From grupo In db.catGrupos Select grupo
For Each grupo In grupos
Dim nGrupo As New myNode
nGrupo.tipoNodo = "GRUPO"
nGrupo.Name = grupo.idGrupo nGrupo.Text =
grupo.Grupo nGrupo.ContextMenuStrip =
cmsCategoriaBienes
nGrupo.SelectedImageIndex = 1
nGrupo.ImageIndex = 1
nGrupo.ToolTipText = "Grupo de plantillas"
For Each bien In grupo.catBienes Dim
nBien As New myNode
nBien.ContextMenuStrip = cmsBien
nBien.tipoNodo = "BIEN"
nBien.Name = bien.idBien
81

nBien.Text = bien.Nombre
nBien.SelectedImageIndex = 2
nBien.ImageIndex = 2
nGrupo.ToolTipText = "Plantilla"
nGrupo.Nodes.Add(nBien)

Next
Me.trvBienes.Nodes.Add(nGrupo)

Next
Me.trvBienes.ExpandAll()
End Sub
Class filaResultado

Private _idPropiedad As Integer


Public Property idPropiedad() As String
Get
Return _idPropiedad
End Get
Set(ByVal value As String)
_idPropiedad = value
End Set
End Property

Private _propiedad As String


Public Property propiedad() As String
Get
Return _propiedad
End Get
Set(ByVal value As String)
_propiedad = value
End Set
End Property
Private _valor As String
Public Property Valor() As String
Get
Return _valor
End Get
Set(ByVal value As String)
_valor = value
End Set
End Property
End Class
Private Sub AgregarToolStripMenuItem1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
AgregarToolStripMenuItem1.Click
Try
If dlgbien.ShowDialog(Me) = Windows.Forms.DialogResult.OK
Then
cargaBienes()
82

End If
Catch ex As Exception
Console.WriteLine("Error al agregar una plantilla")
End Try
End Sub
Private Sub EditarPropiedadesToolStripMenuItem1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
EditarPropiedadesToolStripMenuItem1.Click
Try
If Me.trvBienes.SelectedNode.IsSelected = False Then
Exit Sub
End If
dlgEditorPropiedadesBienes.idBien =
Me.trvBienes.SelectedNode.Name
dlgEditorPropiedadesBienes.Bien =
Me.trvBienes.SelectedNode.Text
dlgEditorPropiedadesBienes.Text = "Propiedades de " &
dlgEditorPropiedadesBienes.Bien
If dlgEditorPropiedadesBienes.ShowDialog(Me) =
Windows.Forms.DialogResult.OK Then
End If
Catch ex As Exception
Console.WriteLine("Error al editar una plantilla")
End Try
End Sub
Private Sub AgregarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
AgregarToolStripMenuItem.Click
Try
Dim pagina As New nuevoBien(Me.trvBienes.SelectedNode.Name,
Me.trvBienes.SelectedNode.Text)
Me.tcBienes.TabPages.Add(pagina)
pagina.cargaPropiedades()
Catch ex As Exception
Console.WriteLine("Error al agregar un nuevo bien ")
End Try
'tcBienes.TabPages.Add(New
nuevoBien(Me.trvBienes.SelectedNode.Name,
Me.trvBienes.SelectedNode.Text))

End Sub
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
If Me.tcBienes.SelectedTab Is Nothing Then
Exit Sub
End If
Dim pagina As nuevoBien = Me.tcBienes.SelectedTab

83

Dim dbResultado As New lnqBienesDataContext


Dim bienResultado As New catBienResultado
Dim db As New lnqBienesDataContext
Dim imagenBien As New catImagenes
dbResultado.catBienResultado.InsertOnSubmit(bienResultado)
dbResultado.SubmitChanges()
For Each rw As DataRow In pagina.dtPropiedades.Rows
Console.WriteLine(rw("idPropiedad"))
Console.WriteLine(rw("Valor"))
Dim resultadosBien As New catResultados
resultadosBien.idBienResultado =
bienResultado.idBienResultado resultadosBien.idBien =
pagina.idBien resultadosBien.idPropiedad =
rw("idPropiedad") resultadosBien.Valor =
rw("Valor")
db.catResultados.InsertOnSubmit(resultadosBien)
Next
imagenBien.idBienResultado = bienResultado.idBienResultado
imagenBien.Imagen = tools.Image2Bytes(pagina.pbxPrevImagen.Image)
db.catImagenes.InsertOnSubmit(imagenBien)
db.SubmitChanges(Data.Linq.ConflictMode.FailOnFirstConflict)
Me.tcBienes.TabPages.Remove(pagina)
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Cancel_Button.Click
If Me.tcBienes.SelectedTab Is Nothing Then
Exit Sub
End If
Dim pagina As nuevoBien = Me.tcBienes.SelectedTab
Me.tcBienes.TabPages.Remove(pagina)
End Sub
Private Sub AgregarGrupoToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
AgregarGrupoToolStripMenuItem.Click
Try
If dlgGrupo.ShowDialog(Me) = Windows.Forms.DialogResult.OK
Then
cargaBienes()
End If
Catch ex As Exception
Console.WriteLine("Error al intentar agregar un grupo")
End Try
End Sub
Private Sub QuitarCategoriaToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
QuitarCategoriaToolStripMenuItem.Click
84

Try
If Me.trvBienes.SelectedNode.IsSelected = False Then
Exit Sub
End If
Dim idBien As Integer = Me.trvBienes.SelectedNode.Name
Dim db As New lnqBienesDataContext
Dim bienes = From cbienes In db.catBienes Where
cbienes.idBien = idBien Select cbienes
Dim bien As catBienes = bienes.First()
db.catBienes.DeleteOnSubmit(bien)
db.SubmitChanges(Data.Linq.ConflictMode.FailOnFirstConflict)
cargaBienes()
Catch ex As Exception
Console.WriteLine(ex.ToString)
Console.WriteLine("Error al intentar borrar una plantilla")
End Try

End Sub
End Class

Agregar un grupo
Imports System.Windows.Forms
Public Class dlgGrupo
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
agregaGrupo()
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub agregaGrupo()
Try
Dim db As New lnqBienesDataContext
Dim grupo As New catGrupos
grupo.Grupo = Me.txtGrupo.Text
db.catGrupos.InsertOnSubmit(grupo)
db.SubmitChanges()
Catch ex As Exception
MsgBox("No se pudo agregar un nuevo grupo",
MsgBoxStyle.Critical, "atencin")
End Try
End Sub

85

Private Sub txtGrupo_Validating(ByVal sender As System.Object, ByVal


e As System.ComponentModel.CancelEventArgs) Handles txtGrupo.Validating
If Me.txtGrupo.Text.Length = 0 Then
ErrorProvider1.SetError(Me.txtGrupo, "Debe tener un valor")
Else
ErrorProvider1.SetError(Me.txtGrupo, "")
End If
End Sub
Private Sub txtGrupo_KeyPress(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles txtGrupo.KeyPress
If (Not Char.IsLetterOrDigit(e.KeyChar)) Then
' de igual forma se podra comprobar si es caracter:
e.KeyChar.IsLetter
' si es un caracter minusculas: e.KeyChar.IsLower ...etc
If Not (e.KeyChar = Convert.ToChar(Keys.Back)) Then
e.Handled = True ' esto invalida la tecla pulsada
End If
End If
End Sub
End Class

Propiedad de bienes
Imports System.Windows.Forms
Public Class dlgGrupo
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
agregaGrupo()
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub agregaGrupo()
Try
Dim db As New lnqBienesDataContext
Dim grupo As New catGrupos
grupo.Grupo = Me.txtGrupo.Text
db.catGrupos.InsertOnSubmit(grupo)
db.SubmitChanges()
Catch ex As Exception
MsgBox("No se pudo agregar un nuevo grupo",
MsgBoxStyle.Critical, "atencin")
End Try
End Sub
86

Private Sub txtGrupo_Validating(ByVal sender As System.Object, ByVal


e As System.ComponentModel.CancelEventArgs) Handles txtGrupo.Validating
If Me.txtGrupo.Text.Length = 0 Then
ErrorProvider1.SetError(Me.txtGrupo, "Debe tener un valor")
Else
ErrorProvider1.SetError(Me.txtGrupo, "")
End If
End Sub
Private Sub txtGrupo_KeyPress(ByVal sender As System.Object, ByVal e
As System.Windows.Forms.KeyPressEventArgs) Handles txtGrupo.KeyPress
If (Not Char.IsLetterOrDigit(e.KeyChar)) Then
' de igual forma se podra comprobar si es caracter:
e.KeyChar.IsLetter
' si es un caracter minusculas: e.KeyChar.IsLower ...etc
If Not (e.KeyChar = Convert.ToChar(Keys.Back)) Then
e.Handled = True ' esto invalida la tecla pulsada
End If
End If
End Sub
End Class

Asignacin de bienes
Public Class frmAsignacion
Private Sub frmAsignacion_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
'Dim ParentNode1 As TreeNode
'Dim ParentNode2 As TreeNode
'ParentNode1 = TreeView1.Nodes.Add("tv1")
'With ParentNode1
'
.Nodes.Add("tv1FirstChild")
'
.Nodes.Add("tv1SecondChild")
'
.Nodes.Add("tv1ThirdChild")
'
.Nodes.Add("tv1FourthChild")
'
.Expand()
'End With
'ParentNode2 = TreeView2.Nodes.Add("tv2")
'With ParentNode2
'
.Nodes.Add("tv2FirstChild")
'
.Nodes.Add("tv2SecondChild")
'
.Expand()
'End With
cargaUsuarios()
cargaBienes()
End Sub
Private Sub cargaUsuarios()
87

Dim db As New lnqBienesDataContext


Dim areas
If My.User.IsInRole("ADMINISTRADOR") Then
areas = From area In db.catAreas Select area
Else
Dim idArea As Integer
Dim usuario As String = My.User.Name
Dim resultado = From up In db.catUsuarioPermisos Where
up.Usuario = usuario
idArea = resultado.Single.catUsuarios.idArea
areas = From area In db.catAreas Where area.idArea = idArea
Select area
End If
'Dim areas = From area In db.catAreas Select area
Dim nArea As myNode
For Each area In areas nArea =
New myNode nArea.tipoNodo =
"AREA" nArea.Name =
area.idArea nArea.Text =
area.Area
nArea.SelectedImageIndex = 2
nArea.ImageIndex = 2
For Each usuario In area.catUsuarios
Dim nUsuario As New myNode
nUsuario = New myNode
nUsuario.tipoNodo = "USUARIO"
nUsuario.Name = usuario.IdUsuario
nUsuario.Text = usuario.Nombre & " " & usuario.Apellidos
& " ext:" & usuario.Extension
nUsuario.SelectedImageIndex = 1
nUsuario.ImageIndex = 1
For Each bienResultado In usuario.catUsuarioBienResultado
Dim nBienResultado As New myNode
nBienResultado.tipoNodo = "BIENRESULTADO"
nBienResultado.Name = bienResultado.idBienResultado
nBienResultado.ImageIndex = 4
nBienResultado.SelectedImageIndex = 4
nBienResultado.ContextMenuStrip =
Me.cmsBienesResultado
nBienResultado.ForeColor =
IIf(bienResultado.salidaPermitida, Color.Green, Color.Red)
For Each propiedad In
bienResultado.catBienResultado.catResultados

88

If propiedad.catPropiedades.Propiedad =

"DESCRIPCION" Then

nBienResultado.Text = propiedad.Valor
Continue For
End If
Dim n As New myNode
n.tipoNodo = "PROPIEDAD"
n.Text = propiedad.catPropiedades.Propiedad & ":"

& propiedad.Valor

n.ImageIndex = 3
n.SelectedImageIndex = 3
nBienResultado.Nodes.Add(n)
Next
'Dim propiedades = From propiedad In
bienResultado.catBienResultado Select propiedad
nUsuario.Nodes.Add(nBienResultado)
Next
nArea.Nodes.Add(nUsuario)

Next
End Sub

Next
Me.TreeView1.Nodes.Add(nArea)

Private Sub cargaBienes()


Dim db As New lnqBienesDataContext
Dim bienResultados = From bienResultado In db.catBienResultado
Select bienResultado

Then

For Each bienResultado In bienResultados


Dim nBienResultado As New myNode
nBienResultado.Name = bienResultado.idBienResultado
nBienResultado.tipoNodo = "BIENRESULTADO"
nBienResultado.ImageIndex = 4
nBienResultado.SelectedImageIndex = 4
For Each propiedad In bienResultado.catResultados
If propiedad.catPropiedades.Propiedad = "DESCRIPCION"
nBienResultado.Text = propiedad.Valor
Continue For
End If

propiedad.Valor

Dim n As New myNode


n.tipoNodo = "PROPIEDAD"
n.Text = propiedad.catPropiedades.Propiedad & ":" &
n.ImageIndex = 3
n.SelectedImageIndex = 3
nBienResultado.Nodes.Add(n)

Next
End Sub

Next
Me.TreeView2.Nodes.Add(nBienResultado)

89

Public Sub TreeView_ItemDrag(ByVal sender As Object, _


ByVal e As ItemDragEventArgs) _
Handles TreeView1.ItemDrag,
TreeView2.ItemDrag
DoDragDrop(e.Item, DragDropEffects.Move)
End Sub
Public Sub TreeView_DragEnter(ByVal sender As Object, _
ByVal e As DragEventArgs) _
Handles TreeView2.DragEnter,
TreeView1.DragEnter
e.Effect = DragDropEffects.Move
End Sub
Public Sub TreeView_DragDrop(ByVal sender As Object, _
ByVal e As DragEventArgs) _
Handles TreeView2.DragDrop,
TreeView1.DragDrop
'Dim NewNode As TreeNode
Dim NewNode As myNode
'If e.Data.GetDataPresent("System.Windows.Forms.TreeNode", False)
Then
If e.Data.GetDataPresent(GetType(myNode)) Then
Dim pt As Point

e.Y))

Dim DestinationNode As myNode


pt = CType(sender, TreeView).PointToClient(New Point(e.X,
DestinationNode = CType(sender, TreeView).GetNodeAt(pt)
If Not (DestinationNode.tipoNodo = "USUARIO") Then
Exit Sub
End If
NewNode = CType(e.Data.GetData(GetType(myNode)), myNode)
If Not NewNode.tipoNodo = "BIENRESULTADO" Then
Exit Sub
End If
If Not DestinationNode.TreeView Is NewNode.TreeView Then
For Each n As TreeNode In DestinationNode.Nodes
If n.Name = NewNode.Name Then
Exit Sub
End If
Next
Dim nuevoNodo As New myNode
nuevoNodo = NewNode.Clone
nuevoNodo.ForeColor = IIf(False, Color.Green, Color.Red)
nuevoNodo.ContextMenuStrip = Me.cmsBienesResultado

If (asignarBienUsuario(DestinationNode.Name,
nuevoNodo.Name)) Then
90

DestinationNode.Nodes.Add(nuevoNodo)
DestinationNode.Expand()
End If
End If
End If
End Sub
Private Function asignarBienUsuario(ByVal idUsuario As Integer, ByVal
idBienResultado As Integer) As Boolean
Dim aignado As Boolean = False
Dim db As New lnqBienesDataContext
Dim usuarioBienResultado As New catUsuarioBienResultado
usuarioBienResultado.idUsuario = idUsuario
usuarioBienResultado.idBienResultado = idBienResultado
usuarioBienResultado.salidaPermitida = False
db.catUsuarioBienResultado.InsertOnSubmit(usuarioBienResultado)
Try
db.SubmitChanges(Data.Linq.ConflictMode.FailOnFirstConflict)
aignado = True
Catch ex As Exception
MsgBox("Este bien ya se encuentra asignado")
End Try
Return aignado
End Function
Private Sub quitarBienUsuario(ByVal idUsuario As Integer, ByVal
idBienResultado As Integer)
Dim db As New lnqBienesDataContext
Dim usuarioBienResultados = From ubr In
db.catUsuarioBienResultado _
Where ubr.idBienResultado =
idBienResultado And _
ubr.idUsuario = idUsuario _
Select ubr
db.catUsuarioBienResultado.DeleteOnSubmit(usuarioBienResultados.First)
db.SubmitChanges()
End Sub
Private Sub QuitarToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
QuitarToolStripMenuItem.Click
If TreeView1.SelectedNode Is Nothing Then
Exit Sub
End If
Try
Dim nBienResultado As myNode = TreeView1.SelectedNode
If Not nBienResultado.tipoNodo = "BIENRESULTADO" Then
Exit Sub
End If
Dim nUsuario As myNode = nBienResultado.Parent
nUsuario.Nodes.Remove(nBienResultado)
quitarBienUsuario(nUsuario.Name, nBienResultado.Name)
Catch ex As Exception
System.Console.WriteLine("Error al intentar quitar el nodo")
91

End Try
End Sub
Private Sub PermitirSalidaToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
PermitirSalidaToolStripMenuItem.Click
permitirSalida(True)
End Sub
Private Sub NoPermitirSalidaToolStripMenuItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
NoPermitirSalidaToolStripMenuItem.Click
permitirSalida(False)
End Sub
Private Sub permitirSalida(ByVal salidaPermitida As Boolean)
If TreeView1.SelectedNode Is Nothing Then
Exit Sub
End If
Try
Dim nBienResultado As myNode = TreeView1.SelectedNode
Dim nUsuario As myNode = nBienResultado.Parent
Dim idUsuario As Integer = nUsuario.Name
Dim idBienResultado As Integer = nBienResultado.Name
Dim db As New lnqBienesDataContext
Dim usuarioBienResultados = From ubr In
db.catUsuarioBienResultado _
Where ubr.idBienResultado =
idBienResultado And _
ubr.idUsuario = idUsuario _
Select ubr
usuarioBienResultados.First.salidaPermitida = salidaPermitida
db.SubmitChanges()
Color.Red)

nBienResultado.ForeColor = IIf(salidaPermitida, Color.Green,

'Me.TreeView1.SelectedNode.ForeColor = IIf(salidaPermitida,
Color.Green, Color.Red)
Me.TreeView1.Refresh()
Catch ex As Exception
End Try
End Sub
End Class
Class myNode
Inherits Windows.Forms.TreeNode
Private _tipoNodo As String
Public Property tipoNodo() As String
Get
Return _tipoNodo
92

End Get
Set(ByVal value As String)
_tipoNodo = value
End Set
End Property
End Class

Usuario
Imports System.Windows.Forms
Public Class dlgUsuario
Private _idUsuario As Integer
Public Property idUsuario() As Integer
Get
Return
_idUsuario
End Get
Set(ByVal value As Integer)
_idUsuario =
value
End Set
End Property
Private formularioValido As Boolean
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
Me.formularioValido = True
Me.ValidateChildren()
If Me.formularioValido = False Then
MsgBox("Existen campos sin llenar",
MsgBoxStyle.Information) Exit Sub
End If
operacionD
B()
Me.DialogResult =
System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close
() End Sub
Private Sub pbxImagen_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles pbxImagen.Click
93

tools.selecionaImagen(Me.pbxI
magen) End Sub

94

Private Sub dlgUsuario_Load(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles MyBase.Load
cargaPropiedades()
If idUsuario = 0 Then
Me.btnPermisos.Enabled = False
End If
End Sub
Private Sub operacionDB()
If Me.idUsuario <> 0
Then
actualizaUsuario()
Else
guardaUsuari
o()
End If
End Sub
Private Sub
cargaPropiedades()
cargaCombos("areas")
cargaCombos("cargos")
End Sub
Private Sub cargaCombos(ByVal strCombo
As String) Dim db As New
lnqBienesDataContext
Select Case strCombo
Case "areas"
Dim areas = From area In db.catAreas
Select area cmbArea.DataSource = areas
cmbArea.DisplayMember = "Area"
Case "cargos"
Dim cargos = From cargo In db.catCargos
Select cargo cmbCargo.DataSource = cargos
cmbCargo.DisplayMember = "Cargo"
End Select
End Sub
Private Sub guardaUsuario()
Dim db As New lnqBienesDataContext
Dim usuario As New catUsuarios
usuario.Nombre =
Me.txtNombre.Text
usuario.Apellidos =
Me.txtApellidos.Text usuario.Sexo
= Me.cmbSexo.Text
usuario.FechaAlta = Now
usuario.Extension =
Me.txtExtension.Text
94

usuario.Correo =
Me.txtCorreo.Text
usuario.idArea = toDiccionario(Me.cmbArea.SelectedItem)
("idArea") usuario.idCargo =
toDiccionario(Me.cmbCargo.SelectedItem)("idCargo")
usuario.Imagen =
tools.Image2Bytes(Me.pbxImagen.Image)
db.catUsuarios.InsertOnSubmit(usuario)

95

db.SubmitChang
es() End Sub
Private Sub actualizaUsuario()
Dim db As New lnqBienesDataContext
Dim usuarios = From usuario In db.catUsuarios Where usuario.IdUsuario =
Me.idUsuario
Select
usuario
Dim u As catUsuarios = usuarios.First
u.Nombre =
Me.txtNombre.Text
u.Apellidos =
Me.txtApellidos.Text u.Sexo =
Me.cmbSexo.SelectedText
u.Sexo = Me.cmbSexo.Text
u.Extension =
Me.txtExtension.Text
u.Correo = Me.txtCorreo.Text
u.idArea = toDiccionario(Me.cmbArea.SelectedItem)
("idArea") u.idCargo =
toDiccionario(Me.cmbCargo.SelectedItem)("idCargo")
u.Imagen = tools.Image2Bytes(Me.pbxImagen.Image)
db.SubmitChang
es() End Sub
Private Sub cargarUsuario()
Dim db As New lnqBienesDataContext
Dim usuarios = From usuario In db.catUsuarios Where usuario.IdUsuario =
Me.idUsuario
Select
usuario
Dim u As catUsuarios = usuarios.First
Me.txtNombre.Text =
u.Nombre
Me.txtApellidos.Text =
u.Apellidos
Me.cmbSexo.SelectedText =
u.Sexo
Me.txtExtension.Text =
u.Extension Me.txtCorreo.Text =
u.Correo
Me.cmbArea.SelectedIndex =
u.idArea
95

Me.cmbCargo.SelectedIndex =
u.idCargo
Me.pbxImagen.Image = tools.Bytes2Image(CType(u.Imagen.ToArray,
Byte()))
End Sub
Private Sub txtNombre_Validated(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles
txtNombre.Validated
muestraError(Me.txtNombre)
End Sub

96

Private Sub txtApellidos_Validated(ByVal sender As Object, ByVal e As


System.EventArgs) Handles txtApellidos.Validated
muestraError(Me.txtApell
idos) End Sub
Private Sub txtExtension_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) End Sub
Private Sub muestraError(ByVal obj As TextBox)
Dim mensaje As String = IIf(obj.Text = "", "Debe tener
un valor.", "") If obj.Text = "" Then
Me.ErrorProvider1.SetError(obj,
mensaje) Me.formularioValido =
False
Else
Me.ErrorProvider1.SetError(o
bj, "") End If
End Sub
Private Sub cmbSexo_Validated(ByVal sender As Object, ByVal e As
System.EventArgs) Handles cmbSexo.Validated
If Me.cmbSexo.Text = "" Then
Me.ErrorProvider1.SetError(cmbSexo, "seleccione
un campo.") Me.formularioValido = False
Else
Me.ErrorProvider1.SetError(cmbS
exo, "") End If
End Sub
Private Sub txtExtension_Validated1(ByVal sender As Object, ByVal e As
System.EventArgs) Handles txtExtension.Validated
If Me.txtExtension.Text = "" Then
Me.ErrorProvider1.SetError(txtExtension, "introduzca una
extensin.") Me.formularioValido = False
Else
Me.ErrorProvider1.SetError(txtExten
sion, "") End If
End Sub
Private Sub AgregarToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As
System.EventArgs) Handles
AgregarToolStripMenuItem.Click
guardarCambioArea("insert")
End Sub
Private Sub EditarToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As
System.EventArgs) Handles
96

EditarToolStripMenuItem.Click
guardarCambioArea("update")
End Sub

97

Private Sub AgregarToolStripMenuItem1_Click(ByVal sender As System.Object,


ByVal e As
System.EventArgs) Handles
AgregarToolStripMenuItem1.Click
guardarCambioCargo("insert")
End Sub
Private Sub AditarToolStripMenuItem_Click(ByVal sender As System.Object,
ByVal e As
System.EventArgs) Handles
AditarToolStripMenuItem.Click
guardarCambioCargo("uodate")
End Sub
Private Sub guardarCambioArea(ByVal operacion
As String) Dim valor As String =
InputBox("Introduzca el area", "")
If String.IsNullOrEmpty(valor) Then
MsgBox("El valor introducido no es
vlido") Exit Sub
End If
Dim db As New lnqBienesDataContext
Dim area As New catAreas
Select Case operacion
Case "insert"
area.Area = UCase(valor)
db.catAreas.InsertOnSubmit
(area) Case "update"
If cmbArea.SelectedItem Is Nothing Then
Exit
Sub
End If
Dim idArea As Integer = toDiccionario(cmbArea.SelectedItem)("idArea")
Dim areas = From a In db.catAreas Where a.idArea =
idArea Select a area = areas.First
area.Area =
UCase(valor) End Select
db.SubmitChanges()
cargaCombos("areas")
End Sub
Private Sub guardarCambioCargo(ByVal operacion
As String) Dim valor As String =
InputBox("Introduzca el cargo", "")
If String.IsNullOrEmpty(valor) Then
MsgBox("El valor introducido no es
vlido") Exit Sub
9
7

End If
Dim db As New lnqBienesDataContext
Dim cargo As New catCargos
Select Case operacion
Case "insert"

9
8

cargo.Cargo = UCase(valor)
db.catCargos.InsertOnSubmit
(cargo) Case "update"
If cmbCargo.SelectedItem Is Nothing Then
Exit
Sub
End If
Dim idCargo As Integer = toDiccionario(cmbCargo.SelectedItem)
("idArea")
Dim cargos = From c In db.catCargos Where c.idCargo =
idCargo Select c cargo = cargos.First
cargo.Cargo =
UCase(valor) End Select
db.SubmitChanges()
cargaCombos("car
gos") End Sub
Private Sub btnPermisos_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnPermisos.Click
Dim dpermisos As New
dlgPermisos
dpermisos.idUsuario =
idUsuario
dpermisos.ShowDialog(Me)
End
Sub
End Class

Reportes
Imports Microsoft.Reporting.WinForms
Public Class dlgReportes
Private Sub dlgReportes_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim ds As New equiposDataSet
Dim ta As New
equiposDataSetTableAdapters.catAreasTableAdapter Dim
tu As New
equiposDataSetTableAdapters.catUsuariosTableAdapter
Dim tb As New
equiposDataSetTableAdapters.catBienesTableAdapter
98

ta.Fill(ds.catAreas)
tb.Fill(ds.catBienes)
Dim ds1 As New ReportDataSource("equiposDataSet_catAreas",
ds.catAreas) Dim ds2 As New
ReportDataSource("equiposDataset_catBienes", ds.catBienes)
Me.ReportViewer1.LocalReport.DataSources.Clear()

99

Me.ReportViewer1.LocalReport.DataSources.
Add(ds1)
Me.ReportViewer1.LocalReport.DataSources.
Add(ds2)
Me.ReportViewer1.RefreshRe
port() End Sub
End Class

Pantalla Lectura de tarjeta RFID


Imports System.Windows.Forms
Public Class EsperaLecturaRFiD
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles OK_Button.Click
Me.DialogResult =
System.Windows.Forms.DialogResult.OK
Me.Close()
End
Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs)
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close
() End Sub
Private Sub tmrBlinq_Tick(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles tmrBlinq.Tick
If Me.lblMensaje.ForeColor = Color.Red Then
Me.lblMensaje.ForeColor =
Color.White
Else
Me.lblMensaje.ForeColor =
Color.Red
End If
End
Sub
Private Sub EsperaLecturaRFiD_Load(ByVal sender As System.Object, ByVal e
As
System.EventArgs) Handles MyBase.Load
Me.tmrBlinq.Sta
rt() End Sub
End Class

Contenedor
99

Imports System.Windows.Forms
Public Class mdiContenedor
Dim
Dim
Dim
Dim

adminEquipos As frmAltaBien
buscar As frmLstUsuarios
asignacion As frmAsignacion
reportes As dlgReportes

10
0

Private Sub muestraNuevoUsuario()


Dim usuario As New dlgUsuario
usuario.ShowDialog()
End Sub
Private Sub muestraAdministradorBienes()
If adminEquipos Is Nothing OrElse adminEquipos.IsDisposed Then
adminEquipos = New frmAltaBien
End If
adminEquipos.MdiParent = Me
adminEquipos.Show()
End Sub
Private Sub muestraAsignacion()
If asignacion Is Nothing OrElse asignacion.IsDisposed Then
asignacion = New frmAsignacion
End If
asignacion.MdiParent = Me
asignacion.Show()
End Sub
Private Sub muestraBuscar()
If buscar Is Nothing OrElse buscar.IsDisposed Then
buscar = New frmLstUsuarios
End If
buscar.MdiParent = Me
buscar.Show()
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripButton1.Click
If Not My.User.IsInRole("ADMINISTRADOR") Then
Exit Sub
End If
muestraNuevoUsuario()
End Sub
Private Sub ToolStripButton2_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripButton2.Click
If Not My.User.IsInRole("ADMINISTRADOR") Then
Exit Sub End If
muestraAdministradorBienes()
End Sub
Private Sub ToolStripButton3_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles ToolStripButton3.Click
muestraAsignacion()
End Sub

100
100

Private Sub ToolStripButton4_Click(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles ToolStripButton4.Click
muestraBuscar()
End Sub
Private Sub mdiContenedor_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
System.Threading.Thread.CurrentPrincipal = Nothing
ShowSplash()
''CurrentPrincipal.Identity()

While (Not My.User.IsAuthenticated)


dlgLogin.ShowDialog(Me)
End While

For Each puerto As String In My.Computer.Ports.SerialPortNames


Me.puertosDisponibles.DropDownItems.Add(puerto)
Next
Me.puertosDisponibles.DropDownItems.Add("CLOSE")
End Sub
Private Sub admPuertoSerie(ByVal accion As String)
Try
Dim msg As String = ""
Select Case accion
Case "conectar"
If Not Me.puertoSerie.IsOpen Then
Me.puertoSerie.PortName =
Me.strPuertoSeleccionado.Text
Me.puertoSerie.Open()
msg = String.Format(" conectado por el puero
{0},{1}", Me.puertoSerie.PortName, Me.puertoSerie.BaudRate)
Else
msg = "Desconectado"
End If
Case "desconectar"
If Me.puertoSerie.IsOpen Then
Me.puertoSerie.Close()
End If
msg = "Desconectado"
End Select
Me.estatusPuertoSerie.Text = msg
Catch ex As Exception
Console.WriteLine("Error al desconectar el puerto serie")
End Try

10
1

End Sub
Private Sub puertosDisponibles_DropDownItemClicked(ByVal sender As
System.Object, ByVal e As
System.Windows.Forms.ToolStripItemClickedEventArgs) Handles
puertosDisponibles.DropDownItemClicked
Dim opcionPuerto As String = e.ClickedItem.Text
If Not opcionPuerto = "CLOSE" Then
Me.strPuertoSeleccionado.Text = opcionPuerto
admPuertoSerie("conectar")
Else
Me.strPuertoSeleccionado.Text = ""
admPuertoSerie("desconectar")
End If
End Sub
Private Sub puertoSerie_DataReceived(ByVal sender As System.Object,
ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles
puertoSerie.DataReceived
Try
Dim resultado As String = puertoSerie.ReadLine
Console.WriteLine()
resultado = resultado.Replace(vbCr, "").Replace(Chr(2),
"").Replace(Chr(3), "")
SetText(resultado)
Catch ex As Exception
Console.WriteLine(" ERROR EN LA LECTURA DEL PUERTO SERIE")
End Try
End Sub
Delegate Sub SetTextCallback(ByVal text As String)
Private Sub SetText(ByVal text As String)
If Me.InvokeRequired Then
Dim d As New SetTextCallback(AddressOf SetText)
Me.Invoke(d, New Object() {text})
Else
Me.datoRecibido.Text = text
eviarTagFormulario(text)
End If
End Sub
Private Sub eviarTagFormulario(ByVal tagRFiD As String)
If adminEquipos Is Nothing OrElse adminEquipos.IsDisposed Then
Exit Sub
End If
Dim pagina As nuevoBien = Me.adminEquipos.tcBienes.SelectedTab
If pagina IsNot Nothing Then
For Each rw As DataRow In pagina.dtPropiedades.Rows
If rw("Propiedad") = "IDTAG RFID" Then
rw("Valor") = tagRFiD
End If
Next
End If
End Sub

102
102

Private Sub ToolStripButton5_Click(ByVal sender As System.Object,


ByVal e As System.EventArgs) Handles ToolStripButton5.Click
muestraReportes
Exit Sub
SetText("1234567")
End Sub
Private Sub muestraReportes()
If reportes Is Nothing OrElse reportes.IsDisposed Then
reportes = New dlgReportes
End If
reportes.MdiParent = Me
reportes.Show()
End Sub
Private Sub ShowSplash()
Dim fSplash As New ctrlEquiposBienvenida
fSplash.Owner = Me
fSplash.Show()
Application.DoEvents()
Threading.Thread.Sleep(1000)
fSplash.Close()
fSplash.Dispose()
End Sub
Private Sub mdiContenedor_FormClosing(ByVal sender As System.Object,
ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles
MyBase.FormClosing
Try
If Me.puertoSerie.IsOpen Then
Me.puertoSerie.Close()
End If
Catch ex As Exception
Console.WriteLine("Error al cerrar el puerto serie")
End Try
End Sub
End Class

Pantalla de Busqueda
Imports System.Text
Public Class frmLstUsuarios
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim propBuscar As String = Me.txtBsqPalabras.Text
If rbtBienes.Checked Then
103
103

Else

bsqBienes(propBuscar)
splResultados.Panel2Collapsed = False
bsqUsuarios(propBuscar)
splResultados.Panel2Collapsed = True

End If
End Sub
Private Sub bsqUsuarios(ByVal propBuscar As String)

Dim db As New lnqBienesDataContext


Dim imagen As Image = Nothing
Dim usuarios = From u In db.catUsuarios _
Where u.Nombre.Contains(propBuscar) OrElse _
u.Apellidos.Contains(propBuscar) OrElse _
u.catAreas.Area.Contains(propBuscar) OrElse

u.catCargos.Cargo.Contains(propBuscar) _
Select New With {.ID = u.IdUsuario, .NOMBRE =
u.Nombre, .APELLIDOS = u.Apellidos, .GENERO = u.Sexo, .AREA =
u.catAreas.Area, .CARGO = u.catCargos.Cargo, .EXTENSION = u.Extension, _
.IMAGEN = IIf(u.Imagen Is Nothing, imagen,
tools.Bytes2Image(u.Imagen.ToArray()))}
Me.dgvMaster.AutoGenerateColumns = False
Me.dgvMaster.Columns.Clear()
Me.dgvMaster.Columns.Add("ID", "ID")
Me.dgvMaster.Columns.Add("NOMBRE", "NOMBRE")
Me.dgvMaster.Columns.Add("APELLIDOS", "APELLIDOS")
Me.dgvMaster.Columns.Add("GENERO", "GENERO")
Me.dgvMaster.Columns.Add("AREA", "AREA")
Me.dgvMaster.Columns.Add("CARGO", "CARGO")
Me.dgvMaster.Columns.Add("EXTENSION", "EXTENSION")
Dim imagenColumn As New DataGridViewImageColumn()
imagenColumn.Name = "IMAGEN"
imagenColumn.HeaderText = "IMAGEN"
Me.dgvMaster.Columns.Add(imagenColumn)
Me.dgvMaster.Columns(0).DataPropertyName
Me.dgvMaster.Columns(1).DataPropertyName
Me.dgvMaster.Columns(2).DataPropertyName
Me.dgvMaster.Columns(3).DataPropertyName
Me.dgvMaster.Columns(4).DataPropertyName
Me.dgvMaster.Columns(5).DataPropertyName
Me.dgvMaster.Columns(6).DataPropertyName
Me.dgvMaster.Columns(7).DataPropertyName

=
=
=
=
=
=
=
=

"ID"
"NOMBRE"
"APELLIDOS"
"GENERO"
"AREA"
"CARGO"
"EXTENSION"
"IMAGEN"

Me.dgvMaster.DataSource = usuarios
End Sub
Private Sub bsqBienes(ByVal propBuscar As String)

104
104

Dim db As New lnqBienesDataContext


Dim imagen As Image = Nothing
Dim bienes = (From r In db.catResultados _
Where r.Valor.Contains(propBuscar) OrElse _
r.catBienes.Descripcion.Contains(propBuscar) _
Select New With {.ID =
r.catBienResultado.idBienResultado, .BIEN = r.catBienes.Nombre,
.DESCRIPCION = r.catBienes.Descripcion, .IMAGEN =
IIf(r.catBienResultado.catImagenes.Imagen Is Nothing, imagen,
tools.Bytes2Image(r.catBienResultado.catImagenes.Imagen.ToArray()))}).Dis
tinct

Me.dgvMaster.AutoGenerateColumns = False
Me.dgvMaster.Columns.Clear()
Me.dgvDetail.Columns.Clear()
Me.dgvMaster.Columns.Add("ID", "ID")
Me.dgvMaster.Columns.Add("BIEN", "BIEN")
Me.dgvMaster.Columns.Add("DESCRIPCION", "DESCRIPCION")
Dim imagenColumn As New DataGridViewImageColumn()
imagenColumn.Name = "IMAGEN"
imagenColumn.HeaderText = "IMAGEN"
Me.dgvMaster.Columns.Add(imagenColumn)
Me.dgvMaster.Columns(0).DataPropertyName
Me.dgvMaster.Columns(1).DataPropertyName
Me.dgvMaster.Columns(2).DataPropertyName
Me.dgvMaster.Columns(3).DataPropertyName
Me.dgvMaster.DataSource = bienes

=
=
=
=

"ID"
"BIEN"
"DESCRIPCION"
"IMAGEN"

End Sub

Private Sub frmLstUsuarios_Load(ByVal sender As System.Object, ByVal


e As System.EventArgs) Handles MyBase.Load
splResultados.Panel2Collapsed = True
End Sub
Private Sub dgvMaster_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles dgvMaster.Click
End Sub
Private Sub bsqPropiedades(ByVal idBien As Integer)
Dim db As New lnqBienesDataContext
Dim propiedades = (From r In db.catResultados _
Where r.idBienResultado = idBien _
Select New With {.PROPIEDAD =
r.catPropiedades.Propiedad, .VALOR = r.Valor}).Distinct
Me.dgvDetail.AutoGenerateColumns = False
105
105

Me.dgvDetail.Columns.Clear()
Me.dgvDetail.Columns.Add("PROPIEDAD", "PROPIEDAD")
Me.dgvDetail.Columns.Add("VALOR", "VALOR")
Me.dgvDetail.Columns(0).DataPropertyName = "PROPIEDAD"
Me.dgvDetail.Columns(1).DataPropertyName = "VALOR"
Me.dgvDetail.DataSource = propiedades
End Sub
Private Sub editaUsuario(ByVal idUsuario As Integer)
Try
Dim db As New lnqBienesDataContext
Dim usuarios = From u In db.catUsuarios _
Where u.IdUsuario = idUsuario _
Select u
Dim usuario As New catUsuarios
usuario = usuarios.First
Dim imagen As Image = Nothing
Dim dlgUsuario As New dlgUsuario
dlgUsuario.idUsuario = usuario.IdUsuario
dlgUsuario.txtNombre.Text = usuario.Nombre
dlgUsuario.txtApellidos.Text = usuario.Apellidos
dlgUsuario.txtExtension.Text = usuario.Extension
dlgUsuario.txtCorreo.Text = usuario.Correo
dlgUsuario.cmbArea.SelectedText = usuario.catAreas.Area
dlgUsuario.cmbCargo.SelectedText = usuario.catCargos.Cargo
dlgUsuario.cmbSexo.Text = usuario.Sexo
If usuario.Imagen IsNot Nothing Then
dlgUsuario.pbxImagen.Image =
tools.Bytes2Image(usuario.Imagen.ToArray())
End If
dlgUsuario.ShowDialog(Me)
Catch ex As Exception
Console.Error.WriteLine("Error al intentar asignar un
usuario")
End Try
End Sub
Private Sub dgvMaster_CellClick(ByVal sender As System.Object, ByVal
e As System.Windows.Forms.DataGridViewCellEventArgs) Handles
dgvMaster.CellClick
Dim selectedCellCount As Integer =
dgvMaster.GetCellCount(DataGridViewElementStates.Selected)
If selectedCellCount > 0 Then
Dim salida As String =
dgvMaster.CurrentRow.Cells(0).Value.ToString
If IsNumeric(salida) Then
If rbtBienes.Checked Then
If splResultados.Panel2Collapsed Then
Exit Sub
106
106

Else

End If
bsqPropiedades(salida)

editaUsuario(salida)
End If
End If
End If
End Sub
End Class

10
71

También podría gustarte