DOCA0131ES-03

Lectura/escritura de datos acíclicos mediante PROFIBUS DP V1

Descripción general

Para los accesos acíclicos DP V1 se ha implementado en el controlador LTMR un mecanismo basado en direccionamiento de longitud y ranura/índice.

NOTA: Todos los registros accesibles se describen en la sección Grupos de variables de comunicación. Dichas tablas se organizan en grupos (variables de identificación, variables históricas,...) y, si es necesario, en subgrupos.

El acceso a las variables tiene lugar cada 10 registros. No se puede tener acceso a los registros situados entre dos subgrupos. Si el acceso no es posible, no se tiene acceso a ningún registro y se devuelve un valor de error detectado (por ejemplo, "no se han encontrado todos los registros") mediante DP V1.

Llamada de datos acíclicos (DS_Read)

Con la función DS_Read , el primario PROFIBUS DP puede leer los datos del secundario. La siguiente tabla muestra el contenido de una trama DS_Read.

Byte

Sintaxis

0 [Número de función]

0x5E [Función DS_Read ]

1 [Número de ranura]

Valor constante = 1

2 [Índice]

Dirección de registro / 10

El acceso común a los registros tiene lugar cada 10 registros.

El índice siempre se redondea a un entero.

3 [Longitud]

Longitud de los bloques de datos en bytes

(Número de registros) x 2

Número máximo de registros = 20 (40 bytes)

Es posible cualquier longitud entre 2 y 40 bytes.

4 a (longitud + 3)

Bloque de bytes de datos que se leerán.

Ejemplo de DS_Read

Ejemplo: Lectura de los registros de identificación 50 a 62

Byte

Valor

0 [Número de función]

0x5E [Función DS_Read ]

1 [Número de ranura]

1

2 [Índice]

5 [50/10]

3 [Longitud]

26 [(50 a 62 = 13) x 2]

4 a 29

Valor de los registros 50 a 62

Envío de datos acíclicos (DS_Write)

Con la función DS_Write , el primario PROFIBUS DP puede leer los datos del secundario.

Antes de escribir un bloque de datos, se recomienda leerlo primero, a fin de proteger los datos que no se van a ver afectados. Solo se escribirá el bloque completo si dispone de permiso de escritura, que se comprueba en cada tabla de registros de la sección Grupos de variables de comunicación. Los encabezados de la columna 3 indican si las variables de cada tabla son de solo lectura o de lectura/escritura.

La siguiente tabla muestra el contenido de una trama DS_Write.

Byte

Sintaxis

0 [Número de función]

0x5F [Función DS_Write ]

1 [Número de ranura]

Valor constante = 1

2 [Índice]

Dirección de registro / 10

El acceso común a los registros tiene lugar cada 10 registros.

El índice siempre se redondea a un entero.

3 [Longitud]

Longitud de los bloques de datos en bytes

(Número de registros) x 2

Número máximo de registros = 20 (40 bytes)

Es posible cualquier longitud entre 2 y 40 bytes.

4 a (longitud + 3)

Bloque de bytes de datos que se escribirán.

Ejemplo de DS_Write: Descripción del proceso

Ejemplo: Reinicio de un disparo con la configuración del bit 704.3 en 1

1. Lectura de 700 a 704.

Byte

Valor

0 [Número de función]

0x5E [Función DS_Read ]

1 [Número de ranura]

1

2 [Índice]

70 [700/10]

3 [Longitud]

10 [(700 a 704 = 5) x 2]

4 a 13

Valores actuales de los registros 700 a 704

2. Establecer el bit 3 del registro 704 en 1.

3. Escribir los registros 700 a 704.

Byte

Valor

0 [Número de función]

0x5F [Función DS_Write ]

1 [Número de ranura]

1

2 [Índice]

70 [700/10]

3 [Longitud]

10 [(700 a 704 = 5) x 2]

4 a 13

Valores nuevos de los registros 700 a 704

Información en caso de error detectado

Si el acceso no es posible, no se tiene acceso a ningún registro y se devuelve un valor de error detectado mediante DP V1.

Los primeros 4 bytes de la respuesta en DP en caso de error detectado son los siguientes:

Byte

Valor

Significado

0

0xDE/ 0xDF

para DS_Read / DS_Write

1

0x80

indicación de DP V1

2

0xB6

clase de error detectado + código de error detectado 1 = acceso denegado

3

0xXX

código de error detectado 2, específico de LTMR (consulte la siguiente tabla)

A continuación se muestra el código de error detectado 2, específico del LTMR:

Código de error detectado 2

Significado

01

Solicitud de pila interna completa

03

Registro no gestionado o se necesitan derechos de acceso de superusuario

06

Registro definido pero no escrito

07

No se han encontrado todos los registros

08

Escritura de registros no autorizada

10

Valor escrito fuera del intervalo de registros, valor de palabra demasiado grande (demasiado alto)

11

Valor escrito fuera del intervalo de registros, valor de palabra demasiado pequeño (demasiado bajo)

12

Valor escrito fuera del intervalo de registros (valor MSB demasiado grande)

13

Valor escrito fuera del intervalo de registros (valor MSB demasiado pequeño)

14

Valor escrito fuera del intervalo de registros (valor LSB demasiado grande)

15

Valor escrito fuera del intervalo de registros (valor LSB demasiado pequeño)

16

El valor escrito no es un valor válido

20

Rechazo del módulo, envío de una trama de error detectado

255

Error interno detectado

La presentación de un código de error detectado y de una clase de error detectado a la lógica del usuario depende de la implementación del primario (por ejemplo, el PLC).

El mecanismo sólo tiene acceso a los bloques de parámetros que comienzan en un parámetro dedicado (dirección MB). Esto significa que también se tiene acceso a los parámetros no utilizados (direcciones MB). El valor de los datos leídos desde estos parámetros es 0x00; pero en caso de escritura, es necesario escribir el valor 0x00 en estos parámetros. De lo contrario, se rechazará el acceso de escritura completo.

Registros internos TeSys T

Para obtener más información detallada sobre los registros internos TeSys T, consulte la publicación Communication Variables tables.

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

¿Le ha resultado útil?