You are on page 1of 60

Modicon

Protocolo Modbus
Guia de referencia
Traduccin de Pl-MBUS-300 Rev. J

June 1996
MODICON, Inc., Industrial Automation Systems
One High Street
North Andover, Massachusetts 01845
Publicaciones Relacionadas Contenido
Para mas detalles, acerca de aplicaciones Modicon en sistemas sobre el Controlador Captulo 1 Protocolo Modbus 5
Programable 984, referirse a las siguientes publicaciones : Introduccin al Protocolo Modbus 6
Transacciones en Redes Modbus 7
GM-0984- SYS 984 Programmable Controller Systems Manual. Transacciones en Otras Clases de Redes 7
Modicon, Inc.
La Consulta - Ciclo de Respuesta 7
Los Dos Modos de Transmisin en serie 8
Para mas detalles, acerca de aplicaciones e instalacin de la red Modbus Plus y Modo ASCII 8
unidades relacionadas de comunicacin, referirse a las siguientes publicaciones : Modo de RTU 8
Formato del mensaje Modbus 9
GM-MBPL-001 Modbus Plus Network Planning and Installation Guide. Formato ASCII 9
Modicon, Inc.
Formato RTU 9
GM-BM85 001 Modbus Plus Bridge/Multiplexer User's Guide.
Manejo del Campo de Direccin 10
Modicon, Inc.
Manejo del campo de funcin 10
Contenidos del Campo de Informacin 10
Para mas detalles, acerca de la Biblioteca de Software de comunicaciones de
Contenidos del Campo de Comprobacin de Error 11
Modcom III para aplicaciones con ordenadores host, referirse a las siguientes
Como son transmitidos los caracteres en serie 11
publicaciones :
Mtodos de comprobacin de error 12
Comprobacin de Paridad 12
GM-MC3A-001 Modcom lil Communications Software Library User's Guide.
Modicon, Inc. Comprobacin LRC 12
Comprobacin CRC 13
Contenido (continuacin)
Captulo 2 Funciones de Informacin y Control 14 Captulo 3 Subfunciones de Diagnostico 41
Formatos de Funciones Modbus 15 Funcin 08 - Diagnsticos 42
Expresin de valores numricos 15 Cdigos de Diagnstico permitidos por los Controladores 43
Datos de Direccin en mensajes Modbus 15 00 Devuelve Informacin de Consulta 44
Contenido de los campos en mensajes Modbus 15 01 Reinicio de las Opciones de Comunicacin 44
Contenido de los Campos en Modbus Plus 16 02 Devuelve Registro de Diagnstico 44
Cdigos de Funcin permitidos por los Controladores 16 03 Cambio Delimitador de Entrada ASCII 44
01 Leer Estados de Bobinas 17 04 Fuerza el Modo Escucha nicamente 44
02 Leer estado de Entradas 18 10 (OA Hex) Limpia Contadores y Registros de Diagnstico 45
03 Leer Registros Internos 19 11 (OB Hex) Devuelve Contador de Mensajes de Bus 45
04 Leer Registros de Entrada 20 12 (OC Hex) Devuelve Contador de Errores de Comunicacin de Bus 45
05 Forzar Una Bobina 21 13 (OD Hex) Devuelve Contador de Errores de Excepcin de Bus 45
06 Forzar Un Registro 22 14 (OE Hex) Devuelve Contador de Mensajes del Esclavo 45
07 Leer Estados de Excepcin 23 15 (OF Hex) Devuelve Contador de No Responde Esclavo 45
11 (OB Hex) Buscar Evento Comm Ctr 24 16 (10 Hex) Devuelve Contador NAK del Esclavo 45
12(0C Hex) Buscar Evento Comm Log 25 17 (11 Hex) Devuelve Contador de Busy del Esclavo 45
15(OF Hex) Forzar Mltiples Bobinas 27 18 (12 Hex) Devuelve Contador de carcter Overrun del Bus 45
16(10 Hex) Forzar Mltiples Registros 28 19 (13 Hex) Devuelve Contador de IOP Overrun (884) 45
17 (11 Hex) Informa el ID del esclavo 29 20 (14 Hex) Limpia Contador Overrun y Flag (884) 45
20(14 Hex) Lee Encabezamiento General 34 21 (15 Hex) Obtiene / Limpia Estadstica Modbus Plus 45

21(15 Hex) Escribe a Encabezamiento General 36 Estadsticas de Red Modbus Plus 45

22(16 Hex)Mscara de Escritura Registros 4X 38 Apndice A : Respuestas de Excepcin 47


23 (17 Hex) Leer / Escribir Registros 4X 39 Respuestas de Excepcin 48
24(18 Hex) Lee Cola FIFO 40 Cdigos de Excepcin 49

Apndice B : Notas de Aplicacin 50


Parmetros de Consulta / respuesta Mximos 51
Tiempo Estimado de Respuesta Serie 54
Notas para 584 y 984A/B/X 55

Apndice C : Generacin de LRC/CRC 56


Generacin LRC 57
Generacin CRC 58

PI-MBUS-300 Modbus Protocol - Contenido Pag: 3 -


Figuras
Figura 1 Overview of Modbus Protocol Application 6 Figura 28 Force Multiple Colis Query 27
Figura 2 Master-Slave Query-Response Cicle 7 Figura 29 Force Multiple Colis Response 27
Figura 3 ASCII Message Frame 9 Figura 30 Preset Multiple Registers Query 28
Figura 4 RTU Message Frame 9 Figura 31 Preset Multiple Registers Rsponse 28
Figura 5 Bit Order (ASCII) 11 Figura 32 Report Slave ID Query 29
Figura 6 Bit Order (RTU) 11 Figura 33 Report Slave ID Query 29
Figura 7 Master Query with ASCII/RTU Framing 15 Figura 34 Read General Reference Query 35
Figura 8 Slave Response with ASCII/RTU Framing 15 Figura 35 Read General Reference Response 35
Figura 9 Field Contents on Modbus Plus 16 Figura 36 Write General Reference - Query 37
Figura 10 Read Coil Status Query 17 Figura 37 Write General Reference Response 37
Figura 11 Read Coil Status Response 17 Figura 38 Mask Write 4X Register Query 38
Figure 12 Read Inputs Status Query 18 Figura 39 Mask Write 4X Register Response 38
Figure 13 Read Inputs Status Response 18 Figura 40 Read/Write 4X Registers Query 39
Figura 14 Read Holding Registers Query 19 Figura 41 Read/Write 4X Registers Response 39
Figura 15 Read Holding Registers Response 19 Figura 42 Read FIFO Queue Query 40
Figura 16 Read Inputs Registers Query 20 Figura 43 Read FIFO Queue Response 40
Figura 17 Read Inputs registers Response 20 Figura 44 Diagnostics Query 42
Figura 18 Force Single Coil Query 21 Figura 45 Diagnostics Response 42
Figura 19 Force Single Coil Response 21 Figura 46 Master Query and Slave Exception Response 48
Figura 20 Preset Single Register Query 22 Figura 47 LRC Character Sequence 57
Figura 21 Preset Single Register Response 22 Figura 48 CRC Byte Sequence 58
Figura 22 Read Exception Status Query 23
Figura 23 Read Exception Status - Response 23
Figura 24 Fetch Communications Event Counter Query 24
Figura 25 Fetch Communications Event Counter Response 24
Figura 26 Fetch Communications Event Log Query 25
Figura 27 Fetch Communications Event Log Response 25

PI-MBUS-300 Modbus Protocol - Contenido Pag: 4 -


Introduccin al Protocolo Modbus
Los controladores programables Modicon pueden comunicarse entre ellos y con
otros dispositivos sobre una variedad de redes. Entre las posibles se incluyen las redes
industriales Modicon-Modbus y Modbus Plus, y redes estndar como MAP y Ethernet. Las
redes acceden por los puertos incorporados en los controladores o por adaptadores de red,
mdulos opcionales, y otras interfaces disponibles de Modicon. Para fabricantes de equipos
originales, los programas de colaboradores como Modicon-ModConnect estn disponibles
para integrar estrechamente redes Modbus Plus en diseos de producto propietario.
El lenguaje comn utilizado por todos controladores Modicon es el Protocolo
Modbus. Este protocolo define una estructura de mensaje que los controladores reconocern
Captulo 1 y utilizarn, independientemente del tipo de red sobre la que se comuniquen. Describe el
proceso que usan los controladores para solicitar acceso a otros dispositivos, como responden
a solicitudes de otros dispositivos y como se detectan e informan los errores. Establece un
Protocolo Modbus formato comn para la disposicin y contenido de los campos de mensaje.
El protocolo de Modbus provee el estndar interno que usan los controladores de
Modicon para pasarse mensajes. Durante las comunicaciones en una red Modbus, el
protocolo determina como cada controlador conocer su direccin de dispositivo, reconocer
un mensaje dirigido a l, determina la clase de accin a tomar, y extrae los datos u otra
informacin contenida en el mensaje. Si se requiere una respuesta, el controlador construir
el mensaje de respuesta y lo enviar utilizando el Protocolo Modbus.
En otras redes, los mensajes que contienen Protocolo Modbus estn embebidos en la
estructura o paquete que se est utilizando en la red. Por ejemplo, los controladores Modicon
Introduccin al Protocolo Modbus
para Modbus Plus o MAP, con manejadores y bibliotecas de software de aplicacin
Los Dos Modos de Transmisin Serie asociadas, proveen conversin entre el protocolo de mensaje de Modbus embebido y los
Formato de Mensaje Modbus protocolos especficos usados en las redes para comunicarse entre sus nodos.
Mtodos de Control de Error Esta conversin tambin resuelve las direcciones de nodo, encauza trayectorias, y
los mtodos de comprobacin de error especficos a cada clase de red. Por ejemplo, la
direccin de dispositivo Modbus contenida en el protocolo de Modbus ser convertida a
direccin de nodo previamente a la transmisin del mensaje. Los campos de comprobacin
de error tambin se aplican a los paquetes de mensaje, consistentes con cada protocolo de
red. En el punto final de entrega (por ejemplo, un controlador), los contenidos del mensaje
embebido, escrito utilizando protocolo Modbus, define la accin a tomar.
La figura 1 muestra como podran estar
interconectados los dispositivos en una jerarqua
de red en la que emplea diferentes tcnicas de
comunicacin. En transaccin de mensajes el
protocolo de modbus embebido en cada
estructura de paquete de red provee lenguaje
comn por medio del cual los dispositivos
pueden intercambiar informacin.

HOST
PROCESSOR

MAP

984-685
(TO MB PLUS) MODBUS P230
AND PROGRAMMER
S908 (TO MAP)

MODBUS PLUS

AT/MC-984 984A/B
AND AND BM85
HOST/MMI S985

MODBUS MODBUS

UP TO FOUR
Figura 1 Esquema de Aplicacin con P230 MODBUSDEVICES
Protocolo Modbus PROGRAMMER OR NETWORKS

PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 6 -


Query message from Master

Introduccin al Protocolo Modbus utilizando adaptadores de puerto o red


(Continuacin) incorporados, y con MAP, utilizando adaptadores
de red.
Transacciones en Redes Device Address
En estas redes, los controladores se
Modbus comunican utilizando la tcnica peer-to-peer,
Los puertos estndar Modbus en Response messagecontrolador
en la que cualquier from Slavepuede iniciar la
Function
transaccin con los otros controladores. Code
As un
controladores Modicon utilizan una interface
serie compatible con RS-232C que define controlador puede operar como esclavo o como
conectores, cableado, niveles de seal, velocidad maestro en transacciones diferentes.
-- Las --
de transmisin en baudios y control de paridad. mltiples direcciones internas estn disponibles
Los controladores pueden estar conectados normalmente para permitir el procesamiento
directamente o a travs de mdem.
-- maestros
concurrente de transacciones entre Eight-Bity --
esclavos.
Los controladores se comunican
utilizando tcnicas maestro - esclavo, en las que -- Data Bits --
solamente un dispositivo (el maestro) puede
iniciar las transacciones (llamadas consultas).
Los otros dispositivos (esclavos) responden
-- --
suministrando la informacin solicitada por el
maestro, o tomando la accin solicitada en la Error Check
consulta. Los dispositivos maestros tpicos
incluyen procesadores tipo host y paneles de
programacin. Los esclavos tpicos son los
controladores programables.
El maestro puede dirigirse a esclavos
individualmente, o pueden lanzar un mensaje
general para todos los esclavos. Los esclavos
devuelven un mensaje (llamado respuesta) a
las consultas que le son dirigidas
individualmente. No se devuelven respuestas a
los mensajes de consulta general lanzados por el
maestro.
El protocolo de Modbus establece el
formato para la consulta del maestro mandando
hacia el dispositivo (o emitiendo) la Direccin,
un Cdigo de Operacin que define la accin
solicitada, alguna Informacin Adicional, y un
campo de comprobacin de error. El mensaje
respuesta del esclavo tambin se construye
utilizando formato de protocolo Modbus.
Contiene campos que Confirman la Accin
tomada, y o la Informacin Pedida, y el campo
de Comprobacin de error. Si ocurre un error en
la recepcin del mensaje, o si el esclavo es
incapaz de realizar la accin solicitada, el
esclavo devuelve un mensaje de error como
respuesta.
Transacciones en Otras
Clases de Redes
Adems de las capacidades estndar
Modbus, algunos modelos de controlador
Modicon pueden comunicar con Modbus Plus
PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 7 -
En el nivel de mensaje, el protocolo Las dos modos de Transmisin
Modbus sigue aplicando el principio maestro- Serie
esclavo an cuando el mtodo de comunicacin
de red es peer-to-peer. Si un controlador Se pueden establecer comunicaciones
origina un mensaje, acta como un dispositivo en redes estndar Modbus utilizando cualquiera
master y espera una respuesta de un dispositivo de estos dos modos de transmisin: ASCII o
esclavo. Igualmente, cuando un controlador RTU. Los usuarios seleccionan el modo deseado,
recibe un mensaje construye una respuesta junto con los parmetros de comunicacin del
esclava que devuelve al controlador origen del puerto serie (velocidad de transmisin en
mensaje. baudios, modo de paridad, etc.), durante la
Ciclo de Consulta-Respuesta configuracin de cada controlador. El modo y los
parmetros del puerto serie tienen que ser los

mismos para todos dispositivos en una red


Modbus.
La seleccin de modo ASCII o RTU es
solamente para redes estndar Modbus. Define
los contenidos de los campos del mensaje serie

transmitido por la red. Determina como estar


Figura 2 Maestro-Esclavo: Ciclo empaquetada la informacin en los campos de
Consulta-Respuesta cdigo y mensaje.
La Consulta: El cdigo de operacin en En otras redes como MAP y Modbus
la consulta dice al dispositivo esclavo el tipo de Plus, los mensajes de Modbus estn embebidos
accin a realizar. Los bytes de informacin dentro de la trama y no estn relacionados con la
contienen toda la informacin adicional que el transmisin serie. Por ejemplo, una solicitud para
esclavo necesita para desempear la funcin. Por leer registros internos entre dos controladores en
ejemplo, el cdigo de operacin 03 solicita al Modbus Plus se establece sin considerar la
esclavo la lectura de registros internos y ste configuracin actual de los puertos serie
responde con su contenido. El campo de Modbus, del controlador.
informacin tiene que decirle al esclavo en que Modo ASCII
registro empieza la peticin y cuantos registros
se quieren leer. El campo de verificacin de error Cuando los controladores se configuran
provee un mtodo para que el esclavo garantice para comunicar en una red Modbus utilizando
la integridad del contenido del mensaje. modo ASCII (Cdigo Estndar Americano para
Intercambio de Informacin), cada byte, de 8
La Respuesta: Si el esclavo hace una
bits, de un mensaje se enva como dos caracteres
respuesta normal, el cdigo de operacin de la
ASCII. La ventaja principal de este modo es que
respuesta es un eco del cdigo de operacin en la
permite intervalos de tiempo de hasta un segundo
consulta. Los bytes de informacin contienen los
entre caracteres sin causar error.
datos recopilados por el esclavo, como valores o
estado de registros. Si se detecta un error el El formato de cada byte en modo ASCII
cdigo de operacin se modifica para indicar que es:
la respuesta es un mensaje de error y que los Sistema de Codificacin:
bytes de informacin contienen el cdigo que Hexadecimal, caracteres ASCII 0-9, A-F
describe el error. La verificacin del campo de Un
error permite que el maestro pueda confirmar carcter
que los contenidos de mensaje son vlidos hexadecimal
en cada

PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 8 -


carcter si
AS no
CII del se
mensaje. usa
Bits por Byte: 1 bit cont
de comienzo rol
de
7
pari
bits
dad
de
dato Campo de Control de Error
s, el Control de Redundancia
bit Longitudinal(LRC)
men
os
sign
ifica
tivo
se
env
a
pri
mer
o
1 bit
de
pari
dad
par/
imp
ar; o
ning
uno
si
no
hay
pari
dad
1 bit
de
fin
si se
usa
cont
rol
de
pari
dad;

