Comunicación serial del programa VB para obtener la temperatura, presión y caudal de instrumentos inteligentes
Se recomienda organizar el envío de instrucciones por matriz de bytes.
La instrucción de envío de LZ debe sondearse de acuerdo con 9 instrucciones (no he visto el protocolo de comunicación de LZ), y el la recepción se puede colocar en OnComm Implementado en el evento.
Modifique el código de la siguiente manera:
Opción explícita
Dim temp As Integer 'Variable de bucle de número de instrumento
Atenuar datos1T como único, datos2T como único, datos3T como único
Atenuar datos1F como único, datos2F como único, datos3F como único
Atenuar datos1Q como único, datos2Q Como único, data3Q como único
Dim bytSend(1 a 4) como byte
'Inicialización del puerto serie
Private Sub Form_Load()
MSComm1.CommPort = 1 'Establecer comunicación El número de puerto es COM1
MSComm1.InputMode = 1 'Leer datos en formato binario
MSComm1.RTreshold = 1 'Establecer y devolver el número de caracteres a recibir
MSComm1.STreshold = 1 'Establece y devuelve el número mínimo de caracteres permitidos en el buffer de transmisión
MSComm1.Settings = "4800,n,8, 2" 'Establecer parámetros del puerto serie
MSComm1.PortOpen = True 'Abrir el puerto serie
Timer1.Interval = 200
End Sub
'Cambiar el número de serie del instrumento
Private Sub Timer1_Timer()
temp = temp + 1
Llamar order_num
Si temp > 9 Entonces temp = 0
End Sub p>
'Emitir periódicamente instrucciones de solicitud y recopilar automáticamente de forma continua
'Enviar cíclicamente cadenas de comandos de lectura de datos al instrumento p>
'Enviar diferentes instrucciones de lectura a diferentes números de instrumentos
Sub order_num()
Si temp = 1 Entonces
bytSend(1) = &H81
bytSend(2) = &H81
bytSend(3) = &H52
bytSend(4) = &H1
MSComm1.Output = bytSend 'Chr(&H8181) + Chr(&H52) + Chr(&H1)
ElseIf temp = 2 Entonces
bytSend(4) = &H2
MSComm1. Salida = bytSend 'Chr(&H8181) + Chr(&H52) +
Chr(&H2)
ElseIf temp = 3 Entonces
bytSend(4) = &H3
MSComm1.Output = bytSend 'Chr(&H8181) + Chr(&H52 ) + Chr(&H3)
ElseIf temp = 4 Entonces
bytSend(2) = &H82
bytSend(4) = &H1
MSComm1.Output = bytSend 'Chr(&H8182) + Chr(&H52) + Chr(&H1)
ElseIf temp = 5 Entonces
bytSend(4) = &H2
MSComm1.Output = bytSend 'Chr(&H8182) + Chr(&H52) + Chr(&H2)
ElseIf temp = 6 Entonces
bytSend(4) = &H3 p>
MSComm1.Output = bytSend 'Chr(&H8182) + Chr(&H52) + Chr(&H3)
ElseIf temp = 7 Entonces
bytSend(2) = &H83
bytSend(4) = &H1
MSComm1.Output = bytSend 'Chr(&H8183) + Chr(&H52) + Chr(&H1)
ElseIf temp = 8 Entonces
bytSend(4) = &H2
MSComm1.Output = bytSend 'Chr(&H8183) + Chr(&H52) + Chr(&H2)
ElseIf temp = 9 Entonces
bytSend(4) = &H3
MSComm1.Output = bytSend 'Chr(&H8183) + Chr(&H52) + Chr(&H3)
De lo contrario
Salir del sub
Finalizar si
Finalizar el sub