Description fonctionnelle

La fonction DATA_EXCH permet d'effectuer des transferts de données entre des équipements avec des UC (M340) M580, CPU et Premium :

  • émission de données,

  • réception de données,

  • émission suivie d'une réception de données.

NOTE :

Le type de requête susceptible d'être envoyée dépend du type d'UC :

  • Sur les UC Modicon M340 et M580, cette fonction permet d'envoyer des requêtes Modbus à un autre équipement. Le protocole d'application Modbus est décrit sur le site http://www.modbus.org.

  • Sur l'UC Premium, cette fonction permet d'envoyer des requêtes UNI-TE à un autre équipement. A cette fin, il est nécessaire de s'assurer que les données envoyées constituent la totalité de la trame requise par le protocole qui est utilisé.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

Représentation en IL

Représentation :

LD Address
DATA_EXCH Action, Data_to_Send, Management_Param,
Received_Data

Représentation en ST

Représentation :

DATA_EXCH(Address, Action, Data_to_Send, Management_Param,
Received_Data);

Description des paramètres

Le tableau suivant décrit les paramètres d’entrée :

Paramètre

Type

Commentaire

ADR

ARRAY [0... 5] OF INT pour Premium

ARRAY [0..7] OF INT pour Modicon M340 et M580

Adresse de l’entité destinataire de l’échange. Si le paramètre Action est de type émission/réception, les adresses de diffusion sont interdites.

Pour l'UC Premium :

  • Utilisez la fonction ADDR.

Pour l'UC Modicon M340 :

  • Utilisez la fonction ADDM.

  • L'entité cible de l'échange est un tableau de 8 mots. %MWx:8.

    %MWx:8 : Initialisé par le bloc de conversion ADDM.

    %MW0:8:=ADDM(‘0.3.0.0’)

Pour l'UC Modicon M580 :

  • Adresse de l'entité cible de l'opération d'échange, résultat de la fonction ADDMX.

TYP

INT

Type d'action à réaliser.

Pour l'UC Premium, les valeurs possibles sont :

  • 1 : émission suivie d'une mise en attente pour réception (action impossible en Uni-Telway esclave)

  • 2 : émission seule

  • 3 : mode réception

Pour les UC Modicon M340 et M580, la valeur possible est :

  • 1 : émission suivie d'une mise en attente pour la réception.

EMIS

ARRAY [n..m] OF INT

Tableau d'entiers à envoyer à l'équipement destinataire de la requête.

NOTE : assurez-vous que la longueur minimale est égale à 1 élément, même s'il n'y a pas de données à envoyer (code 3 pour l'action, par exemple).
NOTE : assurez-vous que la longueur des données à envoyer (en octets) est affectée au quatrième mot de la table de gestion avant de lancer la fonction, pour que celle-ci puisse s'exécuter correctement.

Le tableau suivant décrit les paramètres d’entrée/sortie :

Paramètre

Type

Commentaire

GEST

ARRAY [0..3] OF INT

Table de gestion de l'échange composée des mots suivants :

  • Mot de rang 1 : mot géré par le système et composé de 2 octets :

    • octet de poids fort : numéro d'échange,

    • octet de poids faible : bit d'activité (rang 0) et bit d'annulation (rang 1)

      NOTE : le bit d'annulation n'est disponible que pour les automates Modicon M340 et M580. Il s'agit d'un autre moyen d'annuler la fonction de communication sans utiliser l'EF CANCEL.
  • Mot de rang 2 : mot géré par le système et composé de 2 octets :

    • octet de poids fort : compte rendu d'opération

    • octet de poids faible : compte rendu de communication

  • Mot de rang 3 : mot géré par l'utilisateur et qui définit le temps de réponse maximum en utilisant une base de temps de 100 ms.

  • Mot de rang 4 : mot géré par le système et qui définit la longueur de l'échange.

Pour plus d'informations, consultez la section Structure des paramètres de gestion.

Le tableau suivant décrit les paramètres de sortie :

Paramètre

Type

Commentaire

RECP

ARRAY [n..m] OF INT

Tableau d'entiers qui contient les données reçues lors d'une action en mode réception ou émission/réception. la taille des données reçues (en octets) est écrite automatiquement par le système dans le quatrième mot de la table de gestion

NOTE : Même si l'action est uniquement une transmission, vérifiez qu'une table RECP existe avec une taille minimale de 1.

Services Modicon M340

Sur les automates Modicon M340, l'utilisateur peut coder un protocole privé et gratuit pour envoyer des requêtes Modbus. Cela permet aux supports Modbus d'envoyer ou de recevoir une chaîne octale libre.

L'EF DATA_EXCH peut être utilisée sur tous les ports de communication à l'exception du port CANopen. Les limites de taille du tampon SendBuffer sont fournies par les caractéristiques du port de destination.

Le tableau ci-après indique la longueur pour tous les ports de communication :

Port

Longueur

Ethernet (NOE ou port intégré)

1 Ko

Modbus

256 octets

La longueur du message à envoyer ou à recevoir est indiquée dans le quatrième mot du tableau de gestion.

Le bloc de conversion ADDM est utilisé pour indiquer la destination de la requête.

Reportez-vous à la fonction ADDM.

NOTE : Spécifiez le mot clé TCP.MBS lorsque l'EF DATA_EXCH est utilisée pour les commandes Modbus sur Ethernet.

Les autres entités Ethernet ne sont pas prises en charge. L'EF DATA_EXCH ne gère pas directement une connexion via TCP.

Pour le protocole utilisateur ouvert sur Modbus, la syntaxe suivante est acceptée :

  • rack.module - Serveur de module

  • rack.module.voie.équipement.MBS - Protocole Modbus

  • rack.module.voie.équipement - Protocole utilisateur

Exemple de service Modicon M340

Objectif : Ecrire dans un seul registre %MW100, longueur := 5

(* REQUEST WRITE SINGLE REGISTER %MW100 Length := 5 *)

(* Data_to_send = Modbus request encoding *)

(* Byte 1 = Register Address Hi = 0 ; Byte 0 = Function code = 06 *)

Data_to_Send[0] := 6;

(* Byte 3 = Register Value Hi ; Byte 2 = Register Address Lo = 100 *)

Data_to_Send[1] := (RegisterValue & 16#FF00) + 100;

(* Byte 5 = unused; Byte 4 = Register Value Lo)

Data_to_Send[2] := RegisterValue & 16#FF;

IF ((Management_Param[ACTIVITY] & 1) = 0 ) THEN

Management_Param[LENGTH] := 5; (* LENGTH RQ WRITE *)

DATA_EXCH (ADDM('0.0.0.1'), 1, Data_To_Send, Management_Param, Received_Data);

END_IF;

NOTE : le bus Modbus est gros-boutiste, alors que les mots P-UNIT sont petit-boutistes. Vous devrez réaliser une conversion pour certaines requêtes.

Il est possible d'utiliser l'instruction ROL suivante :

Value_read := ROL(Received_Data[1], 8); (* CONVERT BIG/LITTLE ENDIAN *)