Définition du paramètre MbusCmd

Le paramètre MbusCmd représente la commande Modbus.

Le paramètre MbusCmd est constitué d’un tableau de 4 registres tel que présenté ci-dessous :

Contenu

Description

Description

MbusCmd[1]

Adresse esclave

Ce mot contient l'adresse de l'automate Modbus esclave.

La plage des adresses admissibles est de 0 à 248.

L’adresse 0 est réservée pour envoyer un message Modbus à plusieurs automates. Ce type de transmission est appelé mode diffusion.

Le mode diffusion prend uniquement en charge les codes de fonction Modbus écrivant des données de l'automate maître vers des automates esclaves. Il ne prend pas en charge les codes de fonction Modbus lisant des données des automates esclaves.

L’adresse 248 est réservée à la communication point à point quand l’adresse de l’esclave n’est pas connue. Cette adresse n’est pas supportée par tous les équipements.

MbusCmd[2]

Code fonction Modbus

Le bloc OUT_IN_MBUS prend en charge les codes de fonction suivants :

  • 01 = lecture de plusieurs bits de sortie (0x),

  • 02 = lecture de plusieurs bits d'entrée (1x),

  • 03 = lecture de plusieurs registres de sortie (4x),

  • 04 = lecture de plusieurs registres d'entrée (3x),)

  • 05 = écriture d'un seul bit de sortie (0x),

  • 06 = écriture d'un seul registre de sortie (4x),

  • 15 = écriture de plusieurs bits de sortie (0x),)

  • 16 = écriture de plusieurs registres de sortie (4x).

Note : quand l’automate esclave est de type Premium, tous les bits deviennent des %M et les registres deviennent des %MW.

MbusCmd[3]

Zone de données de l'automate esclave

Pour une commande de lecture, la zone de données de l'automate esclave est la source des données. Pour une commande d'écriture, la zone de données de l'automate esclave est la destination des données.

Par exemple :

  • pour lire les bits de sortie 300 à 500 d'un automate esclave, entrez 300 dans ce champ,

  • pour écrire des données d'un automate maître dans le registre 100 de type 4x d'un automate esclave, entrez 100 dans ce champ.

Selon le type de commande Modbus (lecture ou écriture), les zones de données source et cible doivent être conformes à celles du tableau ci-après.

MbusCmd[4]

Quantité

Ce registre contient la quantité de données à écrire ou à lire dans l'automate esclave.

Par exemple, entrez 100 pour lire 100 registres de sortie dans l'automate esclave ou entrez 32 pour écrire 32 bits de sortie dans un automate esclave.

Il existe une taille limite, qui dépend du code fonction Modbus utilisé et du mode de transmission (RTU ou ASCII). Ces valeurs limites de MbusCmd[4] sont détaillées dans le tableau ci-après. Cette taille est non significative pour les codes fonctions 5 et 6.

Note : la zone mémoire est limitée en fonction de l’équipement et du paramétrage de l’esclave

MbusCmd[3]

Le tableau ci-dessous présente la zone de données de l’automate esclave pour MbusCmd[3]. Cette zone de données dépend du code fonction Modbus utilisé et du type d’automate esclave :

Code fonction

Zone de données pour équipement standard Modbus

Zone de données pour automate Premium

01 (lecture de plusieurs bits de sortie (0x))

0x (source)

%M (source)

02 (lecture de plusieurs bits d'entrée (1x))

1x (source)

%M (source)

03 (lecture de plusieurs registres de sortie (4x))

4x (source)

%MW (source)

04 (lecture de plusieurs registres d'entrée (3x))

3x (source)

%MW (source)

05 (écriture d'un seul bit de sortie (0x))

0x (destination)

%M (destination)

06 (écriture d'un seul registre de sortie (4x))

4x (destination)

%MW (destination)

15 (écriture de plusieurs bits de sortie (0x))

0x (destination)

%M (destination)

16 (écriture de plusieurs registres de sortie (4x)).

4x (destination)

%MW (destination)

MbusCmd[4]

Le tableau ci-dessous présente la valeur limite de MbusCmd[4]. Cette valeur dépend du code fonction Modbus utilisé et du mode de transmission :

Code fonction

Mode RTU (8 bits)

Mode ASCII (7 bits)

01 (lecture de plusieurs bits de sortie (0x))

1000

500

02 (lecture de plusieurs bits d'entrée (1x))

1000

500

03 (lecture de plusieurs registres de sortie (4x))

100

50

04 (lecture de plusieurs registres d'entrée (3x))

100

50

05 (écriture d'un seul bit de sortie (0x))

1

1

06 (écriture d'un seul registre de sortie (4x))

1

1

15 (écriture de plusieurs bits de sortie (0x))

1000

500

16 (écriture de plusieurs registres de sortie (4x)).

100

50