Вы находитесь на странице: 1из 6

Qu es Modbus?

Modbus es un protocolo de comunicacin en serie para uso en controladores lgicos


programables (PLC). En trminos simples, es un mtodo utilizado para transmitir informacin a
travs de lneas serie entre dispositivos electrnicos. El dispositivo que solicita la informacin
se denomina maestro Modbus y los dispositivos que suministran informacin son esclavos
Modbus. En una red Modbus estndar, hay un maestro y hasta 247 esclavos, cada uno con una
direccin esclava nica de 1 a 247. El maestro tambin puede escribir informacin en los
esclavos.

Para qu se usa esto?

Modbus es un protocolo abierto, lo que significa que es gratis para los fabricantes integrar sus
equipos sin tener que pagar regalas. Se ha convertido en un protocolo de comunicaciones
estndar en la industria, y ahora es el medio ms comnmente disponible para conectar
dispositivos electrnicos industriales. Es utilizado ampliamente por muchos fabricantes en
muchas industrias. Modbus se usa generalmente para transmitir seales de instrumentos y
dispositivos de control a un controlador principal o sistema de recopilacin de datos y
comunica los resultados a una computadora. Modbus se usa a menudo para conectar una
computadora de supervisin con una unidad terminal remota (RTU) en sistemas de control de
supervisin y adquisicin de datos (SCADA). Existen versiones del protocolo Modbus para
lneas serie (Modbus RTU y Modbus ASCII) y para Ethernet (Modbus TCP).

Cmo funciona?

Modbus se transmite a travs de lneas seriales entre dispositivos. La configuracin ms simple


sera un solo cable serial conectando los puertos seriales en dos dispositivos, un Maestro y un
Esclavo. Los datos se envan como series de unos y ceros llamados bits. Cada bit se enva como
un voltaje. Los cero se envan como voltajes positivos y los negativos. Los bits se envan muy
rpido. Una velocidad de transmisin tpica es 9600 baudios.

Qu es hexadecimal?

Las cadenas largas de unos y ceros son difciles de leer, por lo que los bits se combinan y se
muestran en hexadecimal. Cada bloque de 4 bits est representado por uno de los personajes
diecisis de 0 a F.

0000 = 0 0100 = 4 1000 = 8 1100 = C


0001 = 1 0101 = 5 1001 = 9 1101 = D
0010 = 2 0110 = 6 1010 = A 1110 = E
0011 = 3 0111 = 7 1011 = B 1111 = F

Cada bloque de 8 bits (llamado byte) est representado por uno de los 256 pares de caracteres
de 00 a FF.
Qu es ASCII?

De la misma manera que cada 4 bits se pueden combinar y representar mediante uno de los
diecisis caracteres hexadecimales de 0 a F, cada 8 bits (cada byte) puede combinarse y
representarse mediante uno de los 256 caracteres ASCII, incluidos los caracteres comunes del
teclado. Por ejemplo, algunos de los valores para caracteres ASCII son:

decimal binario Hexgono ASCII