2
bits
de
fin
PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 9 -
Modo RTU 1 bit
Cuando los controladores se configuran de
para comunicar en una red Modbus utilizando pari
modo RTU (Unidad de Terminal Remota), cada dad
byte, 8 bits, del mensaje contiene dos caracteres par/
hexadecimales de 4 bits. La ventaja principal de imp
este modo es que su mayor densidad de ar;
caracteres permite una mejor productividad de ning
informacin que el modo ASCII para la misma uno
velocidad. Cada mensaje se transmite si
conjuntamente sin interrupcin. no
se
El formato de cada byte en modo RTU
usa
es :
pari
Sistema de Codificacin :8 bits dad
binarios, hexadecimal, 0-9, A- F
1 bit
2 de fin si se
cara usa paridad ;
cter
es
2
hex
bits de fin si
ade
no hay
cim
paridad
ales
en Campo de Control de Error
cad Control de Redundancia Cclica ( CRC )
a
cam
po
de 8
bits
del
men
saje.
Bits por Byte: 1 bit
de inicio
8
bits
de
dato
s, el
bit
men
os
sign
ifica
tivo
se
env
a
pri
mer
o
PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 10 -
Formato del Mensaje Modbus Excepcin : Con los controladores 584 y 984
A/B/X, un mensaje ASCII puede terminar
En los dos modos de transmisin serie normalmente con el campo de LRC sin el ser
(RTU ASCII), un mensaje Modbus se manda necesarios los caracteres CR-LF. Debe
por el dispositivo de transmisin en un marco o transcurrir un intervalo de al menos un segundo.
formato que tiene unos puntos conocidos de Si esto ocurre, el controlador supondr que el
comienzo y terminacin. Estos permiten a los mensaje termin normalmente.
dispositivos de recepcin reconocer el comienzo
del mensaje, leer la Zona de Direccin y Formato RTU
determinar a que unidad va dirigido (a todos los En modo RTU, empiezan los mensajes
dispositivos, si el mensaje es general), y con un intervalo de silencio de al menos 3,5
determinar cuando est completo el mensaje. Se veces un carcter. Esto se realiza esperando un
pueden detectar mensajes parciales y generar tiempo mltiplo de la velocidad en baudios que
cdigos de error como resultado. se est utilizando en la red (visto como T1-T2-
En redes como MAP o Modbus Plus, el T3-T4 en la figura siguiente). Luego se transmite
protocolo de red manipula el formato de los el primer campo, Direccin del dispositivo.
mensajes con delimitadores de inicio y fin de Los caracteres permitidos para todos los
mensaje especficos de la red. Estos protocolos campo son 0-9, A-F hexadecimal. Los
tambin manipulan la entrega al dispositivo de dispositivos conectados vigilan el bus de red
destino, manejando el Campo Direccin de continuamente, incluso en los intervalos de
Modbus embebido en el mensaje, ya que es silencio. Cuando se recibe el primer campo (el
innecesario para la transmisin real. (El Campo de Direccin), cada unidad lo decodifica
controlador de origen o su adaptador de red para averiguar si es el dispositivo direccionado.
convierte la Direccin Modbus en una ruta y Despus del ltimo carcter transmitido
direccin de nodo de red) se intercala un intervalo de tiempo equivalente,
Formato ASCII al menos, a 3.5 veces el tiempo de un carcter
para marcar el fin del mensaje. Despus de este
En modo ASCII, los mensajes intervalo puede comenzar un nuevo mensaje.
comienzan con dos puntos (:) Carcter ( ASCII
hex), y terminan con par retorno de carro salto El formato de mensaje completo tiene
de lnea (CRLF) (ASCII 0D y 0A hex). que transmitirse conjuntamente. Si se produce un
intervalo de ms de 1.5 veces un carcter antes
Los caracteres permitidos en la de la terminacin del formato el dispositivo
transmisin para todos los dems campos son 0- receptor asume el mensaje como incompleto y
9, A-F hexadecimales. Las unidades conectadas supone que el byte n, siguiente, ser el Campo
vigilan el bus de red continuamente para detectar Direccin de un nuevo mensaje.
el carcter (:). Cuando se recibe, cada dispositivo
decodifica el siguiente campo (el Campo Igualmente, si mensaje un nuevo
Direccin) para averiguar si es el dispositivo comienza antes de 3.5 veces el tiempo de un
direccionado. carcter el segundo mensaje se considerar como
continuacin del anterior. Esto provocar un
Se permiten intervalos de hasta un error, ya que el valor del campo CRC final no
segundo entre caracteres dentro del mensaje. Si ser vlido por los dos mensajes combinados. A
se transcurre un tiempo mayor, el dispositivo continuacin se muestra un formato de mensaje
receptor supone que ha ocurrido un error. A tpico.
continuacin se muestra un formato de mensaje.

START ADDRESS FUNCTION DATA LRC CHECK


ADDRESS
END
FUNCTION DATA CRC CHECK END
1 CHAR 8 Bits
2 CHARS 8 Bits n*8 Bits 16 Bits T1-T2-T3-T4
: 2 CHARS 2 CHARS N CHARS 2 CHARS CRLS Figura 4 : RTU Message Frame
Figura 3 : ASCII Message Frame

PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 11 -


Formato del Mensaje Modbus (respuesta de excepcin). Para una respuesta
(Continuacin) normal, el esclavo simplemente copia el cdigo
de operacin original. Para una respuesta de
Como se usa el Campo de excepcin, el esclavo devuelve un cdigo
Direccin equivalente al cdigo de operacin original con
el bit ms significativo puesto a 1.
El campo direccin de un mensaje
contiene dos caracteres (ASCII) u ocho bits Por ejemplo, un mensaje de maestro a
(RTU). Las direcciones vlidas para dispositivos esclavo para leer un grupo de registros internos
esclavos estn en el rango de 0-247 decimal. Los tendra el siguiente cdigo de operacin:
dispositivos esclavos individuales tienen 0000 0011
asignadas direcciones en el rango de 1-247. El (Hexadecimal 03)
maestro se dirige a un esclavo poniendo su
direccin en el Campo Direccin del mensaje.
Cuando el esclavo enva su respuesta, coloca su
propia direccin en el Campo Direccin de la
respuesta para permitir al maestro reconocer al
esclavo que est respondiendo.
La direccin 0 se utiliza para Consulta
General, la cual todos los dispositivos esclavos
reconocen. Cuando el protocolo Modbus se
utilizada en redes de nivel ms alto, las
Consultas Generales pueden no estar permitidas
o pueden estar remplazadas por otros mtodos.
Por ejemplo, Modbus Plus utiliza una Base de
Datos Global compartida que se actualiza en
cada rotacin de testigo.
Cmo se usa el Campo de
Funcin
El campo Cdigo de Operacin del
formato de mensaje contiene dos caracteres
(ASCII) u ocho bits (RTU). Los cdigos vlidos
estn en el rango de 1-255 decimal. De estos
cdigos, algunos son aplicables a todos los
controladores Modicon, mientras que otros se
aplican solamente a ciertos modelos , y otros
estn reservados para una futura utilizacin. Los
cdigos actuales estn descritos en el Captulo 2.
Cuando se enva un mensaje desde un
maestro a un dispositivo esclavo el campo de
Cdigo de Operacin dice al esclavo qu la clase
de accin debe realizar. Por ejemplo leer estados
ON/OFF, leer un grupo de bobinas o leer
entradas discretas; leer los contenidos de un
grupo de registros; leer el estado del diagnstico
del esclavo; escribir a bobinas o a registros
designados; o permitir cargar, grabar, o verificar
el programa dentro del esclavo.
Cuando el esclavo responde al maestro,
utiliza el campo de cdigo de operacin para
indicar que es una respuesta normal (libre de
error) o que ha ocurrido algn tipo de error
PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 12 -
Si el dispositivo esclavo recibe la accin cdigo de excepcin que la aplicacin del
solicitada sin error, devuelve el mismo cdigo en maestro puede utilizar para determinar la
su respuesta. Si ocurre una excepcin, devuelve : siguiente accin a tomar.
10000011 El Campo de Datos puede no existir (de
(Hexadecimal 83) cero longitud) en ciertos tipos de mensaje. Por
Adems de esta modificacin del ejemplo, en una solicitud de un dispositivo
cdigo de funcin en una respuesta de excepcin, maestro a un esclavo para que este responda con
el esclavo pone un cdigo en el campo de su diario de eventos de comunicaciones (cdigo
informacin del mensaje de respuesta. Con ste de operacin OB hexadecimal), en el que el
el maestro reconoce que clase de error ha esclavo no requiere ninguna informacin
ocurrido, o la razn por la que se ha generado la adicional. Slo el cdigo de operacin especifica
excepcin. la accin
El programa de aplicacin de
dispositivo maestro tiene la responsabilidad de
gestionar las respuestas de excepcin. Los
procesos tpicos reintentan nuevamente el
mensaje, intentan mensajes de diagnstico del
esclavo, y notifican a los operadores.
Contenido del Campo de
Datos
El campo de informacin se construye
utilizando conjuntos de dos dgitos
hexadecimales, en el rango 00-FF hexadecimal.
Estos pueden estar formados por un par de
caracteres ASCII, o por un carcter de RTU, de
acuerdo con el modo de transmisin de la red.
El campo de informacin de mensajes
enviados desde un maestro a sus dispositivos
esclavos contienen informacin adicional que el
esclavo necesita para ejecutar la accin definida
en el Cdigo de Funcin. Estos pueden incluir
detalles como direcciones de registros o
discretas, la cantidad de registros a manejar, y el
contador de bytes reales de informacin en el
campo.
Por ejemplo, en la solicitud de un
maestro a un esclavo para leer un grupo de
registro internos (cdigo de operacin 03), el
Campo de Datos especifica el registro inicial y
cuantos registros se quieren leer. Si el maestro
escribe en un grupo de registros del eslavo
(cdigo de operacin 10 hexadecimal), el Campo
de Datos especifica el registro inicial, cuantos
registros se van a escribir, el contador de bytes
de informacin siguientes en el campo de
informacin, y los datos a escribir en los
registros.
Si no ocurre ningn error, el Campo de
Datos de la respuesta del esclavo a su maestro
contiene la informacin solicitada. Si ocurre
algn error , el Campo de Datos contiene un

PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 13 -


Formato del mensaje Modbus Como se Transmiten los
(Continuacin) Caracteres Serie
Cuando se transmiten mensajes en redes
Contenidos del Campo de
estndar Modbus serie, cada carcter o byte se
Comprobacin de Error enva con el siguiente orden (de izquierda a
En las redes estndar Modbus se derecha) :
utilizan dos clases de mtodo de comprobacin
de error. Los contenidos de campo de
Bit Menos Significativo (LSB) ....... Bit
comprobacin de error dependen del mtodo que
Mas Significativo (MSB)
se haya utilizado.
ASCII
En formato ASCII, la secuencia de bits
Cuando se utiliza formato ASCII, el es :
campo de comprobacin de error contiene dos
caracteres ASCII. Los caracteres de control de
error son el resultado de un clculo de With Parity Check
Redundancia Longitudinal (LRC) basado en el Start 1 2 3 4 5 6 7 Par Stop
contenido del mensaje, excluyendo el carcter de
inicio (: ) y los caracteres finales CRLF. Without Parity Check
Los caracteres de LRC se aaden al Start 1 2 3 4 5 6 7 Stop Stop
mensaje como ltimo campo seguidos de los
caracteres CRLF.
Figura 5 Orden de Bits (ASCII)
RTU
Cuando se utiliza formato RTU, el En formato RTU, la secuencia de bits es
campo de comprobacin de error contiene un :
valor de 16 bits formado por dos bytes de 8 bits.
El valor de control de error es el resultado de un
clculo de Control de Redundancia Cclica With Parity Check
basado en el contenido del mensaje. 1 2 3 4 5 6 7 8 Par Stop
Los caracteres de CRC se aaden al
mensaje como ultimo campo. Se aaden Without Parity Check
colocando el byte menos significativo del campo 1 2 3 4 5 6 7 8 Stop Stop
primero, seguido por el byte ms significativo. El
byte ms significativo del CRC es el ltimo byte
enviado en el mensaje. Figura 6 Orden de Bits (RTU)
Al final de este captulo se ofrece
informacin adicional acerca de la comprobacin
de error. Los pasos detallados para generar
campos de LRC y CRC se muestran en el
apndice C.

PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 14 -


Mtodos de Comprobacin de impar de bits a 1 en el carcter.
Error Por ejemplo, si estos ocho bits de
informacin estn contenidos en un formato de
En redes estndar Modbus serie se usan carcter RTU :
dos tipos de comprobacin de error. La 1100 0101
comprobacin de paridad (par o impar) se puede
aplicar a cada carcter opcionalmente. La
comprobacin de formato (LRC o CRC) se
aplica al mensaje completo. Tanto la
comprobacin de carcter como la comprobacin
de formato de mensaje se realiza en el
dispositivo maestro y se aplica al contenido del
mensaje antes de transmisin. El dispositivo
esclavo comprueba cada carcter y el formato de
mensaje completo durante la recepcin.
El maestro se configura para que espere
un intervalo de tiempo determinado (Time-out)
antes de abortar la transaccin. Este intervalo se
establece lo suficientemente largo para que
cualquier esclavo pueda responder normalmente.
Si el esclavo detecta un error de transmisin, no
hace caso a la transmisin. El esclavo no
responde al maestro. Por tanto se cumplir el
time-out y se activar el programa del maestro
de manipulacin de errores. Obsrvese que un
mensaje dirigido a un dispositivo esclavo
inexistente tambin provocar un timeout.
Otras redes como MAP o Modbus Plus
utilizan el control de formato en un nivel
superior al contenido del mensaje Modbus. En
estas redes, el control de formato de mensaje
(LRC o CRC) Modbus no se aplica. En caso de
un error de transmisin, los protocolos de
comunicacin especficos a estas redes notifican
al dispositivo origen que ha ocurrido un error, y
le permiten reintentar o abortar conforme se haya
establecido. Si el mensaje est entregado, pero el
dispositivo esclavo no puede responder, se
produce un error de timeout para que se pueda
detectar por el programa maestro.
Control de Paridad
El usuario puede configurar el
controlador para que opere con Control de
Paridad Par o Impar o sin Control de Paridad.
Esta configuracin determina como se fija el bit
de paridad en cada carcter.
Si se especifica Paridad Par o Impar, se
cuentan la cantidad de bits con valor 1 en el
carcter (siete bits de informacin para modo
ASCII, u ocho para RTU). El bit de paridad se
pondr a 0 o a 1 para que resulte un total par o

PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 15 -


La cantidad total de bits a 1 en el carcter inicial del mensaje, y el par CRLF del
formato es cuatro. Si utilizamos Paridad Par, el final del mensaje
bit de paridad del carcter ser 0, consiguiendo En lgica de contactos, el bloque de
que la cantidad total de bits a 1 sea un nmero funcin CKSM calcula un LRC de los
par (cuatro). Si utilizamos Paridad Impar, el bit contenidos de mensaje. Para aplicaciones que
de paridad ser un 1, para conseguir una cantidad utilizan ordenadores host, se muestra un
impar (cinco). ejemplo detallado de generacin de LRC en el
Cuando se transmite el mensaje, se apndice C.
calcula el bit de paridad aplicndolo a cada
carcter. El dispositivo receptor cuenta la
cantidad de bits a 1 y activa el error si no
coincide con lo que est configurado en este
dispositivo (todos dispositivos de la red de
Modbus tienen que estar configurados para
utilizar el mismo mtodo de control de paridad).
Obsrvese que el control de paridad
slo puede detectar un error si se recibe o
identifica un nmero primo de bits en un carcter
durante la transmisin. Por ejemplo, si se emplea
el control de Paridad Impar, y se han perdido dos
bits a 1 de un carcter que contiene tres bits a 1,
el resultado contina siendo una cuenta impar de
bits a 1.
Si no se especifica ningn control de
Paridad, no se transmite ningn bit de paridad y
no se puede hacer ningn control de paridad. En
este caso se transmite un bit de Stop adicional
para llenar el formato de carcter de control
LRC.
Control LRC
En modo ASCII, los mensajes incluyen
un campo de comprobacin de error basado en
un Mtodo de Redundancia Longitudinal (LRC).
El campo LRC comprueba los contenidos del
mensaje, excluyendo el carcter de comienzo y
los caracteres de terminacin CRLF. Se aplica
independientemente de cualquier otro mtodo de
control de paridad utilizado para los caracteres
individuales del mensaje.
El campo de LRC es un byte, contiene
un valor binario de 8 bits. El valor de LRC se
calcula en el dispositivo transmisor, y se aade al
mensaje. El dispositivo receptor calcula un LRC
durante la recepcin del mensaje, y compara el
valor calculado con el valor real que ha recibido
en el campo LRC. Si los dos valores no son
iguales, se produce un error.
El LRC se calcula sumando entre ellos
los sucesivos bytes de 8 bit del mensaje,
descartando los acarreos, y complementando a
dos el resultado. Se realiza con los contenidos
del campo de mensaje ASCII excluyendo el
PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 16 -
Mtodos de Control de Error utilizan ordenadores host, se muestra un
(Continuacin) ejemplo detallado de generacin de LRC en el
apndice C.
Control CRC
En modo RTU, los mensajes incluyen
un campo de comprobacin de error que se basa
en un mtodo de Control de Redundancia Cclica
(CRC). El campo de CRC comprueba el
contenido del mensaje completo. Se aplica
independientemente de cualquier otro mtodo de
control de paridad utilizado para los caracteres
individuales del mensaje.
El campo de CRC tiene dos bytes,
contenidos en un valor binario de 16 bits. El
valor de CRC se calcula en el dispositivo
transmisor, que lo aade al mensaje. El
dispositivo receptor lo vuelve a calcular durante
la recepcin del mensaje, y compara el valor
calculado con el valor real que ha recibido en el
campo de CRC. Si los dos valores no son
iguales, se genera un error.
El CRC se empieza cargando un
registro de 16 bits todo a unos. Comienza
luego un proceso que consiste en aplicar
sucesivamente los bytes de 8 bits del mensaje a
el contenido actual del registro. Slo se utilizan
los ocho bits de informacin de cada carcter
para generar el CRC. Los bits de Inicio y
Final, as como los bits de paridad, si se estn
utilizando, no se aplican al CRC.
Durante generacin del CRC, cada
carcter de 8 bits realiza una OR exclusiva con el
contenido del registro. El resultado cambiar
empezando por la direccin menos significativa
(LSB), rellenando con cero la posicin ms
significativa (MSB). Se extrae el LSB y se
examina su estado. Si el LSB estaba a 1, el
registro har una OR exclusiva con un valor fijo,
preestablecido. Si el LSB estaba a 0, no se
realiza ninguna OR.
Este proceso se repetir ocho veces
hasta terminar. Despus de la ltima (octava)
rotacin, el siguiente byte de 8 bits har una OR
exclusiva con el valor actual de registro, y el
proceso se repite ocho veces ms como se ha
descrito anteriormente. Los contenidos finales
del registro, despus de que todos los bytes del
mensaje hayan sido aplicados, es el valor de
CRC.
En lgica de contactos, el bloque de
funcin CKSM calcula un LRC de los
contenidos de mensaje. Para aplicaciones que
PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 17 -
PI-MBUS-300 Modbus Protocol Captulo 1 Pag: 18 -
Captulo 2
Funciones
de Control y Datos

