Está en la página 1de 11

157FHF01 E

MODBus RTU en los registradores CAMRegis

1. INTRODUCCIÓN
Este documento está orientado a describir al usuario el funcionamiento del protocolo serie de
comunicaciones MODBus RTU implementado por AKO en los registradores de datos CAMRegis
(AKO-15740/42, AKO-15750/52 y AKO-15780/82). Se debe tener en cuenta que se asume que el usuario que
quiera interactuar con cualquiera de nuestros equipos con capacidad de comunicación, tiene conocimientos
mínimos del protocolo.

2. ESPECIFICACIONES TÉCNICAS
2.1 COMUNICACIONES RS-485
A nivel físico, los equipos CAMRegis admiten su conexión a un bus de comunicaciones RS-485 con
otros equipos, se trata de una conexión multipunto donde la distancia máxima es de 1200 m. La configuración
de dicho bus debe ser idéntica a la presentada en la siguiente tabla:

CONFIGURACIÓN SERIE RS-485

Baud Rate 9600 bauds

Longitud de datos 8 bits

Bit de paridad No

Bits de Stop 1 bit

2.2 PROTOCOLO MODBus


El protocolo define una configuración de red donde convive un dispositivo gestor de la red (máster), y
uno o varios esclavos, hasta un máximo de 32 dispositivos conectados en red (250 en caso de colocar
repetidores en la red RS-485).
Dentro de los dos modos de transmisión definidos por el protocolo: ASCII y RTU (Unidad de terminal remota),
AKO adopta el RTU. Hay que decir que en una red de dispositivos conectados mediante el protocolo MODBUS
no se pueden compartir dispositivos utilizando diferentes modos de transmisión.
El formato de datagrama en modo RTU es:

Inicio Trama Dirección Función Datos CRC Fin Trama

1 byte 1 entero
3.5T* Máx 125 enteros 1 entero 3.5T*
Rango [1..249]

Longitud máxima 255 bytes

NOTA: la unidad mínima de dato es el entero (2 bytes)


*Siendo T el tiempo de transmisión de un carácter.

-1-
3. FUNCIONES MODBus DEFINIDAS
AKO resuelve la gestión de sus dispositivos utilizando varias funciones básicas del protocolo MODBus:
Función Definición Descripción del funcionamiento
03 Read Holding Registers Lectura de múltiplos registros
04 Read Input Registers Lectura de múltiplos registros (Eq. 03)
06 Preset Single Register Escritura de un registro
08 Diagnostics Lectura de posibles incidencias
16 Preset Multiple Registers Escritura de múltiplos registros
20 Read File Record Lectura de ficheros
21 Write File Record Escritura de ficheros
2B Función no estandar Lectura ID esclavo

3.1 FUNCIÓN 03, 04: Read Holding Registers


Este código de función se usa para leer el contenido de un bloque continuo de registros en un
dispositivo remoto. En la petición de datos realizada por el dispositivo maestro de la red MODBus indica el
registro inicial y el número total de registros a leer. Los registros de datos en la respuesta a la petición se
empaquetan en formato entero, es decir, 2 bytes por registro, con el contenido binario justificado a la
izquierda en cada byte. Para cada registro el primer byte contiene los bits de más alto orden y el segundo los
de menor.
Formato de la Petición de Lectura de Registros
Código de Función Tamaño 1 Byte 0x03 y 0x04
Rango en Hexadecimal [0x0000:0xFFFF]
Registro Inicial Tamaño 2 Bytes
Rango en Decimal [0:65535]
Nº Registros Tamaño 2 Bytes 1 a 125 [0x7D en hexadecimal]

Formato de la Respuesta de Lectura de Registros


Código de Función Tamaño 1 Byte 0x03
Nº de Bytes Tamaño 1 Byte 2 x N*
Nº Registros N* x 2 Bytes

* N = Número de registros.
Formato de Error en Petición de Lectura de Registros
Código de Error Tamaño 1 Byte 0x83
Código de Excepción Tamaño 1 Byte 01 ó 02 ó 03 ó 04

