Informe Red Modbus Completo

ESCUELA SUPERIOR POLITÉCNICA DEL EJÉRCITO TEMA: IMPLEMENTACIÓN DE UNA RED MODBUS CONFORMADA POR UN MAESTRO Y DOS ESCLAVO

Views 107 Downloads 0 File size 761KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

ESCUELA SUPERIOR POLITÉCNICA DEL EJÉRCITO TEMA: IMPLEMENTACIÓN DE UNA RED MODBUS CONFORMADA POR UN MAESTRO Y DOS ESCLAVOS. OBJETIVO GENERAL: Realizar el estudio y análisis de la comunicación modbus e implementar un control con Logica Difusa de Temperatura OBJETIVOS ESPECIFICOS: Identificar bien las características que posee una red Modbus. Implementar un circuito que conste de un master y dos esclavos para realizar la comunicación maestro esclavos. Comprobar las características existentes en la red Modbus Comprende la forma en la que trabaja el maestro al llamar a los esclavos, y la forma en la que ellos responden. Implementar un control Fuzzy Logic de temperatura con la red Modbus MARCO TEORICO Modbus es un protocolo de comunicaciones situado en el nivel 7 del Modelo OSI, basado en la arquitectura maestro/esclavo o cliente/servidor, diseñado en 1979 por Modicon para su gama de controladores lógicos programables (PLCs). Convertido en un protocolo de comunicaciones estándar de facto en la industria es el que goza de mayor disponibilidad para la conexión de dispositivos electrónicos industriales. Las razones por las cuales el uso de Modbus es superior a otros protocolos de comunicaciones son: 1. es público 2. su implementación es fácil y requiere poco desarrollo 3. maneja bloques de datos sin suponer restricciones Modbus permite el control de una red de dispositivos, por ejemplo un sistema de medida de temperatura y humedad, y comunicar los resultados a un ordenador. Modbus también se usa para la conexión de un ordenador de supervisión con una unidad remota (RTU) en sistemas de supervisión adquisición de datos (SCADA). Existen versiones del protocolo Modbus para puerto serie y Ethernet (Modbus/TCP). Existen dos variantes, con diferentes representaciones numéricas de los datos y detalles del protocolo ligeramente desiguales. Modbus RTU es una representación binaria compacta de los datos. Modbus ASCII es una representación legible del protocolo pero menos eficiente. Ambas implementaciones del protocolo son serie. El formato RTU finaliza la trama con un suma de control de redundancia cíclica (CRC), mientras que el formato ASCII utiliza una suma de control de

redundancia longitudinal (LRC). La versión Modbus/TCP es muy semejante al formato RTU, pero estableciendo la transmisión mediante paquetes TCP/IP (puerto del sistema 502, identificador asaappl-proto)1 Cada dispositivo de la red Modbus posee una dirección única. Cualquier dispositivo puede enviar órdenes Modbus, aunque lo habitual es permitirlo sólo a un dispositivo maestro. Cada comando Modbus contiene la dirección del dispositivo destinatario de la orden. Todos los dispositivos reciben la trama pero sólo el destinatario la ejecuta (salvo un modo especial denominado "Broadcast"). Cada uno de los mensajes incluye información redundante que asegura su integridad en la recepción. Los comandos básicos Modbus permiten controlar un dispositivo RTU para modificar el valor de alguno de sus registros o bien solicitar el contenido de dichos registros. CARACTERISTICAS Tipo de comunicación: asíncrona (UART) Velocidad: 75 – 19200 baudiosDistancia: hasta 1200 m (RS-485)

GRAFICA 1: De acceso al medio maestro-esclavo Nº de estaciones: 64 (incluye maestro) Mensajes: – Pto a Pto: demanda (M�E) – respuesta (E�M) Lecturas / escrituras en esclavos (ack) – Difundidos: M � E (sin respuesta) – Datos comunes: configuración, reset, ...