o Funciones de Formato Modbus


o Sumario de Cdigos de Funcin
o Detalles de Funciones Modbus

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 19 -


Funciones de Formato Modbus Por ejemplo, el valor 63 hex se enva como un byte de 8 bits en modo RTU
(01100011). El mismo valor enviado en modo ASCII requiere dos bytes, para ASCII 6
Como se representan los Valores Numricos (0110110) y 3 (0110011). El campo Contador de bytes trata esta informacin como un
A menos que se especifique de otra manera, los valores numricos (como valor de 8 bits, independientemente del modo de transmisin (RTU o ASCII).
direcciones, cdigos, o datos) se expresan como valores decimales en el texto de esta Como Utilizar el campo Contador de Byte: Cuando se construyen respuestas en
seccin. Se expresaran como valores hexadecimales en los campos de mensaje de las figuras. buffers, se utiliza un valor de Contador de Byte que indica la cantidad de bytes de 8 bits en
Datos de Direccin en los Mensajes Modbus los datos del mensaje. El valor es independiente del contenido de todos los dems campos,
incluso del campo Contador de Byte. La figura 8 muestra como se crea el campo Contador de
Toda informacin de direccin en los mensajes Modbus est referida a cero. La
Bytes en una respuesta tpica.
primera referencia de un dato de informacin de direccin est referenciada como cero. Por
QUERY Example ASCII RTU
ejemplo :
Field Name (Hex) Characters 8-Bit Field
La bobina conocida como bobina 1 en un controlador Header : (colon) None
programable est direccionada como bobina 0000 en el campo direccin de un Slave Address 06 0 6 0000 0110
mensaje Modbus.
Function 03 0 3 0000 0011
La bobina 127 decimal es direccionada como bobina 007E hex Starting Address Hi 00 0 0 0000 0000
(126 decimal). Starting Address Lo 6B 6 B 0110 1011
El registro interno 40001 se direcciona como registro 0000 en el No. of registers Hi 00 0 0 0000 0000
campo direccin del mensaje. El campo de cdigo de operacin especifica una No. of Registers Lo 03 0 3 0000 0011
operacin de registro. Por lo tanto las referencias 4XXXX estn implcitas. Error Check LRC (2 chars) CRC (16 Bits)
El registro interno 40108 se direcciona como registro 006B hex Trairer CR LF None
(107 decimal). Total Bytes : 17 8
Campo contenido en un mensaje Modbus Figura 7 Consulta de Master con formatos ASCII y RTU
La figura 7 muestra un ejemplo de mensaje consulta. La figura 8 es un ejemplo de RESPONSE Example ASCII RTU
respuesta normal. Ambos ejemplos muestran los contenidos de los campos en hexadecimal, Field Name (Hex) Characters 8-Bit Field
tambin muestran como se puede usar un mensaje en modo ASCII o en modo de RTU. Header : (colon) None
La consulta del maestro es una solicitud de Lectura de Registros Internos a la Slave Address 06 0 6 0000 0110
direccin de dispositivo esclavo 06. El mensaje solicita informacin de tres registros, desde Function 03 0 3 0000 0011
el 40108 hasta 40110. Obsrvese que el mensaje especifica la direccin del registro inicial Byte Count 06 0 6 0000 0110
como 0107 ( 006B hex). El eco de respuesta del esclavo al cdigo de operacin, indica que Data Hi 02 0 2 0000 0010
es una respuesta normal. El campo Contador de byte especifica cuantos grupos de 8 bits de Data Lo 2B 2 B 0010 1011
informacin se devuelven. Muestra la cantidad de bytes de 8 bits que siguen de informacin, Data Hi 00 0 0 0000 0000
ya sea en RTU o ASCII. En ASCII, este valor es la mitad del numero real de caracteres Data Lo 00 0 0 0000 0000
ASCII contenidos en la informacin. En ASCII, cada valor hexadecimal de 4 bits requiere un Data Hi 00 0 0 0000 0000
carcter ASCII, por lo tanto se necesitan dos caracteres ASCII por cada dato de 8 bits. Data Lo 63 6 3 0110 0011
Error Check LRC (2 chars) CRC (16 Bits)
Trairer CR LF None
Total Bytes : 23 11

Figura 8 Respuesta de Esclavo con formatos ASCII y RTU

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 20 -


Funciones de Formato Modbus (Continuacin) Cdigos de Funcin Permitidos por los Controladores
Contenido de los Campos en Modbus Plus El siguiente listado muestra los cdigos de funcin permitidos por los controladores
Los mensajes Modbus enviados en redes Modbus Plus son embebidos en el nivel de Modicon. Los cdigos estn expresados en decimal.
formato Control de Enlace Lgico (LLC). Los campos de mensaje modbus consisten en Y indica que la funcin esta permitida y N indica que no lo esta.
bytes de 8 bits, similares a los utilizados con RTU.
El Campo Direccin del Esclavo es convertido, por el dispositivo de envo, en una Code Name 384 484 584 884 M84 984
direccin de ruta Modbus Plus. El campo de CRC no se enva en el mensaje de Modbus, 01 Read Coil Status Y Y Y Y Y Y
debido a que es redundante el control de CRC con el realizado por el Control de Enlace de 02 Read Input Status Y Y Y Y Y Y
Informacin a mas alto nivel (HDLC). 03 Read Holding Registers Y Y Y Y Y Y
El resto del mensaje permanece como en el formato serie estndar. El software de 04 Read Input Registers Y Y Y Y Y Y
aplicacin (bloque MSTR en controladores, o Modcom III en host) manipula el formato 05 Force Single Coil Y Y Y Y Y Y
del mensaje en un paquete de red. 06 Preset Single Register Y Y Y Y Y Y
La figura 9 muestra una consulta de lectura de registros internos embebida en una 07 Read Exception Status Y Y Y Y Y Y
transmisin con formato Modbus Plus. 08 Diagnostics (see Chapter 3)
09 Program 484 N Y N N N N
HDLC LEVEL : 10 Poll 484 N Y N N N N

PREAMBLE OPENING FLAG BDCST ADDRESS MAC / LLC FIELD CRC CLOSING FLAG 11 Fetch Comm. Event Ctr. Y N Y N N Y
12 Fetch Comm. Event Log Y N Y N N Y
13 Program Controller Y N Y N N Y
14 Poll Controller Y N Y N N Y
MAC LEVEL : 15 Force Muitiple Coils Y Y Y Y Y Y
DEST SOURCE MAC BYTE LLC FIELD 16 Preset Multiple Registers Y Y Y Y Y Y
ADDRES ADDRESS FUNCTION COUNT
17 Report Slave ID Y Y Y Y Y Y
18 Program 884/M84 N N N Y Y N
19 Reset Comm. Link N N N Y Y N
LLC LEVEL : 20 Read General Reference N N Y N N Y

OUTPUT ROUTER TRANS ROUTING PATH MODBUS FRAME (MODIFIED) 21 Write General Reference N N Y N N Y
PATH COUNTER SEQUENCE 22 Mask Write 4X Register N N N N N N (1)
23 Read/Write 4X Registers N N N N N (1)
24 Read FIFO Queue N N N N Y (1)

MODBUS MESSAGE :
SLAVE FUNCTION STARTING STARTING NUMBER OF NUMBER OF Nota :
ADDR CODE ADDRESS HI ADDRESS LO REGISTERS HI REGISTERS LO (1) La funcin la soporta nicamente el 984-785

Figura 9 Contenido de los campos en Modbus Plus

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 21 -


01 Lectura Estado de Bobinas Respuesta
Descripcin El estado de cada bobina se empaqueta en el mensaje de respuesta como una bobina
por bit del campo de informacin. El estado se indica como: 1=ON; 0=OFF. El LSB del
Lee el estado ON/OFF de las salidas discretas (referencias 0X, bobinas) en un primer byte de informacin contiene la bobina direccionada en la consulta. Las otras bobinas
esclavo. La Consulta General no est permitida. siguen a continuacin en orden ascendente hasta el final del byte, y en este orden en bytes
En el apndice B se listan los parmetros mximos permitidos para varios modelos posteriores.
de controlador. Si la cantidad de bobinas devueltas no es un mltiplo de ocho, los bits restantes en
Consulta el byte de informacin se llenan con ceros (hasta completar el byte). El campo Contador de
El mensaje de consulta especifica la bobina inicial y la cantidad de bobinas a leer. Bytes especifica la cantidad de bytes completos de informacin.
Las bobinas se direccionan empezando en cero: las bobinas 1-16 se direccionan como 0-15. La figura 11, muestra un ejemplo de respuesta a la consulta solicitada en la pagina
La figura 10 muestra un ejemplo de consulta de lectura a las bobinas 20-56 del anterior :
esclavo 17 : RESPONSE
Example
Field Name (Hex)
QUERY
Slave Address 11
Field Name Example
(Hex) Function 01

Slave Address 11 Byte Count 05

Function 01 Data (Coils 27-20) CD

Starting Address Hi 00 Data (Coils 35-28) 6B

Starting Address Lo 13 Data (Coils 43-36) B2

No. of Points Hi 00 Data (Coils 5144) 0E

No. of Points Lo 25 Data (Coils 56-52) 1B

Error Check (LRC or CRC) Error Check (LRC or CRC)

Figura 11 Respuesta lectura de estado de bobinas


Figura 10 Consulta estado de Bobinas El estado de las bobinas 27-20 se muestra como el byte de valor CD hex, o binario
1100 1101. La bobina 27 es el MSB del byte, y la bobina 20 el LSB. De izquierda a derecha,
el estado de las bobinas 27 a 20 es: ON-ON-OFF-OFF-ON-ON-OFF-ON.
Por convencin, los bits contenidos en un byte se denominan con el MSB a la
izquierda, y el LSB a la derecha. As las bobinas en el primer byte son de la 27 a la 20, de
izquierda a derecha. El siguiente byte contiene las bobinas de la 35 a la 28, de izquierda a
derecha. Como los bits son transmitidos en serie, fluyen de LSB a MSB: 20...27, 28...35, y
as sucesivamente.
En el ultimo byte de informacin, el estado de las bobinas 56-52 se representa como
el byte de valor 1B hex, o binario 0001 1011. La bobina 56 esta en la cuarta posicin desde la
izquierda, y la bobina 52 es el LSB de este byte. El estado de las bobinas 56 a 52 es: ON-
ON- OFF- ON-ON. Notese como los tres bits restantes ( hasta completar el byte) estn
puestos a cero.

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 22 -


02 Lectura de Estado de las Entradas Respuesta
Descripcin El estado de las entradas en el mensaje de respuesta se empaqueta como una entrada
por bit del campo de informacin. El estado se indica como: 1 = ON; 0 = OFF. El LSB del
Lectura de los estados ON/OFF de las entradas discretas (referencias 1X) de un primer byte de informacin contiene la entrada direccionada en la consulta. Las otras
esclavo. La Consulta General no esta permitida. entradas siguen en orden ascendente en el byte, y en orden ascendente en los bytes
En el apndice B se listan los parmetros mximos permitidos para varios modelos posteriores.
de controlador. Si la cantidad de entradas devuelta no es un mltiplo de ocho, los bits restantes en el
Consulta byte de informacin se rellenan con ceros (hasta completar el byte). El campo Contador de
El mensaje de consulta especifica el inicio y la cantidad de entradas a leer. Las Byte especifica la cantidad de bytes completos de informacin.
entradas comienzan su direccin cero: Las entradas 1-16 se direccionan como 0-15. La figura 13 muestra un ejemplo de respuesta a la consulta solicitada en la pagina
La figura 12 muestra un ejemplo de consulta para leer las entradas 10197-10218 del anterior:
esclavo 17:
RESPONSE

QUERY Example

Example Field Name (Hex)

Field Name (Hex) Slave Address 11

Slave Address 11 Function 02

Function 02 Byte Count 03

Starting Address Hi 00 Data (Inputs 10204-10197) AC

Starting Address Lo C4 Data (Inputs 10212-10205) DB

No. of Points Hi 00 Data (Inputs 10218-10213) 35

No. of Points Lo 16 Error Check (LRC or CRC) -

Error Check (LRC or CRC) --

Figura 13 Lectura de Estado de Entradas - Respuesta


Figure 12 Lectura de Estado de Entradas - Consulta El estado de las entradas 10204-10197 se representa como el byte de valor AC hex,
o binario 1010 1100. La entrada 10204 es el MSB de este byte, y entrada 10197 es el LSB.
De izquierda a derecha el estado de las entradas 10204 a 10197 es: ON-OFF-ON-OFF-ON-
ON-OFF-OFF.
El estado de las entradas 10218-10213 se representa como el byte de valor 35 hex. ,
o Binario 0011 0101. La entrada 10218 esta en la tercera posicin desde la izquierda, y la
entrada 10213 es el LSB. El estado de las entradas 10218 a 10213 es: ON-ON-OFF-ON-
OFF-ON. Ntese que los dos bits restantes estn puestos a cero.

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 23 -


03 Lectura de Registros Internos Respuesta
Descripcin La informacin de los registro se empaqueta en el mensaje de en dos bytes por
registro, con los contenidos binarios justificados por la derecha dentro de cada byte. Por cada
Lee los contenidos binarios de los registros internos (referencias 4 X) en un esclavo. registro, el primer byte contiene los bits de mayor orden y el segundo contienen los bits de
La Consulta General no est permitida. menor orden.
En el apndice B se listan los parmetros mximos permitidos para varios modelos La informacin se actualiza en el esclavo en el rango de 125 registros por scan para
de controlador. los controladores 984-X8X (984- 685, etc.), y en el rango de 32 registros por scan para todos
Consulta los dems controladores. La respuesta se devuelven cuando la informacin se ha ensamblado
El mensaje de consulta especifica el registro inicial y la cantidad de registros a leer. completamente.
Los registros se empiezan a direccionar en cero: Los registros 1-16 se direccionan como 0- La figura 15 muestra un ejemplo de respuesta a la consulta solicitada en la pgina
15. anterior:
La figura 14 muestra un ejemplo de solicitud de lectura de los registros 40108-
40110 del esclavo 17: RESPONSE
Example

QUERY Field Name (Hex)

Example Slave Address 11

Field Name (Hex) Function 03

Slave Address 11 Byte Count 06

Function 03 Data Hi (Register 40108) 02

Starting Address Hi 00 Data Lo (Register 40108) 2B

Starting Address Lo 6B Data Hi (Register 40109) 00

No. of Points Hi 00 Data Lo (Register 40109) 00

No. of Points Lo 03 Data Hi (Register 401 10) 00

Error Check (LRC or CRC) - Data Lo (Register 40110) 64


Error Check (LRC or CRC) --

