DOCA0131FR-03

Lecture/écriture de données acycliques via PROFIBUS DP V1

Présentation

Pour les accès acycliques DP V1, un mécanisme basé sur l’emplacement/index et l’adressage de longueur est mis en œuvre dans le contrôleur LTMR.

NOTE: Tous les registres accessibles sont décrits dans la section Groupes de variables de communication. Ces dernières sont organisées en groupes (Identification, Statistiques,...) et en sous-groupes, si nécessaire.

L’accès aux variables se fait tous les 10 registres. Vous ne pouvez pas accéder aux registres situés entre deux sous-groupes. Si l’accès est impossible, aucun accès aux registres n’a lieu et une valeur d’erreur détectée (par exemple, « tous les registres n’ont pas été trouvés ») est renvoyée via DP V1.

Lecture de données acycliques (DS_Read)

Avec la fonction DS_Read , le primaire PROFIBUS DP peut lire les données du secondaire. Le tableau suivant illustre le contenu d’une trame DS_Read.

Octet

Syntaxe

0 [Numéro de fonction]

0x5E [fonction DS_Read ]

1 [Numéro d’emplacement]

Valeur constante = 1

2 [Index]

Adresse du registre / 10

L’accès courant aux registres se fait tous les 10 registres.

L’index est toujours arrondi à l’entier inférieur.

3 [Longueur]

Longueur des blocs de données en octets

(Nombre de registres) x 2

Nombre maximal de registres = 20 (40 octets)

La longueur peut être comprise entre 2 et 40 octets.

4 à (longueur + 3)

Octets de blocs de données à lire.

Exemple DS_Read

Exemple : lecture des registres d’identification 50 à 62

Octet

Valeur

0 [Numéro de fonction]

0x5E [fonction DS_Read ]

1 [Numéro d’emplacement]

1

2 [Index]

5 [50/10]

3 [Longueur]

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

4 à 29

Valeur des registres 50 à 62

Envoi de données acycliques (DS_Write)

Avec la fonction DS_Write , le primaire PROFIBUS DP peut envoyer les données du secondaire.

Avant d’écrire un bloc de données, il est conseillé d’en lire un afin de protéger les données non concernées. La totalité du bloc sera écrite uniquement si vous possédez des droits d’écriture, qui seront vérifiés dans chaque tableau de registres de la section Groupes de variables de communication. L’en-tête de la troisième colonne indique les variables en lecture seule ou en lecture/écriture.

Le tableau suivant illustre le contenu d’une trame DS_Write.

Octet

Syntaxe

0 [Numéro de fonction]

0x5F [fonction DS_Write ]

1 [Numéro d’emplacement]

Valeur constante = 1

2 [Index]

Adresse du registre / 10

L’accès courant aux registres se fait tous les 10 registres.

L’index est toujours arrondi à l’entier inférieur.

3 [Longueur]

Longueur des blocs de données en octets

(Nombre de registres) x 2

Nombre maximal de registres = 20 (40 octets)

La longueur peut être comprise entre 2 et 40 octets.

4 à (longueur + 3)

Octets de blocs de données à écrire.

Exemple DS_Write : Description du processus

Exemple : Réarmement d’un déclenchement en définissant le bit 704.3 sur 1

1. Lire 700 à 704.

Octet

Valeur

0 [Numéro de fonction]

0x5E [fonction DS_Read ]

1 [Numéro d’emplacement]

1

2 [Index]

70 [700/10]

3 [Longueur]

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

4 à 13

Valeurs courantes des registres 700 à 704

2. Définition du bit 3 du registre 704 à 1

3. Ecriture des registres 700 à 704

Octet

Valeur

0 [Numéro de fonction]

0x5F [fonction DS_Write ]

1 [Numéro d’emplacement]

1

2 [Index]

70 [700/10]

3 [Longueur]

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

4 à 13

Nouvelles valeurs des registres 700 à 704

Réponse en cas d’erreur détectée

Si l’accès est impossible, aucun accès aux registres n’a lieu et une valeur d’erreur détectée est renvoyée via DP V1.

Si une erreur est détectée, les 4 premiers octets de la réponse envoyée au DP sont les suivants :

Octet

Valeur

Signification

0

0xDE/ 0xDF

pour DS_Read / DS_Write

1

0x80

indiquant DP V1

2

0xB6

classe d’erreur détectée + code d’erreur détectée 1 = accès refusé

3

0xXX

code d’erreur détectée 2, spécifique au LTMR (voir le tableau suivant)

Voici le code d’erreur détectée 2, spécifique au LTMR :

Code d’erreur détectée 2

Signification

01

Demande de pile interne complète

03

Registre non géré ou droits d’accès de superutilisateur requis

06

Registre défini mais non écrit

07

Tous les registres n’ont pas été trouvés

08

Interdiction d’écrire dans les registres

10

Valeur écrite en dehors de la plage du registre, valeur du mot trop élevée

11

Valeur écrite en dehors de la plage du registre, valeur du mot trop faible

12

Valeur écrite en dehors de la plage du registre (valeur MSB trop élevée)

13

Valeur écrite en dehors de la plage du registre (valeur MSB trop faible)

14

Valeur écrite en dehors de la plage du registre (valeur LSB trop élevée)

15

Valeur écrite en dehors de la plage du registre (valeur LSB trop faible)

16

Valeur écrite non valide

20

Refus du module, retourne une trame d’erreur détectée

255

Erreur interne détectée

La présentation d’un code d’erreur détectée et d’une classe d’erreur détectée à la logique de l’utilisateur dépend de la mise en œuvre du primaire (par exemple, l’automate).

Ce mécanisme permet uniquement d’accéder aux blocs de paramètres commençant par un paramètre dédié (adresse MB), ce qui signifie que l’accès a également lieu pour les paramètres inutilisés (adresses MB). La valeur lue à partir de ces paramètres est 0x00 ; mais en cas d’écriture, il n’est pas nécessaire d’écrire la valeur 0x00 dans ces paramètres. Sinon, l’accès en écriture totale sera refusé.

Registres internes TeSys T

Pour plus d’informations sur les registres internes TeSys T, reportez-vous à la section Communication Variables tables.

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

Contenu utile ?