G1_RED MODBUS.pdf

37
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA REDES DIGITALES INDUSTRIALES GUÍA 2 IMPLEMENTACION DE UNA RED MODBUS Desarrollado por: Andrés Guano Aprobado por: Ing. Jaqueline Llanos

Transcript of G1_RED MODBUS.pdf

Page 1: G1_RED MODBUS.pdf

DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA

REDES DIGITALES INDUSTRIALES

GUÍA 2

IMPLEMENTACION DE UNA RED

MODBUS

Desarrollado por:

Andrés Guano

Aprobado por:

Ing. Jaqueline Llanos

Page 2: G1_RED MODBUS.pdf

INTRODUCCIÓN

El protocolo de comunicaciones industriales MODBUS fue desarrollado en 1979 por la

empresa norteamericana MODICON y debido a que es público, relativamente sencillo de

implementar y flexible se ha convertido en uno de los protocolos de comunicaciones más

populares en sistemas de automatización y control. A parte de que muchos fabricantes

utilizan este protocolo en sus dispositivos, existen también versiones con pequeñas

modificaciones o adaptadas para otros entornos.

MODBUS especifica el procedimiento que el controlador y el esclavo utilizan para

intercambiar datos, el formato de estos datos, y como se tratan los errores. No especifica

estrictamente el tipo de red de comunicaciones a utilizar, por lo que se puede

implementar sobre redes basadas en Ethernet, RS-485, RS-232 etc.

Materiales:

PLC S7 200 cpu 224, 226,226

Cable Modbus

Módulos EM 235

Cable PPI

Conversor serial/USB

Nota: Tener en cuenta las resistencias del cable Modbus.

Page 3: G1_RED MODBUS.pdf

ENVIÓ DE INFORMACIÓN DEL MAESTRO HACIA EL ESCLAVO

Se va a realizar una comunicación MODBUS entre los puertos Port 0 de 2 CPUs del S7-200.

En la parte del maestro también sería posible la selección del Port 1 con la selección de los

módulos de librería correspondiente "MBUS_CTRL_P1" y "MBUS_MSG_P1". El Port 1 se

conecta con un PC o una PG que tenga el software Micro/WIN. La comunicación entre las

CPUs a través del puerto 0 se realiza con ayuda de un cable PROFIBUS (conexión serie de

los pins 3 y 8).

AJUSTE DE LOS PARÁMETROS

Para la comunicación MODBUS, se utilizan los módulos de librería "MBUS_CTRL" y

"MBUS_MSG" en la parte del maestro y los módulos de librería "MBUS_INIT" y

"MBUS_SLAVE" en la parte del esclavo.

Cree en el Micro/WIN un nuevo proyecto para el maestro y/o el esclavo con los

segmentos y parámetros que se ven en la figura 1.

Hay que tener en cuenta que los parámetros "Baud" y "Parity" deben ser idénticos y que

la dirección "Slave" del módulo "MBUS_MSG" debe coincidir con el parámetro "Addr" del

módulo "MBUS_INIT".

El ajuste de la velocidad de transferencia para el Port 0 en la vista "Módulo de datos del

sistema" del Micro/WIN es irrelevante para el protocolo MODBUS ("Mode" = "1").

Figura 1. Parámetros de configuración de las librerías del protocolo Modbus

Page 4: G1_RED MODBUS.pdf

Las siguientes tablas describen el significado y las posibilidades de selección de los

parámetros de los módulos de las librerías:

MAESTRO

MBUS_CTRL

Parámetro Significado Posibilidades de selección

EN Liberación

Mode Indicación del protocolo 0 = PPI, 1 = MODBUS

Baud Velocidad de transmisión en kbit/s 1200, 2400, 4800, 9600, 19200, 38400,

57600, 115200

Parity Paridad 0 = Ninguna, 1 = impar, 2 = par

Timeout Tiempo máximo para la respuesta del

esclavo en ms

Done Aviso de finalización

Error Código de error

MBUS_MSG

Parámetro Significado Posibilidades de selección

EN Liberación

First Activación

Slave Dirección del esclavo

RW "lectura" o "escritura" 0 = lectura, 1 = escritura

Addr Dirección de inicio en MOBDUS 0 .. 128 = Salidas digitales A0.0 .. A15.7

10001 .. 10128 = Entradas digitales E0.0

.. E15.7

30001 .. 30092 = Entradas analógicas

AEW0 .. AEW62

40001 .. 49999 = Registros

Count Número de bits (0xxxx, 1xxxx) / Palabras

(3xxxx, 4xxxx)

DataPtr Puntero al inicio de la memoria de

variables

Done Aviso de finalización

Error Código de error

Page 5: G1_RED MODBUS.pdf

SLAVE MBUS_INIT

Parámetro Significado Posibilidades de selección

EN Liberación

