La dernière fois que j’ai traité de Visual Basic, j’ai donné le code pour ouvrir un port COM de notre choix. Maintenant que le port COM est ouvert, l’étape suivante est de poser une question à la machine.
Il vous faudra un bouton (btnSend) pour envoyer la trame.
Private Sub btnSend_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click Dim ByteArr As Byte() ByteArr = New Byte() {Convert.ToByte(NumEsclave), _ 'numéro de l'esclave Convert.ToByte(FonctionModbus), _ 'fonction de lecture modbus 0, Convert.ToByte(0), _ 'Adresse de démarreg 0, Convert.ToByte(20), _ 'nombre de mots a partir de l'adresse Convert.ToByte(&HF0), Convert.ToByte(&H5)} 'CRC SerialPort1.Write(ByteArr, 0, ByteArr.Length) Threading.Thread.Sleep(200) End Sub
Le CRC se calcule, mais pour commencer, je conseille de créer une trame en dur avec des valeurs prédéfinies.
N’hésitez pas a poser des questions, ou à demander des détails. Dans le prochain exemple, on verra la réception des données.
svp numesclave et FonctionModus on les déclare ou comment on fait ?
Via des TextBox ou autre contenant.
merci 🙂
et aussi pourquoi vous avez mis 200 le temps d’attente ?
C’est arbitraire, disons qu’avec ça on est certain que toute la trame arrive.
mais comment connnaitre lequel est le bit start/end soit pour l’envoie ou pour la reception , car pour le protocole modbus le bit start/end est un silence
La lecture des données de réception se déclenche d’elle même via un événement. Après on sait d’avance combien de chiffres vont revenir selon la trame envoyée.