-2-
3.2 FUNCIÓN 06: Preset Single Register
Este código de función se usa para leer el contenido de un bloque continuo de registros en un
dispositivo remoto. En la petición de datos realizada por el dispositivo maestro de la red MODBus indica el
registro inicial y el número total de registros a leer. Los registros de datos en la respuesta a la petición se
empaquetan en formato entero, es decir, 2 bytes por registro, con el contenido binario justificado a la
izquierda en cada byte. Para cada registro el primer byte contiene los bits de más alto orden y el segundo los
de menor.
Formato de la Petición de Escritura de un Registro
Código de Función Tamaño 1 Byte 0x06
Rango en Hexadecimal [0x0000:0xFFFF]
Índice Registro Tamaño 2 Bytes
Rango en Decimal [0:65535]
Rango en Hexadecimal [0x0000:0xFFFF]
Valor del Registro Tamaño 2 Bytes
Rango en Decimal [0:65535]

Formato de la Respuesta de Escritura de un Registro


Código de Función Tamaño 1 Byte 0x06
Rango en Hexadecimal [0x0000:0xFFFF]
Índice Registro Tamaño 2 Bytes
Rango en Decimal [0:65535]
Rango en Hexadecimal [0x0000:0xFFFF]
Valor del Registro Tamaño 2 Bytes
Rango en Decimal [0:65535]

Formato de Error en Petición de Escritura de Registro


Código de Error Tamaño 1 Byte 0x86
Código de Excepción Tamaño 1 Byte 01 ó 02 ó 03 ó 04

-3-
3.3 FUNCIÓN 16: Write Multiple Registers
Este código de función se usa para escribir el contenido de un bloque continuo de registros en un
dispositivo remoto (longitud máxima de 1 a 123 registros). En la petición de datos realizada por el dispositivo
maestro de la red MODBus indica el registro inicial y el número total de registros a escribir. Los registros de
datos en la respuesta a la petición se empaquetan en formato entero, es decir, 2 bytes por registro, con el
contenido binario justificado a la izquierda en cada byte. Para cada registro el primer byte contiene los bits de
más alto orden y el segundo los de menor.
Formato de la Petición de Escritura de Registros
Código de Función Tamaño 1 Byte 16 [0x10 en Hexadecimal]
Rango en Hexadecimal [0x0001:0x007B]
Registro Inicial Tamaño 2 Bytes
Rango en Decimal [0:123]
Nº Registros Tamaño 2 Bytes 2 x N*
Valor de los Registros N* x 2 Bytes valor

* N = Número de registros.
Formato de la Respuesta de Escritura de Registros
Código de Función Tamaño 1 Byte 16 [0x10 en Hexadecimal]
Registro Inicial Tamaño 2 Bytes 2 x N*
Rango en Hexadecimal [0x0001:0x007B]
Nº Registros Tamaño 2 Bytes
Rango en Decimal [0:123]

* N = Número de registros.
Formato de Error en Petición de Escritura de Registros
Código de Error Tamaño 1 Byte 0x90
Código de Excepción 1 Byte 01 ó 02 ó 03 ó 04

4. PARÁMETROS DE LOS REGISTRADORES AKO-15740/42, AKO-15750/52 y


AKO-15780/82
Simbología utilizada:
CAMPO SIGNIFICADO
Unid. Unidad de medida básica utilizada en el parámetro.
Mín. Mínimo valor aceptado expresado en las unidades definidas para el parámetro.
Def. Valor por defecto expresado en las unidades definidas.
Máx. Máximo valor aceptado expresado en las unidades definidas para el parámetro.
Flujo Indica si el parámetro es de escritura (W) lectura (R) o ambos (RW).
Índice Índice de acceso, el signo “+” indica el número de registros a leer/escribir (por defecto 1).
Función Código de función Modbus [modo de acceso a los registros internos del registrador].
Valor Valores asignables al parámetro definido.

-4-
4.1 CONFIGURACIÓN DE ENTRADAS / SONDAS
Los AKO-15780/82 disponen de 2 entradas de sondas, los AKO-15750/52 de 5 entradas de sondas y los
AKO-15740/42 de 10 entradas de sondas.

COMUNICACIÓN MODBUS

Descripción Unid. Mín. Def. Máx. FLUJO INDICE FUNCION VALOR


