DOCA0132FR-01

Objects PKW

Présentation

Le contrôleur CANopen prend en charge la fonction PKW (Periodically Kept in acyclic Words – périodiquement conservé en mots acycliques). La fonction PKW est constituée de 4 objets spécifiques au fabricant : 0x3000:0x01 à 0x3000:0x04.

Ces objets permettent à un client CANopen de lire ou d’écrire dans tout registre à l’aide de PDO. Ils sont mappés par défaut dans les PDO4 de transmission et de réception.

Vous pouvez choisir d’accéder à un registre par son numéro ou par son index ou sous-index CANopen, selon le code de fonction.

Adressage par numéro de registre des données en SORTIE PKW

Les requêtes de données PKW OUT ( Client CANopen > LTMR ) sont mappées par défaut dans le PDO4 de réception.

Pour accéder à un registre à l’aide de l’adressage par numéro, vous devez sélectionner l’un des codes de fonction suivants :

  • R_REG_16 = 0x25 pour lire 1 registre

  • R_REG_32 = 0x26 pour lire 2 registres

  • W_REG_16 = 0x2A pour écrire 1 registre

  • W_REG_32 = 0x2B pour écrire 2 registres

0x3000:0x01

0x3000:0x02

Mot 1

Mot 2

Mot 3

Mot 4

MSB

LSB

Adresse de registre

Bit de basculement

(bit 15)

Bits de fonction

(bits 8 à 14)

Inutilisé

(bits 0 à 7)

Données à écrire

Numéro du registre

0/1

R_REG_16

Code 0x25

0x00

_

_

R_REG_32

Code 0x26

_

_

W_REG_16

Code 0x2A

Données à écrire dans le registre

_

W_REG_32

Code 0x2B

Données à écrire dans le registre 1

Données à écrire dans le registre 2

Adressage CANopen des données PKW OUT

Pour accéder à un registre à l’aide de CANopen, vous devez sélectionner l’un des codes de fonction suivants :

  • R_CO_16 = 0x35 pour lire 1 registre

  • R_CO_32 = 0x36 pour lire 2 registres

  • W_CO_16 = 0x3A pour écrire 1 registre

  • W_CO_32 = 0x3B pour écrire 2 registres

0x3000:0x01

0x3000:0x02

Mot 1

Mot 2

Mot 3

Mot 4

MSB

LSB

Adresse de registre

Bit de basculement

(bit 15)

Bits de fonction

(bits 8 à 14)

Adresse de registre

Données à écrire

Index CANopen

0/1

R_CO_16

Code 0x35

Sous-index CANopen

_

_

R_CO_32

Code 0x36

_

_

W_CO_16

Code 0x3A

Données à écrire dans le registre

_

W_CO_32

Code 0x3B

Données à écrire dans le registre 1

Données à écrire dans le registre 2

Toute modification de ce code de fonction déclenchera le traitement de la requête (sauf si le code de fonction [b8...b14] = 0x00).

NOTE: Le bit le plus haut du code fonction (bit 15) est un bit de basculement. Il change pour chaque requête consécutive.

Ce mécanisme permet à l’initiateur de la requête de savoir à quel moment une réponse est prête en interrogeant le bit 15 du code de fonction dans l’objet 30000x:03. Lorsque ce bit du projet de SORTIE est égal au bit de basculement émis par la réponse dans les données d’ENTREE (au lancement de la requête), alors la réponse est prête.

Adressage par numéro de registre des données en ENTRÉE PKW

Les réponses de données PKW IN ( LTMR > Client CANopen ) sont mappées par défaut dans le PDO4 d’émission. Le LTMR renvoie la même adresse de registre et le même code de fonction ou un code d’erreur détecté.

0x3000:0x03

0x3000:0x04

Mot 1

Mot 2

Mot 3

Mot 4

MSB

LSB

Adresse de registre

Bit de basculement

(bit 15)

Bits de fonction

(bits 8 à 14)

Inutilisé

(bits 0 à 7)

Données à écrire

Identique au numéro de registre de la requête

Identique à la requête

ERREUR DÉTECTÉE

Code 0x4E

0x00

Code de l’erreur détectée

R_REG_16

Code 0x25

Données à lire dans le registre

_

R_REG_32

Code 0x26

Données à lire dans le registre 1

Données à lire dans le registre 2

W_REG_16

Code 0x2A

_

_

W_REG_32

Code 0x2B

_

_

Adressage CANopen des données PKW IN

Le LTMR renvoie la même adresse de registre et le même code de fonction ou un code d’erreur détecté.

0x3000:0x03

0x3000:0x04

Mot 1

Mot 2

Mot 3

Mot 4

MSB

LSB

Adresse de registre

Bit de basculement

(bit 15)

Bits de fonction

(bits 8 à 14)

Adresse de registre

Données à écrire

Identique à l’index CANopen de la requête

Identique à la requête

ERREUR DÉTECTÉE

Code 0x4E

Sous-index CANopen

Code de l’erreur détectée

R_REG_16

Code 0x55

Données à lire dans le registre

_

R_REG_32

Code 0x36

Données à lire dans le registre 1

Données à lire dans le registre 2

W_REG_16

Code 0x3A

_

_

W_REG_32

Code 0x3B

_

_

Si l’initiateur tente d’écrire un objet ou un registre TeSys T à une valeur non autorisée ou d’accéder à un registre inaccessible, un code d’erreur détecté est retourné (code fonction = bit de basculement + 0x4E). Le code d’erreur exact se trouve dans les mots 3 et 4.

Ces codes sont les mêmes que les codes d’abandon SDO Codes d’abandon SDO.

La requête n’est pas acceptée et l’objet/registre garde sa valeur initiale.

Pour redéclencher exactement la même commande :

  1. Rétablissez le code fonction 0x00.

  2. Attendez la trame de réponse indiquant que le code de fonction est égal à 0x00.

  3. Rétablissez la valeur précédente du code.

Cette opération est utile pour un client limité tel qu’une HMI.

Une autre méthode pour déclencher à nouveau la même commande consiste à inverser le bit de basculement de l’octet du code de fonction.

La réponse est valide lorsque le bit de basculement de la réponse est égal à celui qui est écrit dans la réponse (cette méthode est plus efficace mais nécessite un meilleur niveau de programmation).

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

Contenu utile ?