GRÁFICA 2: De aplicaciones red modbus. Variaciones Todas las implementaciones presentan variaciones respecto al estándar oficial. Algunas de las variaciones más habituales son: 

Tipos de Datos o Coma Flotante IEEE o entero 32 bits o datos 8 bits o tipos de datos mixtos o campos de bits en enteros o multiplicadores para cambio de datos a/de entero. 10, 100, 1000, 256 ...



Extensiones del Protocolo o direcciones de esclavo de 16 bits o Tamaño de datos de 32 bits (1 dirección = 32 bits de datos devueltos.)

Lógica Difusa La lógica difusa (también llamada lógica borrosa o lógica heurística) se basa en lo relativo de lo observado como posición diferencial. Este tipo de lógica toma dos valores aleatorios, pero contextualizados y referidos entre sí. Así, por ejemplo, una persona que mida 2 metros es claramente una persona alta, si previamente se ha tomado el valor de persona baja y se ha establecido en 1 metro. Ambos valores están contextualizados a personas y referidos a una medida métrica lineal. Funcionamiento

La lógica difusa ("fuzzy logic" en inglés) se adapta mejor al mundo real en el que vivimos, e incluso puede comprender y funcionar con nuestras expresiones, del tipo "hace mucho calor", "no es muy alto", "el ritmo del corazón está un poco acelerado", etc. La clave de esta adaptación al lenguaje, se basa en comprender los cuantificadores de nuestro lenguaje (en los ejemplos de arriba "mucho", "muy" y "un poco"). En la teoría de conjuntos difusos se definen también las operaciones de unión, intersección, diferencia, negación o complemento, y otras operaciones sobre conjuntos (ver también subconjunto difuso), en los que se basa esta lógica. Para cada conjunto difuso, existe asociada una función de pertenencia para sus elementos, que indican en qué medida el elemento forma parte de ese conjunto difuso. Las formas de las funciones de pertenencia más típicas son trapezoidal, lineal y curva. Se basa en reglas heurísticas de la forma SI (antecedente) ENTONCES (consecuente), donde el antecedente y el consecuente son también conjuntos difusos, ya sea puros o resultado de operar con ellos. Sirvan como ejemplos de regla heurística para esta lógica (nótese la importancia de las palabras "muchísimo", "drásticamente", "un poco" y "levemente" para la lógica difusa):  

SI hace muchísimo frío ENTONCES aumento drásticamente la temperatura. SI voy a llegar un poco tarde ENTONCES aumento levemente la velocidad.

Los métodos de inferencia para esta base de reglas deben ser simples, veloces y eficaces. Los resultados de dichos métodos son un área final, fruto de un conjunto de áreas solapadas entre sí (cada área es resultado de una regla de inferencia). Para escoger una salida concreta a partir de tanta premisa difusa, el método más usado es el del centroide, en el que la salida final será el centro de gravedad del área total resultante. Las reglas de las que dispone el motor de inferencia de un sistema difuso pueden ser formuladas por expertos, o bien aprendidas por el propio sistema, haciendo uso en este caso de redes neuronales para fortalecer las futuras tomas de decisiones. Los datos de entrada suelen ser recogidos por sensores, que miden las variables de entrada de un sistema. El motor de inferencias se basa en chips difusos, que están aumentando exponencialmente su capacidad de procesamiento de reglas año a año. Un esquema de funcionamiento típico para un sistema difuso podría ser de la siguiente manera:

En la figura, el sistema de control hace los cálculos con base en sus reglas heurísticas, comentadas anteriormente. La salida final actuaría sobre el entorno físico, y los valores sobre el entorno físico

