Stratégie de dialogue Modbus TCP entre PC et API

Partie du forum pour tout ce qui concerne la partie réseau de communication dans l'industrie. Forum, conseil, astuce et entraide sur le réseau industriel tel que la connexion modbus, ethernet, fipio .
Répondre
krock
Apprend le binaire
Apprend le binaire
Messages : 5
Enregistré le : 16 oct. 2020, 11:02

Stratégie de dialogue Modbus TCP entre PC et API

Message par krock » 16 oct. 2020, 12:59

Bonjour à tous,

Je développe une application qui tourne sur un pc et récupère des données côté automate via modbus tcp. Je récupère ces données toutes les 500ms.
Je dialogue avec deux types d'api :
Schneider M300
Siemens S7-1500

Aujourd'hui, toutes les 500ms :
- Je me connecte à l'api
- je fais un Read Holding Register
- Je me déconnecte
- Je traite

Que pensez-vous de cette approche ?
Est il préférable de maintenir la connexion en permanence à la place de se déco/reco aussi souvent ? si oui pourquoi ?

Merci.

MiGaNuTs
Codeur fou
Codeur fou
Messages : 289
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret

Re: Stratégie de dialogue Modbus TCP entre PC et API

Message par MiGaNuTs » 16 oct. 2020, 14:19

Bonjour.

A l'époque lointaine ou les processeurs étaient lents et le débit des réseau était faibles, économiser quelques trames d'ouverture de de fermeture des connexions ça permettait de faire un peu moins ramer le serveur.
Aujourd'hui bon... Tu gaspille un peu de temps d'exécution et de transfert des données, mais avec une requête toute les 500 ms tu va pas mettre tes automates a genoux. Il devrait leur rester assez de temps pour exécuter tout ça sans faire 'péter le chien de garde'
Si tu faisait une requête toute les 1ms, la question se poserai sérieusement.

Avatar de l’utilisateur
Béryl
Dieu du process
Dieu du process
Messages : 942
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: Stratégie de dialogue Modbus TCP entre PC et API

Message par Béryl » 16 oct. 2020, 14:34

krock a écrit :
16 oct. 2020, 12:59
Je développe une application qui tourne sur un pc et récupère des données côté automate via modbus tcp. Je récupère ces données toutes les 500ms.
C'est développé en quoi ?

krock
Apprend le binaire
Apprend le binaire
Messages : 5
Enregistré le : 16 oct. 2020, 11:02

Re: Stratégie de dialogue Modbus TCP entre PC et API

Message par krock » 16 oct. 2020, 15:20

Béryl a écrit :
16 oct. 2020, 14:34
krock a écrit :
16 oct. 2020, 12:59
Je développe une application qui tourne sur un pc et récupère des données côté automate via modbus tcp. Je récupère ces données toutes les 500ms.
C'est développé en quoi ?
En c#.

krock
Apprend le binaire
Apprend le binaire
Messages : 5
Enregistré le : 16 oct. 2020, 11:02

Re: Stratégie de dialogue Modbus TCP entre PC et API

Message par krock » 16 oct. 2020, 15:54

MiGaNuTs a écrit :
16 oct. 2020, 14:19
Bonjour.

A l'époque lointaine ou les processeurs étaient lents et le débit des réseau était faibles, économiser quelques trames d'ouverture de de fermeture des connexions ça permettait de faire un peu moins ramer le serveur.
Aujourd'hui bon... Tu gaspille un peu de temps d'exécution et de transfert des données, mais avec une requête toute les 500 ms tu va pas mettre tes automates a genoux. Il devrait leur rester assez de temps pour exécuter tout ça sans faire 'péter le chien de garde'
Si tu faisait une requête toute les 1ms, la question se poserai sérieusement.
Ok merci. Les api de ma boîte sont généralement très chargés. Aujourd'hui, mon app fonctionne correctement. Pour moi l’intérêt de faire de la sorte était de ne pas devoir vérifier l'état de la connexion en permanence.

Par contre, il semblerait que généralement, on laisse une connexion modbus tcp ouverte en permanence, d'où mon interrogation.

filou59
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 113
Enregistré le : 20 oct. 2015, 23:26

Re: Stratégie de dialogue Modbus TCP entre PC et API

Message par filou59 » 19 oct. 2020, 21:20

Salut

Moi je laisse la connexion ouverte en permanence.
De mémoire je suis a environ 50ms en chaque requete.

L'appli tourne sur un Windows Serveur 2003 et interroge un PFC100 de chez Wago. (VB.NET + Lib Easymodbus de rossmann)

krock
Apprend le binaire
Apprend le binaire
Messages : 5
Enregistré le : 16 oct. 2020, 11:02

Re: Stratégie de dialogue Modbus TCP entre PC et API

Message par krock » 20 oct. 2020, 08:27

filou59 a écrit :
19 oct. 2020, 21:20
Salut

Moi je laisse la connexion ouverte en permanence.
De mémoire je suis a environ 50ms en chaque requete.

L'appli tourne sur un Windows Serveur 2003 et interroge un PFC100 de chez Wago. (VB.NET + Lib Easymodbus de rossmann)
Salut, Merci de ton retour.

J'utilise aussi cette lib. Dans easymodbus, La propiété connected (indique que le client est connecté au serveur) est toujours vrai (bug). Comment tu t'assures que le serveur modbus est toujours dispo (un ping ? sachant que si le serveur est un pc, un ping indique que le pc est sur le réseau, mais pas que le serveur modbus est opérationnel).

Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 4252
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Stratégie de dialogue Modbus TCP entre PC et API

Message par itasoft » 20 oct. 2020, 15:22

J'utilise aussi cette lib. Dans easymodbus, La propiété connected (indique que le client est connecté au serveur) est toujours vrai (bug). Comment tu t'assures que le serveur modbus est toujours dispo (un ping ? sachant que si le serveur est un pc, un ping indique que le pc est sur le réseau, mais pas que le serveur modbus est opérationnel).
----------
Disons que moi je fais ce contrôle avec un "mot de vie"
Automaticien privé (de tout)
itasoft@free.fr

filou59
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 113
Enregistré le : 20 oct. 2015, 23:26

Re: Stratégie de dialogue Modbus TCP entre PC et API

Message par filou59 » 22 oct. 2020, 06:37

Il faut que je regarde comment j'ai fait

Déjà je me met en place un petit chien de garde, un compteur qui s'incremente des 2 cotés, comme ca que ce soit coté Automate ou Coté Soft l'un et l'autre sont au courant si tout est ok ou pas.

krock
Apprend le binaire
Apprend le binaire
Messages : 5
Enregistré le : 16 oct. 2020, 11:02

Re: Stratégie de dialogue Modbus TCP entre PC et API

Message par krock » 22 oct. 2020, 11:15

De mon côté j'incrémente un mot de vie pc côté API, pour que l'automate sache quand mon appli est déco.

Par contre, l'inverse ne me semble pas nécessaire. Si la com est out, l'application ne peut de toute façon pas lire le registre (donc que ce soit à l'adresse d'un mot de vie ou à l'adresse de l'infos que j'ai besoin ne change rien).
Le problème est que je n'ai pas l’info factuel que je suis déconnecté.

Ce que je fais :

Je fais un readHoldingRegister toutes les 500ms. Si je lève une exception à ce moment, je force une déconnexion et je me reconnecte. Ça n'arrive jamais, mais si ça doit arriver, je me reconnecte de toute façon. Mais c'est vrai que ne pas connaître précisément l'état de la connexion donne lieu à des contournements pas très "élégants".

Répondre