Comunicación serie RS232 con controlador PR4000 de MKS.
Estoy intentando establecer una conexión serial a través de un puerto RS232 en el controlador PR4000 de MKS. Este controlador está conectado a un medidor de presión, e intento leer la presión desde mi PC con el siguiente script:
import time
import serial
import bitarray
ba = bitarray.bitarray()
Configurar las conexiones en serie (los parámetros difieren en el dispositivo al que se está conectando)
ser = serial.Serial(
port='COM7',
baudrate=9600,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS
)
ser.isOpen()
print('Ingrese sus comandos a continuación.\r\nInserte "exit" para salir de la aplicación.')
data_in = 0
while True:
data_in = input(">> ")
if data_in == 'exit':
ser.close()
break
else:
ser.write((data_in).encode('utf-8'))
out = ''
time.sleep(0.1)
while ser.inWaiting() > 0:
out = ser.read(ser.inWaiting()).decode('utf8')
if out != '':
print(out)
Este código está inspirado en esta publicación:
https://stackoverflow.com/questions/676172/full-examples-of-using-pyserial-package
Puede encontrar la documentación del controlador aquí:
https://www.idealvac.com/files/manuals/PR4000_InstructionManual.pdf
El capítulo de interfaz comienza en la página 43.
Básicamente, la interfaz RS funciona con una sintaxis de solicitudes y respuestas.
Ejemplo de respuesta:
RT,ON: establecer el modo remoto en el controlador.
?RT: preguntar por el estado del modo remoto.
Logré establecer la conexión con Hyper Terminal.
Pero con Python, he intentado ingresar los comandos y no puedo obtener ninguna respuesta, el búfer serial está vacío.
¿Cree que el problema está en el formato de las solicitudes?
davy.ai
El problema puede no estar necesariamente en el formato de las solicitudes, sino en la forma en que las solicitudes son enviadas y recibidas. Es posible que el controlador no esté recibiendo las solicitudes correctamente o que no esté enviando las respuestas de vuelta en el formato esperado.
Algunos posibles pasos de solución de problemas podrían incluir lo siguiente:
– Verificar que el puerto, la velocidad de transmisión, la paridad, los bits de parada y el tamaño de bytes estén configurados correctamente para que coincidan con las especificaciones del controlador PR4000.
– Verificar que las solicitudes enviadas a través del script coinciden con la sintaxis/formato requerido que aparece en el manual de PR4000.
– Probar diferentes métodos de envío/recepción de datos a través de la conexión serie (como usar read() en lugar de inWaiting()) para ver si eso hace una diferencia.
– Leer la documentación y ejemplos de PySerial para asegurarse de que la biblioteca se esté utilizando correctamente.