Você está na página 1de 37

DEPARTAMENTO DE ELCTRICA Y ELECTRNICA REDES DIGITALES INDUSTRIALES

GUA 2
IMPLEMENTACION DE UNA RED MODBUS
Desarrollado por: Andrs Guano Aprobado por: Ing. Jaqueline Llanos

INTRODUCCIN

El protocolo de comunicaciones industriales MODBUS fue desarrollado en 1979 por la empresa norteamericana MODICON y debido a que es pblico, relativamente sencillo de implementar y flexible se ha convertido en uno de los protocolos de comunicaciones ms populares en sistemas de automatizacin y control. A parte de que muchos fabricantes utilizan este protocolo en sus dispositivos, existen tambin versiones con pequeas 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 Mdulos EM 235

Cable PPI Conversor serial/USB

Nota: Tener en cuenta las resistencias del cable Modbus.

ENVI DE INFORMACIN DEL MAESTRO HACIA EL ESCLAVO Se va a realizar una comunicacin MODBUS entre los puertos Port 0 de 2 CPUs del S7-200. En la parte del maestro tambin sera posible la seleccin del Port 1 con la seleccin de los mdulos de librera 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 comunicacin entre las CPUs a travs del puerto 0 se realiza con ayuda de un cable PROFIBUS (conexin serie de los pins 3 y 8). AJUSTE DE LOS PARMETROS Para la comunicacin MODBUS, se utilizan los mdulos de librera "MBUS_CTRL" y "MBUS_MSG" en la parte del maestro y los mdulos de librera "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 parmetros que se ven en la figura 1. Hay que tener en cuenta que los parmetros "Baud" y "Parity" deben ser idnticos y que la direccin "Slave" del mdulo "MBUS_MSG" debe coincidir con el parmetro "Addr" del mdulo "MBUS_INIT". El ajuste de la velocidad de transferencia para el Port 0 en la vista "Mdulo de datos del sistema" del Micro/WIN es irrelevante para el protocolo MODBUS ("Mode" = "1").

Figura 1. Parmetros de configuracin de las libreras del protocolo Modbus

Las siguientes tablas describen el significado y las posibilidades de seleccin de los parmetros de los mdulos de las libreras:
MAESTRO MBUS_CTRL Parmetro Significado EN Mode Baud Parity Timeout Done Error Liberacin Indicacin del protocolo Velocidad de transmisin en kbit/s Paridad Tiempo mximo para la respuesta del esclavo en ms Aviso de finalizacin Cdigo de error 0 = PPI, 1 = MODBUS 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 0 = Ninguna, 1 = impar, 2 = par Posibilidades de seleccin

MBUS_MSG Parmetro Significado EN First Slave RW Addr Liberacin Activacin Direccin del esclavo "lectura" o "escritura" Direccin de inicio en MOBDUS 0 = lectura, 1 = escritura 0 .. 128 = Salidas digitales A0.0 .. A15.7 10001 .. 10128 = Entradas digitales E0.0 .. E15.7 30001 .. 30092 = Entradas analgicas AEW0 .. AEW62 40001 .. 49999 = Registros Posibilidades de seleccin

Count DataPtr Done Error

Nmero de bits (0xxxx, 1xxxx) / Palabras (3xxxx, 4xxxx) Puntero al inicio de la memoria de variables Aviso de finalizacin Cdigo de error

SLAVE MBUS_INIT Parmetro Significado EN Mode Addr Baud Parity Delay MaxIQ MaxAI MaxHold Liberacin Indicacin del protocolo Direccin del esclavo Velocidad de transferencia en kbit/s Paridad Protocolizacin de la seal en ms Nmero de entradas y salidas digitales disponibles Nmero de palabras analgicas disponibles Nmero mximo de de entradas de palabras en los registros 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 0 = Ninguna, 1 = impar, 2 = par 0 = PPI, 1 = MODBUS Posibilidades de seleccin

HoldStart Puntero al comienzo de los registros (40001) Done Error Aviso de finalizacin Cdigo de error

Las direcciones reales mximas que se pueden utilizar dependen el tipo de CPU y de sus valores mximos. MBUS_SLAVE Parmetro EN Done Error Significado Liberacin Aviso de finalizacin Cdigo de error Posibilidades de seleccin

DIRECCIONAMIENTO DE MEMORIA PARA LAS LIBRERAS