Mode Indicación del protocolo 0 = PPI, 1 = MODBUS

Addr Dirección del esclavo

Baud Velocidad de transferencia en kbit/s 1200, 2400, 4800, 9600, 19200, 38400,

57600, 115200

Parity Paridad 0 = Ninguna, 1 = impar, 2 = par

Delay Protocolización de la señal en ms

MaxIQ Número de entradas y salidas digitales

disponibles

MaxAI Número de palabras analógicas disponibles

MaxHold Número máximo de de entradas de palabras

en los registros

HoldStart Puntero al comienzo de los registros (40001)

Done Aviso de finalización

Error Código de error

Las direcciones reales máximas que se pueden utilizar dependen el tipo de CPU y de sus valores máximos. MBUS_SLAVE

Parámetro Significado Posibilidades de selección

EN Liberación

Done Aviso de finalización

Error Código de error

Page 6: G1_RED MODBUS.pdf

DIRECCIONAMIENTO DE MEMORIA PARA LAS LIBRERÍAS

Tras la finalización del proyecto, hay que ajustar la memoria para la librería dentro de la

carpeta para los módulos en el contenedor del programa del Micro/WIN. Tenga en cuenta

al reservar la memoria para las librerías que la zona seleccionada no debe sobrescribir la

zona de memoria de variables para datos (en el maestro: "DataPtr" + "Count", y en el

esclavo: "HoldStart" + "MaxHold").

Figura 2. Direccionamiento de memoria para el protocolo Modbus

TRANSMISIÓN DE LOS VALORES DEL REGISTRO

Tras la carga de los proyectos en cada CPU, se puede escribir la zona de memoria de

variables del maestro mediante la activación del estado de tablas, y visualizarlo en la parte

del esclavo:

Activando la entrada I0.0 del maestro, se envía el contenido de la palabra de variables

VW2 a la CPU esclava y se escribe aquí en la palabra de variables VW2.

Esta asignación de valores a los registros está explicada en la figura 3:

El puntero "DataPtr" representa el comienzo de la memoria de variables a leer.

El parámetro "Count" indica en el direccionamiento "Addr" = "4xxxx" (registro de

mantenimiento) el número de palabras a leer.

La zona de memoria de variables a leer se debe escribir en la dirección de registros "Addr"

= "40002" ("RW" = "1").

Page 7: G1_RED MODBUS.pdf

El registro de mantenimiento hace de memoria intermedia, palabra a palabra, para la zona

de memoria de variables del esclavo:

El puntero "HoldStart" indica la dirección de inicio de la memoria de variables equivalente

a la dirección de inicio del puntero 40001.

De forma que el puntero de memoria de variables del esclavo se calcula de la siguiente

manera:

DataPtr= 2 * (Addr - 40001) + HoldStart = 2 * (40002 - 40001) + &VB0 = &VB2

Además, hay que tener en cuenta que el número máximo de entradas para palabras del

registro "MaxHold" cubra esta zona:

MaxHold >= Addr - 40001 + Count = 40002 - 40001 + 1 = 2

Figura 3. Asignación de valores

Page 8: G1_RED MODBUS.pdf

Desarrollo:

ENSAMBLAJE DE LA RED MODBUS

1. Reconocer todo los materiales ah utilizarse en la RED como son los siguientes:

PLC S7 200 CPU 224

PLC S7 200 CPU 226

Page 9: G1_RED MODBUS.pdf

Módulo EM 235

Cable PPI

Conversor Serial/USB

Page 10: G1_RED MODBUS.pdf

Cable Modbus

2. Conectar el Cable Modbus al PLC S7 200 CPU 224 y a los PLC S7 200 CPU 226 al

puerto 0 ya que el puerto 1 se lo va a utilizar para el cable PPI, tomar en cuenta

que se debe primero programar el PLC S7 200 CPU 200 para luego conectarlo a la

red ya que solo cuenta con un puerto de comunicación.

Page 11: G1_RED MODBUS.pdf

3. Conectar el módulo EM 235 a un esclavo de la red que nosotros le vamos a asignar para

que pueda realizar el control de la estación de temperatura.

4. Conectar los PLC S7 200 CPU 226 con el cable PPI a la PC, una vez realizado esto

conectar todos los PLC’s a la alimentación.

Page 12: G1_RED MODBUS.pdf

Reconocimiento del PLC

1. Abrir el STEP 7- Micro/WIN.

2. Conectar físicamente el PLC con la computadora a través del cable PPI y la ayuda

de un conversor de serial a USB.

Page 13: G1_RED MODBUS.pdf

3. Dirigirse a Comunicación, abrir en el signo más y dar doble clic en Comunicación.

4. Dirigirse a Mi PC, dar clic derecho y abrir las propiedades, dirigirse a Hardware y