Figura 14 Lectura de registros Internos - Consulta


Figura 15 Lectura de Registros Internos Respuesta
El contenido del registro 40108 se representa como dos bytes de valores 02 2 B hex.
, o 555 decimales. Los contenidos de los registros 40109-40110 son 00 00 y 00 64 hex. , o 0
y 100 decimal.

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 24 -


04 Lectura de Registros de Entrada Respuesta
Descripcin La informacin de los registros se empaqueta en el mensaje de en dos bytes por
registro con los contenidos binarios justificados por la derecha dentro de cada byte. Por cada
Lee los contenidos binarios de los registros de entrada (referencias 3X) en un registro, el primer byte contiene los bits de mayor orden y el segundo contienen los bits de
esclavo. La Consulta General no est permitida. menor orden.
En el apndice B se listan los parmetros mximos permitidos para varios modelos La informacin se actualiza en el esclavo en el rango de 125 registros por scan en
de controlador. los controladores 984-X8X (984-685, etc.), y en el rango de 32 registros por scan para todos
Consulta los dems controladores. La respuesta se devuelve cuando la informacin est ensamblada
El mensaje de consulta especifica el registro inicial y cantidad de registros a leer. completamente.
Los registros se direccionan comenzando en cero: Los registros 1-16 se direccionan como 0- La figura 17 muestra un ejemplo de respuesta a la consulta mostrada en la pagina
15. anterior:
La figura 16 muestra un ejemplo de una solicitud de lectura del registro 30009 en el
esclavo 17: RESPONSE
Example
Field Name (Hex)
QUERY
Slave Address 11
Example
Function 04
Field Name (Hex)
Byte Count 02
Slave Address 11
Data Hi (Register 30009) 00
Function 04
Data Lo (Register 30009) OA
Starting Address Hi 00
Error Check (LRC or CRC) -
Starting Address Lo 08
No. of Points Hi 00
No. of Points Lo 01 Figura 17 Lectura de Registros de Entrada - Respuesta
Error Check (LRC or CRC) - El contenido del registro 30009 se representa como dos byte de valores 00 0A hex, o
10 decimal.
Figura 16 Lectura de Registros de Entrada - Consulta

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 25 -


05 Forzar Bobinas Individualmente Respuesta
Descripcin La respuesta normal es un eco de la consulta, devuelve el estado de la bobina
despus del forzado.
Fuerza una nica bobina (referencia 0X) ya sea ON OFF. En Consulta General, la
La figura 19 muestra un ejemplo de respuesta a la consulta solicitada en la pgina
funcin fuerza la misma referencia de bobina en todos los esclavos conectados.
anterior:
Nota La funcin sobreescribir la memoria protegida del
controlador y el estado desactivado de la bobina. El estado forzado permanecer
RESPONSE
vlido hasta que el controlador resuelva la lgica de la bobina. La bobina
permanecer forzada si no est programada en la lgica de controlador. Example
Field Name (Hex)
En el apndice B se listan los parmetros mximos permitidos para varios modelos
Slave Address 11
de controlador.
Function 05
Consulta Coil Address Hi 00
El mensaje de consulta especifica la referencia de la bobina a forzar. Las bobinas se Coil Address Lo AC
direccionan comenzando en cero: La bobina 1 se direcciona como 0. Force Data Hi FF
La peticin de estado ON/OFF se especifica con una constante en el campo de Force Data Lo 00
informacin de la consulta. El valor FF 00 hex solicita que la bobina pase a ON. El valor 00 Error Check (LRC or CRC) -
00 hex solicita que pase a OFF. Todo lo dems valores son ilegales y no afectarn al estado
de la bobina.
Figura 19 Forzar bobinas Individualmente - Respuesta
La figura 18 muestra un ejemplo de solicitud de forzar la bobina 173 a ON en el
esclavo 17:

QUERY
Example
Field Name (Hex)
Slave Address 11
Function 05
Coil Address Hi 00
Coil Address Lo AC
Force Data Hi FF
Force Data Lo 00
Error Check (LRC or CRC) -

Figura 18 Forzar Bobinas Individualmente - Consulta

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 26 -


06 Fijar un valor en un Registro Individualmente Respuesta
Descripcin La respuesta normal es un eco de la consulta, se devuelve despus que el registro ha
sido modificado.
Prefija un valor en un nico registro interno (referencia 4X). En Consulta General,
La figura 21 muestra un ejemplo de una respuesta para la consulta solicitada en la
la funcin prefija la misma referencia de registro en todos los esclavos conectados.
pgina anterior:
Nota. La funcin sobreescribir la memoria protegida del
controlador. El valor preestablecido permanecer vlido en el registro hasta que
RESPONSE
la lgica del controlador resuelva los contenidos de registro. El valor de registro
permanecer si no esta programado en la lgica de controlador. Example
Field Name (Hex)
En el apndice B se listan los parmetros mximos permitidos para varios modelos
Slave Address 11
de controlador.
Function 06
Consulta Register Address Hi 00
El mensaje de consulta especifica la referencia del registro a modificar. Los Register Address Lo 01
registros se direccionan empezando en cero: El registro 1 se directora como 0. Preset Data Hi 00
El valor que se desea prefijar se especifica en el campo de informacin de consulta. Preset Data Lo 03
Los controladores M84 y 484 utilizan valores binarios de 10 bits, con el conjunto de los seis Error Check (LRC or CRC) -
bits ms significativos a cero. Todos los dems controladores usan valores de 16 bits.
La figura 20 muestra un ejemplo de solicitud para poner el registro 40002 del
Figura 21 Fijar Valor en un registro Individualmente - Respuesta
esclavo 17 al valor 00 03 ex:

QUERR
Example
Field Name (Hex)
Slave Address 11
Function 06
Register Address Hi 00
Register Address Lo 01
Preset Data Hi 00
Preset Data Lo 03
Error Check (LRC or CRC) -

Figura 20 Fijar Valor en un Registro Individualmente - Consulta

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 27 -


07 Lectura de Estados de Excepcin Respuesta
Descripcin La respuesta normal contiene el estado de las ocho bobinas de Condicin de
Excepcin. Las bobinas se empaquetan en un byte de informacin, con un bit por bobina. El
Lee el contenido de ocho bobinas de Condicin de Excepcin en el controlador estado de la bobina de referencia ms baja esta contenido en el bit LSB del byte.
esclavo. Las bobinas estn definidas previamente en los diversos controladores. Se puede
La figura 23 muestra un ejemplo de una respuesta para la consulta realizada en la
programar otras bobinas por el usuario para contener informacin acerca del estado del
pagina anterior:
controlador, por ejemplo, mquina ON/OFF, cabezales en reposo, Seguridades
cumplidas, Existen Condiciones de Error, o cualquier otro estado definido por el usuario.
La Consulta General no est permitida. RESPONSE

La funcin provee un mtodo simple para acceder a esta informacin, debido a que Example

las referencias de bobinas de Excepcin son conocidas (la funcin no necesita ninguna Field Name (Hex)

referencia de bobina). Las asignaciones de bobinas de Excepcin predefinidas son: Slave Address 11
Function 07
Coil Data 6D
Controller Model Coil Assignment
Error Check (LRC or CRC) -
M84, 184/384, 584, 984 1-8 User defined
484 257 Battery Status
258 - 264 User defined Figura 23 Lectura Estado de Excepcin - Respuesta
884 761 Battery Status En este ejemplo, el valor de las bobinas es 6D hex (0110 1101 binario). De
762 Memory Protect izquierda a derecha es: OFF-ON-ON-OFF-ON-ON-OFF-ON. El estado se presenta desde la
Status
bobina de direccin ms alta a la mas baja.
763 RIO Health Status
Si el controlador es un 984, estos bits son el estado de la bobina 8 hasta la 1.
764-768 User defined
Si el controlador es un 484, estos bits son el estado de la bobina 264 hasta la 257. En
este ejemplo, la bobina 257 est ON, indica que las bateras del controlador estn OK.
Consulta
La figura 22 muestra un ejemplo de lectura de Estado de Excepcin en el esclavo
17:

QUERY
Example
Field Name (Hex)
Slave Address 11
Function 07
Error Check (LRC or CRC) -

Figura 22 Lectura Estados de Excepcin - Consulta

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 28 -


11 (OB Hex) Solicitar Contador Eventos de Comunicaciones Respuesta
Descripcin La respuesta normal contiene una palabra de estado de dos byte, y otros dos bytes
del contador de eventos. La palabra de estado ser todo unos (FF FF hex) si se esta
Devuelve una palabra de estado y un contador de eventos de comunicaciones del procesando un comando enviado previamente al esclavo (existir una seal de ocupado). Si
esclavo. Solicitando el contador actual antes y despus de una serie de mensajes, el maestro esta libre, la palabra de estado ser todos ceros.
puede determinar si los mensajes se han tratado normalmente. La Consulta General no est
La figura 25 muestra un ejemplo de respuesta a la consulta solicitada en la pagina
permitida.
anterior:
El contador de eventos del controlador se incrementa cada vez que se termina un
mensaje correctamente. No se incrementa por respuestas de excepcin, consultas generales, o
RESPONSE
comandos relacionados con el contador de eventos.
Example
El contador de eventos se puede poner a cero por medio de la funcin de
Field Name (Hex)
Diagnsticos (cdigo 08), con la subfuncin de Opcin de Reinicio de Comunicaciones
Slave Address 11
(cdigo 00 01) o Limpiar Contadores y Registros de Diagnstico (cdigo 00 OA).
Function OB
Consulta Status Hl FF
La figura 24 muestra un ejemplo de una solicitud del Contador de Eventos de Status Lo FF
Comunicaciones en el esclavo 17: Event Count Hi 01
Event Count Lo 08
QUERY Error Check (LRC or CRC) -
Example
Field Name (Hex)
Figura 25 Solicitud del Contador de Eventos de Comunicaciones Respuesta
Slave Address 11
En este ejemplo, la palabra de estado es FF FF hex, indica que una funcin del
Function OB
programa esta an en proceso en el esclavo. El contador de eventos muestra que el
Error Check (LRC or CRC) -
controlador ha registrado 264 (01 08 hex) eventos.

Figura 24 Solicitud del Contador de Eventos de Comunicaciones - Consulta

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 29 -


12 (OC Hex) Solicitar Diario de Eventos de Comunicaciones Respuesta
Descripcin La respuesta normal contiene un campo de palabra de estado de dos bytes, un
contador de eventos de dos bytes, un contador de mensajes de dos bytes, y un campo que
Devuelve una palabra de estado, un contador de eventos, un contador de mensajes, y contiene de 0-64 bytes de eventos. Un contador de un byte define la longitud total de la
un campo de bytes de evento del esclavo. La Consulta General no est permitida. informacin en estos cuatro campos.
La palabra de estado y el contador de eventos es idntico a las devueltas por la La figura 27 muestra un ejemplo de una respuesta para la consulta realizada en la
funcin Solicitud del Contador de Evento de Comunicaciones (11, OB hex). pagina anterior:
El contador de mensajes contiene la cantidad de mensajes procesados por el esclavo
desde su ultimo reinicio, operacin de limpieza de los contadores, o arranque. Este contador
RESPONSE
es idntico al devuelto por la funcin de Diagnstico (cdigo 08), subfuncin Devolver
Example
Contador de Mensajes de Bus (cdigo 11, OB hex).
Field Name (Hex)
El campo de bytes de evento contiene 0-64 bytes, cada byte corresponde al estado
Slave Address 11
de una operacin Modbus, envo o recepcin, hacia el esclavo. Los eventos los guarda el
Function 0C
esclavo en este campo en orden cronolgico. El byte 0 es el evento ms reciente. Cada nuevo
Byte Count 08
byte elimina el byte ms antiguo del campo.
Status Hl 00
Consulta Status Lo 00
La figura 26b muestra un ejemplo de solicitud del diario de eventos de Event Count Hi 01
comunicaciones en el esclavo 17: Event Count Lo 08
Message Count Hi 01
QUERY Message Count Lo 21
Example Event 0 20
Field Name (Hex) Event 1 00
Slave Address 11 Error Check (LRC or CRC) -
Function 0C
Error Check (LRC or CRC) - Figure 27 Solicitud del diario de Eventos de Comunicaciones- Respuesta
En este ejemplo, la palabra de estado es 00 00 hex, indica que el esclavo no esta
Figura 26 Solicitud del Diario de Eventos de Comunicaciones - Consulta procesando ninguna funcin de programa. El contador de eventos dice que se han contado
264 ( 01 08 hex) eventos en el esclavo. EL contador de mensajes dice que se han procesado
289 ( 01 21 hex) mensajes.
El evento de comunicaciones ms reciente se muestra en el byte 0 de Eventos. Su
contenido (20 hex) muestra que el esclavo ha entrado ltimamente en Modo Escucha.
El evento anterior se muestra en el byte 1 de Eventos. Su contenido ( 00 hex)
muestra que el esclavo recibi un Reinicio de Comunicaciones.
La disposicin de los bytes de evento de respuesta est descrito en la siguiente
pgina.

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 30 -


12 (0C Hex) Diario Eventos de Comunicacin (continuacin) El Esclavo Entra en Modo de Solo Escucha
Que contienen los Bytes de Evento Este tipo de byte de evento lo almacena el esclavo cuando entra en Modo de Solo
Escucha. El evento se define por el contenido 04 hex. La relacin de bits es la siguiente:
El byte de evento devuelto por la funcin de Consulta del Diario de Eventos de
Bit Contenido
Comunicacin puede se de cuatro tipos. El tipo esta definido por el bit 7 (el bit de mayor
0 0
orden) de cada byte. Podr estar definido por el bit 6 en un futuro. Esto se explica a
1 0
continuacin.
2 1
Evento Recepcin de un Esclavo Modbus 3 0
Este tipo de byte de evento es almacenado por el esclavo cuando recibe un mensaje 4 0
de consulta. Lo almacena despus de procesar el mensaje. Este evento se define poniendo a 5 0
1 el bit 7. Los otros bits podrn estar a 1 si la condicin correspondiente es verdadera. La 6 0
relacin de bits es la siguiente: 7 0
Bit Contenido
El Esclavo Inicia un Restablecimiento de Comunicaciones
0 No usado
1 Error de Comunicaciones Este tipo de byte de evento lo almacena el esclavo cuando se restablece su puerto de
2 No usado
comunicaciones. El esclavo puede restablecerse por la funcin de Diagnostico (cdigo 08),
3 No usado
mediante la subfuncin Opcin Restablecer Comunicaciones (cdigo 00 01).
4 Sobre-escritura de carcter Esta funcin deja tambin al esclavo en el modo Continua ante un Error o Para
5 Normalmente solo en modo escucha ante un Error. Si el esclavo queda en modo Continua ante un error, el byte de evento se
6 Recibida emisin general
aade al diario de eventos. Si el esclavo queda en modo Para ante un Error, el byte de
7 1
evento se aade al diario de eventos y el resto del diario es puesto a cero.
El evento se define por un contenido de cero. La relacin de bits es la siguiente:
Evento Envo de un Esclavo Modbus Bit Contenido
Este tipo de byte de evento es almacenado por el esclavo cuando finaliza el proceso 0 0
de un mensaje de consulta. Se almacena si el esclavo a devuelto una respuesta normal o una 1 0
de excepcin, o no ha respondido. Este evento se define poniendo a 0 el bit 7, dejando el 2 0
bit 6 a 1. Los otros bits podrn estar a 1 si la condicin correspondiente es verdadera. La 3 0
relacin de bits es la siguiente: 4 0
Bit Contenido
5 0
0 Enviada excepcin de lectura (Cdigos de excepcin 1-3)
6 0
1 Enviada excepcin aborto del esclavo (Cdigo de excepcin 4)
7 0
2 Enviada excepcin esclavo ocupado (Cdigo de excepcin 5-6)
3 Enviada excepcin Slave-Program-NAK (Cdigo de excepcin 7)
4 Ha ocurrido un time out en escritura
5 Normalmente solo en modo escucha
6 1
7 0

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 31 -


15 (OF Hex) Forzar Varias Bobinas
Coil Address Lo 13
Descripcin Quantity of Coils Hi 00

Fuerza varias bobinas (referencias 0X) consecutivas ya sea ON o OFF. Cuando es Quantity of Coils Lo OA

una Consulta General, la funcin fuerza las mismas referencias de bobina en todos los Byte Count 02
esclavos conectados. Force Data Hi(Coils 27-20) CD

Nota La funcin sobreescribir la memoria protegida del Force Data Lo (Coils 29-28) 01

controlador y el estado desactivado de las bobinas. El estado forzado Error Check (LRC or CRC) -

permanecer vlido hasta que el controlador resuelva la lgica de las bobinas.


