Ejemplo de comunicaciones Modbus
Seguidamente se muestra un ejemplo de comunicaciones Modbus en Visual Basic
»Comm» es el nombre que se le ha dado al control MSCOMM.VBX insertado en el proyecto.
Option Explicit
Private Sub Form_Load()
Dim res As String
Dim datos
Dim iVal
With Comm
.InputMode = comInputModeBinary
.CommPort = 1
.Settings = «9600,N,8,1»
.PortOpen = True
End With
'Pedir el valor de la dirección de memoria 2:
'
1=NºDispositivo
'
4=Código de Función
'
2=Dirección de la palabra inicial a leer
'
1=cantidad de palabras a leer
res = Preguntar( 1, 4, 2, 1 )
' iVal tiene el valor INTEGER de la dirección de memoria 1.
iVal = BinToInt( res )
'Ejemplo de escritura:
'Modificar el dato que hay en la dirección de memoria 26,
'asignando el valor 33.
Const AL1 = 33
Const DirW = 26
datos = Chr$( AL1 \ 256 ) & Chr$( AL1 Mod 256 )
res = Enviar( 1, DirW, 1, datos )
Comm.PortOpen = False
End
End Sub
'Ejemplo de lectura de N palabras del área de lectura o escritura.
'
nDIS = Número de Dispositivo
'
cod = Código de lectura: 3 ó 4
'
add = Palabra inicial a leer
'
cant = Cantidad de palabras a leer
'Retorna los datos recibidos vía serie
'
Function Preguntar (nDIS As Integer, cod As Integer, add As Integer, cant As Integer) As String
Dim nBytes
Dim hByte
Dim lByte
Dim crc As Long
Dim env As String
Dim TBytes()
Dim b
' Datos recibidos por el canal serie
As String
' Datos a enviar por el canal serie
As Integer
'Parámetros de comunicaciones
'Port serie 1 ó 2
'Cerrar las comunicaciones
As Integer
As Integer
As Integer
'Valor del CRC
'Cadena a enviar
As Byte
'Igual que «env»
As Integer
'Parámetros de Comunicaciones
'Apertura del port
'Nº de bytes a recibir
'Byte alto del CRC
'Byte bajo del CRC
'Índice
15