Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TCP Modbus Omrron
TCP Modbus Omrron
MODBUS TCP
CS1W-ETN21
CJ1W-ETN21
Gua Rpida
1. Especificaciones
2. Cdigos de funcin
3. Respuesta de error
4. Contadores de estado
5. Programa PLC y ejemplos
MODBUS TCP
1. Especificaciones
1.1 Lista de comandos.
Cdigo
(Hex)
0x01
0x02
0x03
0x04
0x05
0x06
0x08
0x0F
0x10
Funcin
Nombre en MODBUS
Lectura de bits
Lectura de entradas discretas
Lectura de registros
Lectura de registros de entrada
Escritura de un bit
Escritura de un registro
Diagnostico
Escritura de varios bits
Escritura de varios registros
Direccin de memoria
W 480 - 511
CIO 5800 6000
CIO 6001 - 6143
Descripcin
Contadores y clculos necesarios
Almacena los bytes recibidos
Zona de bytes a enviar
Direccin de memoria
CIO 1000 1024
D 30000 30099
Descripcin
Para mayor detalle
consultar manual W343
Entradas discretas
Bits
Registros de entrada
Registros DM
Direccin
MODBUS
1 5120
1 65536
1 5801
1 32768
Direccin
PDU
0 5119
0 65535
0 57800
0 32767
*: rea CIO 5801 6143 est reservada para el programa del PLC.
1.4. Formato de la trama de Modbus TCP.
Una cabecera es empleada en TCP/IP para la identificacin de la unidad MODBUS (capa
aplicacin). Es conocida como cabecera MBAP (MODBUS Application Protocol header).
Esta cabecera contiene algunas diferencias con respecto a la capa de aplicacin del
MODBUS RTU en lnea serie, estas son:
Pgina 2 de 10
MODBUS TCP
Todas las peticiones y respuestas MODBUS estn diseadas para poder verificar que
el mensaje ha finalizado. Para los cdigos de la funcin donde la PDU de MODBUS
tiene una longitud fija, con el cdigo de la funcin es suficiente. Para los cdigos de
funcin cuya longitud no es fija posee un campo de datos adicional que acta como
contador de bytes.
Longitud
2 bytes
Identificador de
protocolo
Longitud
2 bytes
Descripcin
Identificacin de una
peticin MODBUS/
Respuesta trama
0 = protocolo MODBUS
2 bytes
Nmero de bytes
Identificador de
unidad
1 byte
Cliente
Inicializado por el
cliente (peticin)
Servidor
Recogido por el servidor
desde la peticin recibida
Inicializado por el
cliente (peticin)
Inicializado por el
cliente (peticin)
Inicializado por el
cliente (peticin)
Pgina 3 de 10
MODBUS TCP
2. Cdigos de funcin
2.1 Lectura de mltiples bits del rea de memoria de E/S (CIO).
Funcin: Lee bits del rea de memoria de E/S a travs del cdigo de funcin 0x01.
Peticin:
Cdigo de funcin
Direccin de comienzo
Cantidad de bits
Longitud
1 Byte
2 Bytes
2 Bytes
Datos
0x01
0x0000 0xFFFF
1 2000 (0x7D0)
Longitud
1 Byte
1 Byte
n Byte
Datos
0x01
N
n = N o N+1
Respuesta:
Cdigo de funcin
Contador de byte
Estado de bits
Nota: Ejemplo de uso en el apartado 5.3.1.
Cdigo de funcin
Direccin de comienzo
Cantidad de bits
Longitud
1 Byte
2 Bytes
2 Bytes
Datos
0x02
0x0000 0x13FF
1 2000 (0x7D0)
Longitud
1 Byte
1 Byte
n byte
Datos
0x02
N
n = N o N+1
Respuesta:
Cdigo de funcin
Contador de byte
Estado de bits
Nota: Ejemplo de uso en el apartado 5.3.2.
Cdigo de funcin
Direccin de comienzo
Cantidad de registros
Longitud
1 Byte
2 Bytes
2 Bytes
Datos
0x03
0x0000 0x7FFF*
1 125 (0x7D)
Pgina 4 de 10
MODBUS TCP
Respuesta:
Longitud
1 Byte
1 Byte
N x 2 bytes
Cdigo de funcin
Contador de bytes
Estado de bits
Datos
0x03
Nx2*
* N = Cantidad de registros.
Nota: Ejemplo de uso en el apartado 5.3.3.
2.4 Lectura de mltiples registros del rea de memoria CIO.
Funcin: Lee registros del rea de memoria CIO, a travs del cdigo de funcin 0x04.
Peticin:
Longitud
1 Byte
2 Bytes
2 Bytes
Datos
0x04
0x0000 0x16A8
1 125 (0x7D)
Longitud
1 Byte
1 Byte
N x 2 bytes
Datos
0x04
Nx2*
Cdigo de funcin
Direccin de comienzo
Cantidad de registros
Respuesta:
Cdigo de funcin
Contador de bytes
Valor del registro
* N = Cantidad de registros.
Nota: Ejemplo de uso en el apartado 5.3.4.
2.5 Escritura de un bit en el rea de memoria de E/S.
Funcin: Escribe en un bit, a travs del cdigo de funcin 0x05.
Peticin:
Cdigo de funcin
Direccin de salida
Valor de salida
Longitud
1 Byte
2 Bytes
2 Bytes
Datos
0x05
0x0000 0xFFFF*
0x0000 OFF.
0xFF00 ON.
Longitud
1 Byte
2 Bytes
2 Bytes
Datos
0x05
0x0000 0xFFFF
0x0000 OFF.
0xFF00 ON.
Respuesta:
Cdigo de funcin
Direccin de salida
Valor de salida
Pgina 5 de 10
MODBUS TCP
* Los valores 0x0000 0xFFFF tienen la siguiente relacin con los bits del rea CIO:
Direccin de salida
0x0000
0x0001
0x000E
0x000F
Canal CIO
0.00
0.01
0.14
0.15
Direccin de salida
0x0020
0x0105
0x022A
0x0333
Canal CIO
2.00
10.05
22.15
33.03
Cdigo de funcin
Direccin del registro
Valor del registro
Longitud
1 Byte
2 Bytes
2 Bytes
Datos
0x06
0x0000 0x7FFF
0x0000 0xFFFF
Longitud
1 Byte
2 Bytes
2 Bytes
Datos
0x06
0x0000 0x7FFF
0x0000 0xFFFF
Respuesta:
Cdigo de funcin
Direccin del registro
Valor del registro
Nota: Ejemplo de uso en el apartado 5.3.6.
2.7 Test de comunicacin.
Funcin: Ejecuta un test de la red, el dato enviado es recibido, a travs del cdigo de
funcin 0x08.
Peticin:
Cdigo de funcin
Cdigo de subfuncin
Datos
* 2 a 125, (0x0002 a 0x007D) Bytes.
Longitud
1 Byte
2 Bytes
N x 2 Bytes *
Datos
0x08
0x0000
---
Longitud
1 Byte
2 Bytes
N x 2 Bytes *
Datos
0x08
0x0000
---
Respuesta:
Cdigo de funcin
Cdigo de subfuncin
Datos
* 2 a 125, (0x0002 a 0x007D) Bytes.
Pgina 6 de 10
MODBUS TCP
Cdigo de funcin
Direccin de comienzo
Cantidad de registros
Contador de byte
Valor de registros
* N, cantidad de registros a escribir.
Longitud
1 Byte
2 Bytes
2 Bytes
1 Byte
N x 2 Bytes *
Datos
0x10
0x0000 0x17FF
1 123 (0x7B)
2xN*
Valor
Longitud
1 Byte
2 Bytes
2 Bytes
Datos
0x10
0x0000 0x17FF
1 123 (0x7B)
Respuesta:
Cdigo de funcin
Direccin de comienzo
Cantidad de registros
Nota: Ejemplo de uso en el apartado 5.3.8.
3. Respuesta de error
Si la trama enviada contiene algn tipo de error, el PLC generar una trama de error
compuesta por los siguientes campos:
Respuesta
Longitud
1 Byte
1 Byte
Cdigo de funcin
Cdigo de error
Cdigo de error
01
02
03
Datos
Cdigo de funcin +0x80
01, 02 03
Descripcin
Error en el campo Funcin
Error en el campo Direccin
Error en el campo Valor
4. Contadores de estado
Contador
Exception_Counter
RCV_Counter
SND_Counter
ER_RCV_Counter
ER_SND_Counter
Canal
W491
W492
W493
W494
W495
Descripcin
Contador de peticiones incorrectas
Contador de respuestas enviadas
Contador de tramas recibidas
Contador de error en recepcin en socket
Contador de error en envo en socket
Pgina 7 de 10
MODBUS TCP
5. Programa PLC
El proyecto incluye dos PLCs, uno que actuar como servidor y el otro como cliente.
5.1 PLC cliente.
El programa est realizado para el empleo de la tarjeta de ethernet ETN21 configurada
como nmero de unidad 0, empleando el TCP socket no. 1 y el puerto local y remoto no. 502.
En la seccin Setup habr que indicar la direccin IP, poniendo la direccin IP
correspondiente al PLC que acta de servidor.
En la seccin Your_Request_Here, se muestra el ejemplo del envo del comando de lectura
de mltiples registros del rea de memoria DM.
5.2 PLC servidor.
El programa est realizado para el empleo de la tarjeta de ethernet ETN21 configurada
como nmero de unidad 0, empleando el TCP socket no. 1 y el puerto local y remoto no. 502.
En la seccin Setup habr que indicar la direccin IP del PLC que actuar como cliente.
5.3 Ejemplos.
5.3.1 Lectura de mltiples bits del rea de memoria de E/S (CIO).
Peticin: Lectura de 19 bits, CIO001.04 a CIO002.06.
Peticin
0x01
0x00
0x14
0x00
0x13
Cdigo de funcin
Direccin de comienzo (H)
Direccin de comienzo (L)
Cantidad de bits (H)
Cantidad de bits (L)
Ch.1
Ch.2
15
1
x
14
0
x
13
1
x
12
1
x
11
1
x
10
1
x
Respuesta
0x01
0x03
0xCD
0x6B
0x05
9
0
x
8
0
x
7
1
x
6
1
1
Cdigo de funcin
Contador de bytes
Estado de bits, 1.11-1.04
Estado de bits, 2.03-1.12
Estado de bits, 2.06-2.04
5
0
0
4
1
1
3
x
0
2
x
1
1
x
1
0
x
0
Cdigo de funcin
Direccin de comienzo (H)
Direccin de comienzo (L)
Cantidad de bits (H)
Cantidad de bits (L)
Ch.1
Ch.2
15
1
x
14
0
x
13
1
x
12
1
x
11
1
x
10
1
x
Respuesta
0x02
0x03
0xCD
0x6B
0x05
9
0
x
8
0
x
7
1
x
6
1
1
Cdigo de funcin
Contador de bytes
Estado de bits, 1.11-1.04
Estado de bits, 2.03-1.12
Estado de bits, 2.06-2.04
5
0
0
4
1
1
3
x
0
2
x
1
1
x
1
0
x
0
Pgina 8 de 10
MODBUS TCP
Cdigo de funcin
Direccin de comienzo (H)
Direccin de comienzo (L)
Cantidad de registros (H)
Cantidad de registros (L)
15
14
Ch.1000
Ch.1001
Ch.1002
13
12
11
Respuesta
0x03
0x06
0xAB
0x12
0x56
0x78
0x97
0x13
10
A
5
9
Cdigo de funcin
Contador de bytes
Valor del registro (H) D1000
Valor del registro (L) D1000
Valor del registro (H) D1001
Valor del registro (L) D1001
Valor del registro (H) D1002
Valor del registro (L) D1002
B
6
7
1
7
1
2
8
3
Cdigo de funcin
Direccin de comienzo (H)
Direccin de comienzo (L)
Cantidad de registros (H)
Cantidad de registros (L)
15
Ch.1000
Ch.1001
Ch.1002
14
13
12
11
Respuesta
0x04
0x06
0xAB
0x12
0x56
0x78
0x97
0x13
10
A
5
9
Cdigo de funcin
Contador de bytes
Valor del registro (H) C1000
Valor del registro (L) C1000
Valor del registro (H) C1001
Valor del registro (L) C1001
Valor del registro (H) C1002
Valor del registro (L) C1002
B
6
7
1
7
1
2
8
3
Cdigo de funcin
Direccin de comienzo (H)
Direccin de comienzo (L)
Valor de salida (H)
Valor de salida (L)
Peticin
0x05
0x00
0x22
0xFF
0x00
Respuesta
0x05
0x00
0x22
0xFF
0x00
Cdigo de funcin
Direccin de comienzo (H)
Direccin de comienzo (L)
Valor de salida (H)
Valor de salida (L)
Pgina 9 de 10
MODBUS TCP
Cdigo de funcin
Direccin del registro (H)
Direccin del registro (L)
Valor del registro (H)
Valor del registro (L)
Peticin
0x06
0x07
0xD0
0x3A
0xC5
Respuesta
0x06
0x07
0xD0
0x3A
0xC5
Cdigo de funcin
Direccin del registro (H)
Direccin del registro (L)
Valor del registro (H)
Valor del registro (L)
Respuesta
0x08
0x00
0x00
0xA5
0x37
Cdigo de funcin
Cdigo de subfuncin (H)
Cdigo de subfuncin (L)
Dato (H)
Dato (L)
Cdigo de funcin
Cdigo de subfuncin (H)
Cdigo de subfuncin (L)
Dato (H)
Dato (L)
Peticin
0x08
0x00
0x00
0xA5
0x37
Cdigo de funcin
Direccin de comienzo (H)
Direccin de comienzo (L)
Cantidad de registros (H)
Cantidad de registros (L)
Contador de bytes
Valor del registro (H) D1000
Valor del registro (L) D1000
Valor del registro (H) D1001
Valor del registro (L) D1001
Peticin
0x10
0x03
0xE8
0x00
0x02
0x04
0x3A
0xC5
0x97
0x13
Respuesta
0x10
0x03
0xE8
0x00
0x02
Cdigo de funcin
Direccin de comienzo (H)
Direccin de comienzo (L)
Cantidad de registros (H)
Cantidad de registros (L)
Pgina 10 de 10