Page 1 sur 2

[RESOLU] READ_VAR et WRITE_VAR M340

Posté : 28 déc. 2016, 22:53
par tardieub
Bonjour

Je souhaiterais délaisser io scanning sur le M340 pour utiliser les fonctions READ_VAR et WRITE_VAR. J'y bricole depuis quelques temps mais je coince.
Comme exemple concret, je voudrais mettre a un 1 un le premier bit (%MW8000:1) du mot d'un automate Wago a l'adresse IP 128.0.164.1.
Capture d'écran 2016-12-28 22.40.27.png
Capture d'écran 2016-12-28 22.40.27.png (6.26 Kio) Vu 15531 fois
seulement je comprends pas bien ce qu'il faut mettre dans "gestion"

et j'ai le message : l'utilisation de tableaux dynamiques est inhibée

Re: READ_VAR et WRITE_VAR M340

Posté : 29 déc. 2016, 08:41
par geronimo
Normalement la "gestion" du read et write var est un tableau de 4 mots, qui servent de diagnostic pour l'échange.
Un mot de défaut correspondant aux échanges et un autre correspond au défaut d'échange, regarde dans l'aide en ligne sa se trouve bien.

Sinon pour l'utilisation des tableaux dynamiques, de souvenir c'est une option de projet Unity.

Pour l'écriture le MW8000.1 pour moi il faut que tu mettes à 1 le premier bit du mot "emission".

Re: READ_VAR et WRITE_VAR M340

Posté : 29 déc. 2016, 20:01
par Ulairi
geronimo a écrit :Sinon pour l'utilisation des tableaux dynamiques, de souvenir c'est une option de projet Unity.
C'est bien cela. "Outils" puis "Options du projet" :

Image

Re: READ_VAR et WRITE_VAR M340

Posté : 30 déc. 2016, 15:39
par tardieub
ok merci a vous deux pour votre aide

je regarde ça

Re: READ_VAR et WRITE_VAR M340

Posté : 03 janv. 2017, 07:07
par tardieub
Bonjour

Impec pour l'option tableau dynamique,
j'essaye donc d écrire 2 mots %MW8001 et %MW8002 dans un WAGO à l'adresse 128.0.164.2
Capture d'écran 2017-01-03 06.44.29.png
Capture d'écran 2017-01-03 06.44.29.png (6.44 Kio) Vu 15442 fois
dans la table du tableau de gestion le deuxième mot à 0 parait etre bon signe ("resultat positif" et "echange correct")
Capture d'écran 2017-01-03 06.45.16.png
seulement quand je met une adresse IP inexistante j'ai aussi 0 !
Et de toute facon a l'autre bout les %MW ne bougent pas.
J'ai mis un time out de 1000ms

Re: READ_VAR et WRITE_VAR M340

Posté : 03 janv. 2017, 08:33
par Cyril93
Salut c'est quoi comme contrôleur Wago

Re: READ_VAR et WRITE_VAR M340

Posté : 03 janv. 2017, 08:47
par tardieub
750-881

Re: READ_VAR et WRITE_VAR M340

Posté : 03 janv. 2017, 08:58
par skip74
salut

2 choses:

1° il faut conditionner l'appel de la fonction au bit d'activité ( + une petite tempo c mieux).
car si tu essaye d'écrire un mot a chaque cycles.... tu sature tout...
pour les premiers essais lance la fonction sur un top 1 seconde



2° sur ton tableau de gestion:
le premier mot: b8 a b15= numéro d'échange: est ce qu'il évolue?
attention certains paramètre du compte rendu ne sont valable que si le résultat d'opération =00 ou FF a voir dans la doc...

De mémoire, le time out est exprimé en 1/10S...


A+

Re: READ_VAR et WRITE_VAR M340

Posté : 03 janv. 2017, 09:17
par tardieub
ok merci

j'ai mis un top 1s et baisser le timeout à 100
Capture d'écran 2017-01-03 08.57.57.png
Capture d'écran 2017-01-03 08.57.57.png (8.51 Kio) Vu 15422 fois
le numéro d’échange augmente sans cesse et tourne en boucle
Capture d'écran 2017-01-03 08.59.08.png
en baissant le timeout j'ai vu apparaitre dans le mot 2 de la table , ce qui je crois correspond à "réponse incorrecte" du "rapport d’opération".
si je comprends bien, la com est ok mais le wago pige pas ou réponds mal, c'est ça?

Re: READ_VAR et WRITE_VAR M340

Posté : 03 janv. 2017, 09:23
par Cyril93
Premièrement faire une recherche sur le forum, les registres de mémento sont décalés sur le 750 Wago, il y a un post de Ulairi dans la section Wago/Codesys avec la table de correspondance.

ton write_var c'est une fonction 16 en modbus,

là, tu dois taper dans le registre 8000 sur le Wago ce qui correspond au registre des %IW, le tableau d'échange doit remonter des erreurs sur le M340 car cela m'étonnerai que le Wago réponde favorablement à cette requête, la fonction 16 ne permettant pas d'écrire les registres de bit