Communication Modbus via CP340

Forum traitant des automates industriels de marque Siemens.
Avatar du membre
Bernardo59
Dieu du process
Dieu du process
Messages : 970
Enregistré le : 20 oct. 2015, 05:48
Localisation : Nimes

Re: Communication Modbus via CP340

Message par Bernardo59 »

Bonjour à tous,

Je reviens vers concernant la communication en Modbus via une CP340 (1CH00) car ça fonctionne parfaitement malgré quelques bugs...
Voici les éléments à télécharger:
https://www.dropbox.com/sh/rkitxnirlvyj ... GcPxa?dl=0

Pour ma part, j'ai utilisé uniquement la fonction ModbusRTU en esclave (MBSL340.zip) car je devais faire communiquer un afficheur Magelis XBTGT avec une CPU 318-2 munis du coupleur CP340.
Avant de commencer, il faut vérifier si votre CPU accepte d'utiliser les fonctions P_RCV et P_SEND pour utiliser le bloc FB36. Si elle n'est pas compatible avec ses fonctions, il faudra éclater la protection "Know-how" et modifier le bloc directement. C'est ce qu'il m'est arrivé.... :|
Quand vous ouvrez le projet du fichier ZIP (MBSL340.zip), vous allez vous trouver avec un bloc fonctionnel FB36 (MBSL340), les blocs FB2 (P_RCV), FB3 (P_SEND) ainsi que les SFB 52, 53 et 24 et les DB40, 41, 43 et 44 pour effectuer les échanges. Il faut tout prendre et copier le tout dans un nouveau projet avec votre configuration. N'oubliez pas de configurer le coupleur CP340 avec les paramètres associés avec celui du Maitre Modbus (9600 (obligatoire), 8 bits, parité paire).
Ensuite, il faut placer la fonction FB36 en y créant le bloc d'instance associé, et y renseigner:

Les entrées:
  • LADDR: Adresse du coupleur dans le HWConfig (256 pour ma part)
  • SLAVE: L'adresse esclave que vous voulez lui donner
  • DB_COILS: Le DB pour la fonction Modbus 1
  • DB_INPUTS: Le DB pour la fonction Modbus 2
  • DB_IREGS: Le DB pour la fonction Modbus 3
  • DB_HREGS: Le DB pour la fonction Modbus 4
Les sorties:
  • SLADDR: Adresse de l'esclave reçu
  • FCODE: La code fonction Modbus reçu
  • START: L'adresse de début reçu
  • NOREGS: La longueur reçu
  • DONE: Fin de la réception/envoi (non fonctionnel)
  • ERROR: Erreur pendant la réception ou l'envoi
  • STATUS: Le mot d'erreur (0h - Aucune erreur, E0FFh - Adresse esclave incorrect, xx01h - Fonction non supporté, xx02h - DB non valide, ou adresse demandé en dehors de la plage)

Les entrées/sorties:
  • INIT: Réinitialise le bloc
Une fois configuré, les leds RXD et TXD devraient clignotées et les échanges s'effectuer ! :)
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 806
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Communication Modbus via CP340

Message par djé »

Salut!

Bah dis-donc t'as pas mis longtemps!
Merci pour ton retour.

Quelques interrogations tout de même:
ça fonctionne parfaitement malgré quelques bugs.
C'est à dire? Pour faire un test au bureau ca suffit mais pour une utilisation dans un contexte de production, mieux vaut oublier?
Avant de commencer, il faut vérifier si votre CPU accepte d'utiliser les fonctions P_RCV et P_SEND pour utiliser le bloc FB36. Si elle n'est pas compatible avec ses fonctions, il faudra éclater la protection "Know-how" et modifier le bloc directement. C'est ce qu'il m'est arrivé....
Que faut-il faire dans ce cas?
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
Bernardo59
Dieu du process
Dieu du process
Messages : 970
Enregistré le : 20 oct. 2015, 05:48
Localisation : Nimes

Re: Communication Modbus via CP340

Message par Bernardo59 »

Salut Djé,

Perso, je l'utiliserai pas pour une utilisation pour une production... Ca marche, il n' y a aucun soucis la dessus mais j'utiliserai un bloc "SIEMENS", question de principe.

Alors, pour remplacer la fonction P_RCV et P_SEND par les P_RCV_OLD2 et P_SEND_OLD, j'ai ouvert directement le bloc et je les ai remplacés.
Par contre, en faisant ça, ça décale l'ensemble des variables, donc il faut tout se refarcir les adressages des registres à la mano.
Perso, ça m'a pris 6 heures, et 3 litres de café. :mrgreen:
Autant me demander le bloc, ça fera gagner du temps...
Avatar du membre
djé
Dieu du process
Dieu du process
Messages : 806
Enregistré le : 20 oct. 2015, 09:55
Localisation : Bretagne, Pays de la Loire, Nantes

Re: Communication Modbus via CP340

Message par djé »

Ok.

Merci B59!
Le monde se divise en 10 catégories:les personnes qui comprennent le binaire,et les autres.

Dans tout ce que vous apprenez, seuls 10% vont vous servir,mais vous ne savez pas lesquels ...
Avatar du membre
steph31
Forcené des structures
Forcené des structures
Messages : 177
Enregistré le : 20 oct. 2015, 19:17
Localisation : Toulouse

Re: Communication Modbus via CP340

Message par steph31 »

Bonjour

Avant tout, je vous remercie pour le lien.
Dans mon projet perso (ma domotique avec un S7300) je cherche a mettre en place une communication Modbus master avec MBMA340.
J'ai un code erreur en sortie du FB10 MBMAREG (renommé en FB140 dans mon projet car le FB10 existe déjà) qui est de 16#E006:

STATUS E006h LINK parameter mismatch with MBMA340 communication function block.

Mon CP340 est a l'adresse 316, J'ai bien mis 316 a LADDR du FB34 dans l'OB35.

Avez vous eu ce problème?

Cordialement
Avatar du membre
Bernardo59
Dieu du process
Dieu du process
Messages : 970
Enregistré le : 20 oct. 2015, 05:48
Localisation : Nimes

Re: Communication Modbus via CP340

Message par Bernardo59 »

Bonjour,

Envoi moi ton projet en MP, je regarderai dans l’après midi.
Répondre