Objetos PKW
Descripción general
El controlador CANopen admite PKW (Periodically Kept in acyclic Words [conservado periódicamente en palabras acíclicas]). La función PKW consta de 4 objetos específicos del fabricante: 0x3000:0x01 a 0x3000:0x04.
Estos objetos permiten que un cliente CANopen lea o escriba cualquier registro mediante los PDO. Por defecto, están asignados en PD04 de transmisión y recepción.
Puede elegir si desea dirigir un registro por su número o por el índice y subíndice CANopen, dependiendo del código de función.
Direccionamiento del número de registro de datos de PKW OUT
Las solicitudes de datos de PKW OUT (
) se asignan de forma predeterminada en el PDO4 de recepción.Para acceder a un registro utilizando el direccionamiento de número, debe seleccionar uno 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
0x3000:0x01 |
0x3000:0x02 |
||||
---|---|---|---|---|---|
Palabra 1 |
Palabra 2 |
Palabra 3 |
Palabra 4 |
||
MSB |
LSB |
||||
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 que se deben escribir en el registro |
_ |
|||
W_REG_32 Código 0x2B |
Datos que se deben escribir en el registro 1 |
Datos que se deben escribir en el registro 2 |
Direccionamiento de datos de PKW OUT CANopen
Para acceder a un registro utilizando el direccionamiento CANopen, debe seleccionar uno de los siguientes códigos de función:
-
R_CO_16 = 0x35 para leer 1 registro
-
R_CO_32 = 0x36 para leer 2 registros
-
W_CO_16 = 0x3A para escribir 1 registro
-
W_CO_32 = 0x3B para escribir 2 registros.
0x3000:0x01 |
0x3000:0x02 |
||||
---|---|---|---|---|---|
Palabra 1 |
Palabra 2 |
Palabra 3 |
Palabra 4 |
||
MSB |
LSB |
||||
Dirección de registro |
Bit de conmutación (bit 15) |
Bits de función (bits 8 a 14) |
Dirección de registro |
Datos para escribir |
|
Índice CANopen |
0/1 |
R_CO_16 Código 0x35 |
Subíndice CANopen |
_ |
_ |
R_CO_32 Código 0x36 |
_ |
_ |
|||
W_CO_16 Código 0x3A |
Datos que se deben escribir en el registro |
_ |
|||
W_CO_32 Código 0x3B |
Datos que se deben escribir en el registro 1 |
Datos que se deben escribir en el registro 2 |
Cualquier cambio en el código de función activará la gestión de la solicitud (salvo si el código de función [b8...b14] = 0x00).
Este mecanismo permite al iniciador de la solicitud detectar cuándo una respuesta está preparada mediante el bit de consulta 15 del código de función en el objeto 30000x:03. Cuando este bit del proyecto de salida (OUT) es igual al bit de conmutación emitido en la respuesta de los datos de entrada (IN) (cuando se inicia la solicitud), entonces la respuesta está preparada.
Direccionamiento del número de registro de datos de PKW IN
Las respuestas de datos de PKW IN (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:
) se asignan de forma predeterminada en el PDO4 de transmisión. El
0x3000:0x03 |
0x3000:0x04 |
||||
---|---|---|---|---|---|
Palabra 1 |
Palabra 2 |
Palabra 3 |
Palabra 4 |
||
MSB |
LSB |
||||
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 |
_ |
_ |
Direccionamiento de datos de PKW IN CANopen
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:
0x3000:0x03 |
0x3000:0x04 |
||||
---|---|---|---|---|---|
Palabra 1 |
Palabra 2 |
Palabra 3 |
Palabra 4 |
||
MSB |
LSB |
||||
Dirección de registro |
Bit de conmutación (bit 15) |
Bits de función (bits 8 a 14) |
Dirección de registro |
Datos para escribir |
|
Mismo índice CANopen que en la solicitud |
Igual que para la solicitud |
ERROR DETECTADO Código 0x4E |
Subíndice CANopen |
Código de error detectado |
|
R_REG_16 Código 0x55 |
Lectura de datos en registro |
_ |
|||
R_REG_32 Código 0x36 |
Lectura de datos en el registro 1 |
Lectura de datos en el registro 2 |
|||
W_REG_16 Código 0x3A |
_ |
_ |
|||
W_REG_32 Código 0x3B |
_ |
_ |
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 recibirá un código de error detectado como respuesta (código de función = bit de conmutación + 0x4E). El código exacto se puede encontrar en las palabras 3 y 4.
Estos códigos son los mismos que los códigos de interrupción de SDO Códigos de interrupción de SDO.
La solicitud no se acepta y el objeto/registro permanece en el valor original.
Para volver a activar exactamente el mismo comando:
-
restablezca el código de función a 0x00,
-
espere la trama de respuesta con el código de función igual a 0x00,
-
restablézcala a su valor anterior.
Esto resulta de utilidad para un cliente limitado como un HMI.
Otro modo de volver a activar el mismo comando exactamente consiste en 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).