Está en la página 1de 20

Comunicación Modbus RTU Dixell

xr75cx – xr120cx y S7 1200.


Guía rápida.
Descripción general de Modbus RTU.

Es un protocol de transmisión de datos, estandar diseñado por Modicon en 1979. Debido


a su simplicidad y robustez, al no tener derechos de patente, ganó rapidamente popularidad y
se convirtió en un estandar reconocido mundialmente.

Opera bajo un ciclo de petición/respuesta. Una red dispone de un solo maestro y un


maximo de 247 esclavos, pero se encuentra limitada por la capa de transporte. En este caso la
que mas soporta (RS-485) son 1 maestro y 31 dispositivos esclavos (32 en total).

Los dispositivos esclavos son totalmente pasivos, necesitan que el maestro realice una
petición, cada esclavo tiene una dirección unica que va desde el 1 al 247. El esclavo solo
responderá si el codigo o trama de petición enviado por el maestro es valido. Si la trama se
encuentra mal, simplemente será ignorada por el esclavo. Algunos ejemplos de error tipicos son
CRC incorrecto, dirección de esclavo incorrecta.

El maestro inicia la comunicación. La petición se puede direccionar a 1 o más esclavos


tanto para leer como para escribir datos.

Existen 3 variantes para Modbus:

 RTU (Remote Terminal Unit)


 ASCII
 TCP/IP
Direccionamiento de datos.

Modbus posee 4 tipos de datos separados. Cada uno de estos datos muestran el rango de
direccionamiento en el cual se encuentran. Existen datos los cuales pueden ser accesados
como bit o lectura analogica (16 bits o 1 word) y permiten ser leidos o escritos.

La mayoría de los dispositivos tienen definidas las areas de acceso de datos en sus
respectivos manuales, el direccionamiento final apunta al offset de la direccion, significa que si
se esta accediendo a un dato de registro de retención (holding register) en la dirección 40157,
en la trama se escribirá la dirección 40258 con una longitud de 1 (16 bits).

La extension de los registros de retención son una adición al protocolo y pueden no


estar respaldadas por todos los dispositivos modbus.

Existen otras configuraciones de direccionamiento de datos que consideran otro tipo


de direccionamiento de offset, por ejemplo si se quiere tomar el dato del registro de retención
40203. El valor de offset seria 40203 – 40001 = 202.
Codigos de función

Modbus posee un codigo de función que define que acción se desea realizar en ese tipo de
dato. El codigo de función es enviado como parte de la trama de petición del maestro. El
dispositivo Modicon utiliza una vasta lista de funciones y en otros solo se configuran las mas
relevantes.
Respuesta de excepción de error

Cuando la trama de petición esta bien escrita, los mensajes de error no se hacen
presentes, a continuación un listado de los codigos de error en el fallo de comunicación de
dispositivos.
Codigo de función/Dirección Modbus referencia rapida

A continuación un diagrama de referencia rapida para entender los codigos de función


y direccionamientos.

En orden cronologico de trama y reflejado en la imagen, a la derecha el codigo de