dar clic en “Administrador de dispositivos”. Ver en puertos en que puerto se

encuentra conectado el PLC.

Page 14: G1_RED MODBUS.pdf

5. Dirigirse al botón “Ajustar Interface PG/PC” dar clic, dirigirse a propiedades, ahí se

debe elegir el puerto en el que se encuentra conectado el PLC y se acepta todo.

6. Dirigirse “Haga doble clic para actualizar” y dar doble clic y esperar hasta que se

encuentre al PLC y se acepta.

Page 15: G1_RED MODBUS.pdf
Page 16: G1_RED MODBUS.pdf

PROGRAMACIÓN DEL MAESTRO

1. Para programar el maestro se tiene que tomar en cuenta que se tienen dos

esclavos y que se requiere realizar una escritura desde el maestro y luego escuchar

al primer esclavo, después realizar lo mismo para el siguiente esclavo. Para poder

realizar esto se requiere generar una señal tren de pulsos con cuatro marcas, cada

marca activa los mensajes de la red MBUS_MSG en cada flanco positivo dando un

tiempo adecuado entre la activación de las marcas y por ende del envío y

recepción de los datos.

Page 17: G1_RED MODBUS.pdf

2. Una vez generado el tren de pulsos ahora procedemos a configurar al maestro

para que se comunique en la red Modbus a través del MBUS_CTRL, se tiene que

tomar en cuenta la velocidad y la paridad que vamos a utilizar para poner los

mismo datos en los esclavos.

3. Para realizar el envío y recepción de datos se requiere utilizar del MBUS_MSG, aquí

se va a configurar los siguientes aspectos como son: Slave al cual ponemos el

número del esclavo al que va dirigido el mensaje o del cual recibe el mensaje; RW

0 para lectura y 1 para escritura; Addr la dirección de inicio de Modbus una

diferente para cada mensaje se utiliza direcciones desde la 40001 .. 49999 que son

de tipo Registro pero utilizamos a partir de la 40002; Count = 1; DataPtr es el

puntero al inicio de la memoria de variables el cuál se calcula con la siguiente

fórmula:

Esclavo 1 (Slave 2):

Escritura

Lectura

Page 18: G1_RED MODBUS.pdf

Esclavo 2 (Slave 3):

Escritura

Lectura

Los bloques quedan configurados de la siguiente manera:

Page 19: G1_RED MODBUS.pdf

4. Asignamos el valor del potenciómetro SMB28 del maestro y lo enviamos hacia el

esclavo 1, ya que le asignamos a la variable VW2, podemos asignar el valor del

potenciómetro SMB29 para el esclavo 2, pero como vamos a realizar en este

esclavo el control de la estación de temperatura le asignamos a la variable VW6 la

variable VW44 que es un valor que se obtiene desde un HMI ya sea en Intouch o

en Labview.

Page 20: G1_RED MODBUS.pdf

PROGRAMACIÓN DEL ESCLAVO 1

1. Para programar al esclavo se requiere configurar el MBUS_INIT y el MBUS_SLAVE,

para el MBUS_INIT se debe configurar: Mode =1 para Modbus; Addr que es la

dirección que tiene el esclavo, es decir su nombre; la velocidad y paridad que debe

ser la misma del maestro; Delay =0; MaxIQ = 128 que es el número de entradas y

salidas digitales disponibles; MaxAI que es el número de palabras analógicas

disponibles; MaxHold el cual se calcula con la siguiente fórmula deacuerdo a la

dirección que da el maestro y es el número máximo de de entradas de palabras en

los registros; HoldST = &VB0 que indica la dirección de inicio de la memoria de

variables equivalente a la dirección de inicio del puntero 40001.

Page 21: G1_RED MODBUS.pdf

2. La variable que llega al esclavo es VW2, esta se le asigna a otra localidad y SMB28.0

que es el potenciómetro se le asigna a VW4, que es el dato que se envía desde el

esclavo hacia el maestro.

Page 22: G1_RED MODBUS.pdf

PROGRAMACIÓN DEL ESCLAVO 2

1. Para programar al esclavo se requiere configurar el MBUS_INIT y el MBUS_SLAVE,

para el MBUS_INIT se debe configurar: Mode =1 para Modbus; Addr que es la

dirección que tiene el esclavo, es decir su nombre; la velocidad y paridad que debe

ser la misma del maestro; Delay =0; MaxIQ = 128 que es el número de entradas y

salidas digitales disponibles; MaxAI que es el número de palabras analógicas

disponibles; MaxHold el cual se calcula con la siguiente fórmula deacuerdo a la

dirección que da el maestro y es el número máximo de de entradas de palabras en

los registros; HoldST = &VB0 que indica la dirección de inicio de la memoria de

variables equivalente a la dirección de inicio del puntero 40001.

Page 23: G1_RED MODBUS.pdf