Las bobinas permanecern forzadas si no estuvieran programadas en la lgica de Figura 28 Forzar varias Bobinas Consulta
controlador.
En el apndice B se listan los parmetros mximos permitidos para varios modelos
de controlador. Respuesta
La respuesta normal devuelve la direccin del esclavo, el cdigo de operacin, la
Consulta
direccin de inicio y la cantidad de bobinas forzadas.
El mensaje de consulta especifica las referencias de boina que se desean forzar. Las
La figura 29 muestra un ejemplo de respuesta a la consulta que se realizo
bobinas se direccionan comenzando en cero: La bobina 1 se direcciona como 0.
anteriormente.
La peticin de estado ON / OFF est especificada por el contenido del campo de
informacin de la consulta. Un valor lgico 1 en una posicin de bit en el campo solicita
RESPONSE
que la bobina correspondiente pase a ON. Un valor lgico 0 solicita que la bobina pase a
Example
OFF.
Field Name (Hex)
En la pagina siguiente se muestra un ejemplo de solicitud para forzar una serie de
Slave Address 11
diez bobinas, comenzando en la bobina 20 (direccionada como 19,o 13 hex) en el esclavo 17.
Function OF
El contenido de la consulta tiene dos bytes: CD 01 hex (1100 1101 0000 0001
Coil Address Hi 00
binario). Los bits binarios corresponden a las bobinas de la forma siguiente:
Coil Address Lo 13
Quantity of Coils Hi 00
Bit 1 1 0 0 1 1 0 1 0 0 0 0 0 0 0 1
Quantity of Coils Lo OA
Bobina 27 26 25 24 23 22 21 20 - - - - - - 29 28
Error Check (LRC or CtRC) -

El primer byte transmitido (CD hex) direcciona las bobinas 27-20, con el bit menos Figura 29 Forzar Varias Bobinas - Respuesta
significativo se direcciona a la bobina ms baja (20) en el conjunto. El byte siguiente (01
hex) direcciona las bobinas 29-28, con el bit menos significativo se direcciona a la bobina
ms baja (28) en el conjunto. Los bits no utilizados en el ultiman byte de informacin
debern ser llenados con ceros.

QUERY
Example
Field Name (Hex)
Slave Address 11
Function OF
Coil Address Hi 00
PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 32 -
16 10 Hex) Fijar Varios Registros Respuesta
Descripcin La respuesta normal devuelve la direccin del esclavo, el cdigo de operacin, la
direccin de inicio y la cantidad de registros forzados.
Fuerza valores en un varios registros internos consecutivos (referencias 4 X). En
La figura 31 muestra un ejemplo de una respuesta a la consulta que se mostr
Consulta General, la funcin fija las mismas referencias de registro en todos los esclavos
anteriormente:
conectados.
Nota. La funcin sobreescribir la memoria protegida del
RESPONSE
controlador. El valor preestablecido permanecer vlido en los registros hasta
que la lgica del controlador resuelva los contenidos de los registros. El valor de Example

los registros permanecer si no estn programados en la lgica de controlador. Field Name (Hex)
Slave Address 11
En el apndice B se listan los parmetros mximos permitidos para varios modelos
Function 10
de controlador.
Starting Address Hi 00
Consulta Starting Address La 01
El mensaje de consulta especifica las referencias de los registros a forzar. Los No. of Registers Hi 00
registros se direcciona comenzando en cero: El registro 1 se direcciona como 0. No. of Registers Lo 02
Los valores preestablecidos solicitados se especifican en el campo de informacin Error Check (LRC or CRC) -
de la consulta. Los controladores M84 y 484 utilizan valores binarios de 10 bits, con el
conjunto de los seis bits ms significativos a ceros. El resto de controladores usan valores de
16 bits. La informacin se empaqueta en dos bytes por registro. Figura 31 Fijar varios Registros - Respuesta
La figura 30 muestra un ejemplo de solicitud de modificar dos registros que
comienzan en el 40002 a 00 OA y 01 02 hex, en el esclavo 17:

QUERY
Example
Field Name (Hex)
Slave Address 11
Function 10
Starting Address Hi 00
Starting Address Lo 01
No. of Registers Hi 00
No. of Registers Lo 02
Byte Count 04
Data Hi 00
Data Lo OA
Data Hi 01
Data Lo 02
Error Check (LRC or CRC) -

Figura 30 Fijar Varios Registros Consulta

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 33 -


17 (11 Hex) Informe del ID Esclavo Respuesta
Descripcin Se muestra a continuacin el formato de una respuesta normal. Los contenidos de
informacin son especficos para cada tipo de controlador Estos se listan en las pginas
Devuelve la descripcin del tipo de controlador presente en la Direccin esclava, el siguientes.
estado actual del indicador de Marcha del esclavo, y cierta informacin especfica del
dispositivo esclavo. La Consulta General no est permitida.
RESPONSE
Consulta Field Name Contents
A continuacin se muestra un ejemplo de una solicitud de Informe de ID y estado Slave Address Echo of Slave Address
del dispositivo esclavo 17: Function 11
Byte Count Device Specific
QUERY Slave ID Device Specific
Example Run Indicator Status 00 = OFF, FF = ON
Field Name (Hex) Additional Data Device Specific
Slave Address 11 ......
Function 11 Error Check (LRC or CRC) -
Error Check (LRC or CRC) -

Figura 33 Informe de ID del Esclavo Respuesta


Figura 32 Informe de ID Esclavo - Consulta
Sumario de IDs de Esclavo
A continuacin se muestran los cdigos ID devueltos por cada tipo de controlador
Modicon en el primer byte del campo de informacin:

Slave ID Controller
0 Micro 84
1 484
2 1 84/384
3 584
8 884
9 984

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 34 -


17 (11 Hex) Informe del ID Esclavo (Continuacin)
21,22 First latch number (must be multiple of 16)
184/384 23,24 Last latch number (must be multiple of 16)
Los controladores 184 y 384 devuelven un contador de byte con valor 4 o 74 (4A 25, 26 Address of input registers
hexadecimal). Si tienen la interface esclava Modbus J347 Esclava configurada 27, 28 Quantity of input registers
correctamente, y su tabla interna PIB esta normal, el contador de byte valdr 74. En cualquier 29,30 Quantity of output and holding registers
otro caso el contador de byte valdr 4. 31,32 Address of user logic
Los cuatro bytes que se devuelven siempre son: 33, 34 Address of output coil RAM table
35, 36 Function inhibit mask
Byte Contents 37,38 Address of extended function routine
1 Slave ID (2 for 184/384). See bytes 3, 4 for further definition. 39,40 Address of data transfer routine
2 RUN indicator status (0 = OFF, FF = ON) 41,42 Address of traffic cop
3, 4 Status word: 43,44 Unused
Bit 0 = 0 45,46 Function inhibit mask
Bit 1 = Memory Protect status (0 = OFF, 1 = ON) 47,48 Address of 'A' Mode history table
Bit 2, 3 = Controller type: Bit 2 = 0 and Bit 3 = 0 indicates 184
49, 50 Request table for DX printer
Bit 2 = 1 and Bit 3 = 0 indicates 384
Bits 4 - 15 = Unused 51,52 Quantity of sequence groups
53,54 Address of sequence image table
55,56 Address of sequence RAM
Los 70 bytes adicionales devueltos por el J347 configurado correctamente, y con su 57, 58 Quantity of 50XX registers
tabla interna PIB normal son: 59,60 Address of 50XX table
61, 62 Address of output coil RAM image
Byte Contents 63, 64 Address of input RAM image
5, 6 PBI TABLE starting address 65,66 Delayed output start group
7, 8 Controller serial number 67,68 Delayed output end group
9, 10 Executive ID 69,70 Watchdog line
Los bytes 11-74 contienen la tabla de PIB. Esta informacin es vlida 71, 72 RAM Address of latches
solamente si el controlador est ejecutando (como se muestra en Byte 2). La
tabla es como sigue: 73, 74 Quantity of delayed output groups

11,12 Maximum quantity of output coils


13,14 Output coil enables table
15,16 Address of input coil/run table
17,18 Quantity of input coils
19,20 Input coil enables table

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 35 -


17 (11 Hex) Informe del ID Esclavo (Continuacin) _. .

8, 9 Machine stop code (configuration table word 105, 69 hex).


584 The word is organized as follows:
El controlador 584 devuelve un contador de byte de valor 9, mostrado a Byte 8:
continuacin: Bit 15 (MSB of byte 8) = Peripheral port stop (controlled stop)
Bit 14 = Unassigned
Bit 13 = Dim awareness
Byte Contents Bit 12 = Illegal peripheral intervention
1 Slave ID (3 for 584) Bit 11 = Multirate solve table invalid
2 RUN indicator status (0 = OFF, FF = ON) Bit 10 = Start of Node did not start segment
3 Quantity of 4K sections of page 0 memory Bit 9 = State RAM test failed
Bit 8 = No End of Logic detected, or bad quantity of segments
4 Quantity of 1 K sections of state RAM
Byte 9:
5 Quantity of segments of user logic
Bit 7 (MSB of byte 9) = Watchdog timer expired
6,7 Machine state word (configuration table word 101, 65 hex). Bit 6 = Real time clock error
The word is organized as follows: Bit 5 = CPU diagnostic failed
Byte 6: Bit 4 = Invalid traffic cop type
Bit 15 (MSB of byte 6) = Port 1 setup Bit 3 =' Invalid node type
Bit 14 = Port 2 setup Bit 2 = Logic checksum error
Bit 13 = Port 1 address set Bit 1 = Backup checksum error
Bit 12 = Port 2 address set Bit 0 = Illegal configuration
Bit 11 = Unassigned
Bit 10 = Constant Sweep status (0 = Constand Sweep OFF, 1 = ON)
Bit 9 = Single Sweep status (0 = Single Sweep OFF, 1 = ON)
Bit 8 = 1 6/24-bit nodes (0 = 24-bit nodes, 1 = 16-bit nodes)
Byte 7:
Bit 7 (MSB of byte 7) = Power ON (1 = ON, should never = 'OFF')
Bit 6 = RUN indicator status (0 = ON, 1 = OFF)
Bit 5 = Memory Protect status (0 = ON, 1 = OFF)
Bit 4 = Battery OK (0 = OK, 1 = Not OK)
Bits 3 - 0 = Unassigned

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 36 -


17 (11 Hex) Informe del ID Esclavo (Continuacin) _. .

8, 9 Machine stop code (configuration table word 105, 69 hex).