de las nuevas entradas (modificado por la salida del sistema de control) serían tomadas por sensores del sistema. Por ejemplo, imaginando que nuestro sistema difuso fuese el climatizador de un coche que se autorregula según las necesidades: Los chips difusos del climatizador recogen los datos de entrada, que en este caso bien podrían ser la temperatura y humedad simplemente. Estos datos se someten a las reglas del motor de inferencia (como se ha comentado antes, de la forma SI... ENTONCES... ), resultando un área de resultados. De esa área se escogerá el centro de gravedad, proporcionándola como salida. Dependiendo del resultado, el climatizador podría aumentar la temperatura o disminuirla dependiendo del grado de la salida.

Aplicaciones generales La lógica difusa se utiliza cuando la complejidad del proceso en cuestión es muy alta y no existen modelos matemáticos precisos, para procesos altamente no lineales y cuando se envuelven definiciones y conocimiento no estrictamente definido (impreciso o subjetivo). En cambio, no es una buena idea usarla cuando algún modelo matemático ya soluciona eficientemente el problema, cuando los problemas son lineales o cuando no tienen solución. Esta técnica se ha empleado con bastante éxito en la industria, principalmente en Japón, extendiéndose sus aplicaciones a multitud de campos. La primera vez que se usó de forma importante fue en el metro japonés, con excelentes resultados. Posteriormente se generalizó según la teoría de la incertidumbre desarrollada por el matemático y economista español Jaume Gil Aluja. A continuación se citan algunos ejemplos de su aplicación:          

Sistemas de control de acondicionadores de aire Sistemas de foco automático en cámaras fotográficas Electrodomésticos familiares (frigoríficos, lavadoras...) Optimización de sistemas de control industriales Sistemas de escritura Mejora en la eficiencia del uso de combustible en motores Sistemas expertos del conocimiento (simular el comportamiento de un experto humano) Tecnología informática Bases de datos difusas: Almacenar y consultar información imprecisa. Para este punto, por ejemplo, existe el lenguaje FSQL. ...y, en general, en la gran mayoría de los sistemas de control que no dependen de un Sí/No.

LISTA DE MATERIALES:      

3 LCD 16X2 2 PIC 18f4620 2 PIC 18f452 3 CI MAX485 1 CI DS1307 1 LM35

 Resistencias de: o 5 de 4,7KΩ o 2 de 120Ω o 1 de 330Ω o 4 de 10Ω o 4 de 560Ω  3 Osciladores de 10 Mhz  1 Oscilador de 40000Hz  3 pulsadores  Cables  Un protoboard  Pinzas de electricista  2 CRY 10 MGHZ  2 CRY 40 MGHZ  3 Leds  1 Niquelina

DESARROLLO: 1. Consultar los datasheet de cada uno de los CI para conocer su configuración y distribución de pines. 2. Realizar el circuito utilizando el software en el programa ISIS, para de esta manera poder simular el funcionamiento de nuestro circuito. A continuación presentamos graficas en las que se encuentran el circuito realizado en ISIS, en estas graficas están por partes ya que el circuito es sumamente grande y resulta complicado copiarlo completo.

4k7

R5

4k7

R2

4k7

R1

33 34 35 36 37 38 39 40

2 3 4 5 6 7 14 13

PIC18F4620

RB0/AN12/FLT0/INT0 RB1/AN10/INT1 RB2/AN8/INT2 RB3/AN9/CCP2A RB4/KBI0/AN11 RB5/KBI1/PGM RB6/KBI2/PGC RB7/KBI3/PGD RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 RE3/MCLR/VPP

RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5/P1B RD6/PSP6/P1C RD7/PSP7/P1D

RA0/AN0/C1INRC0/T1OSO/T13CKI RA1/AN1/C2INRC1/T1OSI/CCP2B RA2/AN2/C2IN+/VREF-/CVREF RC2/CCP1/P1A RA3/AN3/C1IN+/VREF+ RC3/SCK/SCL RA4/T0CKI/C1OUT RC4/SDI/SDA RA5/AN4/SS/HLVDIN/C2OUT RC5/SDO RA6/OSC2/CLKO RC6/TX/CK RA7/OSC1/CLKI RC7/RX/DT

U1

LM041L

