Red de conocimiento informático - Problemas con los teléfonos móviles - Comunicación serial del programa VB para obtener la temperatura, presión y caudal de instrumentos inteligentes

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

'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

'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

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