0= desactivada
1= NTC
Configuración de la entrada/sonda 2= PT100
- 0 1 5 RW 80+N* 03/04/06
Opción 2: Solo AKO-15750/52 3= PT1000
4= 4-20 mA
5= Digital
Descripción de la Entrada ASCII 32 “Entrada 1” 128 RW [82+N*]+10 03/04/06
(ºC/ºF)
2 char: ºC
Unidades de la Entrada 32 ºC 128 RW 92/93+N* 03/04/06
-externa ºF
-4-20mA
0= NO
Configuración Polaridad de Entrada digital 0 1 1 RW 79+N* 03/04/06
1= NC
GESTIÓN DE ALARMAS Unid. Mín. Def. Máx. FLUJO INDICE FUNCION VALOR
0=inactiva
Alarma de máxima en sonda 1 81+N* 1=pendiente de temporización
- 0 0 4 R 03/04
EN MODO LECTURA Byte Alto 3=activa
4=desactivada
Alarma de máxima en sonda 1 81+N* 0=desactiva la alarma
- 0 0 1 W 06/16
EN MODO ESCRITURA Byte Alto 1=activa la alarma
0=inactiva
Alarma de mínima en sonda 1 81+N* 1=pendiente temporización
- 0 0 4 R 03/04
EN MODO LECTURA Byte Bajo 3=activa
4=desactivada
Alarma de mínima en sonda 1 81+N* 0=desactiva la alarma
- 0 0 1 W 06/16
EN MODO ESCRITURA Byte Bajo 1=activa la alarma
Retardo de alarma de temperatura alta
(min.) 0 0 60 RW 96+N* 03/04/06
(retardo activación para ent. Digit.)
Retardo de alarmas de temperatura baja
(retardo desactivación para ent. Digit.) (min.) 0 0 60 RW 97+N* 03/04/06

Según
Valor de alarma de temperatura alta (ºC/ºF) - - RW 94+N* 03/04/06
Sonda
Según
Valor de alarma de temperatura baja (ºC/ºF) - - RW 95+N* 03/04/06
Sonda
Valor a 4 mA (en décimas de unidad) -9999 0 9999 RW 98+N* 03/04/06
Valor 20 mA (en décimas de unidad) -9999 1000 9999 RW 99+N* 03/04/06
0=desactiva la alarma
Activación relé alarma (Ent. Digit.) 0 1 RW 120+N* 03/04/06 1=activa la alarma

0=desactiva la alarma
Activación buzzer alarma (Ent. Digit.) 0 1 RW 120+N* 03/04/06 1=activa la alarma

*Para seleccionar el resto de entradas o sondas solo hay que sumar el valor del parámetro N al índice del registro.

-5-
Entrada/Sonda Seleccionada Valor N Entrada/Sonda Seleccionada Valor N

Entrada/Sonda 1 N = 0000 Entrada/Sonda 6 N = 5000

Entrada/Sonda 2 N = 1000 Entrada/Sonda 7 N = 6000

Entrada/Sonda 3 N = 2000 Entrada/Sonda 8 N = 7000

Entrada/Sonda 4 N = 3000 Entrada/Sonda 9 N = 8000

Entrada/Sonda 5 N = 4000 Entrada/Sonda 10 N = 9000

*Las entradas de sonda 3 a 10 están disponibles según modelos de registrador.

Ejemplo de acceso en modo Lectura:


Para acceder a la configuración de la sonda 3: N=2000 registro=80
Registro acceso = 0x0820 expresado en hexadecimal: 0x0820

Descripción Petición de Lectura Petición [HEX] Descripción Respuesta a Lectura Respuesta [HEX] Significado

Función 0x03 Función 0x03 Lectura

Registro Inicio [byte alto] 0x0C Numero de bytes 0x02 Respuesta de 1 registro

Registro Inicio [byte bajo] 0x08 Valor Registro [byte alto] 0x00

Nº Registros [byte alto] 0x00 Valor Registro [byte bajo] 0x02 Valor 2 = PT100

Nº Registros [byte bajo] 0x01

CRC 0x7EDD CRC 0x8BB4

Ejemplo de acceso en modo Escritura simple:


Para acceder a la configuración de la sonda 3: N=2000 registro=80
Registro acceso = 0x0820 expresado en hexadecimal: 0x0820

Descripción Petición de Escritura Petición [HEX] Descripción respuesta de Escritura Respuesta [HEX] Significado

Función 0x06 Función 0x06 Escritura

Registro Inicio [byte alto] 0x0C Registro Inicio [byte alto] 0x0C Índice de registro

Registro Inicio [byte bajo] 0x08 Registro Inicio [byte bajo] 0x08

Valor Registro [byte alto] 0x00 Valor Registro [byte alto] 0x00

Valor Registro [byte bajo] 0x01 Valor Registro [byte bajo] 0x01 Valor escrito = 1 [NTC]

CRC 0x5D8A CRC 0x5D8A

-6-
4.2 ESTADO GENERAL
COMUNICACIÓN MODBUS

Descripción Unid. Mín. Def. Máx. FLUJO INDICE FUNCION VALOR