1 2 3 MTX

8 9 10 1

19 20 21 22 27 28 29 30

15 16 17 18 23 24 25 26

MRS MAXEN

VSS VDD VEE 3 DE

4 DI A 6

RS RW E MEN

4 5 6 2 RE

MRX 1 RO B 7

D0 D1 D2 D3 D4 D5 D6 D7 MAX487

U2

MEN

MRS

MD4 MD5 MD6 MD7

MAXEN

MTX MRX

7 8 9 10 11 12 13 14 MD4 MD5 MD6 MD7

LCD1

MAESTRO

GRAFICA 3: Circuitería del maestro

ESCLAVO 1

LCD2

D0 D1 D2 D3 D4 D5 D6 D7 D4 D5 D6 D7

EN

7 8 9 10 11 12 13 14

RS RW E 4 5 6 RS

1 2 3

VSS VDD VEE

LM016L

U7

1

U3 13 1 2 3 4 5 6 7 14 33 34 35 36 37 38 39 40

OSC1/CLKI MCLR/VPP

RC0/T1OSO/T1CKI RC1/T1OSI/CCP2A RC2/CCP1 RA0/AN0 RC3/SCK/SCL RA1/AN1 RC4/SDI/SDA RA2/AN2/VREFRC5/SDO RA3/AN3/VREF+ RC6/TX/CK RA4/T0CKI RC7/RX/DT RA5/AN4/SS/LVDIN RA6/OSC2/CLKO RD0/PSP0 RD1/PSP1 RB0/INT0 RD2/PSP2 RB1/INT1 RD3/PSP3 RB2/INT2 RD4/PSP4 RB3/CCP2B RD5/PSP5 RB4 RD6/PSP6 RB5/PGM RD7/PSP7 RB6/PGC RB7/PGD RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7

DI

4

S1TX

S1EN

MAX487

A

3 DE

2 RE

U5

6

7

B

RO

1

S1RX

PIC18F452

GRAFICA 4: Circuitería del esclavo1

ESCLAVO 2

15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10

R6 21.0 330R VOUT S1EN S1TX S1RX

D4 D5 D6 D7 RS EN

3

D1 LED-RED

2

LM35

LCD3

D0 D1 D2 D3 D4 D5 D6 D7 D4a D5a D6a D7a

ENa

7 8 9 10 11 12 13 14

RS RW E 4 5 6 RSa

1 2 3

VSS VDD VEE

LM016L

U7

1

U6 13 1

21.0

VOUT

3

2

2 3 4 5 6 7 14

LM35

33 34 35 36 37 38 39 40

D1 LED-RED

OSC1/CLKI MCLR/VPP

RC0/T1OSO/T1CKI RC1/T1OSI/CCP2A RC2/CCP1 RA0/AN0 RC3/SCK/SCL RA1/AN1 RC4/SDI/SDA RA2/AN2/VREFRC5/SDO RA3/AN3/VREF+ RC6/TX/CK RA4/T0CKI RC7/RX/DT RA5/AN4/SS/LVDIN RA6/OSC2/CLKO RD0/PSP0 RD1/PSP1 RB0/INT0 RD2/PSP2 RB1/INT1 RD3/PSP3 RB2/INT2 RD4/PSP4 RB3/CCP2B RD5/PSP5 RB4 RD6/PSP6 RB5/PGM RD7/PSP7 RB6/PGC RB7/PGD RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7

GRAFICA 5: Circuitería del esclavo2

DI

4

S2TX

S2EN

U8

A

MAX487

6

3 DE

RE

2

7

B

RO

1

S2RX

PIC18F452

15 16 17 18 23 24 25 26 19 20 21 22 27 28 29 30 8 9 10

S2EN S2TX S2RX

D4a D5a D6a D7a RSa ENa

3. Proceder a configurar la librería destinada para realizar las comunicaciones Modbus. 4. Especificar en el encabezado, si se va a realizar la programación para el maestro o los esclavos respectivamente. Maestro:

Esclavo 1:

}

Esclavo 2:

5. Colocar en número con el que responderá el esclavo en caso de serlo y además la actividad que se desea que este realice. El maestro se encargara de indicar cual de los esclavos se activa para que le transmita la información. En nuestro caso el esclavo 1 al encontrarse activo transmite un mensaje al maestro “Esclavo 1 listo”, y se activan las salidas del pic correspondiente a este para que se pueda encender un led. El esclavo 2 cuando el maestro se lo indique o lo llame en cambio realiza la transmisión de la temperatura de un LM35 que se encuentra transmitiendo su información y esta se la envía el maestro.

Para comprender de mejor manera este paso puede observarse los anexos que se encuentran al final de este documento, o encontrar los archivos que se encuentran en la carpeta de este archivo. 6. Diseñamos el VI para poder controlar la temperatura de la planta utilizando la librería de fuzzy logic

7. Una vez que se tenga la circuitería y el programa ya configurado tanto para el maestro como para los esclavos, proceder a programar los pics para entonces colocarlos en nuestro circuito, y poder de esta manera probarlos.

8. Damos reglas de fuzzyficacion al proceso en el vi y configuramos el vi. 9. Comprobamos que el proceso funcione correctamente. CONCLUSIONES Y RECOMENDACIONES:

 En esta red el maestro llama al esclavo que desea y éste contesta identificándose primero y entonces el maestro autoriza su respuesta y la recibe.  En este tipo de red únicamente se pueden comunicar los esclavos con el maestro uno por uno y no todos a la vez. Ya que de darse lo contrario no se estaría realizando un protocolo de comunicación Modbus si no únicamente se estaría realizando una visualización de datos.  La red MODBUS es una red muy aplicativa en el campo industrial para procesos de control y la implementación de sistemas SCADA, y de esta manera nos ayuda a obtener más conocimiento en el campo industrial.  En las pruebas realizadas se verificó que el Módulo “Esclavo” MODBUS responde acertadamente a todas las funciones MODBUS que se implementaron.  El programa implementado en el software PIC-C, permite llevar a cabo las tareas de un dispositivo Master MODBUS, mostrar los valores de Temperatura y el encendido y apagado de un led en tiempo real.  Se observo el correcto funcionamiento de la red, dado que fue posible establecer la comunicación del computador a cada uno de los PLC y también la comunicación entre los PLC.  Modbus crea el formato de la trama para la pregunta realizada por el maestro, estableciendo cuatro campos de información para: la dirección del dispositivo, el código de función que define la acción a realizar, los datos correspondientes a cada función, y un campo para el chequeo de errores. El mensaje que el esclavo contesta utiliza un formato idéntico.  Para el Direccionamiento Modbus los autómatas atienden a las peticiones de un maestro Modbus mediante el manejo de espacios de memoria denominadas marcas, las que pueden ser de tipo digital M (dato con formato booleano) o de tipo de registro MW (dato con formato

de palabra), Así se tiene que cada marca digital o de tipo palabra posee una dirección particular para el master Modbus.  Se comprobó la correcta implementación del control difuzo de temperatura.  Es necesario tener claras las reglas de control a implementar en el fuzzy logic para que este funcione correctamente.

Recomendaciones:  Llevar los programas que se utilizaran instalados en las PC.  Probar si cada uno de los esclavos esta trabajando de manera correcta conectando y desconectando la parte que realiza la transmisión para verificar el funcionamiento.  Comprobar que el fuzzy funcione de manera correcta. BIBLIOGRAFIA: 

http://aquiro.weebly.com/modbus.html



http://www.infoplc.net/files/descargas/omron/infoplc_net_modbus.pdf



http://www.scribd.com/doc/70840067/MODBUS-Informe-Pedro



http://www.dea.icai.upco.es/sadot/Comunicaciones/avanzadas/parte1.pdf