Академический Документы
Профессиональный Документы
Культура Документы
02
Modbus-IDA.ORG
ELECTRONICA
COMUNICACIONES
INTEGRANTES:
GRUPO C
Jaya Oscar
Mera Juan Carlos
Loza David
Jima Luis Miguel
ojaya@est.ups.edu.ec
jmera@est.ups.edu.ec
dloza@est.ups.edu.ec
ljima@est.ups.edu.ec
GRUPO D
Oa Paredes Edwin Moises
Naranjo Erazo Chrystian Patricio
Pazmio Mrmol Rubn Fernando
eonap@est.ups.edu.ec
cnaranjo@est.ups.edu.ec
rpazmino@est.ups.edu.ec
NIVEL: SEPTIMO
GRUPO: 3
BIBLIOGRAFIA:
[1] A travs de Modbus Serial Line Gua de especificacin e implementacin V1.02
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
1/44
04 Enero 2016
Modbus-IDA.ORG
V1.02
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
2/44
04 Enero 2016
Modbus-IDA.ORG
Contenido
________________________________________________
1. Introduccin.......................................................................4
1.1 Alcance de este documento..........................................4
1.2 Informacin general del Protocolo..............5
1.3 Convenciones....................................................5
1.4 Cumplimiento...............................................................6
1.5 Glosario........................................................................6
2. MODBUS Capa Enlace de Datos.......................................7
2.1 Principio del Protocolo MODBUS Maestro / Esclavo7
2.2 Abordar Normas MODBUS...........................................8
2.3 Descripcin y Estructura MODBUS..............................8
2.4 Diagramas del Estado Maestro / Esclavos....................9
2.5 Los dos Modos de transmisin Serial..........................12
2.6 Mtodos de Comprobacin de errores Mtodos.........19
3. Capa Fsica......................................................................20
3.1 Prembulo..................................................................20
3.2 Sealizacin de Datos Binarios................................20
3.3 Interfaces Elctricas...................................................21
3.4 Requisitos del sistema multipunto..............................27
3.5 Interfaces mecnicas..................................................29
3.6 Cables........................................................................32
3.7 Diagnstico Visual......................................................32
4. Instalacin y Documentacin........................................... 33
4.1 Instalacin..................................................................33
4.2 Gua del usuario.........................................................33
5. Clases de Implementacin...............................................34
6. Apndice..........................................................................35
6.1 Apndice A - Gestin Serial Diagnstico de
Contadores......35
6.2 Apndice B Generacin LRC / CRC........................38
6.3 Apndice E - Referencias..........................................44
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
3/44
04 Enero 2016
Modbus-IDA.ORG
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
4/44
04 Enero 2016
Modbus-IDA.ORG
1 Introduccin
1.1 Alcance de este documento
El estndar MODBUS define un protocolo de mensajera de capa aplicacin, posicionado en el nivel 7 del modelo
OSI que proporciona comunicaciones "cliente / servidor" entre dispositivos conectados a diferentes tipos de buses
o redes. Tambin estandariza una especificacin de protocolo sobre lnea serie para intercambiar peticin MODBUS
entre un maestro y uno o varios esclavos. El objetivo de este documento es presentar el protocolo MODBUS sobre
lnea serie, con el fin de ser utilizado por todos los diseadores del sistema cuando quieren implementar el protocolo
Modbus en sus productos de la lnea de serie. Por lo tanto, este documento facilitar la interoperabilidad entre
dispositivos que utilizan el protocolo Modbus. Este documento viene en complemento al documento llamado
"MODBUS protocolo de aplicacin Especificacin". En el captulo 5 clases de implementacin diferentes se definen
para "MODBUS lnea serie". La especificacin de una clase es la suma de
requisitos que un dispositivo debe respetar a fin de pertenecer a esa clase.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
5/44
04 Enero 2016
Modbus-IDA.ORG
Protocolo de mensajera de capa aplicacin MODBUS, colocado en el nivel 7 del modelo OSI, proporciona una
comunicacin cliente / servidor entre dispositivos conectados en autobuses o redes. En MODBUS lnea serie el rol
de cliente es proporcionado por el maestro del bus de serie y los nodos esclavos actan como servidores.
1.3 Convenciones
En este documento, las siguientes palabras se usan para definir el significado de cada requisito particular.
"MUST" / "REQUERIDO"
Todos los requisitos que contienen la palabra "debe" son obligatorios. La palabra debe, o el adjetivo "necesario",
significa que el tema es un requisito absoluto de la aplicacin. Estas palabras estn subrayadas.
"DEBE" / "recomendada"
Todas las recomendaciones que contienen la palabra "debera", o el adjetivo "RECOMENDADO", se consideran
comportamiento deseado. Estas recomendaciones deben utilizarse como una gua al momento de elegir entre
diferentes opciones para implementar la funcionalidad. Puede haber razones vlidas en circunstancias particulares
para ignorar este tema, pero todas las consecuencias deben ser comprendidas y el caso pesado cuidadosamente
antes de elegir un camino diferente. Estas palabras estn subrayadas.
"PUEDE" / "OPCIONAL"
La palabra "puede", o el adjetivo "OPCIONAL", significa que este tema es verdaderamente opcional. Un diseador
puede optar por incluir el elemento porque un determinado mercado lo exige o porque aumenta el producto, por
ejemplo; otro diseador puede omitir el mismo elemento.
1.4 Cumplimiento
Una aplicacin no es conforme si no se cumplen uno o ms de los requisitos DEBE de su clase de implementacin.
Una aplicacin que satisfaga todos los requisitos DEBE y todas las recomendaciones DEBEN se dice que es
"incondicionalmente obediente".
Uno que satisfaga todos los requisitos DEBE pero no todas las recomendaciones DEBEN se dice que es
"condicionalmente compactible".
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
6/44
04 Enero 2016
Modbus-IDA.ORG
1.5 Glosario
Definicin de determinadas palabras, smbolos y abreviaturas utilizadas en este documento.
2W
La configuracin de dos hilos se define en el captulo "Interfaz elctrica", o una de sus interfaces.
4W
La configuracin de cuatro hilos se define en el captulo "Interfaz elctrica", o una de sus interfaces.
AUI
Calibre AWG American Wire, un dimetro de alambre mtodo estndar que denota, por favor consulte el Apndice
E - Referencias.
Comn
El comn de la seal en el EIA / TIA Normas. En una red MODBUS 2W-o 4W-RS485, seal y opcional
Fuente de alimentacin Comn
DCE
Un dispositivo Modbus, por ejemplo un adaptador de controlador programable, que implementa un
conjunto de datos RS232 Equipo de terminacin del circuito, tambin llamado el equipo de comunicacin de datos.
Aparato
Conductor
Generador, o transmisor.
DTE
Un dispositivo Modbus, por ejemplo un panel de programacin o un PC, que implementa un conjunto
de datos RS232 Equipo Terminal. ITR Interfaz de bus fsica en el lado del tronco.
IDV
LT Lnea
Terminacin. MODBUS dispositivo un dispositivo que implementa MODBUS sobre lnea serie y
respeta la presente nota tcnica.
RS232
RS485
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
7/44
04 Enero 2016
Modbus-IDA.ORG
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
8/44
04 Enero 2016
Modbus-IDA.ORG
La direccin 0 se reserva como la direccin de difusin. Todos los nodos esclavos deben reconocer la direccin de
difusin.
El nodo MODBUS Maestro no tiene direccin especfica, slo los nodos esclavos deben tener una direccin. Esta
direccin debe ser nica en un bus serie MODBUS.
2.3 MODBUS Descripcin trama
El protocolo de aplicacin MODBUS [1] define una sencilla Unidad de datos de protocolo (PDU) independiente de
las capas de comunicacin subyacentes:
Cdigo de Funcin
Datos
MODBUS PDU
Figura 5: Unidad de datos de protocolo MODBUS
El mapeo de protocolo MODBUS en un autobs o red especfica introduce algunos campos adicionales en la Unidad
de datos de protocolo. El cliente que inicia una transaccin MODBUS construye el MODBUS PDU y, a continuacin,
agrega campos a fin de construir la PDU de comunicacin apropiado.
Cdigo de
Funcin
Dato
s
CRC (o LRC)
MODBUS PDU
Figura 6: Trama sobre de Lnea Serial Modbus
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
9/44
04 Enero 2016
Modbus-IDA.ORG
En MODBUS lnea serie, el campo Direccin slo contiene la direccin del esclavo.
Como se describe en la seccin anterior el esclavo vlida nodos direcciones estn en el rango de 0 a 247 decimal.
Los dispositivos esclavos individuales se asignan direcciones en el rango de 1 - 247. Un maestro se dirige a un esclavo
poniendo la direccin del esclavo en el campo de direccin del mensaje. Cuando el esclavo devuelve su respuesta,
coloca su propia direccin en el campo de direccin de respuesta para que el maestro sepa qu esclavo responde.
El cdigo de funcin indica al servidor qu tipo de accin a realizar. El cdigo de funcin puede ser seguido por
un campo de datos que contiene parmetros de peticin y respuesta.
El campo de chequeo de error es el resultado de una "comprobacin de redundancia" clculo que se realiza en
el contenido del mensaje. Se utilizan dos tipos de mtodos de clculo en funcin del modo de transmisin que
se utiliza (RTU o ASCII). (ver seccin 2.5, "Los dos modos de transmisin de serie")
Cuando un evento de "activacin" se produce en un sistema de estar en "State_A", el sistema va a "State_B", slo si
"condicin Guard" es cierto. Una accin "accin" es entonces realizado.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
10/44
04 Enero 2016
Modbus-IDA.ORG
Estado "Idle" = ninguna solicitud pendiente. Este es el estado inicial despus del encendido. La solicitud slo se
puede enviar en el estado "inactivo". Despus de enviar una solicitud, el Maestro abandona el estado "inactivo",
y no puede enviar una segunda solicitud al mismo tiempo
Cuando se enva una solicitud unicast a un esclavo, el maestro entra en "Esperando respuesta" del Estado, y se
inicia un "Tiempo de respuesta de salida". Evita que el Maestro de permanecer indefinidamente en "Esperando
respuesta" estado. Valor de la respuesta de tiempo de espera depende de la aplicacin.
Cuando se recibe una respuesta, el maestro comprueba la respuesta antes de iniciar el proceso de datos. La
comprobacin puede resultar en un error, por ejemplo una respuesta de un esclavo inesperado, o un error en la
trama recibida. En caso de una respuesta recibida de un esclavo inesperado, la respuesta de tiempo de espera
se mantiene en funcionamiento. En caso de un error detectado en el bastidor, se puede realizar un reintento.
Si no se recibe respuesta, la respuesta de tiempo de espera expira, y se genera un error. Entonces el Maestro
pasa al estado "inactivo", lo que permite un reintento de la solicitud. El nmero mximo de reintentos depende
del principal de ajuste.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
11/44
04 Enero 2016
Modbus-IDA.ORG
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
12/44
04 Enero 2016
Modbus-IDA.ORG
Observaciones:
La duracin de la solicitud, respuesta, fases BROACAST depende de las caractersticas de comunicacin (longitud
Trama y rendimiento).
La duracin de las fases de espera y el tratamiento depende del tiempo de procesamiento de la solicitud
necesaria para la aplicacin de esclavos.
Modbus-IDA.ORG
Cuando los dispositivos se comunican en una lnea serie MODBUS utilizando el modo RTU (Remote Terminal Unit),
cada byte de 8 bits en un mensaje contiene dos caracteres hexadecimales de 4 bits. La principal ventaja de este
modo es que su mayor densidad de caracteres de datos permite un mejor rendimiento de modo ASCII para la misma
velocidad de transmisin. Cada mensaje debe ser transmitida en un flujo continuo de caracteres.
El formato (11 bits) para cada byte en modo RTU es:
Sistema de Codificacin de:
Bits por byte de inicio:
8 bits binarios
1 bit de inicio
8 bits de datos, bit menos significativo enviado primero
1 bit de paridad finalizacin
1 bit de parada.
Incluso se requiere paridad, otros modos (paridad impar, sin paridad) tambin se puede utilizar. Con el fin de
garantizar una mxima compatibilidad con otros productos, se recomienda usar tambin el modo sin paridad. El
modo de paridad por defecto debe ser la paridad par.
Observacin: el uso de la no paridad requiere 2 bits de parada.
Cmo se transmiten los caracteres en serie:
Cada carcter o byte se enva en este orden (de izquierda a derecha):
Bit menos significativo (LSB). . . El bit ms significativo (MSB)
Figura 11: Secuencia de bits en modo RTU (caso especfico sin paridad).
Trama de Verificacin de campo: comprobacin de redundancia cclica (CRC)
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
14/44
04 Enero 2016
Modbus-IDA.ORG
La trama de todo el mensaje debe ser transmitido como un flujo continuo de caracteres.
Si entre dos caracteres ocurre un intervalo de silencio ms de 1,5, el telegrama es declarado incompleto y debe ser
desechada por el receptor.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
15/44
04 Enero 2016
Modbus-IDA.ORG
Observacin:
La implementacin de controlador de recepcin RTU puede implicar el manejo de una gran cantidad de
interrupciones debido a los temporizadores T1.5 y T3.5. Con altas velocidades de transmisin de comunicacin, esto
conduce a una carga pesada en la CPU. En consecuencia, estos dos temporizadores de velocidad de transmisin es
igual inferior a 19.200 bps. Para velocidades de transmisin superiores a 19.200 bps, se deben usar valores fijos
para los 2 temporizadores: se recomienda utilizar un valor de 750s para el inter-carcter de tiempo de espera (T1.5)
y un valor de 1.750ms para retardo inter-trama retardo (T3.5).
El siguiente dibujo proporciona una descripcin del diagrama de estado de modo de transmisin RTU. Ambos puntos
de vista "maestro" y "esclavo" se expresan en el mismo dibujo:
Modbus-IDA.ORG
El modo RTU incluye un campo de comprobacin de errores que se basa en un mtodo de comprobacin de
redundancia cclica (CRC) realizadas en el contenido del mensaje.
El campo CRC comprueba el contenido de todo el mensaje. Se aplica independientemente de cualquier mtodo de
comprobacin de paridad utilizado para los caracteres individuales del mensaje.
El campo CRC contiene un valor de 16 bits implementado como dos bytes de 8 bits.
El campo CRC se anexa al mensaje como el ltimo campo en el mensaje. Cuando se hace esto, el byte de orden
inferior del campo se aade en primer lugar, seguido por el byte de orden superior. El byte de orden CRC es el ltimo
byte en ser enviados en el mensaje.
El valor CRC se calcula por el dispositivo emisor, que aade el CRC para el mensaje. El dispositivo receptor vuelve a
calcular un CRC durante la recepcin del mensaje, y compara el valor calculado con el valor real que recibi en el
campo CRC. Si los dos valores no son iguales, se produce un error.
El clculo CRC se inicia por primera pre-carga de un registro de 16 bits a todos 1 de. Entonces comienza un proceso
de aplicacin sucesiva de bytes de 8 bits del mensaje con el contenido actual del registro. Slo los ocho bits de datos
en cada carcter se utilizan para generar el CRC. Iniciar y detener bits y el bit de paridad, no se aplican a la CDN.
Durante la generacin de la CDN, cada carcter de 8 bits es ORed exclusivo con el contenido del registro. A
continuacin el resultado se despliega al del bit menos significativo (LSB), con un cero se introducen en la posicin
del bit ms significativo (MSB). El LSB es extraido y examinado. Si el LSB era un 1, el registro es entonces ORed
exclusivo se programa con un valor fijo. Si el LSB era un 0, la OR exclusiva toma su lugar.
Este proceso se repite hasta que se han realizado ocho turnos. Despus de la ltima (ocho) de desplazamiento, el
siguiente byte de 8 bits es ORed exclusivo con el valor actual del registro, y el proceso se repite durante ocho ms
cambios como se describe anteriormente. El contenido final del registro, una vez aplicados todos los bytes del
mensaje, es el valor CRC.
Cuando el CRC se aade al mensaje, el byte de orden inferior se aade en primer lugar, seguido por el byte de orden
superior. Un ejemplo detallado de la generacin de CRC est contenida en el Apndice B.
1 bit de inicio
7 bits de datos, bit menos significativo enviado primero
1 bit de paridad finalizacin
1 bit de parada.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
17/44
04 Enero 2016
Modbus-IDA.ORG
Incluso se requiere paridad, otros modos tambin se puede utilizar (paridad impar, sin paridad). Con el fin de
garantizar una mxima compatibilidad con otros productos, se recomienda para apoyar tambin el modo Sin
paridad. El modo de paridad por defecto debe ser Paridad par.
Observacin: el uso de la no paridad requiere 2 bits de parada.
Cmo se transmiten los caracteres en serie:
Cada carcter o byte se enva en este orden (de izquierda a derecha):
Bit menos significativo (LSB). . . El bit ms significativo (MSB)
Figura 16: Secuencia de bits en modo ASCII ( caso especfico de ninguna paridad).
Marco de Verificacin de campo: Redundancia Longitudinal Comprobacin (LRC)
2.5.2.1 MODBUS Enmarcacin de mensajes ASCII (Intercambio de informacin para cada cdigo americano)
Un mensaje de MODBUS es colocado por el dispositivo de transmisin en una trama que tiene un principio conocido
y el punto final. Esto permite que los dispositivos que reciben un nuevo marco para empezar al comienzo del
mensaje, y para saber cundo se ha completado el mensaje. Mensajes parciales deben ser detectados y los errores
se deben establecer como resultado.
El campo de direccin de un telegrama contiene dos caracteres.
En el modo ASCII, un mensaje est delimitada por caracteres especficos como inicio-de-trama y Fin de trama. Un
mensaje debe comenzar con un 'dos puntos' (:) de caracteres (ASCII 3A hex), y terminar con un "retorno de carro avance de lnea '(CRLF) par (ASCII 0D y hex 0A).
Observacin: El carcter LF se puede cambiar con un comando especfico de aplicacin Modbus (ver especificacin
del protocolo de aplicacin Modbus).
Los caracteres permitidos de transmisin para todos los dems campos son hexadecimal 0-9, A-F (ASCII codificado).
Los dispositivos monitorean el autobs continuamente por el carcter 'dos puntos'. Cuando se recibe este personaje,
cada dispositivo decodifica el siguiente carcter hasta que detecta el Fin-De-trama
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
18/44
04 Enero 2016
Modbus-IDA.ORG
Intervalos de hasta un segundo pueden transcurrir entre personajes dentro del mensaje. A menos que el usuario ha
configurado un tiempo de espera mayor, un intervalo mayor de 1 segundo significa que ha ocurrido un error. Algunas
aplicaciones de zona ancha de la red puede requerir un tiempo de espera en el segundo rango de 4 a 5.
Un marco tpico mensaje se muestra a continuacin.
Modbus-IDA.ORG
reducir el tiempo de procesamiento de recepcin de la direccin de campo puede ser analizada en cuanto
est reservado sin esperar el final de la trama.
2.5.2.2 Comprobacin LRC
En el modo ASCII, los mensajes incluyen un campo de comprobacin de errores que se basa en una comprobacin
de redundancia longitudinal (LRC) de clculo que se realiza en el contenido del mensaje, exclusiva de la 'dos puntos'
que comienza y termina par caracteres CRLF. Se aplica independientemente de cualquier mtodo de comprobacin
de paridad utilizado para los caracteres individuales del mensaje.
El campo de LRC es de un byte, contiene un valor binario de 8 bits. El valor LRC es calculado por el dispositivo que
emite, que aade el LRC al mensaje. El dispositivo que recibe calcula una LRC durante la recepcin del mensaje, y
compara el valor calculado con el valor real que recibi en el campo LRC. Si los dos valores no son iguales, se produce
un error.
El LRC se calcula sumando los sucesivos bytes de 8 bits del mensaje, descartando cualquier lleva, y luego dos de
complementar el resultado. Se realiza en la bytes del mensaje, antes de la codificacin de cada byte en los dos ASCII
caracteres correspondientes a la representacin hexadecimal de cada cuarteto. El clculo no incluye el carcter "dos
puntos 'que comienza el mensaje, y no incluye el par CRLF al final del mensaje.
El LRC resultante es ASCII codificado en dos bytes y se coloca al final de la trama de modo ASCII antes de la CRLF.
Un ejemplo detallado de generacin LRC figura en el Apndice B.
2.6 Mtodos de comprobacin de errores
La seguridad del estanadar Modbus lnea Serial se basa en dos tipos de comprobacin de errores
Comprobacin de paridad
( par o impar) deben aplicarse a cada carcter
Comprobacin del bastidor
(LRC o CRC) debe aplicarse a todo el mensaje
Tanto el carcter de comprobacin y verificacin del bastidor de mensajes se generan en el dispositivo (master
o slave) que emite y aplica a los contenidos de los mensajes antes de la transmisin. El dispositivo (maestro o
esclavo) comprueba cada personaje y el mensaje completo marco durante la recepcin.
El master est configurado por el usuario para esperar un intervalo de tiempo de espera predeterminado ()
Tiempo de espera de respuesta antes de abortar la transaccin. Este intervalo se establece en ser lo
suficientemente largo para cualquier esclavo para responder normalmente ( solicitud unicast). Si el esclavo
detecta un error en la transmisin, el mensaje no se actu en consecuencia. El esclavo no construir una
respuesta al maestro. Por lo tanto el tiempo de espera caducar y permitir que el programa de maestra para
manejar el error. Tenga en cuenta que un mensaje dirigido a un dispositivo esclavo inexistente tambin
causar un timeout.
2.6.1 Comprobacin de Paridad
Los usuarios pueden configurar dispositivos para incluso ( requerido) o comprobacin de paridad impar, o
sin comprobacin de paridad ( recomendado). Esto ayudar a determinar cmo el bit de paridad se
establecer en cada personaje.
Si bien es de paridad par o impar, la cantidad especificada de 1 bits sern contados en la porcin de datos de
cada personaje (siete bits de datos para el modo ASCII, u ocho de RTU). El bit de paridad se establecer en 0 o
1 para dar un total de par o impar de 1 bits.
Por ejemplo, estos ocho bits de datos estn contenidos en una trama de carcter RTU:
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
20/44
04 Enero 2016
11000101
Modbus-IDA.ORG
La cantidad total de bits 1 en el bastidor es cuatro. Incluso si la paridad se utiliza, la trama de bit de paridad
ser un 0, haciendo que la cantidad total de bits 1 todava un nmero par (4). Si se utiliza la paridad impar, el bit
de paridad ser un 1, haciendo una cantidad impar (5).
Cuando el mensaje es transmitido, el bit de paridad se calcula y se ap lica a la trama de cada
personaje. El dispositivo que recibe cuenta la cantidad de bits 1 y establece un error si no
son el mismo como configurado para ese dispositivo (todos los dispositivos de la lnea serie
MODBUS deben estar configurados para utilizar el mismo mtodo de comprobacin de paridad).
Tenga en cuenta que la comprobacin de paridad slo puede detectar un error si un nmero impar de bits
son recogidos o caer en un bastidor de caracteres durante la transmisin. Por ejemplo, si se emplea la
comprobacin de paridad impar, y dos de 1 bits se cay de un carcter que contiene tres bits 1,
el resultado es todava un extrao recuento de 1 bits.
Si no se especifica la comprobacin de paridad, sin bit de paridad se transmite y no puede realizarse la
comprobacin de paridad. Un bit de parada adicional se transmite a rellenar el carcter del bastidor.
2.6.2 Comprobacin de la Trama
Dos tipos de verificacin de trama se utiliza dependiendo del modo de transmisin, RTU o ASCII.
En modo RTU, mensajes incluyen un campo de comprobacin de errores que se basa en una comprobacin
de redundancia cclica (CRC) Mtodo. El campo CRC comprueba el contenido de todo
el
mensaje.
se
aplica
independientemente
de
cualquier
comprobacin
de
paridad Mtodo utilizado para cada uno de los caracteres del mensaje.
En modo ASCII, los mensajes incluyen un campo de comprobacin de errores que se basa en un control
de redundancia longitudinal (LRC) Mtodo.
El campo LRC verifica el contenido del mensaje, exclusivo de los comienzos 'Coln' y termina par CRLF. Se
aplica independientemente de cualquier comprobacin de paridad Mtodo utilizado para cada uno de
los caracteres del mensaje.
La informacin detallada acerca de los mtodos de comprobacin de errores est contenida en las secciones
anteriores.
3 Capa Fsica
3.1 Prembulo
Una nueva solucin MODBUS sobre lnea serie debe implementar una interfaz elctrica segn la norma EIA / TIA485 (tambin conocido como estndar RS485). Este estndar puede ser punto a punto y sistemas multipunto, en
una "configuracin de dos cables". Adems, algunos dispositivos pueden implementar un "cuatro hilos" RS485Interface.
Un dispositivo tambin puede implementar una interfaz RS232.
En un sistema de este tipo MODBUS, un dispositivo maestro y uno o varios dispositivos esclavos se comunican en
una lnea serie pasiva.
El sistema MODBUS estndar, todos los dispositivos estn conectados (en paralelo) en un cable principal constituido
por 3 conductores. Dos de aquellos conductores (configuracin "de dos hilos" configuracin) forman un par trenzado
balanceado, en el que se transmiten los datos bidireccionales, por lo general en el velocidad de bits de 9600 bits por
segundo.
Cada dispositivo se puede conectar (ver figura 19):
- Ya sea directamente sobre el cable del tronco, formando una cadena tipo margarita,
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
21/44
04 Enero 2016
Modbus-IDA.ORG
La figura 19 da una descripcin general de la infraestructura en un bus serie en un sistema Modbus lnea seria.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
22/44
04 Enero 2016
Modbus-IDA.ORG
Un multipunto Modbus Serial Bus de lnea est hecha de un cable principal (el tronco), y posiblemente
algunos cables de derivacin.
Terminaciones de lnea son necesarias en cada extremidad del cable troncal para adaptacin de
impedancia (vase "Definicin" MODBUS de dos hilos
Opcional MODBUS Four-Wire & "Definicin" para ms detalles).
Como se muestra en la figura 19, diferentes implementaciones pueden operar en la misma lnea de sistema
Modbus Serial :
El dispositivo se integra el transceptor de comunicaciones y est conectado a la lnea troncal mediante
una lnea pasiva y un cable de derivacin
( caso de maestro y esclavo 1 ) ;
El dispositivo no integrar la comunicacin y el transceptor est conectado a la lnea
troncal mediante una toma activa y una derivacin del cable (el activo toca integra el transceptor)
( caso de esclavo 2 ) ;
El dispositivo est conectado directamente al cable troncal, en un caso de esclavo de encadenamiento en
margarita ( n ).
3.3.2
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
23/44
04 Enero 2016
Modbus-IDA.ORG
Una solucin a travs de Modbus Serial line debera implementar una " interfaz" de dos hilos
elctricos en conformidad con el estndar EIA/TIA-485. En ese 2W-bus, en cualquier momento un
nico conductor tiene el derecho de transmitir.
En realidad un tercer conductor tambin debe interconectar todos los dispositivos del bus : el comn.
Notas :
Para terminacin de lnea (LT), tire hacia arriba y tire hacia abajo resistencias, consulte la seccin
" Requisitos del sistema multipunto".
D0, D1 y el circuito comn de nombres deben ser utilizados en la documentacin relacionada con el
dispositivo y el grifo ( User Guide, cableado.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
24/44
04 Enero 2016
Fuente de alimentacin:
Modbus-IDA.ORG
5..24 V D.C.
Control de modo de puerto: circuito PMC ( compatible con TTL ). Cuando sea necesario, el modo
de puerto puede ser controlado por este circuito externo y/o por otro camino (a encender el
dispositivo, por ejemplo). En el primer caso, mientras que un circuito abierto PMC solicitar la
2W-Modo de MODBUS, un bajo nivel de PMC cambiar el puerto a 4W-Modbus RS232 o ModbusModo, dependiendo de la aplicacin.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
25/44
04 Enero 2016
Modbus-IDA.ORG
Notas :
Para terminacin de lnea (LT), tire hacia arriba y tire hacia abajo resistencias, consulte la seccin " Requisitos
del sistema multipunto".
Esos circuitos (1) slo son necesarios si un 4W-MODBUS opcin es implementado.
El nombre de los 5 circuitos requeridos deben ser utilizados en la documentacin relacionada con el
dispositivo y el grifo ( User Guide, cableado. Gua, ) para facilitar la interoperabilidad.
5..24 V D.C.
Circuito de PMC : vase ms arriba ( en 2W-Circuitos MODBUS Definicin ) la nota acerca de este circuito
opcional.
3.3.3.1
El 4W- sistema de cableado debe cruzar los dos pares de el bus entre ITr y el IDv del maestro :
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
26/44
04 Enero 2016
Modbus-IDA.ORG
Esta travesa puede ser implementado por los cables cruzados, pero la conexin de tales cables cruzados en un
sistema de 2 hilos pueden causar daos. Para conectar un dispositivo maestro 4W ( que tienen un conector
MODBUS) una solucin mejor es usar un grifo que incluye la funcin de cruce.
3.3.3.2 Compatibilidad entre 4-Wire y cableado de 2 hilos
A fin de conectar dispositivos que implementan una interfaz fsica de 2 cables a una ya existente de 4-Wire
system, el sistema de cableado de 4 hilos pueden ser modificados como se describe a continuacin:
TxD0 seal estar conectado con la seal RxD0, convirtindolos a la seal D0
TxD1 seal estar conectado con la seal RxD1, convirtindolos a la D1 de la seal.
Pull-up y pull-down, terminaciones de lnea resistencias ser reordenados a adaptar correctamente la D0, D1 de seales.
La cifra que se recoge a continuacin presenta un ejemplo donde los esclavos 2 y 3 que utilizan una interfaz de
2 hilos pueden funcionar con el maestro y el esclavo 1 que utilizan una interfaz de 4 hilos.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
27/44
04 Enero 2016
Modbus-IDA.ORG
A fin de conectar dispositivos que implementan una interfaz fsica de 4 hilos a una ya existente sistema de 2
hilos, la interfaz de 4 cables de la nueva venida dispositivos pueden disponerse como se describe a
continuacin:
En cada uno de los 4 cables de interfaz de dispositivo :
TxD0 seal estar conectado con la seal RxD0 y luego conectado a la seal D0 del tronco ;
TxD1 seal estar conectado con la seal RxD1 y luego conectado a la seal D1 del tronco.
La cifra que se recoge a continuacin presenta un ejemplo donde los esclavos 2 y 3 que utilizan una interfaz de
4 hilos pueden funcionar con el maestro y el esclavo 1 que utilizan una interfaz de 2 hilos.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
28/44
04 Enero 2016
Modbus-IDA.ORG
Figura 23: Conexin de dispositivos con interfaz de 4 cables para un sistema de cableado de 2 hilos
3.3.4
Algunos dispositivos pueden implementar una interfaz RS232 entre DCE y DTE.
Notas :
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
29/44
04 Enero 2016
Modbus-IDA.ORG
"X" marcadas seales son necesarias slo si una opcin Modbus RS232 est implementado.
seales estn en conformidad con la EIA/TIA-232.
Cada TXD debe conectarse con el otro dispositivo de RXD ;
RTS puede estar conectado con CTS de otro dispositivo
DTR se puede cablear con DSR del otro dispositivo
interfaces elctricos opcionales puede ser agregado, por ejemplo :
Fuente de
Circuito
de
alimentacin:
PMC :
3.3.5
5..24 V D.C.
Vase ms arriba ( en 2W-Circuitos MODBUS Definicin )
la nota acerca de este circuito opcional.
Esta opcional MODBUS en lnea serie sistema slo debe utilizarse para la corta longitud ( normalmente menos
de 20m ) punto a punto inter- conexin.
Entonces, el est ndar EIA/TIA-232 debe ser respetada :
circuitos , definicin
capacitancia mxima del cable a tierra ( 2500 pF, luego de 25 m para un 100 pF/m de cable ).
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
30/44
04 Enero 2016
En
este
caso
estos
dispositivos
MODBUS
debe
Modbus-IDA.ORG
documentarse
para
decir
cuntos
de esos dispositivos son autorizados sin repetidor. El uso de un repetidor entre dos carga pesada
Modbus RS485 tambin es posible.
3.4.2 Topologa
Un Modbus RS485 configuracin sin repetidor tiene un cable troncal, a lo largo
qu dispositivos estn conectados directamente (encadenamiento) o por derivacin corta cables.
de
El cable troncal, tambin denominado "Bus", puede ser larga (vase ms adelante).
Sus
dos
extremos
debe
estar
conectado
en
lnea
en
las
terminaciones.
Cada terminacin de lnea debe estar conectado entre los dos conductores de la lnea equilibrada:
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
31/44
04 Enero 2016
Modbus-IDA.ORG
D0 y D1. Terminacin de lnea puede ser un valor de 150 ohmios ( 0,5 W ) resistencia.
Un capacitor en serie (1 nF, 10 V ) con un mnimo de 120 ohmios ( 0,25 W ) Resistencia es una mejor opcin
cuando una polarizacin de la pareja debe ser aplicado (vase aqu despus).
En un sistema de 4W, cada par deben estar terminados en cada extremo del bus. En interconexiones de
RS232, sin terminacin debe ser cableada.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
32/44
04 Enero 2016
Modbus-IDA.ORG
El valor de esas resistencias deben ser entre 450 ohmios y 650 Ohmios. Valor de
resistencias de 650 ohmios puede permitir un mayor nmero de dispositivos en el bus de
lnea serie.
En este caso, una polarizacin de la pareja debe ser implementado en una ubicacin nica para todo el
Bus de serie. Generalmente este punto es elegir el dispositivo maestro o en su grifo.
Otros dispositivos no debe aplicar cualquier tipo de polarizacin.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
33/44
04 Enero 2016
Modbus-IDA.ORG
3.5.2
IDv
ITr
Opcional
El
circuit
PMC
o
El
circuit
-o
Requerido
D1
D1
Nivel de
exigencia
D9-shell
3
5
Requerido
D0
D0
VP
--
Recomendad
o
Requerido
Common Common
EIA/TIADescripcin de IDv
485 Nomb
re
Control de modo de puerto
-B/B'
Un/
a'
-C/C'
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
34/44
04 Enero 2016
Modbus-IDA.ORG
IDv
Seal
ITr
Seal
EIA/TIA485 Nombre
Descripcin de IDv
Requerido
RXD0
RXD0
Una'
Requerido
RXD1
RXD1
B'
Opcional
PMC
--
--
Requerido
TXD1
TXD1
Requerido
TXD0
TXD0
Un
Recomendado VP
--
--
Positivo de 5...24 V DC de
alimentacin
8
1
Requerido
Common Common C/C'
Seal y fuente de alimentacin
comunes
Nota : Cuando ambos 2 y 4 configuraciones de cable estn implementadas
en el mismo puerto, el 4W
anotaciones deben ser utilizados.
3.5.3
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
35/44
04 Enero 2016
Modbus-IDA.ORG
Si un conector RJ45 o un 9-pin conector D-shell se utiliza para un dispositivo MODBUS RS232, las
conexiones en adelante deben ser respetados por cada circuito implementado.
DCE
Subray las patillas de salida
El circuito
ser de
En pin En puede
pin Nivel
RS232
RJ45 D9-shell exigencia
Nombre Descripcin
Fuente
1
Requerido
RXD
Los datos
transmitidos
Datos recibidos
Opcional
CTS
Borrar Enviar
Opcional
RTS
6
8
8
5
Requerido
TXD
Requerido
Solicitud de env
o
Common Comn de la
seal
DTE
Subray las patillas de salida
ser Pin en D9Nivel de puede
En pin
exigencia
RJ45 shell
3
DTE
Requerido
DCE
Requerido
DCE
Opcional
DTE
Opcional
--
Requerido
7
5
Nota importante : algunos pines de DCE son cruzados con DTE Conexionado con el mismo nombre.
Directamente un cable pin a pin ( sin cruzar ) debe ser utilizado entre un DTE ( un PC por ejemplo ) y un DCE
(un PLC, por ejemplo).
3.6 Cables
Un cable de lnea en serie MODBUS deben estar blindados. En un extremo de cada cable de su
escudo protector debe estar conectado a tierra. Si se utiliza un
conector en este extremo, el shell del conector est conectado al blindaje del cable.
Un Modbus RS485 debe utilizar un par de equilibrado (D0-D1) y un tercer cable (el Comn). Adems de
que un segundo par de equilibrado debe ser utilizado en un sistema de 4W-MODBUS (RXD0-RXD1).
Si un connectorized 4 pares se utiliza un cable de categora 5, recuerde al usuario en las guas de usuario :
"La conexin de un cable cruzado en un 2-wire sistema MODBUS puede ocasionar
daos".
Para minimizar los errores de cableado, se recomienda un cdigo de colores para los hilos de los cables
Modbus RS485 :
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
36/44
04 Enero 2016
Modbus-IDA.ORG
LED
Comunicacin
Error
Estado del
diispositivo
4
Rojo
Verde
Instalacin y documentacin.
4.1 Instalacion
Proveedor del producto debera prestar atencin para dar al usuario de un sistema o dispositivos MODBUS
toda la informacin til que les impiden cualquier error en el cableado o en la mala utilizacin de accesorios
de cableado :
- Algunos otros buses de campo CANopen, por ejemplo, utilice los mismos tipos de conector ( D-shell,
RJ45) .
Se realizan estudios sobre Ethernet, con fuente de alimentacin en el mismo cable de pares
equilibrados.
-
Algunos productos utilizan circuitos de E/S para los mismos tipos de conector ( D-shell, RJ45).
Sobre estos conectores, en su mayor parte, sin posicionador est disponible (polarizando
la muesca o otra implementacin) .
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
37/44
04 Enero 2016
Modbus-IDA.ORG
4.2.1
" Polarizacin" de la lnea (por mencionar una posible necesidad o una aplicacin) ;
Interfaz opcional(s) ;
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
38/44
04 Enero 2016
Modbus-IDA.ORG
clases de implementacin
Cada dispositivo MODBUS Serial Line debe respetar todos los requisitos obligatorios de
una misma clase de implementacin. Los siguientes parmetros se utilizan para clasificar
los dispositivos de lnea Modbus Serial :
Direccionamiento
La Radiodifusin
Modo de Transmisin
Velocidad en baudios
Formato de caracteres
Parmetro de interfaz elctrica
REGULAR
Broadcast
Esclavo :
Maestro :
Mismo como bsico
Direccin configurable Para poder abordar un escla
desde 1 hasta 247
vo de la direccin
De 1 a 247
S
S
Baud Rate
Paridad
Incluso
Modelo
RTU
Interfaz elctrica
2W RS485 o RS232-Cableado
Valor
predeterminado
-
RS485 -Cableado
2W
-
Apndice
Descripcin general
MODBUS Serial Line define una lista de contadores de diagnstico para permitir el rendimiento y la gestin
de los errores.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
39/44
04 Enero 2016
Modbus-IDA.ORG
Estos contadores son accesibles mediante la aplicacin del protocolo MODBUS y su funcin de
diagnstico (cdigo de funcin 08).
Cada contador se puede obtener por una sub-funcin cdigo enlazado al nmero de contador. Todos los
contadores se pueden borrarse con la sub-funcin cdigo 0x0A. El formato de la funcin de
diagnstico
se
describe
en
la
especificacin
del
protocolo
MODBUS
aplicacin. Aqu est la lista de diagnsticos y cdigos de sub-funcin asociado apoyados por un dispositivo
de lnea serie.
SubContadorr Nombre de contadores
Cdigo de Nmero
funcin
Comentarios
(Para el diagrama de abajo)
Hex
0x0B
Dec
1
0x0C
0x0D
Volver esclavo de recuento Cantidad de MODBUS excepcin error detectado por el dispositivo remoto desde
de errores de excepcin
el ltimo reinicio, la operacin clear counters, o power-up. Esto comprende
tambin el error detectado en difundir mensajes incluso si un mensaje de
excepcin no se devuelve en este caso.
Errores de excepcin se describen y enumeran en "Aplicacin MODBUS
Especificacin del protocolo de documento".
0xOE
Volver esclavo del recuento Cantidad de mensajes dirigidos al dispositivo remoto, incluyendo mensajes de
de mensajes
broadcast, que el dispositivo remoto ha procesado desde el ltimo reinicio,
la operacin clear counters, o power-up.
0x0F
Volver esclavo recuento sin La cantidad de mensajes recibidos por el dispositivo remoto para que no devolvi
respuesta
ninguna respuesta (ni una respuesta normal ni una excepcin de la respuesta),
desde el ltimo reinicio, la operacin clear counters, o power-up. Entonces, este
contador indica el nmero de mensajes de difusin que ha recibido.
0x10
Volver esclavo recuento NAK Cantidad de mensajes dirigidos al dispositivo remoto para que devolvi un acuse
de recibo negativo (NAK) Respuesta de excepcin, desde el ltimo reinicio, la
operacin clear counters, o power-up. Respuestas de excepcin se describen y
enumeran en "Aplicacin Especificacin del protocolo MODBUS" documento.
0x11
Volver esclavo
ocupado
0x12
Bus de retorno rebasamiento Cantidad de mensajes dirigidos al dispositivo remoto que no poda manejar
recuento de caracteres
debido a una condicin de desbordamiento de caracteres, desde el ltimo
reinicio, la operacin clear counters, o power-up. Un personaje rebasamiento
es causada por caracteres de datos que llegan al puerto ms rpido de lo que
pueden ser almacenados, o por la prdida de un personaje debido a una avera
de hardware.
6.1.2
Bus de retorno el recuento La cantidad de mensajes que el dispositivo remoto ha detectado en el sistema de
de mensajes
comunicaciones desde el ltimo reinicio, la operacin clear counters, o power-up.
Mensajes con error de CRC no son tomadas en cuenta.
Error de comunicacin de La cantidad de errores de CRC encontradas por el dispositivo remoto desde el
bus de retorno
ltimo reinicio, la operacin clear counters, o power-up. En caso de un error
Contar
detectado en el nivel de personaje, (overrun, un error de paridad), o en caso de
un mensaje de longitud < 3 bytes, el dispositivo receptor no es capaz de calcular
el CRC. En tales casos, este contador tambin se incrementa.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
40/44
04 Enero 2016
Modbus-IDA.ORG
Los siguientes diagramas describen cuando cada uno de los contadores anteriores debe ser incrementado.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
41/44
04 Enero 2016
Modbus-IDA.ORG
6.2.1
Modbus-IDA.ORG
Generacin de LRC
El control de redundancia longitudinal (LRC) campo es un byte, que contienen un valor binario de 8 bits. El
LRC valor es calculado por el dispositivo transmisor, que anexa el LRC al mensaje. El dispositivo que recibe
recalcula un LRC durante la recepcin del mensaje, y compara el valor calculado al valor real que recibi en el
campo de la CRL. Si los dos valores no son iguales, se produce un error.
La LRC se calcula sumando los sucesivos bytes de 8 bits en el mensaje, descartando los lleva, y luego dos es
complementar el resultado. La LRC es un campo de 8 bits, por lo tanto cada nueva adicin de un personaje
que podra resultar en un valor superior a
255 decimal simplemente 'vuelca' el valor del campo a travs de cero. Porque no existe un noveno
bit, el saldo se descartan automticamente.
Un procedimiento para generar una LRC es:
1.
Agregar todos los bytes del mensaje, excluyendo el punto 'Coln' y termina CRLF. Agregar en un
campo de 8 bits, de manera que transporta se descartar.
2.
Reste el valor de campo final FF hex (todos los 1's), para producir
los complemento.
3.
Agrega 1 para producir los
doses-complemento.
Colocar el LRC en el
mensaje.
Cuando los 8 bits de LRC (2 caracteres ASCII) es transmitida en el mensaje, el carcter de orden
superior ser transmitido en primer lugar, seguido por el carcter de orden bajo. Por ejemplo, si
el valor de LRC es 61 hex (0110 0001):
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
43/44
04 Enero 2016
Modbus-IDA.ORG
{
Unsigned char uchLRC = 0;
Mientras (usDataLen--)
uchLRC++;
retorno ((unsigned char)(-((char)uchLRC))) ;
}
6.2.2
Generacin de CRC
La comprobacin de redundancia cclica (CRC) en el campo es de dos bytes, que contiene un valor binario de
16 bits. El valor CRC se calcula mediante el dispositivo transmisor, que anexa el CRC para el mensaje. El
dispositivo que recibe recalcula un CRC durante la recepcin del mensaje, y compara el valor calculado al valor
real que recibi en el campo CRC. Si los dos valores no son iguales, se produce un error.
La CRC es iniciado por primera pretensin un registro de 16 bits para todos los 1's. A continuacin, se inicia un
proceso de aplicar sucesivas bytes de 8 bits del mensaje al contenido actual del registro. Slo los ocho bits de
datos en cada uno de los caracteres se utiliza para generar el CRC. Los bits de arranque y parada y el bit de
paridad, no se aplican a la Convencin sobre los Derechos del Nio.
Durante la generacin de la CRC, cada carcter de 8 bits es ORed exclusivo con el contenido del registro. A
continuacin, el resultado se desplaza en la direccin de los bits menos significativos (LSB), con un relleno
de ceros en el bit ms significativo (MSB) posicin. La LSB se extrae y se examina. Si el LSB es un 1, entonces
el registro es exclusivo, con un valor preestablecido ORed valor fijo. Si el LSB era un 0, no exclusivos, o se
lleva a cabo.
Este proceso se repite hasta que se han realizado ocho turnos. Tras el ltimo cambio (octavo), el siguiente
carcter de 8 bits es exclusivo ORed con el registro del valor actual, y el proceso se repite para otros ocho
turnos como se ha descrito anteriormente. El contenido final del registro, despus de que todos los caracteres
de los mensajes que se han aplicado, es el valor de CRC.
Un procedimiento para generar un CRC es:
1. Cargar un registro de 16 bits con FFFF hex (todos los 1's). Llamar a este registro de la CRC.
2. Exclusivo o el primer byte de 8 bits del mensaje con el byte de orden bajo de la CRC de 16 bits
registrarse, poniendo el resultado en el Registro de CRC.
3. Desplazar el CRC registrar un poco a la derecha (hacia el LSB), cero-llenado de la MSB. Extraer y
examinar el LSB.
4. (Si el LSB era 0): Repita el paso 3 (otro turno).
(Si el LSB era 1): Exclusivo o el CRC registrarse con el polinomio valor 0xA001 (1010 0000 0000 0001).
5. Repita los pasos 3 y 4 hasta 8 cambios han sido realizados. Cuando esto est hecho, completar
un byte de 8 bits se hayan procesado.
6. Repita los pasos 2 a 5 para el siguiente byte de 8 bits del mensaje. Contine haciendo esto hasta
que todos los bytes que se han procesado.
7. El contenido final de la CRC es registrar el valor de CRC.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
44/44
04 Enero 2016
Modbus-IDA.ORG
8. Cuando el CRC se coloca en el mensaje, los bytes superiores e inferiores deben cambiarse como se
describe a continuacin.
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
45/44
04 Enero 2016
Modbus-IDA.ORG
XOR = exclusivo o
N = nmero de bits de informacin
Poli = polinomio de clculo del CRC 16 = 1010 0000
0000 0001 (generando polinomio = 1 + X2 + X + 15
x 16)
En el CRC 16, el 1er byte transmitido es el menos significativo.
Ejemplo de clculo de CRC (Marcos 02 07)
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
46/44
04 Enero 2016
Modbus-IDA.ORG
Ejemplo
Un ejemplo de una funcin de lenguaje C realizar CRC generacin se muestran en las pginas siguientes.
Todos los posibles valores de CRC estn precargadas en dos matrices, que son simplemente indexada
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
47/44
04 Enero 2016
Modbus-IDA.ORG
como la funcin incrementos mediante el mensaje buffer. Una matriz contiene todos los 256 posibles
valores de CRC para el byte alto del campo CRC de 16 bits, y la otra matriz contiene todos los valores para
el byte bajo.
La indizacin de la CRC en esta forma proporciona una ejecucin ms rpida que podra alcanzarse por
calcular un nuevo valor de CRC con cada nuevo personaje desde el bfer de mensaje.
Nota: Esta funcin realiza el intercambio de alta/baja bytes crc internamente. Los bytes ya estn
cambiados en el valor de CRC que es devuelto por la funcin.
Por lo tanto el valor de CRC devuelto de la funcin puede ser colocado directamente
en el Mensaje para la transmisin. La funcin tiene dos argumentos:
Unsigned char *puchMsg; un puntero a la memoria intermedia de mensajes que contengan datos
binarios que se va a utilizar para generar el CRC
Unsigned short usDataLen; La cantidad de bytes del bfer de mensaje.
*
*/
*/
/
*
*/
/*
/
0x00
0x40
0x80
0xC0,
0x00
0x40
0x80
0xC0,
0x00
0x40
0x80
0xC0,
0x00
0x40
0x80
0xC0,
0x00
0x40
0xC1,
0x01
0x41
0x80
0xC1,
0x01
0x41
0x80
0xC1,
0x00
0x41
0x80
0xC1,
0x01
0x41
0x80
0xC1,
0x81
0xC0,
0x01
0x41
0x81
0xC0,
0x00
0x41
0x81
0xC1,
0x01
0x41
0x81
0xC0,
0x00
0x41
0x81
0x40
0x80
0xC0,
0x00
0x40
0x80
0xC1,
0x00
0x40
0x81
0xC0,
0x01
0x40
0x80
0xC1,
0x00
0x40
0x01
0x41
0x80
0xC1,
0x01
0x41
0x81
0xC1,
0x01
0x40
0x80
0xC0,
0x00
0x41
0x81
0xC1,
0x01
0xC0,
0x00
0x41
0x81
0xC0,
0x00
0x40
0x81
0xC0,
0x01
0x41
0x80
0xC1,
0x01
0x40
0x81
0xC0,
0x80
0xC1,
0x00
0x40
0x80
0xC1,
0x00
0x40
0x80
0xC0,
0x00
0x41
0x81
0xC0,
0x00
0x40
0x80
0x41
0x81
0xC1,
0x01
0x41
0x81
0xC1,
0x01
0x41
0x80
0xC1,
0x00
0x40
0x80
0xC1,
0x00
0x41
0x01
0x40
0x81
0xC0,
0x00
0x40
0x81
0xC0,
0x01
0x41
0x81
0xC1,
0x01
0x41
0x81
0xC1,
0x01
0xC0,
0x00
0x40
0x80
0xC1,
0x01
0x40
0x80
0xC0,
0x00
0x40
0x81
0xC0,
0x00
0x40
0x81
0xC0,
Modbus-IDA.ORG
0x80
0xC1,
0x00
0x41
0x81
0xC0,
0x01
0x41
0x80
0xC1,
0x00
0x40
0x80
0xC1,
0x01
0x40
0x80
0x41
0x81
0xC1,
0x01
0x40
0x80
0xC0,
0x00
0x41
0x81
0xC1,
0x01
0x41
0x81
0xC0,
0x01
0x41
0x00
0x40
0x81
0xC0,
0x00
0x41
0x80
0xC1,
0x00
0x40
0x81
0xC0,
0x00
0x40
0x80
0xC0,
0x00
0xC1,
0x01
0x40
0x80
0xC1,
0x01
0x41
0x81
0xC1,
0x01
0x40
0x80
0xC1,
0x01
0x41
0x80
0xC1,
0x81
0xC0,
0x01
0x41
0x81
0xC0,
0x01
0x40
0x81
0xC0,
0x01
0x41
0x81
0xC0,
0x01
0x41
0x81
};
_________________________________________________________________________________________________
Modbus.org
http://www.modbus.org/
49/44
04 Enero 2016