(base10) (base2) (base16) (base256)
0 0000 0000 00 nulo
1 0000 0001 01 "
34 0010 0010 22 #
35 0010 0011 23 ps
36 0010 0100 24 %
47 0010 1111 2F /
48 0011 0000 30 0
49 0011 0001 31 1
56 0011 1000 38 8
57 0011 1001 39 9
58 0011 1010 3A :
64 0100 0000 40 @
sesenta y cinco 0100 0001 41 UN
66 0100 0010 42 segundo
89 0101 1001 59 Y
90 0101 1010 5A Z
91 0101 1011 5B [
95 0101 1111 5F _
96 0110 0000 60 `
97 0110 0001 61 un
122 0111 1010 7A z
123 0111 1011 7B {
174 1010 1110 AE
255 1111 1111 FF
Cmo se almacenan los datos en el Modbus estndar?

La informacin se almacena en el dispositivo esclavo en cuatro tablas diferentes.


Dos tablas almacenan valores discretos (bobinas) on / off y valores numricos (registros) de
dos tiendas. Las bobinas y los registros tienen cada uno una tabla de solo lectura y una tabla de
lectura y escritura.

Cada tabla tiene 9999 valores.


Cada bobina o contacto es de 1 bit y se le asigna una direccin de datos entre 0000 y 270E.
Cada registro es 1 palabra = 16 bits = 2 bytes y tambin tiene una direccin de datos
entre 0000 y 270E.

Bobina / nmeros de Direcciones de


Tipo Nombre de la tabla
registro datos
Leer
1-9999 0000 a 270E Bobinas de salida discretas
escribir
Solo
10001-19999 0000 a 270E Contactos de entrada discretos
lectura
Solo
30001-39999 0000 a 270E Registros de entrada analgica
lectura
Leer Registros de espera de salida
40001-49999 0000 a 270E
escribir analgica

Los nmeros de bobina / registro pueden considerarse nombres de ubicacin ya que no


aparecen en los mensajes reales. Las direcciones de datos se usan en los mensajes.

Cul es la identificacin del esclavo?

A cada esclavo en una red se le asigna una direccin de unidad nica de 1 a 247. Cuando el
maestro solicita datos, el primer byte que enva es la direccin del esclavo. De esta forma, cada
esclavo sabe despus del primer byte si ignora o no el mensaje.

Qu es un cdigo de funcin?

El segundo byte enviado por el maestro es el cdigo de funcin. Este nmero le dice al esclavo
a qu tabla acceder y si leer o escribir en la tabla.

Cdigo de funcin Accin Nombre de la tabla


01 ( 01 hex) Leer Bobinas de salida discretas
05 ( 05 hex) Escribir solo Bobina de salida discreta
15 ( 0F hex) Escribir mltiples Bobinas de salida discretas
02 ( 02 hex) Leer Contactos de entrada discretos
04 ( 04 hex) Leer Registros de entrada analgica
03 ( 03 hex) Leer Registros de espera de salida analgica
06 ( 06 hex) Escribir solo Registro de retencin de salida analgica
16 ( 10 hex) Escribir mltiples Registros de espera de salida analgica
Qu es un CRC?

CRC significa comprobacin de Redundancia Cclica. Son dos bytes agregados al final de cada
mensaje Modbus para la deteccin de errores. Cada byte en el mensaje se usa para calcular el
CRC. El dispositivo receptor tambin calcula el CRC y lo compara con el CRC desde el
dispositivo emisor. Si incluso un bit en el mensaje se recibe incorrectamente, los CRC sern
diferentes y se producir un error.

Cules son los formatos de los comandos y respuestas de Modbus?

Siga los enlaces en esta tabla para ver ejemplos de las solicitudes y respuestas.

Direcciones de datos Leer Escribir solo Escribir Mltiple


Bobinas de salida discreta 0xxxx FC01 FC05 FC15
Contactos de entrada discretos 1xxxx FC02 N/A N/A
Registros de entradas analgicas 3xxxx FC04 N/A N/A
Registros de retencin de salida analgica 4xxxx FC03 FC06 FC16

Qu son los tipos de datos?

El ejemplo para FC03 muestra que el registro 40108 contiene AE41


que convierte a los 16 bits 1010 1110 0100 0001

El registro 40108 podra definirse como cualquiera de estos tipos de datos de 16


bits: un entero sin signo de 16 bits (un nmero entero entre 0 y 65535), el registro 40108
contiene AE41 = 44,609 (conversin de hexadecimal a decimal).

Un entero de 16 bits con signo (un nmero entero entre -32768 y 32767)
AE41 = -20,927
(conversin de hexadecimal a decimal que se ajusta, si es superior a 32767, resta 65536)

Una cadena ASCII de dos caracteres


AE41 = A

Un valor discreto de activacin / desactivacin (funciona igual que los enteros de 16 bits con
un valor de 0 o 1.
Los datos hexadecimales seran 0000 o 0001.

El registro 40108 tambin se podra combinar con 40109 para formar cualquiera de estos tipos
de datos de 32 bits:

Un entero sin signo de 32 bits

(Un nmero entre 0 y 4,294,967,295 ) 40108,40109 = AE41 5652 = 2,923,517,522

Un entero con signo de 32 bits (un nmero entre -2147483648 y 2147483647)


AE41 5652 = -1371449774
Un nmero de coma flotante IEEE de precisin simple de 32 bits.

Esta es una frmula matemtica que permite que cualquier nmero real (un nmero
con puntos decimales) sea representado por 32 bits con una precisin de aproximadamente
siete dgitos.
AE41 5652 = -4.395978 E-11

Aqu hay una calculadora flotante IEEE de hoja de clculo para entradas de 4 bytes o 2
palabras.

Una cadena ASCII de cuatro caracteres


AE41 5652 = AVR

Se pueden combinar ms registros para formar cadenas ASCII ms largas. Cada registro se usa
para almacenar dos caracteres ASCII (dos bytes).

Qu es el orden de bytes y palabras?

La especificacin Modbus no define exactamente cmo se almacenan los datos en los


registros. Por lo tanto, algunos fabricantes implementaron modbus en sus equipos para
almacenar y transmitir el byte superior primero seguido del byte inferior. ( AE antes de 41 ).
Alternativamente, otros almacenan y transmiten primero el byte inferior ( 41 antes de AE ).

De manera similar, cuando los registros se combinan para representar tipos de datos de 32
bits, algunos dispositivos almacenan los 16 bits ms altos (palabra alta) en el primer registro y
la palabra baja restante en el segundo ( AE41 antes de 5652 ) mientras que otros hacen lo
contrario ( 5652 antes AE41 )

No importa en qu orden se enven los bytes o las palabras, siempre que el dispositivo
receptor sepa de qu manera esperarlo.

Por ejemplo, si el nmero 2,923,517,522 se enviara como un entero sin signo de 32 bits, podra
disponerse cualquiera de estas cuatro formas.

tambin conocido como


AE41 5652 byte alto primera palabra alta primero "big endian"
5652 AE41 byte alto primera palabra baja primero
41AE 5256 byte bajo primera palabra alta primero
5256 41AE byte bajo primera palabra baja primero "little endian"

Qu es un mapa Modbus?

Un mapa Modbus es simplemente una lista para un dispositivo esclavo que define
: cules son los datos (por ejemplo, lecturas de presin o temperatura)
, dnde se almacenan los datos (qu tablas y direcciones de datos)
, cmo se almacenan los datos (tipos de datos, byte y ordenamiento de palabras)

Algunos dispositivos se crean con un mapa fijo definido por el fabricante. Mientras que otros
dispositivos permiten al operador configurar o programar un mapa personalizado para
satisfacer sus necesidades.
Cul es la diferencia entre Modbus ASCII y Modbus RTU?

La diferencia entre estos dos modos se explica aqu .

Qu son las direcciones de registro extendidas?

Como el rango de los registros de retencin de salida analgica es de 40001 a 49999, implica
que no puede haber ms de 9999 registros. Aunque esto suele ser suficiente para la mayora
de las aplicaciones, hay casos en que ms registros seran beneficiosos.

Los registros 40001 a 49999 corresponden a las direcciones de datos 0000 a 270E . Si
utilizamos las direcciones de datos restantes 270F a FFFF , ms de seis veces pueden estar
disponibles tantos registros, 65536 en total. Esto correspondera a los nmeros de registro
desde 40001 a 105536.

Muchos controladores de software modbus (para PC maestros) se escribieron con los lmites
40001 a 49999 y no pueden acceder a registros extendidos en dispositivos esclavos. Y muchos
dispositivos esclavos no admiten mapas usando los registros extendidos. Pero, por otro lado,
algunos dispositivos esclavos s admiten estos registros y algunos programas maestros pueden
acceder a ellos, especialmente si se escribe un software personalizado.

Cmo funciona el direccionamiento esclavo de 2 bytes?

Dado que normalmente se usa un solo byte para definir la direccin del esclavo y cada esclavo
en una red requiere una direccin nica, el nmero de esclavos en una red est limitado a 256.
El lmite definido en la especificacin Modbus es an ms bajo en 247.

Para ir ms all de este lmite, se puede hacer una modificacin en el protocolo para usar dos
bytes para la direccin. El maestro y los esclavos deberan estar obligados a apoyar esta
modificacin. El direccionamiento de dos bytes extiende el lmite de la cantidad de esclavos en
una red a 65535.

De forma predeterminada, el software Simply Modbus utiliza un direccionamiento de 1


byte. Cuando se ingresa una direccin superior a 255, el software cambia automticamente al
direccionamiento de 2 bytes y permanece en este modo para todas las direcciones hasta que
el direccionamiento de 2 bytes se apague manualmente.

Cmo se pueden enviar eventos y datos histricos?

Enron Modbus incluye comandos para mover eventos y datos histricos.

Qu es Enron Modbus?

Enron Modbus es una modificacin del protocolo de comunicacin modbus Modicon estndar
desarrollado por Enron Corporation.

Вам также может понравиться