84 The word is organized as follows:
El controlador 984 devuelve un contador de bytes de valor 9, como se muestra a Byte 8:
continuacin: Bit 15 (MSB of byte 8) = Peripheral port stop (controlled stop)
Bit 14 (984,B,X) = Extended memory parity failure
Bit 14 (Other 984) = Bad IO traffic cop
Byte Contents Bit 13 = Dim awareness
1 Slave ID (9 for 984) Bit 12 = Illegal peripheral intervention
2 RUN indicator status (0 = OFF, FF = ON) Bit 11 = Bad segment scheduler table
3 Quantity of 4K sections of page 0 memory Bit 10 = Start of Node did not start segment
Bit 9 = State RAM test failed
4 Quantity of 1 K sections of state RAM
Bit 8 = No End of Logic detected, or bad quantity of segments
5 Quantity of segments of user logic
Byte 9:
6,7 Machine state word (configuration table word 101, 65 hex). Bit 7 (MSB of byte 9) = Watchdog timer expired
The word is organized as follows: Bit 6 = Real time clock error
Byte 6: Bit 5 (984,B;X) = CPU diagnostic failed
Bit 15 (MSB of byte 6) = Unassigned Bit 5 (Other 984) = Bad coil used table
Bit 14-11 = Unassigned Bit 4 = S908 remote IO head failure
Bit 10 = Constant Sweep status (0 = Constand Sweep OFF, 1 = ON) Bit 3 =' Invalid node type
Bit 9 = Single Sweep status (0 = Single Sweep OFF, 1 = ON) Bit 2 = Logic checksum error
Bit 8 = 1 6/24-bit nodes (0 = 24-bit nodes, 1 = 16-bit nodes) Bit 1 = Coil disabled while in RUN mode
Byte 7: Bit 0 = Illegal configuration
Bit 7 (MSB of byte 7) = Power ON (1 = ON, should never = 'OFF')
Bit 6 = RUN indicator status (0 = ON, 1 = OFF)
Bit 5 = Memory Protect status (0 = ON, 1 = OFF)
Bit 4 = Battery OK (0 = OK, 1 = Not OK)
Bits 3 - 1 = Unassigned
Bit 0 = Memory downsize flag (0 = NO, 1 = Downsize

Memory Downsize : El bit 0 de la palabra de estado de la maquina describe los


valores de la reduccin de memoria definida en las palabras 99, 100 y 175 (63,64 y AF
hexadecimal) de la tabla de configuracin. Si el bit 0 tiene valor lgico 1, la reduccin se
calcula de la forma siguiente :
Page 0 size (16-bit words) = (word 99 * 4096) (word 175 low byte * 16)
State table size (16 bit words) = (word 100 * 1024) (word 175 high byte *16)

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 37 -


17 (11 Hex) Informe del ID Esclavo(Continuacin) 884
Micro 84 El controlador 884 devuelve un contador de byte con valor 8, como se muestra a
continuacin:
El controlador Micro 84 devuelve un contador de byte con valor 8, como se muestra
a continuacin:
Byte Contents
1 Slave ID (8 for 884)
Byte Contents
2 RUN indicator status (0 = OFF, FF = ON)
1 Slave ID (0 for Micro 84)
3 Current port number
2 RUN indicator status (0 = OFF, FF = ON)
4 Size of user logic plus state RAM. in kilobytes (1 word = 2 bytes
3 Current port number
5 Reserved
4 Memory size (1 = 1 K, 2 = 2K)
6 Hook bits:
5 Unused (all zeros) Bits 0 - 2 = Reserved
Bit 3 = Mapper bypass: 1 = Do not execute standard mapper
Bit 4 = End of Scan tests: 1 = Test end of scan hooks
484 Bit 5 = Reserved
El controlador 484 devuelve un contador de byte con valor 5, como se muestra a Bit 6; Logic Solver bypass: 1 = Do not execute standard logic solver
Bit 7 = Reserved
continuacin:
7,8 Reserved

Byte Contents
1 Slave ID (1 for 484)
2 RUN indicator status (0 = OFF, FF = ON
3 System state
4 First configuration byte
5 Second configuration byte

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 38 -


20 (14 Hex) Lectura de Referencia General En controladores distintos a los 984-785 con Registros Extendidos, el ltimo (mas
alto) registro del ultimo archivo es:
Descripcin
Devuelve los contenidos de registros contenidos en archivos de Memoria Extendida Ext Mem Size Last File Last Register (Decimal)
(referencias 6XXXXX). La Consulta General no est permitida. 16K 2 6383
La funcin puede leer grupos mltiples de referencias. Los grupos pueden estar 32K 4 2767
separados (no contiguos), pero las referencias dentro de cada grupo deben ser consecutivas. 64K 7 5535
Consulta 96K 10 8303
La consulta contiene la Direccin esclava estndar Modbus, el cdigo de operacin,
el Contador de byte, y los campos de control de error. El resto de la consulta especifica el En los 984-785 con Registros Extendidos, el ultimo (ms alto) registro en el ultimo
grupo o grupos de referencias a leer. Cada grupo est definido en un campo de subconsulta archivo se muestra en los dos tablas siguientes:
separado que contiene 7 bytes:
El tipo de referencia: 1 byte ( debe ser especificado como 6)
984-785 con Cartucho de Memoria AS-M785 032:
El nmero de archivo de Memoria Extendida: 2 bytes (1 a 10, hex 0001 a
OOOA)
User State Ext Mem Size Last File Last Register(Decimal)
La Direccin de registro inicial dentro del archivo: 2 bytes Logic RAM
La cantidad de registros a leer: 2 bytes. 32K 32K 0 0 0
La cantidad de registros a leer, combinado con todos los dems campos en la 16K 64K 72K 8 3727
respuesta esperada, no tiene que exceder la longitud permisible de mensajes de Modbus: 256
bytes.
984-785 con Cartucho de Memoria AS-M785 048:
La cantidad disponible de archivos de Memoria Extendida depende del tamao
instalado de Memoria Extendida en el controlador esclavo. Cada archivo excepto el ltimo
contiene 10,000 registros, direccionados como 0000-270F hexadecimal (0000-9999 decimal) User State Ext Mem Size Last File Last Register(Decimal)
Logic RAM
Nota : El direccionamiento de Registro Extendido (referencias
48K 32K 24 3 4575
6XXXXX) difiere del de Registro Interno (referencias 4XXXX).
32K 64K 96K 10 8303
El Registro Extendido mas bajo se direcciona como registro cero (600000).
El Registro Interno ms bajo se direcciona como registro uno (40001).
Se muestra en la pagina siguiente un ejemplo de consulta y respuesta.

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 39 -


20 (14 Hex) Lectura de Referencia General (Continuacin) Respuesta
Un ejemplo de solicitud de lectura de dos grupos de referencias en el dispositivo La respuesta normal es una serie de sub-respuestas, una por cada sub-consulta. El
esclavo 17 se muestra a continuacin. campo de contador de byte es la cantidad combinada total de bytes en todas las sub-
respuestas. Adems, cada sub-respuesta contiene un campo que muestra su propio contador
El grupo 1 consiste en dos registros del archivo 4, comienza en el registro 1
de byte.
(Direccin 0001). El grupo 2 consiste en dos registros del archivo 3, comienza en el registro
9 (Direccin 0009).
RESPONSE
Example
QUERY
Field Name (Hex)
Example
Slave Address 11
Field Name (Hex)
Function 14
Slave Address 11
Byte Count 0C
Function 14
Sub-Res 1, Byte Count 05
Byte Count OE
Sub-Res 1, Reference Type 06
Sub-Req 1, Reference Type 06
Sub-Res 1, Register Data Hi OD
Sub-Req 1, File Number Hi 00
Sub-Res 1, Register Data Lo FE
Sub-Req 1, File Number Lo 04
Sub-Res 1, Register Data Hi 00
Sub-Req 1, Starting Addr Hi 00
Sub-Res 1, Register Data Lo 20
Sub-Req 1, Starting Addr Lo 01
Sub-Res 2 Byte Count 05
Sub-Req 1, Register Count Hi 00
Sub-Res 2 Reference Type 06
Sub-Req 1, Register Count Lo 02
Sub-Res 2, Register Data Hi 33
Sub-Req 2, Reference Type 06
Sub-Res 2, Register Data Lo CD
Sub-Req 2, File Number Hi 00
Sub-Res 2, Register Data Hi 00
Sub-Req 2 File Number Lo 03
Sub-Res 2, Register Data Lo 40
Sub-Req2 Starting Addr Hi 00
Error Check (LRC or CRC) -
Sub-Req 2, Starting Addr Lo 09
Sub-Req 2, Register Count Hi 00
Sub-Req 2, Register Count Lo 02 Figura 35 Lectura de Referencia General - Respuesta
Error Check (LRC or CRC) -

Figura 34 Lectura de Referencia General - Consulta

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 40 -


21 (15 Hex) Escritura de Referencia General En controladores distintos a los 984-785 con Registros Extendidos, el ltimo (mas
alto) registro del ultimo archivo es:
Descripcin
Escribe los contenidos de registros en archivo de Memoria Extendida (referencias Ext Mem Size Last File Last Register (Decimal)
6XXXXX). La Consulta General no est permitida. 16K 2 6383
La funcin puede escribir en grupos mltiples de referencias. Los grupos pueden 32K 4 2767
estar separados (no contiguos), pero las referencias dentro de cada grupo deben ser 64K 7 5535
consecutivas. 96K 10 8303
Consulta
La consulta contiene la Direccin esclava estndar Modbus, el cdigo de operacin, En los 984-785 con Registros Extendidos, el ultimo (ms alto) registro en el ultimo
el contador de byte, y los campos de control de error. El resto de la consulta especifica el archivo se muestra en los dos tablas siguientes:
grupo o grupos de referencias a escribir, y los datos a escribir en ellos. Cada grupo est
definido en un campo separado de sub-consulta que contiene 7 bytes ms los datos: 984-785 con Cartucho de Memoria AS-M785 032:
- El tipo de referencia: 1 byte (tiene que estar especificado como 6)
- El nmero de archivo de Memoria Extendida: 2 bytes (1 a 10, hex User State Ext Mem Size Last File Last Register(Decimal)
0001 a 000A) Logic RAM
- La Direccin de registro inicial dentro del archivo: 2 bytes 32K 32K 0 0 0
- La cantidad de registros a escribir: 2 bytes 16K 64K 72K 8 3727

- Los datos a escribir: 2 bytes por registro.


La cantidad de registros a escribir, combinados con todos los dems campos en la 984-785 con Cartucho de Memoria AS-M785 048:
consulta, no tiene que exceder la longitud permisible de mensajes Modbus: 256 bytes.
La cantidad disponible de archivos de Memoria Extendida depende del tamao User State Ext Mem Size Last File Last Register(Decimal)
instalado de Memoria Extendida en el controlador esclavo. Cada archivo excepto el ltimo Logic RAM
contiene 10,000 registros, direccionados como 0000 270F hexadecimal (0000 9999 decimal). 48K 32K 24 3 4575
Nota : El direccionamiento de Registro Extendido (referencias 32K 64K 96K 10 8303
6XXXXX) difiere del de Registro Interno (referencias 4XXXX).
El Registro Extendido mas bajo se direcciona como registro cero (600000). El Se muestra en la pagina siguiente un ejemplo de consulta y respuesta.
Registro Interno ms bajo se direcciona como registro uno (40001).

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 41 -


21 (15 Hex) ) Escritura de Referencia General ( Continuacin ) Respuesta
Se muestra a continuacin un ejemplo de solicitud de escritura en un grupo de La respuesta normal es un eco de la consulta.
referencias en el dispositivo esclavo 17.
El grupo consiste en tres registros del archivo 4, comienza en el registro 7 RESPONSE
(Direccin 0007). Example
held Name (Hex)
Slave Address 11
QUERY
Function 16
Example
Byte Count OD
Field Name (Hex)
Sub-Req 1, Reference Type 06
Slave Address 11
Sui}Req 1, File Number Hi 00
Function 15
Sub-Req 1, File Number Lo 04
Byte Count OD
Sub-Req 1, Starting Add, Hi 00
Sub-Req 1, Reference Type 06
Sub-Req 1, Starting Addr Lo 07
Sub-Req 1, File Number Hi 00
Sub-Req 1, Register Count Hi 00
Sub-Req 1 File NumberLo 04
SuisReq 1, Register Count Lo 03
Sub-Req 1 Starting Addr Hi 00
Sub Req 1, Register Data Hi 06
Sub-Req 1, Starting Addr Lo 07
Sub-Req 1, Register Data Lo AF
Sub-Req 1, Register Count Hi 00
Sub-Req 1, Register Data Hi 04
Sub Req 1, Register Count Lo 03
Sui>Req 1, Register Data Lo BE
Sub-Req 1, Register Data Hi 06
Sub Req 1, Register Data Hi 10
Sub-Req 1, Register Data Lo AF
Sub-Req 1, Register Data Lo OD
Sub-Req 1, Register Data Hi 04
Error Check (LRC or CRC) -
Sub-Req 1, Register Data Lo BE
Sub-Req 1, Register Data Hi 10
Sub-Req 1, Register Data Lo OD Figura 37 Escritura de Referencia General - Respuesta
Error Check (LRC or CRC) -

Figura 36 Escritura de Referencia General - Consulta

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 42 -


22 (16Hex) ) Escritura con Mscara en Registros 4X
QUERY
Descripcin Example
Modifica el contenido de un registro especificado 4XXXX utilizando la Field Name (Hex)
combinacin de una mscara AND, una mascara OR, y el contenido actual del registro. La Slave Address 11
funcin se puede utilizar para manipular bits individualmente en el registro. La Consulta Function 16
General no est permitida. Reference Address Hi 00
Esta funcin solo esta permitida en los controladores 984-785. Reference Address Lo 04
Consulta And Mask Hi 00
And_Mask Lo F2
La consulta especifica la referencia 4XXXX a escribir , la definicin para la
Or Mask Hi 00
mascara AND, y la definicin para la mascara OR.
Or-Mask Lo 25
El algoritmo de funcin es:
Error Check (LRC or CRC) -
Resultado = (Contenido Actual AND Mscara_AND) OR (Mscara_OR AND
Mscara_AND)
For example: Hex Binary Figura 38 Escritura con Mascara Consulta
Current Contents = 12 0001 0010
And_Mask = F2 1111 0010 Respuesta
Or_Mask = 25 0010 0101
La respuesta normal es un eco de la consulta. La respuesta se devuelve despus de
And_Mask = OD 0000 1101
que se haya actualizad el registro.
Result = 17 0001 0111

Ntese que si el valor de la Mscara_OR es cero, el resultado es simplemente el


RESPONSE
resultado del AND lgico del contenido actual y la Mscara_AND. Si el valor de la
Example
Mscara_AND es cero, el resultado es igual al valor de la Mscara_OR.
Field Name (Hex)
Ntese que el contenido del registro puede ser puede leer con la funcin Lectura de Slave Address 11
Registros Internos (cdigo de operacin 03). Puede, sin embargo, modificarse
Function 16
subsiguientemente por el controlador segn el programa lgico de usuario.
Reference Address Hi 00
En la pgina siguiente se muestra un ejemplo de un Escritura con Mscara en el Reference Address Lo 04
registro 5 del dispositivo esclavo 17, utilizando los valores de mscara anteriores. And Mask Hi 00
And Mask Lo F2
Or Mask Hi 00
Or-Mask Lo 25
Error Check (LRC or CRC) -

Figura 39 Escritura con Mscara en Registros 4X - Respuesta

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 43 -


23 (17 Hex) Lectura Escritura en Registros 4x Respuesta
Descripcin La respuesta normal contiene los datos del grupo de registros que se ha ledo El
campo contador de byte especifica la cantidad de bytes que sigue en el campo de datos
Desempea la combinacin de una operacin de lectura y una operacin de escritura ledos.
en una nica transaccin Modbus. La funcin puede escribir nuevos contenidos a un grupo
A continuacin se muestra un ejemplo de respuesta para la consulta realizada en la
de registros 4XXXX, y devolver el contenido de otro grupo de registros 4XXXX. La
pagina anterior:
Consulta General no est permitida. Esta funcin est permitida solamente en los
controladores 984-785.
RESPONSE
Consulta
Example
La consulta especifica la Direccin inicial y cantidad de registros del grupo a leer. Field Name (Hex)
Tambin especifica la Direccin inicial, cantidad de registros, y datos para el grupo que desea Slave Address 11
escribir. El campo contador de byte especifica la cantidad de bytes que siguen en el campo de Function 17
datos a escribir.
Byte Count 0C
A continuacin se muestra un ejemplo de consulta para leer seis registros que Read Data 1 Hi 00
comienzan en el registro 5, y para escribir tres registros que comienzan en el registro 16, del Read Data 1 Lo FE
dispositivo esclavo 17: Read Data 2 Hi OA
QUERY Example Read Data 2 Lo CD
Field Name (Hex) Read Data 3 Hi 00
Slave Address 11 Read Data 3 Lo 01
Function 17 Read Data 4 Hi t 00
Read Reference Address Hi 00 Read Data 4 Lo 03
Read Reference Address Lo 04 Read Data 5 Hi 00
Quantity to Read Hi 00 Read Data 5 Lo OD
Quantity to Read Lo 06 Read Data 6 Hi 00
Write Reference Address Hi 00 Read Data 6 Lo FF
Write Reference Address Lo OF Error Check (LRC or CRC) -
Quantity to Write Hi 00
Quantity to Write Lo 03
Byte Count 06
Figura 41 Lectura/Escritura de Registros 4X - Respuesta
Write Data 1 Hi 00
Write Data 1 Lo FF
Write Data 2 Hi 00
Write Data 2 Lo FF
Write Data 3 Hi 00
Write Data 3 Lo FF
Error Check (LRC or CRC) -

Figura 40 Lectura/Escritura de Registros - Consulta

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 44 -


24 (18 Hex) Leer Colas FIFO Respuesta
Descripcin En una respuesta normal, el contador de byte muestra la cantidad de bytes que
siguen, incluidos el contador de cola y los bytes de registro de datos (pero no incluye el
Lee los contenidos de colas Primero-Entra-Primero-Sale (FIFO) de registros campo de control de error).
4XXXX. La funcin devuelve un contador de los registros en la cola, seguida por los datos
El contador de cola es la cantidad de registros de datos en la cola (sin incluir el
de la cola. Se pueden leer hasta 32 registros: El contador, ms 31 registros de datos. El
contador de registros).
contador de registro se devuelve primero, seguido por los registros de datos de la cola.
Si el contador de cola excede de 31, se devuelve una respuesta de excepcin con un
La funcin lee los contenidos de la cola, pero no los borra. La Consulta General no
cdigo de 03 (Valor de Informacin Ilegal).
est permitida.
A continuacin se muestra un ejemplo de respuesta normal para la consulta
Esta funcin solo esta permitida en los controladores 984-785.
realizada en la pagina anterior:
Consulta
La consulta especifica la referencia 4XXXX de inicio a leer en la cola FIFO. Esta es RESPONSE
la Direccin del registro puntero utilizado en las funciones de bloque FIN y FOUT del Example
controlador. Contiene el contador de registros contenidos en la cola. Los registros de Field Name (Hex)
informacin de la FIFO siguen a esta Direccin secuencialmente. Slave Address 11
A continuacin se muestra un ejemplo de consulta de lectura a Cola FIFO en el Function 18
dispositivo esclavo 17. La consulta es para leer la cola que comienza en el registro puntero Byte Count Hi 00
41247 (04DE hex). Byte Count Lo 08
FIFO Count Hi 00
QUERY FIFO Count Lo 03
Example FIFO Data Reg 1 Hi 01
Field Name (Hex) FIFO Data Reg 1 Lo B8
Slave Address 11 FIFO Data Reg 2 Hi 12
Function 18 FIFO Data Reg 2 Lo 84
FIFO Pointer Address Hi 04 FIFO Data Reg 3 Hi 13
FIFO Pointer Address Lo DE FIFO Data Reg 3 Lo 22
Error Check (LRC or CRC - Error Check (LRC or CRC) -

Figura 42 Lectura de Cola FIFO - Consulta Figura 43 Lectura de Cola FIFO - Respuesta
En este ejemplo, el registro puntero de la FIFO (41247 en la consulta) se devuelve
con un contador de cola de 3. Los tres registros de informacin siguen al contador de cola.
Estos son 41248 (contiene 440 decimal -- 01B8 hex); 41249 (contiene 4740 1284 hex); y
41250 (contiene 4898 -- 1322 hex).

PI-MBUS-300 Modbus Protocol Captulo 2 Pag: 45 -


Captulo 3
Subfunciones de Diagnostico

Funcin 08 Modbus - Diagnsticos


Subfunciones de Diagnsticos
Funcin 08 Diagnsticos Consulta
Un ejemplo de solicitud para el dispositivo esclavo 17 para Devolver Informacin
Descripcin de Consulta. Esta consulta usa el cdigo de subfuncin cero ( 00 00 hex en campo de dos
La funcin Modbus 08 permite una serie de pruebas para comprobar el sistema de byte). La informacin devuelta se enva en campo de informacin de dos byte ( A5 37 hex).
comunicacin entre maestro y esclavo, o para comprobar diversas condiciones internas de
error dentro del esclavo. La Consulta General no est permitida.
QUERY
La funcin usa en la consulta un cdigo de subfuncin de dos byte para definir el Example
tipo de prueba se va ha realizar. El esclavo devuelve, en una respuesta normal, tanto el Field Name (Hex)
cdigo de operacin como el de subfuncin.
Slave Address 11
La mayora de las consultas de diagnstico utilizan un campo de informacin de dos Function 08
byte para enviar informacin o control de diagnstico al esclavo. Parte de los diagnsticos
Subfunction Hi 00
motivan que el esclavo devuelva informacin en el campo de informacin de una respuesta
normal. Subfunction Lo 00
Data Hi A5
Efectos del Diagnstico en el Esclavo
Data Lo 37
En General, la emisin de una funcin de diagnstico a un dispositivo esclavo no
Error Check (LRC or CRC) -
afecta al programa de usuario que esta trabajando en el esclavo. La lgica de usuario, las
entradas discretas y los registra, no se pueden acceder desde los diagnsticos. Ciertas Figura 44 Diagnstico- Consulta
funciones pueden restablecer opcionalmente contadores de error en el esclavo.
Un dispositivo esclavo puede, sin embargo, ser forzado a modo Solo Escucha Respuesta
Solamente en el cual puede recibir mensajes por el sistema de comunicaciones pero no los
La respuesta normal a la consulta de Devolver Informacin es devolver la misma
responden. Esto puede afectar al resultado de su programa de aplicacin si este depende de
informacin. Los cdigos de funcin y subfuncin tambin se devuelven.
intercambios de informacin con algn dispositivo esclavo. Generalmente, el modo se fuerza
para retirar un dispositivo esclavo que funciona mal en el sistema de comunicaciones.
RESPONSE
Como se Organiza esta Informacin en la Gua
Example
En la pagina siguiente se muestra un ejemplo de consulta de diagnsticos y su Field Name (Hex)
respuesta. Estos muestran la ubicacin del cdigo de operacin, el cdigo de subfuncin, y el Slave Address 11
campo de informacin dentro de los mensajes. Function 08
En paginas posteriores se muestra una lista de cdigos subfuncin permitidos en los Subfunction Hi 00
controladores. Cada cdigo de subfuncin se lista con un ejemplo de los contenidos de Subfunction Lo 00
campo de informacin que se aplicara en ese diagnstico. Data Hi A5
Data Lo 37
Error Check (LRC or CRC) -

Figura 45 Diagnsticos - Respuesta


Los campos de informacin en las respuestas a otras clases de consulta pueden
contener contadores de error u otra informacin solicitada por el cdigo de subfuncin.
08 Diagnsticos ( Continuacin ) 14 (OE Hex) Devuelve Contador de Mensajes del Esclavo
El campo de informacin de la respuesta devuelve la cantidad de mensajes dirigidos
11 (OB Hex) Devuelve Contador de Mensaje de Bus al esclavo o de consulta general, que el esclavo ha procesado desde su ultimo reinicio, ultima
El campo de informacin de la respuesta devuelve la cantidad de mensajes que el operacin de limpieza de contadores, o ultimo arranque.
esclavo ha detectado en el sistema de comunicaciones desde su ultimo reinicio, ultima
operacin de limpieza de contadores, o ultimo arranque.
Subfunction Data Field (Query) Data Field (Response)
00 OE 00 00 Slave Message Count
Subfunction Data Field (Query) Data Field (Response)
00 OB 00 00 Total Message Count
15 (OF Hex) Devuelve Contador No Respuesta del Esclavo
El campo de informacin de la respuesta devuelve la cantidad de mensajes dirigidos
12 (OC Hex) Devuelve Cont. Error Bus de Comunicaciones al esclavo y no contesto ( ni en respuesta normal, ni en respuesta de excepcin), desde su
El campo de informacin de la respuesta devuelve la cantidad de errores de CRC ultimo reinicio, ultima operacin de limpieza de contadores, o ultimo arranque.
detectados por el esclavo desde su ultimo reinicio, ultima operacin de limpieza de
contadores, o ultimo arranque.
Subfunction Data Field (Query) Data Field (Response)
00 OF 00 00 Slave No Response Count
Subfunction Data Field (Query) Data Field (Response)
00 OC 00 00 CRC Error Count
16 (10 Hex) Devuelve Contador NAK del Esclavo
El campo de informacin de la respuesta devuelve la cantidad de mensajes dirigidos
13 (OD Hex) Devuelve Cont. Error de Excepcin en el Bus al esclavo a los que devolvi una, respuesta de excepcin, Negativa de Reconocimiento
El campo de informacin de la respuesta devuelve la cantidad de respuestas de (NAK) desde su ultimo reinicio, ultima operacin de limpieza de contadores, o ultimo
excepcin Modbus devueltas por el esclavo desde su ultimo reinicio, ultima operacin de arranque. Las respuestas de excepcin se describen y estn listadas en el Apndice A.
limpieza de contadores, o ultimo arranque. Las respuestas de excepcin se describen y estn
listadas en el Apndice A. Subfunction Data Field (Query) Data Field (Response)
00 10 00 00 Slave NAK Count
Subfunction Data Field (Query) Data Field (Response)
00 OD 00 00 Exception Error Count

PI-MBUS-300 Modbus Protocol Captulo 3 Pag: 49 -


08 Diagnsticos ( Continuacin ) Estadstica de la Red Modbus Plus
Word Bits Meaning
21 (15 Hex) ) Obtener/Borrar Estadsticas Modbus Plus
oo Node type ID:
Devuelve una serie de 54 palabras de 16 bits (108 bytes) en el campo de o Unknown node type
informacin de la respuesta (esta funcin difiere de la longitud normal de dos byte en el
1 Programmable controller node
campo de informacin). La informacin contiene las estadsticas del procesador Modbus Plus
2 Modbus bridge node
en el dispositivo esclavo.
3 Host computer node
Adems del Cdigo de Operacin (08) y el cdigo de Subfuncin (00 15 hex) en la
4 Bridge Plus node
consulta, se utiliza un campo de dos bytes como Cdigo de Operacin para especificar que se
desea Obtener Estadsticas o Borrar Estadsticas. Las dos operaciones son exclusivas, eso es, 5 Peer I/0 node

