Écrire des données vers l’esclave ou lire des données de l’esclave
Codes fonctions disponibles (avec exemples de programmation)
SYS_MODBUS_03_READ_HOLDING_REGISTER
SYS_MODBUS_04_READ_INPUT_REGISTERS
SYS_MODBUS_16_PRESET_REGISTERS
Utilisez cette instruction pour écrire des données d’un maitre vers un esclave ou pour lire les données d’un esclave via le port de communication avec le protocole Modbus RTU, selon les paramètres définis dans les registres système du port utilisé. Le maître et l’esclave doivent être définis avec le même protocole.
Entrée
Indique les ports de communication (selon le type d’API) :
Port COM, par ex. SYS_COM0_PORT
Port Ethernet, par ex. SYS_ETHERNET_USER_CONNECTION_1
MCU/SCU, par ex. 16#xx01 (xx = numéro du connecteur) dans COM01
Numéro de station de l’esclave (0–255).
Défini sur 1, si SYS_ETHERNET_USER_CONNECTION_xx est appliquée à l’entrée Port
SYS_MODBUS_01_READ_COIL
SYS_MODBUS_02_READ_INPUT
SYS_MODBUS_03_READ_HOLDING_REGISTER
SYS_MODBUS_04_READ_INPUT_REGISTERS
SYS_MODBUS_05_FORCE_COIL
SYS_MODBUS_06_PRESET_REGISTER
SYS_MODBUS_15_FORCE_COILS
SYS_MODBUS_16_PRESET_REGISTERS
Adresse de départ (0–65535). Le type d’adresse dépend de la commande spécifiée par FunctionCode*.
Nombre de bits ou de mots de transmission.
1–2040 pour les codes fonction 01, 02
2–2040 pour le code fonction 15
1–127 pour les codes fonction 03, 04
2–127 pour le code fonction 16
Adresse source sur le maître pour les données à écrire vers l’esclave.
Au lieu d’utiliser cette instruction F, nous recommandons d’utiliser l’instruction FP7 correspondante : FP_MODBUS_MASTER
Contrairement aux autres instructions F145 ou F146, la commande Modbus requise peut être directement définie par le paramètre FunctionCode*.
Les instructions F145 ou F146 ne peuvent être exécutées que si aucune des instructions n’est active. Évaluez le drapeau "F145/F146 non active" dans votre programme pour vérifier l’état des instructions.
L’instruction F145 n’envoie qu’une requête de transmission des données à l’esclave. La procédure elle-même a lieu en fin de cycle.
Évaluez le drapeau "F145/F146 erreur" pour vérifier si la transmission a été exécutée normalement ou si une erreur est apparue.
En cas de diffusion (broadcasting, SlaveAddress définie sur 0), veillez à ce que la transmission ne soit exécutée qu’après que la durée du cycle maximale s’est écoulée.
L’instruction F145 ou F146 ne peut pas être exécutée si l’adresse de destination est un drapeau interne spécial (à partir de R9000) ou un registre spécial de données (à partir de DT9000/DT90000) ou un registre fichier FL.
Commandes prises en charge par le maître :
Code fonction |
Constante système |
Registre de départ |
Nombre de registres |
Adresses Modbus (en fonction de l’esclave Modbus) |
---|---|---|---|---|
01 |
SYS_MODBUS_01_ READ_COIL |
0–65535 |
1–2040 |
000001–065536 |
02 |
SYS_MODBUS_02_ READ_INPUT |
0–65535 |
1–2040 |
100001–165536 |
03 |
SYS_MODBUS_03_ READ_HOLDING_ REGISTER |
0–65535 |
1–127 |
400001–465536 |
04 |
SYS_MODBUS_04_ READ_INPUT_ REGISTERS |
0–65535 |
1–127 |
300001–365536 |
5 |
SYS_MODBUS_05_ FORCE_COIL |
0–65535 |
1 |
000001–065536 |
6 |
SYS_MODBUS_06_ PRESET_REGISTER |
0–65535 |
1 |
400001–465536 |
15 |
SYS_MODBUS_15_ FORCE_COILS |
0–65535 |
2–2040 |
000001–065536 |
16 |
SYS_MODBUS_16_ PRESET_REGISTERS |
0–65535 |
2–127 |
400001–465536 |
Caractéristiques Modbus pour les automates Panasonic :
Adresse de la zone Modbus |
Nom de la mémoire Modbus |
Type de mémoire |
Adresse API Panasonic |
---|---|---|---|
000001 … |
COIL |
1 bits |
Y0 … |
002049 … |
R0 … |
||
100001 … |
INPUT |
1 bits |
X0 … |
400001 … |
HOLDING_REGISTER |
16 bits |
DT0 … |
300001 … |
INPUT_REGISTERS |
16 bits |
WL0 … |
302001 … |
LD0 … |
Pour en savoir plus sur les plages d’adresses Modbus et les plages d’adresses prises en charge par les automates Panasonic, veuillez consulter le Manuel d’utilisation de l’automate. Si l’adresse Modbus est en dehors de l’intervalle pris en charge, une erreur est renvoyée.
FP-X0, module de communication multiple : Pour en savoir plus, consulter le manuel correspondant disponible en téléchargement sur notre site Internet.
Si les données de l’esclave ou du maître sont en dehors de la plage d’adresses disponible.
Si le mode de communication n’est pas défini sur MEWTOCOL-COM Maître/Esclave ou Modbus RTU Maître/Esclave.
Si le port COM sélectionné requiert une cassette de communication qui n’a pas été installée.
Si les données de l’esclave ou du maître sont en dehors de la plage d’adresses disponible.
Si le mode de communication n’est pas défini sur MEWTOCOL-COM Maître/Esclave ou Modbus RTU Maître/Esclave.
Si le port COM sélectionné requiert une cassette de communication qui n’a pas été installée.
Lorsque vous affectez cette constante au paramètre d’entrée FunctionCode*, la commande Modbus correspondante est exécutée.
Dans le cas particulier où l’esclave connecté est un automate Panasonic configuré en tant qu’esclave Modbus RTU via le registre système, un ou plusieurs bits sont lus à partir de :
Y (Sortie)
R (Drapeaux internes)
Exécution de la commande Modbus 01 : lecture d’1 bit à partir d’un esclave Modbus à partir du registre de départ 56 défini par la variable StartRegister. Ce bit est ensuite sauvegardé dans le maître à partir de l’adresse définie par la variable bBool2. L’adresse de l’esclave est convertie en une adresse spécifique au dispositif en fonction des caractéristiques Modbus du dispositif.
Si l’esclave connecté est un automate Panasonic, le registre de départ 56 correspond à la sortie Y38 (3*16+8=56).
Lorsque vous affectez cette constante au paramètre d’entrée FunctionCode*, la commande Modbus correspondante est exécutée.
Dans le cas particulier où l’esclave connecté est un automate Panasonic configuré en tant qu’esclave Modbus RTU via le registre système, un ou plusieurs bits sont lus à partir de :
Exécution de la commande Modbus 02 : lecture d’1 bit à partir d’un esclave Modbus à partir du registre de départ 66 défini par la variable StartRegister. Ce bit est ensuite sauvegardé dans le maître à partir de l’adresse définie par la variable bBool2. L’adresse de l’esclave est convertie en une adresse spécifique au dispositif en fonction des caractéristiques Modbus du dispositif.
Si l’esclave connecté est un automate Panasonic, le registre de départ 66 correspond à l’entrée X42 (4*16+2=66).
Lorsque vous affectez cette constante au paramètre d’entrée FunctionCode*, la commande Modbus correspondante est exécutée.
Dans le cas particulier où l’esclave connecté est un automate Panasonic configuré en tant qu’esclave Modbus RTU via le registre système, un ou plusieurs bits sont lus à partir de :
Exécution de la commande Modbus 03 : lecture de 2 mots à partir d’un esclave Modbus à partir du registre de départ 100 défini par la variable StartRegister. Ces 2 mots sont ensuite sauvegardés dans le maître Modbus 2 à partir de l’adresse définie par la variable rCount2. L’adresse de l’esclave est convertie en une adresse spécifique au dispositif en fonction des caractéristiques Modbus du dispositif.
Si l’esclave connecté est un automate Panasonic, le registre de départ 100 correspond au registre de données DDT100.
Nombre maximum de registres : 127
Lorsque vous affectez cette constante au paramètre d’entrée FunctionCode*, la commande Modbus correspondante est exécutée.
Dans le cas particulier où l’esclave connecté est un automate Panasonic configuré en tant qu’esclave Modbus RTU via le registre système, un ou plusieurs bits sont lus à partir de :
WL0–WL127 (Drapeaux de liaison)
LD0–LD256 (Registres de liaison)
Exécution de la commande Modbus 04 : lecture de 7 mots à partir d’un esclave Modbus à partir du registre de départ 2018 défini par la variable StartRegister. Les 7 mots sont ensuite sauvegardés dans le maître à partir de LD25 défini par la variable MasterData. L’adresse de l’esclave est convertie en une adresse spécifique au dispositif en fonction des caractéristiques Modbus du dispositif.
Si l’esclave connecté est un automate Panasonic, le registre de départ 2018 correspond au registre de liaison LD18.
Nombre maximum de registres : 127
Lorsque vous affectez cette constante au paramètre d’entrée FunctionCode*, la commande Modbus correspondante est exécutée.
Si l’esclave connecté est un automate Panasonic en mode Modbus RTU, un ou plusieurs bits sont écrits dans :
Y (Sortie)
R (Drapeaux internes)
Exécution de la commande Modbus 05 : écriture d’1 bit dans un esclave Modbus à partir de l’adresse WY1 définie par la variable MasterData. Ce bit est ensuite sauvegardé dans un esclave Modbus à partir du registre de départ 35 défini par la variable StartRegister. L’adresse de l’esclave est convertie en une adresse spécifique au dispositif en fonction des caractéristiques Modbus du dispositif.
Si l’esclave connecté est un automate Panasonic, l’adresse 35 correspond à la sortie Y23 (2*16+3=35).
Lorsque plusieurs bits sont écrits, utilisez la constante SYS_MODBUS_15_FORCE_COILS
Nombre maximum de registres : 1
Lorsque vous affectez cette constante au paramètre d’entrée FunctionCode*, la commande Modbus correspondante est exécutée.
Si l’esclave connecté est un automate Panasonic en mode Modbus RTU, un ou plusieurs bits sont écrits dans :
Exécution de la commande Modbus 06 : écriture d’1 mot dans un esclave Modbus à partir de l’adresse DT14 définie par la variable MasterData. Ce mot est ensuite sauvegardé dans l’esclave Modbus à partir du registre de départ 21 défini par la variable StartRegister. L’adresse de l’esclave est convertie en une adresse spécifique au dispositif en fonction des caractéristiques Modbus du dispositif.
Si l’esclave connecté est un automate Panasonic, le registre de départ 21 correspond au registre de données DT21.
Lorsque plusieurs bits sont écrits, utilisez la constante SYS_MODBUS_15_FORCE_COILS
Nombre maximum de registres : 1
Lorsque vous affectez cette constante au paramètre d’entrée FunctionCode*, la commande Modbus correspondante est exécutée.
Si l’esclave connecté est un automate Panasonic en mode Modbus RTU, un ou plusieurs bits sont écrits dans :
Y (Sortie)
R (Drapeaux internes)
Exécution de la commande Modbus 15 : écriture de 64 bits dans un esclave Modbus à partir de l’adresse WY1 définie par la variable MasterData. Les 64 bits sont ensuite sauvegardés dans l’esclave Modbus à partir du registre de départ 48 défini par la variable StartRegister. L’adresse de l’esclave est convertie en une adresse spécifique au dispositif en fonction des caractéristiques Modbus du dispositif.
Si l’esclave connecté est un automate Panasonic, l’adresse 48 correspond à la sortie Y30 (3*16=48).
Lorsque vous affectez cette constante au paramètre d’entrée FunctionCode*, la commande Modbus correspondante est exécutée.
Si l’esclave connecté est un automate Panasonic en mode Modbus RTU, un ou plusieurs bits sont écrits dans :
Exécution de la commande Modbus 16 : écriture de données dans un esclave Modbus à partir de l’adresse définie par la variable rCount1. Ces données sont ensuite sauvegardées dans l’esclave Modbus 2 à partir du registre de départ 100 défini par la variable StartRegister. L’adresse de l’esclave est convertie en une adresse spécifique au dispositif en fonction des caractéristiques Modbus du dispositif.
Si l’esclave connecté est un automate Panasonic, le registre de départ 100 correspond au registre de données DDT100.
Nombre maximum de registres : 127