khkertje
Messages postés7Date d'inscriptionjeudi 17 janvier 2008StatutMembreDernière intervention17 janvier 2008
-
17 janv. 2008 à 09:47
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
17 janv. 2008 à 15:52
Hellow,
Sorry that i write in English, parce que mon francais n'est pas bon.
I try to make a program that has to read short values from the ethernet.
I put the values on the ethernet with a PLC using the modbus tcp protocol.
Now i want to read the values with vb 2005, and put al that different values on the screen in a windows application.
I also need to safe that values in a SQL database, when i push on a button.
But first i want to put that values on my screen, so i can see every different value.
Does someone has something that i can use for that?
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 17 janv. 2008 à 11:18
Bonjour
Parvient-tu à lire les valeurs désirées par Modbus TCP, où la récupération te pose déjà problème?
Est-ce que tu t'es documenté concernant le protocole de communication.
Ici on est sur un forum en français, ce serais bien que tu mette ton texte en français (tu peux aussi écrire en Anglais comme je le fais, mais au moins une copie en français ce serais bien), car Google n'est pas toujours parfait.
Does you to read the values desired by Modbus TCP, where the recovery is already a problem?
Do you have documented on the communication protocol.
Here we are on a forum in french, it would be good that you put your
french text (you can also write in English as I do, but at least one
copy in french this would be good), because Google is not always
perfect.
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
khkertje
Messages postés7Date d'inscriptionjeudi 17 janvier 2008StatutMembreDernière intervention17 janvier 2008 17 janv. 2008 à 12:05
A ce moment, il y a un program ecrit a delphi qui utilit la connection avec modbus tcp et ca marche.
Les valeurs sont a l'ethernet avec le modbus tcp protocol.
Je communiques avec le PLC avec un autre protocol. J' utilise le RS232 connection a le PLC pour change le program etc.
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 17 janv. 2008 à 12:24
Bonjour
Pour les trames Modbus, j'avais fait un pack de classes en .NET2, pour communiquer sur une liaison série (donc vraissemblablement à adapter pour Modbus TCP).
Fichier : ClsModBus.7z
Les commentaires sont en français, mais je pense que ce sera facile à comprendre.
Pour décoder une trame, il faut faire appel à ClsFrameModbusBase.GetClassFromFrame (méthode partagée)
For Modbus frame, I had a pack of .NET2 classes to communicate over a
serial link (and therefore probably to adjust for Modbus TCP).
File: ClsModBus.7z
The comments are french, but I think it will be easy to understand.
To decode a frame, it is necessary to call on ClsFrameModbusBase.GetClassFromFrame (shared method)
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 17 janv. 2008 à 13:13
Bonjour
Les classes (ClsFrameModbus*.vb) que je t'ai proposé sont dédiées à l'encodage et au décodage des trames modbus (fonction 3, 4 et 16). Il faut les inclure dans ton projet et les utiliser. Car d'après ce que j'ai compris, tu ne décode ni encode les trames actuellement.
Es-tu parvenu à te connecter au PLC avec le protocole TCP ?
Classes (ClsFrameModbus *. vb), which I proposed t'ai are dedicated to
encoding and decoding frames modbus (position 3, 4 and 16). They should
be included in your project and use them. Because from what I
understand, you do not encode or decode packets now.
Are you able to connect to you PLC with TCP?
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 17 janv. 2008 à 14:07
Bonjour
Pour te connecter au serveur Modbus, il te faut l'adresse IP du PLC, et le numéro du port (de mémoire c'est 502 par défaut).
Ensuite utilises la classe System.net.Socket.TcpClient pour te connecter (voir l'aide MSDN).
For you Modbus connect to the server, you need the IP address of the PLC, and the port number (502, memory, is the default).
Then the class System.net.Socket.TcpClient used to connect (see using MSDN).
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 17 janv. 2008 à 15:52
Bonjour
Ton projet doit posséder une form de démarage ou une Sub Main, voici les 3 déclaration possibles :
Public Sub Main()
Public Function Main() as integer
Public function Main(pParams as string())
Dans ton code pourquoi utiliser [Byte], [String], sans les crochets ça marche aussi et c'est plus lisible (Byte=[Byte])
Tu envoie une chaine avec ta fonction, et tu attend en retour une chaine de 256 octets (donc si ta réponse est de 10 octets, tu attendra un moment avant de continuer ton code.
Your project must have a starter form or Sub Main, the following 3 possible statements:
Public Sub Main ()
Public Main () Function as integer
Public function Main (pParams as string ())
In your code to use [Byte], [String] it works without the brackets and it is more readable (Byte = [Byte])
You send a string with your fucntion, and expects you to return a string
of 256 bytes (so if your answer is 10 bytes, you will wait a while
before continuing your code.
Dans Word, j'Excel. (juste pour la citation)
VB (6, .NET1&2), C++, C#.Net1