Código de acceso (Password) a menú de
- 0 0 9999 RW 51 03/04/06 -
programación
0x5A3C
Firma para borrar flash - - 0x5A3C - W 53 06 Borrar

01 = 01 min
05 = 05 min
Intervalo de registro (min.) Min. 1 15 30 RW 54 03/04/06
15 = 15 min
30 = 30 min
Dirección para equipos con comunicación - 0 1 249 RW 55 03/04/06 -
15743
Según 15741
Identificación (*) - - - R 32767 03/04
equipo 15753
15751

* Para diferenciarlo de las versiones anteriores con la misma referencia se añade un 1 a la referencia del equipo.

4.3 CONFIGURACION REMOTA DEL MODO DE REGISTRO


Descripción Unid. Mín. Def. Máx. FLUJO INDICE FUNCION VALOR
1 = ON
Temporización de registro - 1 1 2 RW 60 03/04/06
2 = OFF
(Hora
Temporización de registro a ON (marcha) - 0 0 0xFFFFFFFF RW 61 03/04/06
UTC)
(Hora
Temporización de registro a OFF (paro) - 0 0 0xFFFFFFFF RW 62 03/04/06
UTC)

La configuración correcta para conseguir cualquiera de las posibilidades que se pueden realizar teniendo en
cuenta los 3 registros implicados (definidos en el cuadro anterior) y los registros horarios relacionados con la
fecha y hora del sistema se resumen en el siguiente cuadro:
Modo Temporización Temporización En función
Orden Descripción del funcionamiento.
Registro a la conexión a la conexión De la fecha actual
Temporizar 2 Marcha 0 Marcha > Fecha Actual Exista puesta en marcha temporizada

Temporizar 2 0 Paro Paro > Fecha Actual Se para el registro al llegar a la fecha de paro
Marcha > Fecha Actual
Temporizar 2 Marcha Paro Temporización a conexión y desconexión
Paro > Marcha
Marcha 1 - - - Para registro y borra las temporizaciones programadas

Paro 0 - - - Empieza registro y borra todas las configuraciones

-7-
4.4 IDIOMA
COMUNICACIÓN MODBUS

Descripción Unid. Mín. Def. Máx. FLUJO INDICE FUNCION VALOR


Español 1 = ESP
Inglés 2 = ENG
Francés 3 = FRA
- 1 1 6 RW 70 03/04/06
Alemán 4 = DEU
Ruso 5 = RUS
Portugués 6 = POR

4.5 RELOJ
COMUNICACIÓN MODBUS

Descripción Unid. Mín. Def. Máx. FLUJO INDICE FUNCION VALOR


Fecha (Año Mes Día) 00/01/01 1/09/09 99/12/31 RW 71+3 03/04/16 -
Hora (Día_Sem Hora Minuto) - 01/00/00 - 07/59/59 RW 72+3 03/04/16 -

Zona Horária - -12 +1 12 RW 73 03/04/16 Madrid/Bruselas

Cambio Horário Automático - 0 +1 1 RW 74 0 = manual


03/04/16
1= automático
Horario Invierno/Verano - 0 0 1 RW 75 0 = Invierno
03/04/16
+1= Verano

4.6 REGISTRO DE TEMPERATURAS ACTUALES


COMUNICACIÓN MODBUS

Descripción Unid. Mín. Def. Máx. FLUJO INDICE FUNCION VALOR


Según Según
Sonda Interna 0.1ºC - R 100 03/04 -
sonda sonda
Temperatura sonda 1 0.1 - - R 101 03/04 -
Temperatura sonda 2 0.1 - - R 102 03/04 -
Temperatura sonda 3 0.1 - - R 103 03/04 -
Temperatura sonda 4 0.1 - - R 104 03/04 -
Temperatura sonda 5 0.1 - - R 105 03/04 -
Temperatura sonda 6* 0.1 - - R 106 03/04 -
Temperatura sonda 7* 0.1 - - R 107 03/04 -
Temperatura sonda 8* 0.1 - - R 108 03/04 -
Temperatura sonda 9* 0.1 - - R 109 03/04 -
Temperatura sonda 10* 0.1 - - R 110 03/04 -

*Las entradas de sonda 3 a 10 están disponibles según modelos de registrador.

-8-
4.7 REGISTRO DE ALARMAS
COMUNICACIÓN MODBUS

Descripción Unid. Mín. Def. Máx. FLUJO INDICE FUNCION VALOR