la operacin Obtener no puede borrar la estadstica, y la operacin Borrar no devuelve la 01 0...11 Software version number in hex (to read, strip bits 12-15 from word)
estadstica antes de borrarla. La estadstica tambin se borra cuando se arranca el dispositivo 12...14 Reserved
esclavo. 15 Defines Word 15 error counters (see Word 15)
En la consulta el campo de operacin sigue inmediatamente al campo subfuncin: Most significant bit defines use of error counters in Word 15. Least significant half of upper byte, plus lower byte, contain
software version.
- Un valor 00 03 especifica la Operacin Obtener Estadstica. Layout: Upper Byte Lower Byte
- Un valor 00 04 especifica la Operacin Borrar Estadstica. [ ] [ Software version in hex ]
Most significant bit defines Word 15 error counters
(see Word 15)
CONSULTA: Esta es la secuencia de campos en la consulta:
02 Network address for this station
03 MAC state variable:
Function Subfunction Operation
o Power up state
08 00 15 00 03 (Get Statistics)
1 Monitor offtine state
08 00 15 00 04 (Clear Statistics)
2 Duplicate offline state
3 Idle state
RESPUESTA OBTENER ESTADSTICA: Esta es la secuencia de campos en la 4 Use token state
respuesta normal a una consulta de Obtener Estadstica:
5 Work response state
6 Pass token state
Function Subfunction Operation Byte Count Data
7 Solicit response state
08 0015 00 03 00 6C Words 00 - 53
8 Check pass state
9 Claim token state
RESPUESTA BORRAR ESTADSTICA : La respuesta normal a una consulta de 10 Claim response state
Borrar Estadsticas es una copia de la consulta: 04 Peer status (LED code); provides status of this unit relative to the network:
0 Monitor link operation
Function Subfunction Operation
32 Normal link operation
08 00 15 00 04
64 Never getting token
96 Sole station
128 Duplicate station

PI-MBUS-300 Modbus Protocol Captulo 3 Pag: 50 -


Word Bits Meaning
08 Diagnsticos ( Continuacin )
18 LO Bad inetrnal packet length error counter

Estadstica de la Red Modbus Plus (Continuacin) Hl Bad MAC function code error counter
19 LO Communication counter
Word Bits Meaning
Hl Communication failed error counter
05 Token pass counter; increments each time this station gets the token
20 LO Good receive packet success counter
06 Token rotation time in ms
Hl No response received error counter
07 LO Data master failed during token ownership bit map
21 LO Exception response received error counter
Hl Program master failed during token ownership bit map
Hl Unexpected path error counter
08 LO Data master token owner work bit map
22 LO Unexpected response error counter
Hi Program master token owner work bit map
Hl Forgoten transaction error counter
09 LO Data slave token owner work bit map
23 LO Active station table bit map, nodes 1...8
Hl Program slave token owner work bit map
Hl Active station table bit map, nodes 9...16
10 Hl Data slave/get slave command transfer request bit map
24 LO Active station table bit map, nodes 17...24
11 LO Program master/get master rsp transfer request bit map
Hl Active station table bit map, nodes 25...32
Hl Program slave/get slave command transfer request bit map
25 LO Active station table bit map, nodes 33...40
12 LO Program master connect status bit map
Hi Active station table bit map, nodes 41...48
Hl Program slave automatic logout request bit map
26 LO Active station table bit map, nodes 49...56
13 LO Pretransmit deferral error counter
Hl Active station table bit map, nodes 57...64
Hl Receive buffer DMA overrun error counter
27 LO Token station table bit map, nodes 1...8
14 LO Repeated command received counter
Hl Token station table bit map, nodes 9...16
Hl Frame size error counter
28 LO Token station table bit map, nodes 17...24
15 If Word 1 bit 15 is not set, Word 15 has the following meaning:
Hl Token station table bit map, nodes 25...32
LO Receiver collision-abort error counter
29 LO Token station table bit map, nodes 33...40
HI Receiver alignment error counter
Hl Token station table bit map, nodes 41...48
If word 1 bit 15 is set, Word 15 has then following meaning:
30 LO Token station table bit map, nodes 49...56
LO Cable A framing error
Hl Token station table bit map, nodes 57...64
Hl Cable B. framing error
31 LO Global data present table bit map, nodes 1...8
16 LO Receiver CRC error counter
Hl Global data present table bit map, nodes 9...16
Hl Bad packet-length error counter
32 LO Global data present table bit map, nodes 17...24
17 LO Bad link-address error counter
Hl Global data present table bit map, nodes 25...32
Hl Transmit buffer DMA-underrun error counter
33 LO Global data present table bit map, nodes 33...40
Hl Global data present table bit map, nodes 41...48
34 LO Global data present table map, nodes 49...56
Hl Global data present table bit map, nodes 57...64

PI-MBUS-300 Modbus Protocol Captulo 3 Pag: 51 -


08 Diagnsticos ( Continuacin )
Word Bits Meaning
Estadstica de la Red Modbus Plus (Continuacin) 50 LO Program slave input path C1 command processed counter
Word Bits Meaning Hl Program slave input path C2 command processed counter
35 LO Receive buffer in use bit map, buffer 1...8 51 LO Program slave input path C3 command processed counter
Hl Receive buffer in use bit map, buffer 9...16 Hl Program slave input path C4 command processed counter
36 LO Receive buffer in use bit map, buffer 17...24 52 LO Program slave input path C5 command processed counter
Hl Receive buffer in use bit map, buffer 25...32 Hl Program slave input path C6 command processed counter
37 LO Receive buffer in use bit map, buffer 33...40 53 LO Program slave input path C7 command processed counter
Hl Station management command processed initiation counter Hl Program slave input path C8 command processed counter
38 LO Data master output path 1 command initiation counter
Hl Data master output path 2 command initiation counter
39 LO Data master output path 3 command initiation counter
Hl Data master output path 4 command initiation counter
40 LO Data master output path 5 command initiation counter
Hl Data master output path 6 command initiation counter
41 LO Data master output path 7 command initiation counter
Hl Data master output path 8 command initiation counter
42 LO Data slave input path 41 command processed counter
Hl Data slave input path 42 command processed counter
43 LO Data slave input path 43 command processed counter
Hl Data slave input path 44 command processed counter
44 LO Data slave input path 45 command processed counter Apndice A
Hl Data slave input path 46 command processed counter
45 LO
Hl
Data slave input path 47 command processed counter
Data slave input path 48 command processed counter
Respuestas de
46 LO
Hl
Program master output path 81 command initiation counter
Program master output path 82 command initiation counter
Excepcin
47 LO Program master output path 83 command initiation counter
Hl Program master output path 84 command initiation counter
48 LO Program master command initiation counter
Hl Program master output path 86 command initiation counter
49 LO Program master output path 87 command initiation counter
Hl Program master output path 88 command initiation counter

PI-MBUS-300 Modbus Protocol Captulo 3 Pag: 52 -


Respuestas de excepcin ms significativo (MSB ) en valor 0 (sus La Figura 46 muestra un ejemplo En la pagina siguiente se muestra
valores son todos por debajo de 80 de consulta del maestro y la respuesta de un listado de cdigos de excepcin.
Excepto en Consulta General, hexadecimal). En una respuesta de excepcin del esclavo Los ejemplos de
cuando un dispositivo maestro enva una excepcin, el esclavo pone el MSB del campo se muestran en hexadecimal.
consulta a un dispositivo esclavo espera cdigo de operacin a 1. Esto hace que el
una respuesta normal. Pueden ocurrir valor de cdigo de operacin en una
cuatro eventos posibles ente la consulta respuesta de excepcin sea 80 Contents Example
de un maestro: hexadecimal ms alto que el valor que Slave Address 0A
Si el dispositivo esclavo devolvera en una respuesta normal.
Function 01
recibe la consulta sin un error de Con el MSB del cdigo de Starting Address Hi 04
comunicacin , y puede realizar la operacin a 1, el programa de aplicacin Starting Address Lo A1
consulta normalmente, devuelve una del maestro reconoce la respuesta de No. of Coils Hi 00
respuesta normal. excepcin y puede examinar el campo de
No. of Coils Lo 01
Si el esclavo no recibe informacin para el cdigo de excepcin.
LRC 4F
la consulta debido a un error de Campo de Informacin : En
EXCEPTION RESPONSE
comunicacin, no devuelve una respuesta normal, el esclavo puede Contents Example
respuesta. El programa maestro podr devolver informacin o estadsticas en el
Slave Address 0A
procesar una condicin de timeout campo de informacin (cualquier
Function 81
para la consulta. informacin que se solicite en la
ExceptionCode 02
Si el esclavo recibe la consulta). En una respuesta de excepcin,
LRC 73
consulta, pero detecta un error de el esclavo devuelve un cdigo de
comunicacin (paridad, LRC, o excepcin en el campo de informacin.
CRC), no devuelve respuesta. . El Este define la situacin del esclavo que Figura 46 Consulta de Master y
programa maestro podr procesar una provoc la excepcin. Respuesta de Excepcin por el Esclavo
condicin de timeout para la
consulta. En este ejemplo, el maestro
Si el esclavo recibe la dirige una consulta al dispositivo esclavo
consulta sin un error de 10 (OA hex). El cdigo de operacin (01)
comunicacin, pero no puede pretende una operacin de lectura de
realizarla (por ejemplo, si la solicitud estados de bobinas. Solicita el estado de
es para leer una bobina o registro que la bobina 1245 (04 A1 hex). Obsrvese
no existe), el esclavo devolver una que solo se quiere leer una bobina, como
respuesta de excepcin informando al se especifica en el campo numero de
maestro de la naturaleza del error. bobinas (0001).
El mensaje de respuesta de Si la Direccin de la bobina no
excepcin tiene dos campos que lo existe en el dispositivo esclavo, el esclavo
diferencian de una respuesta normal: devolver una respuesta de excepcin con
El Campo Cdigo de el cdigo de excepcin mostrado (02).
Operacin: En una respuesta normal, el Este especifica que es una direccin ilegal
esclavo devuelve el cdigo de operacin para el esclavo. Si, por ejemplo, el
de la consulta original en el campo de esclavo es un 984-385 con 512 bobinas se
cdigo de operacin de la respuesta. devolver este tipo de respuesta de
Todos cdigos de funcin tienen un bit excepcin.
PI-MBUS-300 Modbus Protocol Captulo 3 Pag: 53 -
Cdigos de Excepcin
Code Name
01 ILLEGAL FUNCTION The function code received in the query is not an allowable action for
the slave.
If a Poll Program Complete command was issued, this code indicates
that no program function preceded it.
02 ILLEGAL DATA ADDRESS The data address received in the query is not an allowable address for
the slave.
03 ILLEGAL DATA VALUE A value contained in the query data field is not an allowable value for
the slave.
04 SLAVE DEVICE FAILURE An unrecoverable error occurred while the slave was attempting to
perform the requested action. Apndice B
05 ACKNOWLEDGE The slave has accepted the request and is processing it, but a long
duration of time will be required to do so. This response is relurned to
prevent a timeout error from occurring in the master. The master can
next issue a Poll Program Complete message to determine if
processing is completed.
Notas de
06 SLAVE DEVICE BUSY The slave is engaged in processing a long-duration program
command. The master should retransmit the message later when the
Aplicacin
slave is free.
07 NEGATIVE ACKNOWLEDGE The slave cannot perform the progra function received in the query.
This code is returned for an unsuccessful programming request using
function code 13 or 14 decimal. The master should request diagnostic
or error information from the slave. Este apndice
08 MEMORY PARITY ERROR The slave attempted to read extende memory, but detected a parity contiene informacin y
error in the memory. The master can retry the request, but service may sugerencias para uso en
be required on the slave device.
aplicaciones Modbus.



Parmetros
Mximos de Control para
Consultas / Respuesta de
Modicon
Tiempos
Estimados en Transacciones
Serie
Notas de
Aplicacin para
Controladores 584 y
984A/B/X

PI-MBUS-300 Modbus Protocol Captulo 3 Pag: 54 -


Read Exception Status N/A 8 coils
Parmetros Mximos en 484 884
Diagnostics N/A N/A
Consulta / Respuesta Estos valores son para Program 484 Not supported
Function
Not supported
Description Query Respo

