Conexión de sensores en red
Conexión des e n s o r e s e n r e d Este artículo presenta la forma de conectar hasta 16 sensores de tal manera que puedan ser monitoreados desde una computadora o equipo maestro, utilizando para ello solamente un puerto serial del tipo RS232, disponible en todas las PC y computadoras industriales.
LUIS ALFONSO RODRÍGUEZ V. EDISON DUQUE C. Profesores Universidad Tecnológica de Pereira
Introducción puede escoger, según la aplicación En este artículo presentaremos En muchos procesos industriales, o en particular, desde una tarjeta de adqui- una alternativa diferente a las que acalaboratorios de investigación, existe sición de datos con varios canales de bamos de nombrar, permitiendo así la necesidad de medir diferentes va- entrada, hasta equipos que involucren construir una red sobre la cual se coriables físicas, tales como: tempera- Controladores Lógicos Programables nectan los diferentes sensores requetura, presión, flujo, intensidad lumi- (PLC) con sus respectivas interfaces ridos (hasta un máximo de 16), con nosa, corriente, voltaje, etc. Cada una análogas y que involucren de alguna su respectivo convertidor análogo a de estas mediciones se realiza con sus manera la capacidad de comunicación digital y con un microcontrolador que respectivos sensores y acondicionado- serial del tipo Modbus, Fieldbus o al- se encarga de manejar una interfaz de res de señal. El inconveniente se pre- gún otro estándar industrial. tipo serial sobre la cual se pueden senta cuando se requiere haconectar todos los módulos y cer la conversión de la señal permite llevar los datos hasta Sensor 1 = 2F5h análoga a valores digitales y el equipo maestro; generalmenSensor 2 = 3FFh posteriormente llevar estos te será la computadora encarhasta la computadora para gada de tomar los datos y proque los datos sean procesacesarlos; figura 1. Puerto serial dos, tratados y/o almacenados. Es aquí donde pueden Descripción del proyecto Sensor 1 Sensor 2 Sensor 16 existir diferentes opciones El soporte fundamental, para el para la persona encargada de funcionamiento de este proyecFigura 1. Diagrama general de la diseñar el circuito, la cual to, es la posibilidad de conectar conexión de sensores en red Electrónica
&
Computadoras • N°67
9
PP RR OO YY EE CC TT OO
En este punto se debe hacer una aclaración para evitar confusiones, y tiene que ver con la interfaz serial utilizada. Para empezar, cualquier computadora tipo PC posee al menos un puerto serial del tipo RS-232, con este tipo de interfaz sólo se pueden tener conectados dos equipos; por lo tanto este sistema no permite que conectemos varios aparatos en red, lo cual es el objetivo del proyecto. Para cumplir realmente nuestro objetivo se debe utilizar una interfaz del tipo RS-485 en la cual, según la norma, se
+5V
Señal análoga (0 - 5V)
REF+
2 IN
18 RA1 1 RA2
CS 5 7 CLK DATA 6
17
8 Vcc
10K RB2 8
RA0
+5V
GND 4
+5V
+5V
14 VDD
TLC1549
3 REF-
Básicamente, la línea de transmisión de la computadora se conecta a todas las líneas de recepción de los sensores inteligentes y todas las líneas de transmisión de los sensores se únen y se llevan hasta la entrada de recepción de la computadora. Nuevamente se debe hacer claridad en que ésta es una interfaz RS-485 a cuatro hilos puesto que, algunas personas se pueden confundir y asumir que por el hecho de tener 4
+5V
8 1
pueden conectar hasta 32 equipos transmisores/receptores. Adicionalmente, una red RS-485 se puede construir de dos formas: de dos hilos o de cuatro hilos. En nuestro caso optamos por la segunda opción, ya que el funcionamiento en este modo es más simple.
dos los módulos conectados sobre la red, pero solamente aquel sensor inteligente que se sienta identificado por dicha petición contestará enviando el dato del convertidor análogo a digital.
diferentes aparatos sobre una misma línea de transmisión y de recepción de datos. Es decir, como la idea es utilizar un solo puerto serial de la computadora maestra para desde allí tener acceso a diferentes equipos (aquí llamados sensores inteligentes), estos deben obligatoriamente estar conectados al mismo bus de datos y deben tener capacidad de decidir en que momento cada uno de ellos puede hacer uso de la red para transmitir el dato de la variable que le corresponde hacia el equipo maestro. Por esta razón, la red a la cual se conectan los sensores inteligentes es del tipo RS-485 de 4 hilos, así, la petición que hace la computadora maestra, para obtener el dato de una variable en un sensor específico, es escuchada por to-
RB1
Línea de Tx
7 Habilitación de Tx 2
3 DE 10K 4
RESET
T+
MCLR PIC16F84
15 OSC1
DIPswitch
R+5V 16 OSC2
12 RB7 11 RB6 10 RB5 9
RB0/INT 6
Línea de Rx
DIPswitch para seleccionar el número que corresponde al módulo dentro de la red de sensores
A 6 B
7
VSS 5
+5V
Regulador IN
+
1 R0 2 RE 5N75176 3 DE GND
10K 10K
GND
8 Vcc
RB4
10K
Interfaz RS485 a 4 hilos
10K
20pF
0
10K
R+
+5V
4MHz 1
GND 5
T20pF
+5V
B7
RE
10K 100Ω
A 6
4 D1
7805
OUT
GND 9VAC o 12VDC
+ 1000μF
0.01μF
470Ω
Módulo esclavo en la red de sensores inteligentes
POWER ON
Puente rectificador Fuente de alimentación
Figura 2. Diagrama esquemático del sensor inteligente
10
Electrónica
&
Computadoras • N°67
Conexión de sensores en red
Figura 3. Circuito impreso del sensor inteligente
líneas, se trata de una interfaz RS-422, lo cual es falso pues, según la norma, en el estándar RS-422 sólo se puede tener un solo transmisor y hasta 32 receptores; caso diferente del nuestro en el cual cada sensor y la computadora maestra pueden transmitir datos en un momento determinado. Dada la explicación anterior, se concluye que en este proyecto se deben construir dos circuitos o tarjetas diferentes. Uno corresponde al sensor inteligente propiamente dicho y el otro a un convertidor de interfaz RS232 a RS-485 de 4 hilos, el cual se debe conectar en el puerto serial de la computadora que maneja todo el sistema de instrumentación. A continuación haremos una descripción de estos dos circuitos: Sensor inteligente. Según el reconocido autor español Ramón Pallás Areny, un sensor inteligente es aquel que combina la función de detección y algunas funciones de procesamiento de la señal y comunicación. Dado que estas funciones adicionales suele realizarlas un microcontrolador, cualquier combinación de sensor y microcontrolador se denomina a veces sensor inteligente. En nuestro caso particular, el sensor inteligente es un circuito que consta de lo siguiente: un convertidor análogo a digital referencia LTC1549 de Texas Instruments, con resolución de 10 bits y salida serial para comunicarse con el microcontrolador; una interfaz de comunicación RS-485 a 4 hilos, que permite que dicho módulo pueda ser conectaElectrónica
&
Computadoras • N°67
do en red, y un microcontrolador PIC16F84 que se encarga de controlar todas las funciones del circuito. Dado que sobre la red de sensores pueden estar conectados hasta 16 circuitos idénticos, debe existir alguna forma de diferenciarlos en el momento en que la computadora haga la petición para conocer el valor o el estado de un sensor en particular. Para esto, el circuito lleva un dipswitch de 4 interruptores, con el cual el usuario puede seleccionar un número entre 0 y 15, o mejor, en hexadecimal entre 0 y F (con 4 bits se tienen 16 posibles combinaciones). Estos interruptores sirven para fijar el número de identificación del sensor sobre la red; obviamente, no pueden haber dos sensores inteligentes con el mismo número. Estos interruptores del dipswitch son leídos por el microcontrolador y comparados con el dato que envía la computadora maestra, para así determinar si es a él a quien le corresponde hacer la transmisión con el dato del convertidor análogo/digital, o lo que es equivalente a decir cuál es el valor de la variable análoga a medir. Otro aspecto importante es que el convertidor análogo a digital puede recibir señales que estén acondicionadas entre cero y cinco voltios. Por tanto, para el circuito es transparente la variable que se mide y el tipo de sensor utilizado ya que, el usuario debe conectar en la entrada del sensor inteligente la señal previamente acondicionada a dichos niveles. En lo referente a la interfaz RS-485
el circuito posee dos circuitos integrados SN75176 de Texas Instruments, uno para la recepción de datos y otro para la transmisión. Estos dispositivos se encargan de hacer la conversión entre los niveles TTL del microcontrolador y las señales de tipo diferencial que se utilizan en la línea RS-485. Vale la pena decir que en el driver de transmisión se agregó una línea de habilitación, esto se debe a que todas las salidas de los sensores inteligentes están conectadas al mismo punto para ser llevadas a la línea de recepción de la computadora, así, cada uno está siempre deshabilitado para enviar datos y sólo se habilitará en el momento en que deba hacer una transmisión, evitando así conflictos o choques de información en la línea o bus de datos. En la figura 2 se muestra el diagrama esquemático del circuito y en la figura 3 el circuito impreso. Convertidor de RS-232 a RS-485 de 4 hilos. Dado que la red de sensores está implementada con la norma RS485, debe existir un circuito que convierta dichas señales al formato RS232 para que así pueda conectarse en la red el dispositivo maestro, que es la computadora que almacena y procesa los datos. Esta tarea implica convertir nuevamente las señales de tipo diferencial a niveles TTL mediante dos circuitos integrados SN75176 y, a continuación, un circuito integrado MAX232 que convierte niveles TTL en los niveles de tensión adecuados para el puerto RS-232 de la computadora. En la figura 4 se muestra el diagrama esquemático del circuito y en la figura 5 el circuito impreso. 11
PP RR OO YY EE CC TT OO +5V
+5V +5V 10μF
16 Vcc
+
3
2 V+
10K
Línea de Tx
C+ 4
1 C+
Tx
DE
A 6 SN75176
Rx
10μF 3 C-
2 6
C-
T2 OUT
Conector DB9 hembra para impreso
+5V
R+
5
10μF
+5V 10K
6 VRE 10μF
+
Niveles RS-232
T+
T-
GND 5
GND 15
Interfaz RS- 485 a 4 hilos
R-
8 Vcc
10 1 R0 T2 IN Línea de Rx
7 1
D1
+
+
3
4
9 R2 OUT
R2 IN
4
7
RE
B 7
8
9 8
8 Vcc
MAX232
5
Conectar al puerto serial de la PC (1200 bps, 8, n, 1)
2
A 6 SN75176
GND
B 7
DE GND 5 Señales diferenciales
Niveles TTL
Nota: Los condensadores del MAX232 son de Tantalio Nota 2: La fuente de alimentación de este circuito es similar a la del módulo del sensor
Figura 4. Diagrama esquemático del convertidor RS-232 a RS-485 de 4 hilos
Una vez se tienen construidos los circuitos, el usuario puede decidir cuántos módulos sensores requiere, según la aplicación, teniendo en cuenta que el máximo son 16 pues que cada módulo posee cuatro interruptores para ajustar su número de identificación. Debe tenerse especial cuidado a la hora de hacer las conexiones entre las tarjetas, recuerde que las salidas de transmisión de la computadora van hacia las de recepción de los sensores, y que las salidas de transmisión de estos últimos van hacia la entrada de recepción de la computadora. En la figura 6 se muestra la forma correcta de realizar esta labor. En el momento del trabajo, no olvide conec-
tar las resistencias de fin de línea que se utilizan en toda interfaz RS-485; dichas resistencias deben estar ubicadas en los puntos más alejados de la red, es decir, en el convertidor RS-232 a RS485 que está en la computadora y en el sensor inteligente más alejado. Dichas resistencias pueden tener un valor entre 100 y 200 ohmios, su ubicación correcta se presenta en el diagrama de conexiones. Para la línea de transmisión propiamente dicha, que puede medir varios cientos de metros, es recomendable utilizar cable tipo UTP (Unshielded Twisted Pair), el cual presenta muy buenas características en cuanto atenuación e inmunidad al ruido.
Software del microcontrolador El PIC16F84 que se encarga de manejar todas las funciones del sensor inteligente, realiza entre otras, las siguientes tareas: Leer el dato que entrega el convertidor análogo/digital, recibir las peticiones que envía la computadora maestra para determinar si es el módulo al que pertenece a quien se le está pidiendo el dato del sensor. En caso de ser afirmativa dicha prueba, debe proceder a transmitir el dato del convertidor; en caso de ser negativa, debe evitar que se envíe cualquier dato para no causar algún conflicto de información sobre la línea. El programa está estructurado de tal forma que el microcontrolador está permanentemente leyendo el conver-
Figura 5. Circuito impreso del convertidor RS-232 a RS-485 de 4 hilos
12
Electrónica
&
Computadoras • N°67
Conexión de sensores en red Fuente
+5V GND RIN R+ GND
+5V OUT Señal GND Sensor con acondicionador y salida 0-5V
TT+
Línea o bus de conexión RS- 485 (cable UTP preferiblemente)
TT+
Rt
Sensor inteligente
GND RR+
Rt Fuente TT+ +5V GND RIN R+ GND
+5V OUT Señal GND Sensor con acondicionador y salida 0-5V
DB9 macho
DB9 hembra
Cable RS- 232 1a1 (sin cruces)
Rt Convertidor RS- 232 a RS- 485 de 4 hilos Rt
Al puerto serial
Rt: Resistencia de fin de línea = 100Ω *Se debe colocar en los puntos más extremos de la red
Referencias 1. Pallás Areny, Ramón. “Sensores y acondicionadores de señal”. Ed. Alfaomega Marcombo, 1994. 2ª edición.
Sensor inteligente
Figura 6. Diagrama de conexiones de la red de sensores
tidor A/D, cuando recibe un dato enviado por la computadora (un carácter que especifica el número del sensor que quiere leer), sufre una interrupción que lo saca del ciclo normal y procede a recibir el dato y lo compara con el número de identificación determinado con el dipswitch, para así tomar la decisión de si responde o no a dicha petición. En este proyecto, la comunicación entre la computadora y los sensores inteligentes está configurada para una velocidad de 1 200 bps, datos de 8 bits, 1 stop bit y sin paridad. Una vez que el sensor inteligente decide que debe enviar hacia la computadora el dato del convertidor A/D, construye una trama de información que contiene los siguientes datos: el primer dato es el número del canal que está respondiendo (un número hexadecimal entre 0 y F, que corresponde al número de identificación del sensor y que se transmite en formato ASCII); luego sigue una coma “,” (carácter 2C en hexadecimal); luego los tres dígitos que corresponden al dato del convertidor análogo/digital (un número entre 000 y 3FF en hexadecimal, cada dígito en formato ASCII empezando por el de mayor peso); y para terminar un carácter Carriage Return (0D en hexadecimal) y un carácter Line Feed (0A en hexadecimal). En la figura 7 se muestra el flujo de información en la red. Por falta de espacio no se puede publicar el programa completo del microcontrolador, pero se puede obtener enviando un correo electrónico a:
[email protected]. Electrónica
&
Computadoras • N°67
Si se desea crear una aplicación específica en lenguaje C, Visual Basic o cualquier otro lenguaje, antes de tomar el dato de cada sensor de la red, se debe establecer un tiempo de espera mientras se actualiza y está lista la lectura correcta. Este periodo de espera puede ser alrededor de los 80 milisegundos, tiempo suficiente para que la dirección de cada sensor quede configurada y el dato se enΩ cuentre disponible para ser leído.
Software de la computadora El programa de la computadora depende de la aplicación particular. Una forma muy simple de observar que el proyecto está funcionando bien es hacer la recepción de los datos en el programa Hyperterminal de Windows 95 ó 98. Esta es una herramienta muy útil que permite utilizar algún puerto serial de la computadora para que haga la transmisión y recepción de datos, a la velocidad y configuración deseada por el usuario.
2.Axelson, Jan. “Networks for Monitoring and Control”. Microcomputer Journal, Julio 1995.
En la revista Electrónica & Computadores Nº 50, se hizo una descripción del programa Hyperterminal y la forma de utilizarlo (recuerde configurar el Hyperterminal a 1 200 bps, 8 bits, 1 stop bit y sin paridad). En este caso el usuario sólo debe oprimir una tecla que corresponda a un número entre cero y nueve, o a una letra entre A y F (número hexadecimal pero la computadora lo transmite en formato ASCII), para recibir de vuelta una trama de información como la que se describió anteriormente.
6.Hoja de datos del circuito integrado SN75176: www.ti.com
3.B & B Electronics. “RS-422 and RS485 Application Note”, 1997. 4.Balcells, Josep y Romeral, José Luis. “Autómatas Programables”. Ed. Alfaomega Marcombo, 1998. 5.Hoja de datos del microcontrolador PIC16F84: www.microchip.com
7. Hoja de datos del circuito integrado TLC1549: www.ti.com 8.Hoja de datos del circuito integrado MAX232: www.maxim-ic.com
La PC envía un número que va de 0 a 9 o de A-F, el cual representa la dirección en binario de cada módulo conectado en la red. Este dato se envía en formato ASCII
1
Figura 7. Flujo de datos en la red
2
16
a) De la PC a los sensores
Cada sensor, cuando es requerido por la PC, envía una trama de datos con el siguiente formato: N° del sensor
Carácter “,” 2Ch
# en formato ASCII 0-9 A-F
Dato del conversor
La coma sirve de separación Caracter 2Ch
Carriage return
Dato de 3 dígitos Ejemplo: 3FF cada dígito en ASCII
Line Feed
Carácter 0Dh
Carácter 0Ah
b) De los sensores hacia la PC
13