función a ejecutar en el esclavo (leer, escribir, bit(coil) o word(input y holding register) y a la
izquierda las areas de datos contenidas en el dispositivo.

A continuación un ejemplo practico de lo que estamos hablando.


Controlador de temperatura Dixell XR75 – 120 CX

Un controlador con funciones independientes y completas en lo que a refrigeracion respecta.


Las ventajas de implementar este tipo de controladores en un lazo de control son :

-Liberan espacio de programacion en equipos de supervision: Esto nos deja libres de realizar
bloques de función relacionados con el arranque de ventiladores/compresor/deshielo,
calibración y otras funciones asociadas (Ver datasheet del equipo para más información).

-Al ser equipos dedicados, podemos establecer comunicación con la periferia hacia un solo
punto de supervisión que seria la sala de control, por medio de un equipo maestro(controlador
lógico programable o PLC).

-Ocupan poco espacio.

En orden cronologico, los pines 1 y 5 se energizan con la fase(220vac) y al 6 el neutro , los


pines 2, 3, 4 y 7 son los contactos normalmente abiertos del ventilador, compresor, luz auxiliar
y deshielo( resistencia electrica o gas caliente)( en el deshielo con resistencia electrica el
compresor se detiene, mientras que el gas caliente mantiene encendido el compresor)

El pin 18 es un común(Salida de relé), el pin 19 es un contacto NO(normalmente abierto) de


tipo electrico(relé externo) y el pin 20 es un contacto NO de tipo termico, que puede ser un
termoestato dentro del sistema.
Las resistencias de medición de temperatura de los elementos van en los pines 21, 22 y
24(Temperatura de la camara) siendo 23 el común.

Por ultimo los pines 16 y 17 son los canales de transmisión de modbus rtu 16+ corresponde al
canal B mientras que 17- es canal A.
Enlazando los equipos por Modbus RTU

Para hacer efectiva la comunicación en siemens existen modulos de comunicación en


este caso, como vamos a ocupar un s7 1200, Podemos ocupar un maximo de 3 modulos
CM1241 y una signal board CB1241, cabe destacar que el modulo CM 1241 debe tener una
version de firmware superior a V 2.1 y en el caso de ocupar SB(Signal Board) CB1241 la version
de firmware debe ser superior a V 1.0.

Configuración en Siemens S7 1200

El modulo CB 1241 se conecta en la parte frontal de la cpu, se conectan los equipos


mediante un par trenzado y la distancia maxima de transmisión de datos es de 1000 metros
(Longitud del cable).

Importante es destacar que todos los modulos que se conecten al controlador, deben
ser montados con el equipo apagado, de lo contrario sufriran daños a nivel de hardware.

Las instrucciones de montaje se encuentran en la pagina 64 del manual de sistema del


1200.

Modulo CB1241 (Signal Board RS-485).


Recorte de imagen del manual en el que se explican las etapas de montaje de la signal board
CB1241.
Datos tecnicos de la comunicación.
Internamente el bus tiene una resistencia de 150 ohm para cerrar la red, es por eso
que se unen los terminales TA/TRA y TB/TRB .

La polaridad de TA/TRA es negativa (-) y TB/TRB es positiva (+).


El maestro es el dispositivo terminador on, en el caso de que se utilice otro controlador del
mismo modelo como esclavo, la polarización va en off en ese esclavo.

La configuración para el conector de 9 pines.

Importante es utilizar el cable rojo como positivo y el verde como negativo, es muy importante
mantener el estandar de trabajo para evitar errores en el futuro.

La masa del cable es una masa interna del protocolo, no debe conectarse a la masa del tablero,
ni de la fuente, ni del equipo(controlador), se conecta el apantallado del cable que viene en el
par trenzado.
Trama de datos de Dixell xr75 - 120cx

Configuración de la comunicacion a 9600 bps, 8 bits de transferencia, sin paridad y 1 bit de


detención.

Trama de datos inicia con la direccion del esclavo, codigo de funcion del mensaje
(leer/escribir/etc), registro del dato que se va a transmitir y el tamaño del mensaje en formato
word o bit(16 y 1 bit).

El direccionamiento de datos del manual especifica que la direccion 256 tiene el valor de
temperatura de la sonda principal, esto significa que al ser un registro de retención o holding
register, tiene un rango de 40001 a 49999 por ende al hablar de la dirección 256, se debe
sumar el valor base del registro según la norma con el valor de direccion especificada en el
manual, dando como resultado 40257(40001 + 256).
Configuración/Programación Tia Portal v17

Bloque Startup OB 100

Corresponde a un bloque que se ejecuta al iniciar el bucle de programa(Run).

MB_COMM_LOAD es el bloque de función que configura los parametros de comunicación del


equipo al iniciar el modo run, en este caso el parametro req corresponde a una marca de ciclo
(vease manual s71200) que al igual que el bloque startup se ejecuta en el primer ciclo SCAN y
corresponde a una marca booleana que activa el bloque de configuración.

El parametro Port corresponde al numero de puerto, se trata de un puerto local y aparece su


direccionamiento al seleccionar las opciones disponibles.

Baud es la frecuencia de modulación, configurada a 9600 baudios, existen algunos bloques de


configuracion que utilizan numeros naturales para configurar este parametro, se recomienda
leer la información del bloque antes de todo.

Parity sin paridad = 0.

MB_DB es el bloque de datos del bloque de función MB_MASTER que se encuentra en el


bloque cíclico, se crea de forma automatica al insertar el bloque en el programa.
Bloque Program Cycle OB1

El OB1 corresponde a un bloque cíclico, se ejecuta de manera ciclica mientras el estado


operativo de la cpu se encuentra en RUN.

Dentro del bloque de función cíclico se inserta el bloque MB_MASTER que es la ejecución de la
petición por parte del maestro hacia el esclavo.

Req es una marca cíclica de 0.5 Hz en la marca m0.7, esta se activa en la configuración del
dispositivo (S71200).

Mb_addr es la dirección del esclavo, esta se configura manualmente en el equipo dixell.

Data_addr es la dirección desde donde se va a leer o escribir en el esclavo

Data len es el tamaño del dato, en este caso el numero 1 corresponde a 1 WORD.

Data_ptr es el valor del dato, se debe utilizar una memoria de marca de 1 word, en este caso
MW5.
El parametro Mode tiene valores que varian de acuerdo a la siguiente tabla.
Disponible en la ayuda integrada del programa.
Vista del bloque de datos en modo online MB_MASTER.
Bibliografia:

-https://ipcsautomation.com/blog-post/understanding-modbus-easily-modbus-general-
description/

*Manuales de equipos:

-S7-1200 Manual system

-DIXELL MODBUS XR120CX

-DIXELL DATASHEET XR75CX

Escrito por:

Sebastian Drago C.

Rancagua, Chile

Mail: Sebastian.DragoC@hotmail.com

“El conocimiento tiene impacto positivo en el mundo”

También podría gustarte