(hora .. minuto) 0 - 23..59
Registro Alarmas (segundo .. día) 0..1 - 59..31 R/W 1000+18 03/04/16
(mes .. año) 1..0 - 12..99
(hora .. minuto) 0 - 23..59
Registro Alarma 1 (segundo .. día) 0..1 - 59..31 R/W 1000+3 03/04/16
(mes .. año) 1..0 - 12..99
(hora .. minuto) 0 - 23..59
Registro Alarma 2 (segundo .. día) 0..1 - 59..31 R/W 1003+3 03/04/16
(mes .. año) 1..0 - 12..99
(hora .. minuto) 0 - 23..59
Registro Alarma 3 (segundo .. día) 0..1 - 59..31 R/W 1006+3 03/04/16
(mes .. año) 1..0 - 12..99
(hora .. minuto) 0 - 23..59
Registro Alarma 4 (segundo .. día) 0..1 - 59..31 R/W 1009+3 03/04/16
(mes .. año) 1..0 - 12..99
(hora .. minuto) 0 - 23..59
Registro Alarma 5 (segundo .. día) 0..1 - 59..31 R/W 1012+3 03/04/16
(mes .. año) 1..0 - 12..99
(hora .. minuto) 0 - 23..59
Registro Alarma 6 (segundo .. día) 0..1 - 59..31 R/W 1015+3 03/04/16
(mes .. año) 1..0 - 12..99

4.8 LECTURA DE LOS REGISTROS ALMACENADOS EN LA MEMORIA DE REGISTRO.


La memoria de registro del registrador se compone de 1200 registros, y el recorrido de registro es cíclico por lo
que cuando se llena la memoria se prosigue con el registro por los registros mas antiguos.
Para localizar el registro en el cual se esta almacenando la información, y por tanto, el registro que contiene las
muestras más recientes, se debe acceder a la posición 20000 leyendo con la función READ HOLDING
REGISTERS. La posición 21199 será la posición del registro más antiguo.

Descripción Datos de Cabecera de Registro Función


Número de muestras almacenadas (máximo 96) 1BYT
X Read Holding Registers
El bit mas alto indica el estado: X =1 canal activo X = 0 No activo.
(1) + número de muestras, fecha, hora, tiempo de muestreo.
AÑO (00 - 99) 1BYTE
MES (01 - 12) 1BYTE
DIA (01 - 31) 1BYTE Ídem
HORA (00 - 24) 1BYTE
MINUTO (00 - 59) 1BYTE
TIEMPO DE MUESTREO (1 - 5 - 15 - 30) 1BYTE
(2) + descripción (solo de la sonda 1) 10 BYTES
Ídem
(3) + unidades de la sonda 1*N [N es el numero de sondas].
El máximo seria para 10 sondas (65 bytes en total)
Ídem
2*N BYTES

 Nota: podemos leer toda la información en una sola trama adquiriendo el total de bytes posibles.
Para leer el contenido de cada uno de los registros debemos utilizar la función READ FILE RECORD para
capturar el número de muestras de que se dispone según indican las posiciones 20000 a 21199.

-9-
4.8.1 PETICION DE MUESTRAS DE UN REGISTRO.
Slave Address #node Id 1 byte

Código Función Modbus 20 (Read File Record) 1 byte

Byte Count 8 1 byte

Modbus Reference Type 6 1 byte

Número de registro [HI] [LOW]* 2 bytes

Número de canal [HI] [LOW]* 2 bytes

*byte más significativo es el de menor peso.


Esto devuelve el número de muestras adquiridas en ese registro en concreto con el formato del código
de función.

4.9 REGISTRO DE EVENTOS.


Descripción Unidades Mín. Def. Máx. Flujo Índice Función Valor
Tipo Baja Alta R 10000 03/04
Año 0 100 R 10001 03/04
Mes 0 12 R 10002 03/04
Día 0 31 R 10003 03/04
Hora 0 23 R 10004 03/04
Minuto 0 60 R 10005 03/04
Evento 1
Var1 n/a R 10006 03/04
Var2 n/a R 10007 03/04
Var3 n/a R 10008 03/04
Var4 n/a R 10009 03/04
Var5 n/a R 10010 03/04
Var6 n/a R 10011 03/04 Cada evento en
múltiplos de 32
bytes, hasta 1000
Tipo Baja Alta R 10016 03/04 eventos
Año 0 100 R 10017 03/04

Evento 2

Evento 1000

- 10 -
35157FF01 Rev01 2011

También podría gustarte