TODOPIC
Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: hwicz en 26 de Abril de 2005, 11:52:00
-
Pacala:
Lo prometido es deuda.. aca dejo por lo menos una encuesta en vb para modbus como maestro, toy trabajando con el crc.. apenas lo tenga lo subo..
===============================================
Private Sub Form_Load()
Dim Camino As String
Camino = App.Path " ubicacion del archivo
LblEstado.Caption = "Configurando Mscomm..."
Open Camino & "Config.ini" For Input As #1 " abre archivo q contiene el valor decimal del nodo a encuestar, todabia no esá pensado para dos nodos, pero aca hay q cerrar el archivo ni bien se consigen dos caracteres.
Do While Not EOF(1) " Repite el bucle hasta el final del archivo.
"Line Input #1, Seteo " " Obtiene un carácter, en este caso el valor decimal del nodo.
Line Input #1, ComX
Line Input #1, Baud
Line Input #1, Paridad
Line Input #1, BitDatos
Line Input #1, BitParada
Line Input #1, TipoComm
Line Input #1, NumTel
Loop
Close #1 " si llega al final del archivo, lo cierra.
MSComm1.CommPort = ComX " actualiza configuracion de mscomm
end sub
Private Sub Timer1_Timer()
Dim nodo, funcion, X, X1, X2, X3, X4, X5, Tira, Respuesta
On Error Resume Next
nodo = "01" "numero de nodo a encuestar
funcion = "03" " codigo funcion en este caso lectura
X = "00" "registro comienzo alto
X1 = "01" "registro comienzo bajo
X2 = "00" "registro cantidad alto
X3 = "01" "registro cantidad bajo
X4 = "213"
X5 = "202"
Tira = Chr(nodo)
Tira = Tira & Chr(3) "comando 10 (hexadecimal)
Tira = Tira & Chr(X)
Tira = Tira & Chr(X1)
Tira = Tira & Chr(X2)
Tira = Tira & Chr(X3)
Tira = Tira & Chr(X4)
Tira = Tira & Chr(X5)
MSComm1.Output = Tira
pausa
Respuesta = MSComm1.Input
End Sub
Sub descompone(recepcion)
Dim Aux, Aux1, Aux2, Aux3, Aux4, I, cadena_rx_hex
Aux = ""
Aux1 = ""
For I = 1 To Len(recepcion)
Aux = Hex(Asc(Mid(recepcion, I, 1)))
If Len(Aux) < 2 Then Aux = "0" & Aux
Aux1 = Aux1 & " " & Aux
Next
cadena_rx_hex = Aux1
Aux2 = Mid(cadena_rx_hex, 14, 2)
Aux3 = Left(Aux2, 1)
Aux4 = Right(Aux2, 1)
If Aux3 = "A" Then
Aux3 = 10
End If
If Aux3 = "B" Then
Aux3 = 11
End If
If Aux3 = "C" Then
Aux3 = 12
End If
If Aux3 = "D" Then
Aux3 = 13
End If
If Aux3 = "E" Then
Aux3 = 14
End If
If Aux3 = "F" Then
Aux3 = 15
End If
"***********************************
If Aux4 = "A" Then
Aux4 = 10
End If
If Aux4 = "B" Then
Aux4 = 11
End If
If Aux4 = "C" Then
Aux4 = 12
End If
If Aux4 = "D" Then
Aux4 = 13
End If
If Aux4 = "E" Then
Aux4 = 14
End If
If Aux4 = "F" Then
Aux4 = 15
End If
On Error Resume Next
Aux4 = Aux4 * 16 ^ 0
Aux3 = Aux3 * 16 ^ 1
Text2.Text = Aux3 + Aux4
End Sub
Sub pausa()
Dim TiempoPausa, Inicio, Final, TiempoTotal
TiempoPausa = 0.2 "1.5 " Asigna hora de inicio.
Inicio = Timer " Establece la hora de inicio.
Do While Timer < Inicio + TiempoPausa
DoEvents " Cambia a otros procesos.
Loop
Final = Time " Asigna hora de finalización.
TiempoTotal = Final - Inicio " Calcula tiempo total.
End Sub