Welcome, Guest
Username: Password: Remember me

TOPIC: Communication modbus TCP Ip avec arduino

Communication modbus TCP Ip avec arduino 1 year 2 months ago #11898

  • Latapoune
  • Latapoune's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 37
  • Karma: 0
Bonsoir DD,

Je pense avoir reproduit le problème. Avec Modbus Doctor, tout fonctionne mais avec Proview, la communication s'arrête.

Est-ce que vous pouvez ouvrir l'objet "Modbus_TCP_Slave" une fois le Runtime lancé, et voir si les paquets RX et TX s'arrêtent au bout d'un moment comme c'est le cas pour moi ?

Une autre question : où est paramétré le UnitID dans le programme ?

Merci et bonne soirée
The administrator has disabled public write access.

Communication modbus TCP Ip avec arduino 1 year 2 months ago #11899

  • DD
  • DD's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 6
  • Karma: 0
Bonjour et merci de me répondre,
les paquets s'arrêtent éffectivement, RX 1710 et TX 6829 avec comme message status : %MB-E-CONNLOST-connection lost.
Concernant le paramètre Unitld il existe dans chaque Modbus module et je le met à 1 dans les modules Inputs (readHoldingRegisters) et 0 dans les modules output. Je fais cela sans comprendre vraiment pourquoi mais différement cela ne marche pas.
Cordialement
DD
The administrator has disabled public write access.

Communication modbus TCP Ip avec arduino 1 year 2 months ago #11900

  • Latapoune
  • Latapoune's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 37
  • Karma: 0
Bonjour DD,

J'ai obtenu une connexion stable en faisant 2 choses :

- j'ai créé une objet PlcThread de 1000ms en ajout de celui existant, puis j'ai sélectionné ce nouveau PlcThread au niveau de tous les objets ModBus utilisés pour communiquer avec l’Arduino. Cela a pour effet de ralentir la connexion

- mais surtout : dans le programme arduino mettre Serial.begin au maximum, essai à 200000 chez moi. Voir même mettre en commentaire tout ce qui est console série car cela à pour effet de ralentir le programme surtout à 9600 bauds.

Je n'ai pas eu le temps de tester mais il me semble que le deuxième point est le plus important. C'est pour cela je pense que ça marche bien avec ModbusDoctor.

Pouvez-vous essayer de votre côté ?

Merci.

Seb
Last Edit: 1 year 2 months ago by Latapoune.
The administrator has disabled public write access.

Communication modbus TCP Ip avec arduino 1 year 2 months ago #11901

  • Latapoune
  • Latapoune's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 37
  • Karma: 0
Juste un détail : avec les 2 actions que je décris précédemment, lorsque je lance le runtime, je perds la connexion au bout de quelques secondes, la connexion devient stable en faisant un "Restart Runtime". C'est systématique et je ne comprends pas cela.

En ce moment la connexion est active depuis plus de 2 heures sans aucun soucis mais après un "Restart Runtime". Le problème est au démarrage...

J'ai baissé le PLCThread à 500ms et ça fonctionne encore. Je n'ai pas pu mettre encore en évidence l'efficacité de ce point... En dessous j'ai bien relevé une dégradation mais je ne suis pas sûr que ça vienne de là. Mais d'après Claes, c'est une piste à suivre. A 500ms, le ScanTimeMin = ScanTimeMax = ActualScanTime = 0.5s, ce qui n'est pas du tout le cas à 100ms.

Bon je ne suis que débutant aussi, mais chercher à deux, c'est plus motivant. Le sujet est intéressant !
Last Edit: 1 year 2 months ago by Latapoune.
The administrator has disabled public write access.

Communication modbus TCP Ip avec arduino 1 year 2 months ago #11902

  • DD
  • DD's Avatar
  • OFFLINE
  • Fresh Boarder
  • Posts: 6
  • Karma: 0
Bonjour,
Effectivement la valeur du scantime du runtime ou le nombre de valeur échangée ou l'utilisation ou pas du moniteur série depuis l'arduino ont une influence sur la durée correcte des échanges. J'ai essayé beaucoup de configuration mais immanquablement cela finit par s'arrêter. Par contre j'ai remarqué que les valeurs de TX et RX se figent toujours aux même valeurs dans mon cas (TX 1710 et RX 6825).
Cordialement
DD
The administrator has disabled public write access.

Communication modbus TCP Ip avec arduino 1 year 1 month ago #11906

  • Latapoune
  • Latapoune's Avatar
  • OFFLINE
  • Junior Boarder
  • Posts: 37
  • Karma: 0
Bonjour DD,

Je ne sais pas si vous avez avancé de votre côté mais j'ai pu maintenir une connexion stable de nombreuses heures, mais j'ai toujours besoin de faire un "Restart Runtime" au début car la connexion plante au bout d'une dizaine de paquets échangés. Je ne comprends vraiment pas cela.

J'ai même fait un essai en activant le SingleOp par PLC de l'objet Modbus_TCP_Slave et voir si avec une temporisation des lectures ou écritures contrôlés par programme ou synoptique en manuel peut contourner le problème. Mais le problème reste le même.

Je ne comprends vraiment pas le problème....

Avec des modules E/S de KEP FRANCE, aucun soucis ! Le problème vient bien côté arduino, peut-être la bibliothèque qui n'est pas adaptée...
The administrator has disabled public write access.
Time to create page: 8.333 seconds