2. SMB28.0 que es el potenciómetro se le asigna a VW8, que es el dato que se envía

desde el esclavo hacia el maestro se lo puede realizar asi solo para comprobar que

hay comunicación pero como se requiere realizar control este paso se omite.

3. La variable que llega al esclavo es VW6 que es la que se tomó desde el maestro y

nos va a dar el valor del set point esta se le asigna a otra localidad VW20 y la

entrada analógica del módulo EM 235 AIW0 se le asigna a VW8, que es el dato que

se envía desde el esclavo hacia el maestro.

4. Se tiene que cambiar la variable de set point vw20 de entero a real como se indica

a continuación y también se configurar el PID que se indicara a continuación

Page 24: G1_RED MODBUS.pdf

Configuración del PID

1. Dirigirse en MicroWIN a Herramientas/ Asistente de operaciones

2. Elegir PID y dar siguiente.

3. Elegir 0 en el lazo del PID

Page 25: G1_RED MODBUS.pdf

4. Se colocan los rangos inferiores y superiores a los que la estación se encuentra en nuestro caso son de 20 a 70 °C.

5. Los escalamientos deben ser unipolares como se muestra acontinuación.

6. Dar clic en siguiente, no se configura nada en esta ventana.

Page 26: G1_RED MODBUS.pdf

7. Se asigna direcciones de memoria diferentes a las que se utilizan en el programa

8. Se puede cambiar de nombre del PID o dar siguiente

9. Se finaliza el asistente y se puede sacar el bloque PID desde las subrutinas.

Page 27: G1_RED MODBUS.pdf

CONFIGURACIÓN DEL OPC

1. Se va a utilizar el TOP Server, se lo abre y se da clic en add cannel, para añadir un

canal.

2. Se pone el nombre del canal y dar clic en siguiente.

3. Elegir el PLC que se está ocupando S7 200.

Page 28: G1_RED MODBUS.pdf

4. Elegir el COM en el que se encuentra el PLC y la velocidad a la que se va a trabajar.

El COM se puede ver en Propiedades del Sistema/ Administrador de dispositivos/

Puertos.

5. Dar clic en siguiente.

6. Elegir el Master ID en 0.

Page 29: G1_RED MODBUS.pdf

7. Finaliza la configuración del canal.

8. Añadir un dispositivo, le damos un nombre y clic en siguiente.

9. Elegir el PLC que se está utilizando.

Page 30: G1_RED MODBUS.pdf

10. Colocar 2 en Device ID.

11. Dar clic lo demás en siguiente y finalizar la configuración del dispositivo.

Page 31: G1_RED MODBUS.pdf

12. Crear la tag en la cual se pone el nombre y en la dirección la localidad que se utiliza

en el programa.

13. Crear las demás tag.

14. Dar clic en el martillo OPC, y ver el funcionamiento de las variables.

Page 32: G1_RED MODBUS.pdf

HMI en Labview

1. Para la programación se requiere de un slide para enviar el valor del set point,

también indicadores para los valores del potenciómetro y de la variable del

proceso.

2. Se da clic derecho en el indicador y se dirige a propiedades, se va a Data Binding,

se elige ahí DataSocket, Acces Type Read/Write, en browse se elige DSTP/SERVER

Page 33: G1_RED MODBUS.pdf

3. Se dirige a SWToolbox.TOPServer, Channel1 este era el nombre del canal del OPC,

Device1 y se elige la variable a la que va a representar el indicador.

4. Se asignan todas las variables y se corre el programa.

Page 34: G1_RED MODBUS.pdf

HMI en InTouch

1. Abrir el InTouch dirigirse a ACCESS NAMES y dar clic en Add…

2. Dirigirse a archivos de porgrama/software Toolbox/ TopServer, buscar si existe un archivo

.exe y copiarlo en Application Name. En Access poner cualquier nombre.

3. Dirigirse a Edit, Alias Map

Page 35: G1_RED MODBUS.pdf

4. Copiar el nombre del Alias Map en Topic Name, elegir SuiteLink.

5. Se pone ok y se cierra el Access Names.

6. Se abre el Tagname Dictionary, en el tagname se pone el nombre de la tag con preferencia

del que se puso en el OPC y se elige el tipo.

7. Se elige variables de tipo I/O INTEGER.

Page 36: G1_RED MODBUS.pdf

8. Se debe elegir el Acces Name que se creó.

9. Se da clic en el valor en que se va a visualizar los valores de las variables y de le asigna un

valor analógico y se le asigna la variable creada en las tag.

10. Sacar un Real Time-Trend

Page 37: G1_RED MODBUS.pdf

11. Asignar las tag al Real time trend, la variable que indica el valor del proceso se debe

acondicionar.

12. Se pone en Runtime y se ve el funcionamiento.