PKW: Accesos acíclicos encapsulados en DP V0
Descripción general
Algunos primarios (maestros) PROFIBUS DP no proporcionan servicios DP V1. La función PKW se ha implementado para permitir los accesos de lectura o escritura acíclicos en DP V0.
Esta característica se activa en la herramienta de configuración de PROFIBUS DP mediante la selección del módulo adecuado. Para cada módulo, existe una segunda entrada con PKW.
Los datos PKW se agregan a los datos cíclicos.
Registros de lectura/escritura
Con los datos PKW, podrá leer o escribir cualquier registro. Los 8 bytes se interpretan como un telegrama de solicitud o de respuesta encapsulado en datos de ENTRADA o de SALIDA.
Datos de PKW OUT
Las solicitudes de datos de PKW OUT (PROFIBUS DP Maestro → LTMR) se asignan en módulos que admiten PKW.
Para acceder a un registro, debe seleccionar 1 de los siguientes códigos de función:
-
R_REG_16 = 0x25 para leer 1 registro
-
R_REG_32 = 0x26 para leer 2 registros
-
W_REG_16 = 0x2A para escribir 1 registro
-
W_REG_32 = 0x2B para escribir 2 registros
Los números de registro se indican en Register Map (Organization of Communication Variables).
Palabra 1 |
Palabra 2 |
Palabra 3 |
Palabra 4 |
||
---|---|---|---|---|---|
Dirección de registro |
Bit de conmutación (bit 15) |
Bits de función (bits 8 a 14) |
No utilizado (bits 0 a 7) |
Datos para escribir |
|
Número de registro |
0/1 |
R_REG_16 Código 0x25 |
0x00 |
_ |
_ |
R_REG_32 Código 0x26 |
_ |
_ |
|||
W_REG_16 Código 0x2A |
Datos para escribir en el registro |
_ |
|||
W_REG_32 Código 0x2B |
Datos para escribir en el registro 1 |
Datos para escribir en el registro 2 |
En función de la plataforma PLC utilizada, consulte las tablas que describen PKW OUT en los formatos little endian y big endian en la sección Descripción de datos cíclicos para conocer la ubicación de cada campo dentro de cada palabra.
Cualquier cambio en el campo de función activará la gestión de la solicitud (salvo si el código de función = 0x00).
El bit de conmutación debe cambiar en cada solicitud consecutiva. Este mecanismo permite al iniciador de la solicitud saber cuándo una respuesta está preparada consultando el bit de conmutación de la respuesta. Cuando este bit en los datos de salida sea igual al bit de conmutación emitido por la respuesta en los datos de entrada, la respuesta estará preparada.
Datos de PKW IN
Las respuestas de datos de PKW IN (Maestro PROFIBUS DP del LTMR → ) se asignan en módulos que admiten PKW. El LTMR responde con la misma dirección de registro y el mismo código de función o, finalmente, un código de error detectado:
Palabra 1 |
Palabra 2 |
Palabra 3 |
Palabra 4 |
||
---|---|---|---|---|---|
Dirección de registro |
Bit de conmutación (bit 15) |
Bits de función (bits 8 a 14) |
No utilizado (bits 0 a 7) |
Datos para escribir |
|
Mismo número de registro que en la solicitud |
Igual que para la solicitud |
ERROR DETECTADO Código 0x4E |
0x00 |
Código de error detectado |
|
R_REG_16 Código 0x25 |
Lectura de datos en registro |
_ |
|||
R_REG_32 Código 0x26 |
Lectura de datos en el registro 1 |
Lectura de datos en el registro 2 |
|||
W_REG_16 Código 0x2A |
_ |
_ |
|||
W_REG_32 Código 0x2B |
_ |
_ |
En función de la plataforma PLC utilizada, consulte las tablas que describen PKW IN en los formatos little endian y big endian en la sección Descripción de datos cíclicos para conocer la ubicación de cada campo dentro de cada palabra.
Si el iniciador intenta escribir un objeto o registro TeSys T en un valor ilícito o intenta acceder a un registro no accesible, se responderá con un código de error detectado como respuesta (código de función = bit de conmutación + 0x4E). El código de error exacto detectado se puede encontrar en las palabras 3 y 4. La solicitud no se acepta y el objeto o registro permanece en el valor antiguo.
Si desea volver a activar exactamente el mismo comando, debe llevar a cabo las siguientes acciones:
-
restablezca el código de función a 0x00,
-
espere la trama de respuesta con el código de función igual a 0x00 y, a continuación,
-
restablézcala a su valor anterior.
Esto resulta de utilidad para un primario (maestro) limitado como un HMI.
Otra manera de volver a activar exactamente el mismo comando es:
-
Invertir el bit de conmutación en el byte del código de función.
La respuesta es válida cuando el bit de conmutación de la respuesta es igual al bit de conmutación escrito en la respuesta (éste es un método más eficaz, pero se necesita una mayor capacidad de programación).
Códigos de error detectados del PKW
Errores de escritura detectados
Código de error detectado |
Nombre del error detectado |
Explicación |
---|---|---|
1 |
FGP_ERR_REQ_STACK_FULL |
solicitud externa: devuelve una trama de error detectado |
3 |
FGP_ERR_REGISTER_NOT_FOUND |
registro no gestionado (o la solicitud requiere derechos de acceso de superusuario) |
4 |
FGP_ERR_ANSWER_DELAYED |
Solicitud externa: respuesta pospuesta |
7 |
FGP_ERR_NOT_ALL_REGISTER_FOUND |
no se encuentra uno o ambos registros |
8 |
FGP_ERR_READ_ONLY |
escritura de registro no autorizada |
10 |
FGP_ERR_VAL_1WORD_TOOHIGH |
el valor escrito está fuera del intervalo de registros (valor de palabra demasiado alto) |
11 |
FGP_ERR_VAL_1WORD_TOOLOW |
el valor escrito está fuera del intervalo de registros (valor de palabra demasiado bajo) |
12 |
FGP_ERR_VAL_2BYTES_INF_TOOHIGH |
el valor escrito está fuera del intervalo de registros (valor MSB demasiado alto) |
13 |
FGP_ERR_VAL_2BYTES_INF_TOOLOW |
el valor escrito está fuera del intervalo de registros (valor MSB demasiado bajo) |
16 |
FGP_ERR_VAL_INVALID |
el valor escrito no es un valor válido |
20 |
FGP_ERR_BAD_ANSWER |
solicitud externa: devuelve una trama de error detectado |
Errores de lectura detectados
Código de error detectado |
Nombre del error detectado |
Explicación |
---|---|---|
1 |
FGP_ERR_REQ_STACK_FULL |
solicitud externa: devuelve una trama de error detectado |
3 |
FGP_ERR_REGISTER_NOT_FOUND |
registro no gestionado (o la solicitud requiere derechos de acceso de superusuario) |
4 |
FGP_ERR_ANSWER_DELAYED |
Solicitud externa: respuesta pospuesta |
7 |
FGP_ERR_NOT_ALL_REGISTER_FOUND |
no se encuentra uno o ambos registros |