[RESOLU] READ_VAR rs485 modbus

Forum traitant des automates industriels de marque Schneider - Telemecanique
kosbor
Aguerri de l'automation
Aguerri de l'automation
Messages : 83
Enregistré le : 23 oct. 2015, 18:29

[RESOLU] READ_VAR rs485 modbus

Message par kosbor »

Bonjours à tous,

J'ai un soucis avec READ_VAR apparement j'ai ces retours de param ci joint dans la capture:
-J'ai un doute sur l'adresse (l'esclave est le 100) 0.1.1.100
-Je veux lire des Input digital sur un esclave qui ne donne pas donc de %MW j'ai donc %M en param j'ai aussi essayé %I et %MW toujours pareil
le com reste toujours eteins et pas d'erreur la voie dans unity est en vert
vitesse ok

J'ai pas trop d'idée
Si vous en avez une merci
ReadVar.JPG
Avatar du membre
JC87
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1952
Enregistré le : 20 oct. 2015, 13:00
Localisation : Nouvelle Aquitaine

Re: READ_VAR rs485 modbus

Message par JC87 »

Bonjour,

Certains esclaves Modbus ne traitent pas tous les codes et notamment les codes de lecture/écriture de bits (code 5, 6, 15 et 16). Il faudrait donc avant tout consulter la doc de l'esclave pour voir si il est capable de répondre à ces requêtes.

JC
Modifié en dernier par JC87 le 08 juil. 2016, 16:20, modifié 1 fois.
"On veut faire du zéro défaut mais on a zéro bonhomme et zéro budget, et bien à la fin on a zéro résultat..."
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7162
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: READ_VAR rs485 modbus

Message par itasoft »

Slts,
Déjà pour commencer :
-Les front montants sur les bits systèmes sont interdit, copier le %S6 dans un bit ex : %M6 et faire le front avec ce bit
-Les bits système %Sx sont du type BOOL , les fronts ne fonctionnent sur le type EBOOL
-Il faut tester la non présence du bit d’activité Rc_Com_Tb_Lec[1].0 avant de lancer une requête
-Ton adresse indique que la carte SCP114 est sur un module SCY21601 à l’emplacement 1 dans le rack , c’est juste ???
-Le code 007 veut dire « destinataire absent »
AM

ps:
Ceci dit, les tableaux commencent toujours par l’index [0] sinon ça fait amateur/débutant, LOL
Automaticien privé (de tout)
itasoft@free.fr
steph68
Codeur fou
Codeur fou
Messages : 269
Enregistré le : 21 oct. 2015, 08:23

Re: READ_VAR rs485 modbus

Message par steph68 »

-Les front montants sur les bits systèmes sont interdit, copier le %S6 dans un bit ex : %M6 et faire le front avec ce bit
-Les bits système %Sx sont du type BOOL , les fronts ne fonctionnent sur le type EBOOL
ce n'est plus du PL7 mais Unity

les fronts marchent très bien avec des BOOL
en ladder, c'est comme une boite F_TRIG ou R_TRIG cachée par le contact "P" ou "N"

le EBOOL n'est nécessaire que pour le langage ST et uniquement si tu utilises l'instruction "RE" ou "FE" (non standard, c'est une extension de Schneider)
la norme dit de passer par des blocs F_TRIG et R_TRIG et dans ce cas tu n'as pas besoin du type "EBOOL"

le type "EBOOL" permet de mieux optimiser ton temps de cycle et la mémoire également, si tu testes les fronts à plusieurs endroits du programme
ça évite de déclarer un bit auxiliaire

et passer par de l'"IO Scanning" ne serait pas plus simple que du READ_VAR ?
surtout pour une interrogation cyclique (%S6)

@+
Modifié en dernier par steph68 le 08 juil. 2016, 16:54, modifié 1 fois.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7162
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: READ_VAR rs485 modbus

Message par itasoft »

@ steph,
Il existe deux types Booléens. qui sont:
le type BOOL, qui contient uniquement la valeur FALSE (=0) ou TRUE (=1),
le type EBOOL, qui contient la valeur FALSE (=0) ou TRUE (=1) mais aussi des informations concernant la gestion des fronts (montants ou descendants)

ps:
ceci dit, je peux pas te répondre vu que je n'utilise jamais le type BOOL en fronts montants ou descendants.
Automaticien privé (de tout)
itasoft@free.fr
steph68
Codeur fou
Codeur fou
Messages : 269
Enregistré le : 21 oct. 2015, 08:23

Re: READ_VAR rs485 modbus

Message par steph68 »

@itasoft:

de mémoire, le type EBOOL a 3 bits d'info :

- l'état actuel
- l'état antérieur
- l'état de forçage

oui ça permet d'optimiser en économisant un bit auxiliaire avec l'autre méthode (si tu testes 10 fois le front, tu évalues le front 1 seule fois et tu testes directement le résultat qui est stocké dans un bit auxiliaire)

exemple, tu as besoin du front montant de %S6 à 10 endroits dans ton programme
%S6 est un BOOL, si tu mets 10 contacts P, à la compilation, c'est comme si tu instanciais 10 blocs R_TRIG (c'est lourd en conso mémoire et en temps d'exécution)
en passant par un EBOOL, tu n'instancies pas de blocs R_TRIG, c'est mieux optimisé

si malgré tout, tu prévois un bit auxiliaire, programme le dans ce cas avec une bobine P ou N plutôt qu'une bobine normale avec un contact P ou N avant.

je te confirme que du BOOL marche très bien sur des contacts P et N sur du Unity Pro, j'ai plein de programme que j'ai fais ainsi

sur PL7-Pro, les contacts P et N ne fonctionnaient pas avec des bits qui sont settés (bobine S) et resettés (bobine R) ni avec les bits systèmes ou bit de mots.
cette limitation n'existe plus sur Unity.

@+
kosbor
Aguerri de l'automation
Aguerri de l'automation
Messages : 83
Enregistré le : 23 oct. 2015, 18:29

Re: READ_VAR rs485 modbus

Message par kosbor »

JC87 a écrit :Bonjour,

Certains esclaves Modbus ne traitent pas tous les codes et notamment les codes de lecture/écriture de bits (code 5, 6, 15 et 16). Il faudrait donc avant tout consulter la doc de l'esclave pour voir si il est capable de répondre à ces requêtes.

JC
slt,
La question est que je maintenant , je me focalise pas trop sur l'esclave avec 2 cable USB-485 j'arrive sur le meme PC (COM23 l'esclave et COM24 le maitre) à communiquer en RTU un jeu d'enfant
J'ai passer la carte tsx cp114 en esclave (50) et relié le 7 du tsxsca2 au A du USB485 et le 14 du tsxsca2 au B du USB485
Et quand je clic sur lire registre dans mon appli maitre la led com du tsx cp114 s'allume!
mais pas de reponse pourquoi (j'ai essayé de chercher à comprendre comment reagit la carte 114 quand elle est esclave quel adresse de buffer registre lire par exemple, car rien trouvé dans les docs sur ce point c'est pas trop grave mais schneider en doc et projet exemples c'est tres pauvre ou je cherche au mauvaise endroit enfin bref)
itasoft a écrit :Slts,
Déjà pour commencer :
-Il faut tester la non présence du bit d’activité Rc_Com_Tb_Lec[1].0 avant de lancer une requête
Rc_Com_Ecr_ec pointe à l'adresse Rc_Com_Tb_Lec[1].0
-Ton adresse indique que la carte SCP114 est sur un module SCY21601 à l’emplacement 1 dans le rack , c’est juste ???
Dans ma capture j'ai exprès mis l'architecture reseau
ADDR('0.1.1.100'); 0 -> TSX RKY12 --- 1 -> TSX P57 2634M --- 1 -> slot b voie1 TSX SCP114 --- 100 -> Slave"
je ne vois pas de SCY21601 dans ma config


-Le code 007 veut dire « destinataire absent »
Ok dans l'aide c'est "16#07 Problème lors de l'envoi à la cible "

AM
la COM de la tsxcsp114 a que une led alors que sur un convertisseur achetée 3 euro piece sur ebay il y a au moins un TX et RX
Ma question est est-ce que quand on fait une requete depuis l'automate (maitre ) cette led doit clignoter meme s'il n'y a pas d'esclave de branché (pour moi oui mes 485USB le font et c'est fort logique)
Donc si sa clignote pas lors d'une requete PLC le prob est dans le PLC
ReadVar2.JPG
Dans
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7162
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: READ_VAR rs485 modbus

Message par itasoft »

slts,
On peut savoir exactement ou tu as enfilée la carte SCP114 ??

@steph
Si je comprend bien, quand tu es sur du LADDER tu fais les fronts sur du BOOL et quand tu es en littéral tu les fais sur du EBOOL
moi je fais tout sur du EBOOL c'est ma règle de conduite.
Modifié en dernier par itasoft le 08 juil. 2016, 21:59, modifié 1 fois.
Automaticien privé (de tout)
itasoft@free.fr
kosbor
Aguerri de l'automation
Aguerri de l'automation
Messages : 83
Enregistré le : 23 oct. 2015, 18:29

Re: READ_VAR rs485 modbus

Message par kosbor »

Clic sur la capture
ReadVar.JPG
Dans ma capture j'ai exprès mis l'architecture reseau
ADDR('0.1.1.100'); 0 -> TSX RKY12 --- 1 -> TSX P57 2634M --- 1 -> slot b voie1 TSX SCP114 --- 100 -> Slave"
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7162
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: READ_VAR rs485 modbus

Message par itasoft »

slts,
OK, j'avais pas vu la PSY5500 ce qui met l'adresse effectivement à 1.1
Si la ligne est en l'air (pas d'esclave de connecté) la LED rouge clignote
la LED COM clignote sur échanges (requète Read_var)

ceci dit, si tu lance une requête toutes les secondes , le Time-Out doit être inférieur à la seconde , actuellement il fait 1,6 s (Rc_Com_Tb_Lec[3]=16#0010)
Automaticien privé (de tout)
itasoft@free.fr
Répondre