![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Automation Forum d'entraide sur l'automatisme, la robotique et l'informatique industrielle |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre actif
![]() Date d'inscription: avril 2006
Localisation: Bruxelles
Messages: 173
|
Bonjour,
j'aimerai connecter mon pc a un compteur Diris A40 (Modbus), pour se faire j'ai un transformateur RS 485. Le modul de communication du compteur a 3 connecteurs + - 0 Le transformateur a 4 connecteurs T+ T- R+ R- Je suppose que je dois connecter T+ R+ -> sur connecteur + et T- R- sur - Mais comme c'est du matériel assez cher, j'ai pas envie de jouer a l'apprenti sorcier, d'autant plus que je sais que sur ce Forum il y a des specialite en la matère ... Pour la doc du modul communication du Diris c'est ICI Pour la doc du convertiesseur c'est ICI Merci
__________________
![]()
|
|
|
|
|
|
#3 (permalink) |
|
Membre actif
![]() Date d'inscription: avril 2006
Localisation: Bruxelles
Messages: 173
|
Bonjour,
J’ai raccordé de cette façon la et j'envoi cette requête au compteur Code :
0502072B0002B4F3
__________________
![]()
|
|
|
|
|
|
#4 (permalink) |
![]() Date d'inscription: mai 2002
Messages: 5 067
|
Ton convertisseur ne gère pas le basculement en mode réception automatiquement mais avec le signal RTS. Quelle est la position du T-RTS ? Est-ce que le programme coté PC gère le signal RTS correctement ? (la plupart ne le font pas, surtout si tu passes par des APIs Windows dont les drivers n'ont jamais géré le RTS correctement)
Si ton problème est là, je te conseille très fortement de changer de convertisseur : - Soit tu achètes un conservertisseur RS422 (RS485 4 fils) car là tu n'as plus besoin de la notion 'mode écriture' - Soit tu achètes un convertisseur 'automatique' se servant de l'activité reçue sur TD pour passer en mode émission. Un premier truc que du peux essayer : tu prends un volmètre à aiguille et tu mesures la tension entre T- et T+ (environ 1.5V normalement) à chaque trame envoyée par le PC l'aiguille doit bouger légèrement. Si tu n'as rien, essaye d'inverser le switch DCE-DTE.
__________________
Delphi : 264 sources à consulter/télécharger ! |
|
|
|
|
|
#5 (permalink) |
|
Membre actif
![]() Date d'inscription: avril 2006
Localisation: Bruxelles
Messages: 173
|
Bonjour,
Lors de l'envoie de données, j'ai mesuré entre Td+ et Td-, et je n'ai aucune variation de tension; avant ca, j'avai pourtant testé en liant avec un autre pc et la ca fonctionnait bien, mais avec le compteur je recois aucune reponse et pire je ne suis meme pas certain qu'il recoit ma trame. J'ai lu dans la notice, du modul de communication dans les premieres pages, qu'il faut absolument mettre une resistance de 120 ohms a chaque extremité du cable(je vais tester ca demain). Si non je vais acheter un convertisseur de la marque (ici pour voir) Je suis ouvert a tous vos conseils Merci a vous
__________________
![]()
|
|
|
|
|
|
#6 (permalink) |
![]() Date d'inscription: mai 2002
Messages: 5 067
|
Essaye de débrancher ton régulateur et de regarder la tension en sortie de convertisseur. As-tu déjà quelque chose genre 1.5 V ? Tu peux essayer de baisser le débit à 300 bauds avant de regarder si l'aiguille bouge. Sur ton convertisseur essaye de te mettre sur TON-RON (toujours sans le régulateur) afin de vérifier que le signal sort.
Sur ton nouveau convertisseur il faudra choisir le mode émission activé sur "Flux de données".
__________________
Delphi : 264 sources à consulter/télécharger ! |
|
|
|
|
|
#8 (permalink) |
|
Membre actif
![]() Date d'inscription: avril 2006
Localisation: Bruxelles
Messages: 173
|
Bonjour le forum,
bon apres quelques jours d'attente, j'ai recu mon nouveau convertisseur usb/rs485, bon le problème est que apres connection excectement comme décrit dans la notice, rien ne se passe, hors lorsque j'envoie des données la led TX clignote et avec un multimetre je vois qu'il y a une variation de tension, mais je ne recois aucune donnee. ![]() J'ai besoin de votre aide Pour la notice du convertisseur (ICI) Pour la notice du modul de communication (ICI) Pour avoir la version de mon programme (ICI) Merci pour tout
__________________
![]()
|
|
|
|
|
|
#9 (permalink) |
![]() |
Bonsoir,
il manque un fichier dans ton zip.. form... as-tu essayé de trouver un logiciel "maitre modbus" te permettant de faire des tests de communications indépendamment de ton programme afin de vérifier ta liaisons ? tu as bien vérifier la concordance des paramètres séries (vitesse,parité ..) et numéro d'esclave entre ton logiciel et le diris ?
__________________
bbil : Impératif "A LIRE AVANT DE POSTER" |
|
|
|
|
|
#10 (permalink) |
![]() Date d'inscription: mai 2002
Messages: 5 067
|
Dans la doc du convertisseur USB-485 ce n'est pas précisé comment se fait la basculement émession/réception. Si tu restes en mode émission tu ne pourras jamais recevoir de réponse.
__________________
Delphi : 264 sources à consulter/télécharger ! |
|
|
|
|
|
#11 (permalink) |
|
Membre actif
![]() Date d'inscription: avril 2006
Localisation: Bruxelles
Messages: 173
|
Bonjour et merci pour vos reponses,
j'ai sauvegarde la Form dans le zip, (ICI) Pour le programme maitre modbus, je n'ai aucune idee ou je pourais en trouver un gratuitement ... Maintenant si vous avez un petit programme, ou meme un exe, pour que je puisse juste tester le bon fonctionnement, je suis preneur Pour la bascule emission/reception, elle se fait automatiquement, grace au programme à moins que je ne me trompe ... Encor merci de votre aide Mon code (vient de la faqs vb) Code vb :
Option Explicit Private Sub Command1_Click() Text1.Text = "" MSComm1.Output = Text2.Text Call MSComm1_OnComm End Sub Private Sub Form_Load() Form1.Caption = "App2" With MSComm1 .CommPort = 1 'on utilise le port COM1 .Handshaking = 2 .RThreshold = 1 .RTSEnable = True .Settings = "9600,n,8,1" .SThreshold = 1 .PortOpen = True End With Text1.Text = "" Command1.Caption = "&Send" Text2.Text = "0502072B0002B4F3" End Sub Private Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = False 'on ferme le port quand l'appli quitte End Sub Private Sub MSComm1_OnComm() Dim Tampon As String Select Case MSComm1.CommEvent ' On effectue la gestion des erreurs (cf. le modèle ci-dessus) ' Ici, on gère en fait pas grand-chose, mais c'est pour illustrer la démarche ;) 'liste des erreurs possibles Case comEventBreak 'On a reçu un signal d’interruption (Break) Case comEventCDTO ' Timeout de la porteuse Case comEventCTSTO ' Timeout du signal CTS (Clear To Send) Case comEventDSRTO ' Timeout du signal de réception Case comEventFrame ' Erreur de trame Case comEventOverrun ' Des données ont été perdues Case comEventRxOver ' Tampon de réception saturé Case comEventRxParity ' Erreur de parité Case comEventTxFull ' Tampon d’envoi saturé Case comEventDCB ' Erreur de réception DCB (jamais vu) 'liste des événements possibles qui sont, eux, normaux Case comEvCD 'Changement dans la broche CD (porteuse) Case comEvCTS 'Changement dans broche CTS Case comEvDSR 'Changement dans broche DSR (réception) Case comEvRing 'Changement dans broche RING (sonnerie) 'Chouette! on a reçu des données :) Case comEvReceive Tampon = MSComm1.Input Call Traitement(Tampon) 'traitement données Case comEvSend ' il y a des caractères à envoyer Case comEvEOF 'on a reçu le caractère EOF End Select End Sub Sub Traitement(Chaine As String) 'cette procédure sert à traiter l’information reçue dans le tampon Text1.SelStart = Len(Text1.Text) Text1.SelText = Chaine 'ici, on affiche le résultat dans un champ de texte End Sub
__________________
![]()
Dernière modification par bbil ; 26/09/2008 à 18h22 Motif: rajout code=vb |
|
|
|
|
|
#12 (permalink) |
|
Membre actif
![]() Date d'inscription: avril 2006
Localisation: Bruxelles
Messages: 173
|
Apres avoir cherché sur le net, j'ai trouvé un programme qui permet de tester la communication ModBus.
Avec le petit programme dont le code est ici plus haut, lorsque j'envoie la trame il n'y a que la led TX qui clignote, mais avec le programme que j'ai trouvé sur le net (ca va tres vite) mais il y a la led TX qui clignote puis la led RX qui clignote. Moi je crois que dans le programme que j'ai ecrit il y a quelque chose qui ne fonctionne pas, l'envoie se fait correctement mais pas la reception. Parmis vous personne n'a un petit programme de base qui me permettrait d'effectuer un envoie d'une cahine de caractere et afficher la reception de la chaine recue par l'esclave Je vous remercie, j'ai vraiment besoin de vous
__________________
![]()
|
|
|
|
|
|
#13 (permalink) |
|
Membre actif
![]() Date d'inscription: avril 2006
Localisation: Bruxelles
Messages: 173
|
Bonjour le forum,
Dans le cadre d'un projet, je dois réaliser une communication entre mon pc et un compteur, en Modbus. J'aimerai juste savoir si parmi vous, une personne aurait un programme très simple qui me permettrait juste t'envoyer un trame "0503072B0002B4F3" et l'esclave (le compteur), va me renvoyer une trame en réponse. J'ai utilisé un programme présent dans la facq, mais l'envoie fonctionne (la led TX clignote lorsque je clic envoyer), mais aucune réponse. Si parmi vous, une personne a petit programme qui me permettrai d'envoyer et recevoir sur le port com1. Pour plus d'info La doc de mon convertisseur (ICI) La doc du module de communication (ICI) Le programme que j'utilise (ICI) POUR LES MODERATEURS J'ai un post presque identique dans le forum automation, mais comme je sais que dans la sexion visualbasic il y a beaucoup de personnes qui maîtrisent le sujet, voila pourquoi je post aussi ici
__________________
![]()
|
|
|
|
|
|
#14 (permalink) |
![]() Date d'inscription: mars 2007
Localisation: Vannes et en mer
Messages: 1 788
|
si ton code n'est pas trop gros, mets le ici, en tout cas la partie communication (en le mettant entre les balises code, c'est à dire grâce au bouton #), c'est plus simple de lire le code ici directement
|
|
|
|
|
|
#15 (permalink) | |
![]() |
Citation:
__________________
bbil : Impératif "A LIRE AVANT DE POSTER" |
|
|
|
|
|
![]() |
![]() |
||
Connection RS485 vers Modul Modbus
|
||
| Outils de la discussion | |
|
|