Tras la finalizacin del proyecto, hay que ajustar la memoria para la librera dentro de la carpeta para los mdulos en el contenedor del programa del Micro/WIN. Tenga en cuenta al reservar la memoria para las libreras 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 TRANSMISIN 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 activacin del estado de tablas, y visualizarlo en la parte del esclavo: Activando la entrada I0.0 del maestro, se enva el contenido de la palabra de variables VW2 a la CPU esclava y se escribe aqu en la palabra de variables VW2. Esta asignacin 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 parmetro "Count" indica en el direccionamiento "Addr" = "4xxxx" (registro de mantenimiento) el nmero de palabras a leer. La zona de memoria de variables a leer se debe escribir en la direccin de registros "Addr" = "40002" ("RW" = "1").

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 direccin de inicio de la memoria de variables equivalente a la direccin 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 Adems, hay que tener en cuenta que el nmero mximo de entradas para palabras del registro "MaxHold" cubra esta zona: MaxHold >= Addr - 40001 + Count = 40002 - 40001 + 1 = 2

Figura 3. Asignacin de valores

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

Mdulo EM 235

Cable PPI

Conversor Serial/USB

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

3. Conectar el mdulo EM 235 a un esclavo de la red que nosotros le vamos a asignar para que pueda realizar el control de la estacin de temperatura.

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

conectar todos los PLCs a la alimentacin.

Reconocimiento del PLC 1. Abrir el STEP 7- Micro/WIN.

2. Conectar fsicamente el PLC con la computadora a travs del cable PPI y la ayuda de un conversor de serial a USB.

3. Dirigirse a Comunicacin, abrir en el signo ms y dar doble clic en Comunicacin.

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.

5. Dirigirse al botn 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.

PROGRAMACIN 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, despus realizar lo mismo para el siguiente esclavo. Para poder realizar esto se requiere generar una seal 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 activacin de las marcas y por ende del envo y recepcin de los datos.

2. Una vez generado el tren de pulsos ahora procedemos a configurar al maestro para que se comunique en la red Modbus a travs 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 envo y recepcin de datos se requiere utilizar del MBUS_MSG, aqu se va a configurar los siguientes aspectos como son: Slave al cual ponemos el nmero del esclavo al que va dirigido el mensaje o del cual recibe el mensaje; RW 0 para lectura y 1 para escritura; Addr la direccin 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 cul se calcula con la siguiente frmula:

Esclavo 1 (Slave 2): Escritura Lectura

Esclavo 2 (Slave 3): Escritura Lectura

Los bloques quedan configurados de la siguiente manera:

4. Asignamos el valor del potencimetro SMB28 del maestro y lo enviamos hacia el esclavo 1, ya que le asignamos a la variable VW2, podemos asignar el valor del potencimetro SMB29 para el esclavo 2, pero como vamos a realizar en este esclavo el control de la estacin 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.

PROGRAMACIN 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 direccin 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 nmero de entradas y salidas digitales disponibles; MaxAI que es el nmero de palabras analgicas disponibles; MaxHold el cual se calcula con la siguiente frmula deacuerdo a la direccin que da el maestro y es el nmero mximo de de entradas de palabras en los registros; HoldST = &VB0 que indica la direccin de inicio de la memoria de variables equivalente a la direccin de inicio del puntero 40001.

2. La variable que llega al esclavo es VW2, esta se le asigna a otra localidad y SMB28.0 que es el potencimetro se le asigna a VW4, que es el dato que se enva desde el esclavo hacia el maestro.

PROGRAMACIN 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 direccin 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 nmero de entradas y salidas digitales disponibles; MaxAI que es el nmero de palabras analgicas disponibles; MaxHold el cual se calcula con la siguiente frmula deacuerdo a la direccin que da el maestro y es el nmero mximo de de entradas de palabras en los registros; HoldST = &VB0 que indica la direccin de inicio de la memoria de variables equivalente a la direccin de inicio del puntero 40001.

2. SMB28.0 que es el potencimetro se le asigna a VW8, que es el dato que se enva desde el esclavo hacia el maestro se lo puede realizar asi solo para comprobar que hay comunicacin 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 analgica del mdulo EM 235 AIW0 se le asigna a VW8, que es el dato que se enva 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 continuacin y tambin se configurar el PID que se indicara a continuacin

Configuracin 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

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

5. Los escalamientos deben ser unipolares como se muestra acontinuacin.

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

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.

CONFIGURACIN DEL OPC 1. Se va a utilizar el TOP Server, se lo abre y se da clic en add cannel, para aadir un canal.

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

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

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.

7. Finaliza la configuracin del canal.

8. Aadir un dispositivo, le damos un nombre y clic en siguiente.

9. Elegir el PLC que se est utilizando.

10. Colocar 2 en Device ID.

11. Dar clic lo dems en siguiente y finalizar la configuracin del dispositivo.

12. Crear la tag en la cual se pone el nombre y en la direccin la localidad que se utiliza en el programa.

13. Crear las dems tag.

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

HMI en Labview 1. Para la programacin se requiere de un slide para enviar el valor del set point, tambin indicadores para los valores del potencimetro 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

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.

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

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.

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 analgico y se le asigna la variable creada en las tag.

10. Sacar un Real Time-Trend

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.

Você também pode gostar