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.

7 thoughts on “Envoyer une trame en ModBus”
      1. 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

Laisser un commentaire