DOCA0132ES-01

Uso de los SDO

Introducción

Los telegramas SDO sirven para acceder de forma no periódica a cualquier objeto CANopen mediante programación de solicitudes. El servicio SDO consta de un telegrama de solicitud y un telegrama de respuesta.

Telegrama SDO de solicitud

Solicitud de información desde el maestro al controlador LTMR :

ID de COB

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Byte 7

0x600 + ID de nodo

Código de solicitud

Índice de objetos

Subíndice de objetos

Datos de solicitud

LSB

MSB

Bits 7-0

Bits 15-8

Bits 23-16

Bits 31-24

Telegrama SDO de respuesta

Solicitud de información desde el maestro al controlador LTMR :

ID de COB

Byte 0

Byte 1

Byte 2

Byte 3

Byte 4

Byte 5

Byte 6

Byte 7

0x580 + ID de nodo

Código de respuesta

Índice de objetos

Subíndice de objetos

Datos de respuesta

LSB

MSB

Bits 7-0

Bits 15-8

Bits 23-16

Bits 31-24

Códigos de solicitud y respuesta

El contenido de los datos de solicitud y respuesta puede variar en función de los códigos de solicitud y respuesta. En la siguiente tabla se muestran los datos de solicitud de cada uno de los diferentes códigos de solicitud:

Código de respuesta

Descripción del comando

Byte 4

Byte 5

Byte 6

Byte 7

0x23

Escribir datos de 4 bytes

Bits 7-0

Bits 15-8

Bits 23-16

Bits 31-24

0x2B

Escribir datos de 2 bytes

Bits 7-0

Bits 15-8

0x00

0x00

0x2F

Escribir datos de 1 byte

Bits 7-0

0x00

0x00

0x00

0x40

Leer datos

0x00

0x00

0x00

0x00

0x80

Interrupción del comando SDO actual* 1

Bits 7-0

Bits 15-8

Bits 23-16

Bits 31-24

En la siguiente tabla se muestran los datos de respuesta de cada uno de los diferentes códigos de respuesta:

Código de solicitud

Descripción del comando

Byte 4

Byte 5

Byte 6

Byte 7

0x23

Leer datos: Datos de 4 bytes

Bits 7-0

Bits 15-8

Bits 23-16

Bits 31-24

0x2B

Leer datos: Datos de 2 bytes

Bits 7-0

Bits 15-8

0x00

0x00

0x2F

Leer datos: Datos de 1 byte

Bits 7-0

0x00

0x00

0x00

0x40

Escribir una respuesta de datos de 1/2/4 bytes

0x00

0x00

0x00

0x00

0x80

Respuesta de error detectada: código de cancelación devuelto* se proporciona una lista de todos los códigos de interrupción admitidos

0x00

0x00

0x00

0x00

Códigos de interrupción de SDO

Se admiten los siguientes códigos de interrupción:

Código de interrupción

Descripción

0x 0503 0000

Transferencia segmentada: No se ha alternado el bit de conmutación.

0x 0504 0000

El protocolo SDO ha sobrepasado el tiempo de espera

0x 0504 0001

El código de solicitud no es válido o se desconoce

0x 0601 0000

Se ha producido un disparo durante el acceso al parámetro (por ejemplo, una solicitud de escritura en un parámetro de sólo lectura).

0x 0601 0001

Se intentó realizar una solicitud de lectura en un parámetro con derechos de acceso de sólo escritura

0x 0601 0002

Se intentó realizar una solicitud de escritura en un parámetro con derechos de acceso de sólo lectura

0x 0602 0000

El índice enviado en la solicitud hace referencia a un objeto que no existe en el diccionario de objetos

0x 0604 0041

Asignación de objetos PDO: El parámetro no se puede asignar al PDO; este error detectado se produce al escribir en los parámetros 0x1600, 0x1A00, 0x1605 y 0x1A05 (asignaciones PDO)

0x 0604 0042

Asignación de objetos PDO: El número o la longitud de los parámetros que se van a asignar supera la longitud máxima de PDO.

0x 0609 0011

El subíndice enviado en la solicitud no existe

0x 0609 0030

Se ha sobrepasado el intervalo de valores del parámetro (solo para acceso de escritura)

0x 0609 0031

El valor del parámetro escrito es demasiado alto

0x 0609 0032

El valor del parámetro escrito es demasiado bajo

0x 0609 0036

El valor máximo del parámetro es inferior a su valor mínimo

0x 0800 0000

Se ha producido un error general detectado

Ejemplo de SDO de escritura

Este es un ejemplo de programación de un SDO de escritura para Premium PLC en lenguaje de texto estructurado.

Ejemplo de SDO de lectura

Este es un ejemplo de programación de SDO de lectura para Premium PLC en lenguaje de texto estructurado.

QR Code is a registered trademark of DENSO WAVE INCORPORATED in Japan and other countries.

¿Le ha resultado útil?