controladores de 8K. Mirar en 484 Users Poll 484 Not supported Not supported
Read Coil Status 2000 coils 2000 coil
Los listados de esta seccin
Guide para controladores de menor talla. Read Input Status 2000 inputs 2000 inp
muestran la mxima cantidad de datos Fetch Comm. Event Ctr. N/A N/A
Read Holding Registers 125 registers 125 regis
utilizados en las consultas y respuestas Fetch Comm. Event Log N/A 70 data bytes
Read Input Registers 125 registers 125 regis
realizadas entre un master y sus Function Description Query ResponseProgram Controller 33 data bytes 33 data bytes
Force Single Coil 1 coil 1 coil
controladores esclavos. Todos los cdigos Read Coil Status 512 coils 512 coils Poll Controller N/A 33 data bytes
PresetSingle Register 1 register 1 registe
de funcin as como las cantidades estn Read Input tatus 512 inputs 512 inputs Force Multiple Coils 800 coils 800 coils
Read Exception Status N/A 8coils
en decimal. Read Holding Registers 254 registers 254 registersPreset Multiple Registers 100 registers 100 registers
Diagnostics N/A N/A
Read Input Registers 32 registers 32 registers Report Slave ID
184/384 N/A N/A
Program 484 Not supported Not supp
ForceSingle oil 1 coil 1 coil Program 884/M84 Not supported Not supported
ction Description Query Response Poll 484 Not supported Not supp
Preset Single Register 1 register 1 register Reset Comm. Link Not supported Not supported
Read Coil Status 800 coils 800 coils Fetch Comm. Event Ctr. Not supported Not supp
Read Exception S atus N/A 8 coils ReadGeneral Reference (1) (1 )
2 Read Input Status 800 inputs 800 inputs Fetch Comm. Event Log Not supported Not supp
Diagnostics N/A N/A Write General Reference (1) (1)
3 Read Holding Registers 100 registers 100 registers Program Controller Not supported Not supp
Program 484 16 data bytes 16 data bytes
4 Read Input Registers 100 registers 100 registers Poll Controller Not supported Not supp
Poll 484 N/A 16 data bytes
5 Force Single Coil 1 coil 1 coil Notes: Force Multiple Coils 800 coils 800 coils
Fetch Comm. Event Ctr. Not supported Not supported
6 Prese Single Register 1 register 1 register
Fetch Comm. Event Log Not supported Not supported
(1) La longitud mxima del Preset Multiple Registers 100 registers 100 regis
7 Read Exception Status N/A 8coils mensaje no debe exceder de 256 bytes. Report Slave ID N/A N/A
Program Controller Not supported Not supported
8 Diagnostics N/A N/A Program 884/M84 (1) (1)
Poll Controller Not supported Not supported
9 Program 484 Not supported Not supported Reset Comm. Link N/A N/A
Force Multiple Coils 800 coils 800 coils
10 Poll 484 Not supported Not supported Read General Reference Not supported Not supp
Preset Multiple Registers 60 registers 60 registers
11 Fetch Comm. Event Ctr. N/A N/A Write General Reference Not supported Not supp
Report Slave ID N/A N/A
12 Fetch Comm. Event Log N/A 70 data bytes
Program 884/M84 Not supported Not supported
13 Program Controller 32 data bytes 32 data bytes
Reset Comm. Link Not supported Not supported Notes:
14 Poll Controller N/A 32 data bytes
15 Force Multiple Coiis 800 coils 800 coils
Read General Reference Not supported Not supported (1) La longitud mxima del
Write General Reference Not supported Not supported mensaje no debe exceder de 256 bytes.
16 Preset Multiple Registers 100 registers 100 registers
17 Report Slave ID /A N/A
18 Program 88 / M84 Not supported Not suported
19 Reset Comm. Link Not supported
Parmetros Mximos en
Not supported
20 Read General Reference Not supported Consulta / Respuesta
Not supported
21 Write General Reference Not supported (Continuacin)
Not supported

584
Function Description Query Response
Read Coil Status 2000 coils 2000 coils
Read Input Status 2000 inputs 2000 inputs
Read Holding Registers 125 registers 125 registers
Read Input Registers 125 registers 125 registers
Force Single Coil 1 coil 1 coil
Preset Single Register 1 register 1 register

PI-MBUS-300 Modbus Protocol Captulo 3 Pag: 55 -


Parmetros Mximos en 984 Tiempos Estimados en tiempo es despreciable. Para
transacciones Serie los mdems J478, el tiempo
Consulta / Respuesta Function Description Query Response es de unos 5 mseg.
(Continuacin) Read Coil Status 2000 coils 2000 coils
La Secuencia de (B) Usar la
Read Input Status 2000 inputs 2000 inputs
M84 Transaccin formula siguiente para
Read Holding Registers 125 registers 125 registers
La secuencia siguiente de estimar los tiempos de
ction Description Query ResponseRead Input Registers 125 registers 125 registers
eventos se produce durante una transmisin :
1 Read Coil Status 64 coils 64 coils Force Maximu Coil 1 coil 1 coil
2 Read Input Status 64 inputs 64 inputs Preset Single Register 1 register 1 register
transaccin serie Modbus. Las letras entre
3 Read Holding Registers 32 registers 32 registers Read Exception Status
parntesis se refieren a las notas de
N/A 8 coils
4 Read Input Registers 4 registers 4 registers
secuencia al final de la pagina.
Diagnostics N/A N/A
5 Force Single Coil 1 coil 1 coil Program 484 Not supported Not supported (C) El mensaje
6 Preset Single Register 1 register 1 register Poll 484 Not supported Not supported 1. El Master Modbus se procesa al final
7 Read Exception Status N/A 8 coils Fetch Comm. Event Ctr. N/A N/A Modbus compone el del scan. El mayor retardo
8 Diagnostics N/A N/A Fetch Comm. Event Log N/A 70 data bytes
mensaje. es un el tiempo de un scan.
9 Program 484 Not supported Not supponed
Program Controller 33 data bytes 33 data bytes 2. El mdem de Este ocurre si el controlador
10 Poll 484 Not supported Not supported la unida master comprueba ya ha empezado un nuevo
Poll Controller N/A 33 data bytes
11 Fetch Comm. Event Ctr. Not supported Not supported el estado de las seales RTS scan. El retardo medio es la
Force Multiple Coils 800 coils 800 coils
y CTS. (A) mitad del tiempo de scan.
12 Fetch Comm. Event Log Notsupported NotsupportedPreset Multiple Registers 100 registers 100 registers
13 Program Controller Not supported Not supported
Report Slave ID N/A N/A 3. El mensaje El tiempo empleado por los
14 Poll Controller Not supported Not supported consulta se transmite al puertos Modbus al final del
Program 884/M84 Not supported Not supported
15 Force Multiple Coils 64 coils 64 coils esclavo. (B) scan del controlador (antes
Reset Comm. Link Not supported Not supported
4. El esclavo de que se empiece un nuevo
16 Preset Multiple Registers 32 registers 32 registers Read General Reference (1) (1)
procesa el mensaje consulta. scan) depende del modelo
17 Report Slave ID N/A N/A Write General Reference (1) (1)
(C) de controlador . Los
18 Program 884/M84 (1) (1)
tiempos para cada modelo
19 Reset Comm. Link N/A N/A 5. El esclavo se detallan en la pgina
Notes:
20 Read General Reference Not supported Not supported calcula el campo de control siguiente.
(1) La longitud mxima del
21 Write General Reference Not supported Not supported 1000 x (cantidad de caracteres)
mensaje no debe exceder de 256 bytes.
x (bitsdepor caracter)
error. (E)
Tiempo = 6. El mdem de
Notes: Velocidad en baudios la unida esclava comprueba
el estado de las seales RTS
(1) La longitud mxima del
y CTS. (F)
mensaje no debe exceder de 256 bytes.
7. El mensaje
respuesta se transmite al
master. (B)
8. La aplicacin
del master acta segn la
respuesta del esclavo.
Notas de secuencias
(A) Si los pins
RTS y CTS estn
puenteados entre ellos, el

PI-MBUS-300 Modbus Protocol Captulo 3 Pag: 56 -


(C) Continuacin : procesar durante un periodo Notas del 584 y 984A / B / X (dos puntos, CR, LF)
Para los controladores 484 el de servicio del puerto Pueden producirse bloqueos
tiempo es aproximadamente Modbus es la siguiente : Estas notas de aplicacin solo aleatorios de los puertos con estos tipos
de 1,5 mseg. El puerto Discretas Registros son aplicables a los controladores de mensaje.
Modbus est disponible en Modicon 584 y 984A / B / X.
Micro 84 16 4 Terminacin
las bases de cualquier 1847384 800 100 Rango de de los Mensajes ASCII :
J470/J474/J475. 484 32 16 Baudios : Cuando se usan Los mensajes ASCII suelen
Para los controladores 584 y 984 584 64 32 los dos puertos de terminar normalmente con
el tiempo es 984A/B/X 64 32 comunicacin, puerto 1 y 2, el par CRLF. Con los
aproximadamente de 1,5 984-X8X 1000 125 la velocidad combinada controladores 584 y 984A /
mseg. para cada puerto mxima permitida es de B / X , los mensajes ASCII
Nota : 984-X8X se refiere a
Modbus. Los puertos se 19.200 baudios. pueden terminar con el
los modelos de 984
atienden secuencialmente, montados en racks (984- Bloqueo de campo LRC (sin los enviar
empezando por el nmero 385, -685, etc.) Puertos : Cuando se usa los caracteres CRLF),
uno. transmisin ASCII, se dejando un intervalo de al
Para los controladores 884, el
Para los controladores 184/384 tiempo de proceso de datos deben evitar mensajes con menos un segundo despus
el tiempo varia en funcin mltiples es el siguiente: longitud cero, o mensajes del campo LRC. Si sucede
de la cantidad de sin direccin de unidad. Por esto, el controlador asume
Read 768 coils : 14 scans Force single coil : 3 scans
informacin manejada. El ejemplo, un mensaje ilegal que el mensaje ha concluido
Read 256 inputs : 7 scans Preset registers : 3 scans
rango es desde un mnimo es : normalmente.
Read 125 outout registers : 5 scans Force 768 coils : 18 scans
de 0,5 mseg. hasta un : CR LF
Read 125 input registers : 8 scans Preset 100 registers : 10 scans
mximo de 6 mseg. (para
100 registros), o 7 mseg. (E) El tiempo de
(para 800 bobinas). Si el clculo del LRC es menor
panel de programacin se de 1 mseg. El tiempo de
esta usando con el clculo del CRC es
controlador, el puerto aproximadamente 0,3 mseg.
Modbus queda bloqueado. por cada dato de 8 bits
(C) Las funciones devuelto en la respuesta.
Modbus 1 a 4, 15 y 16
permiten al master consultar
mas datos que los que se
pueden procesar durante el
tiempo permitido por el
esclavo para el puerto
Modbus. Si el esclavo no
puede procesar todos los
datos, se guarda los datos en
un buffer y los continua
procesando en los
siguientes scans.
La cantidad de
datos que se pueden
PI-MBUS-300 Modbus Protocol Captulo 3 Pag: 57 -
Apndice C
Generacin de LRC/CRC

o Generacin LRC
o Generacin CRC

PI-MBUS-300 Modbus Protocol Apndice C Pag: 58 -


Generacin de LRC Ejemplo
El Control de Redundancia Se muestra a continuacin un ejemplo,
Longitudinal (LRC) es un campo de un byte, que en lenguaje C, de generacin de LRC :
contiene un valor binario de 8 bits. El LRC lo La funcin tiene dos argumentos
calcula la unidad transmisora y lo aade al unsigned char *auchMsg : Un puntero del
buffer de mensaje que contiene el dato binario que
mensaje. La unidad receptora recalcula el LRC se usara
durante la recepcin del mensaje y compara el para la generacion del LRC.
valor calculado con el campo de LRC recibido. unsigned short usDataLen ; La cantidad de
bytesd que contiene el mensaje
Si no son iguales los dos valores se da un error
La funcin devuelve el LRC como
como resultado.
UNSIGNED CHAR
El LRC se calcula sumando los bytes (8
bits) del mensaje sucesivamente, descartando los Funcin para generar LRC
acarreos, y complementando a dos el resultado. static unsigned char LRC(auchMsg ,usDataLen)
unsigned char *auchMsg ;
El LRC es un campo de 8 bits, cada nueva suma /* message to calculate LRC upon */
de un carcter que de como resultado un valor unsigned short usDataLen ;
mayor de 255 decimal provoca un desborde /* quantity of bytes in message */
dejando el campo con valor cero. Como no existe {
unsigned char uchLRC = 0;
el noveno bit el acarreo se descarta /* LRC char initialized */
automticamente. while (usDataLen--)
/* pass through message buffer */
uchLRC += *auchMsg+
El procedimiento para la generacin de +; /* add buffer byte without carry */
LRC es : return ((unsigned char)(-
((char)uchLRC))) ; /* return twos complement */
1. Sumar todos los bytes }
del mensaje, excluyendo el carcter
de inicio (:) y los dos caracteres
finales CRLF. Dejar el resultado en
un campo de 8 bits, por tanto todos
los acarreos se descartan.
2. Restar el valor
resultado a FF hex. (todo a 1s), para
calcular el complemento a uno.
3. Sumar 1 al resultado
para realizar el complemento a 2.
Poner el LRC dentro del
mensaje
Cuando los 8 bits de LRC (2 caracteres
ASCII) se transmiten con el mensaje, se
transmite primero el carcter de mayor orden,
seguido del carcter de menor orden. Por
ejemplo, si el valor de LRC es 61 hex. (0110
0001) :

Colon Addr Func Data Data Data Data Data


Count

Figura 47 Secuencia de caracteres LRC

PI-MBUS-300 Modbus Protocol Apndice C Pag: 59 -


Generacin de CRC
Repeat Steps 2 through 5 for the next 8-bit byte of the message. Continue doing this until all bytes have
El Control de Redundancia Cclica been processed
(CRC) es un campo de dos bytes, contiene unThe final contents of the CRC register is the CRC value.
valor binario de 16 bits. El CRC lo calcula la When the CRC is placed into the message, its upper and lower bytes must be swapped as described
unidad transmisora y lo aade al mensaje. La
unidad receptora recalcula el CRC durante la Poner el CRC dentro del
recepcin del mensaje y compara el valor Mensaje
calculado con el campo de CRC recibido. Si no
son iguales los dos valores se da un error como Cuando se transmite los 16 bits de CRC
resultado. (dos bytes de 8 bits), se transmite primero el byte
de menor orden, seguido del byte de mayor
El calculo de CRC se empieza cargando
orden. Por ejemplo, si el valor de CRC es 1241
un registro de 16 bits todo a 1s. El proceso
hex. (0001 0010 0100 0001) :
continua aplicando sucesivamente los bytes de 8
bits del mensaje al contenido actual del registro.
Solo se usan los 8 bits de datos de cada carcter
para la generacin del CRC. No se aplican el bit Addr Func Data Data Data Data Data LRC LRC
de Inicio, el bit Final ni los bits de Paridad. Count Hi LO

Durante la generacin del CRC, se 41 12


realiza una OR EXCLUSIVA con los 8 bits de Figura 48 Secuencia de caracteres CRC
cada carcter y el contenido del registro. El
resultado es desplazado hacia el bit menos
significativo (LSB)y se rellena con cero la Ejemplo
posicin del bit mas significativo (MSB) dejado. Se muestra a continuacin un ejemplo,
Se analiza el LSB. Si era 1 el registro realiza una en lenguaje C, de generacin de CRC. Se
OR EXCLUSIVA con un valor fijo. Si era 0 no precarga dos matrices con todos los valores
se realiza la operacin. posibles de CRC, indexadas con la funcin
Este proceso se repite hasta realizar incremento del buffer de mensaje. Una matriz
ocho desplazamientos. Despus del ultimo contiene los 256 posibles valores de CRC para el
(octavo) desplazamiento, el siguiente carcter (8 byte alto del campo de CRC de 16 bits, en la otra
bits) realiza una OR EXCLUSIVA con el matriz contiene los valores del byte menos
contenido del registro, y el proceso se repite significativo.
ocho veces mas como se ha descrito Indexando el CRC de esta manera se
anteriormente. El valor final del registro despus consigue una mejor ejecucin que si
de haber aplicado todos los caracteres del calculramos un nuevo valor de CRC para nuevo
mensaje es el valor de CRC. carcter del mensaje.
El procedimiento descrito es el
siguiente :
1. Load a 1 6-bit register with FFFF hex (all 1's). Call this the CRC register.
2. Exclusive OR the first 8-bit byte of the message with the low-order byte of the 1 6-bit CRC register,
putting the result in the CRC register.
3. Shift the CRC register one bit to the right (toward the LSB), zero filling the MSB. Extract and examine
the LSB.
4. (If the LSB was 0): Repeat Step 3 (another shift).
(If the LSB was 1): Exclusive OR the CRC register with the polynomial value A001 hex (1010 0000 0000
0001).
5. Repeat Steps 3 and 4 until 8 shifts have been perfommed. When this is done a complete 8-bit byte will
have been processed.

PI-MBUS-300 Modbus Protocol Apndice C Pag: 60 -


Generacin de CRC
(continuacin)
Ejemplo (continuacin)
La funcin tiene dos argumentos
unsigned char *auchMsg : Un puntero del
buffer de mensaje que contiene el dato binario que
se usara
para la generacion del CRC.
unsigned short usDataLen ; La cantidad de
bytesd que contiene el mensaje
La funcion devuelve el CRC como
UNSIGNED SHORT.
Funcin para generar LRC
unsigned short CRC16 (puchMsg ,usDataLen)
unsigned char *puchMsg ;
/* message to calculate LRC upon */
unsigned short usDataLen ;
/* quantity of bytes in message */
{
unsigned char uchCRCHi =
0xFF; /* high byte CRC initialized */
unsigned char uchCRCLo =
0xFF; /* low byte CRC initialized */
unsigned uIndex ;
/* will index into CRC lookup table */
while (usDataLen--)
/* pass through message buffer */
{
uIndex = uchCRCHi
*puchMssg++ /* calculate the CRC */
uchCRCHi = uchCRCLo
auchCRCHi(uIndex) ;
uchCRCLo =
auchCRCLo (uIndex) ;
}
return (uchCRCHi << 8
uchCRCLo) ;
}

PI-MBUS-300 Modbus Protocol Apndice C Pag: 61 -