Comunicación RS485 en Python: Interacción con dispositivos industriales
La comunicación RS485 es un protocolo de comunicación serial half-duplex que se utiliza comúnmente en aplicaciones industriales. Es un protocolo relativamente simple y fácil de implementar, lo que lo hace ideal para aplicaciones de bajo costo.
En este tutorial, aprenderemos a implementar la comunicación RS485 en Python. Usaremos la biblioteca PySerial para proporcionar una interfaz de alto nivel para la comunicación serial.
Requisitos previos
Para seguir este tutorial, necesitarás lo siguiente:
- Una computadora con Python 3 instalado
- Una placa Arduino o un módulo RS485
- Un dispositivo industrial que admita comunicación RS485
Configuración
Primero, necesitamos conectar nuestro dispositivo Arduino o módulo RS485 a nuestra computadora. Podemos hacerlo usando un cable USB o un cable de red.
Una vez que nuestro dispositivo esté conectado, necesitamos instalar la biblioteca PySerial. Podemos hacerlo usando pip:
pip install pyserial
Implementación
Ahora que tenemos todos los requisitos previos, podemos comenzar a implementar la comunicación RS485.
El siguiente código muestra cómo crear un puerto serial y enviar un mensaje:
import serial
# Create a serial port object
port = serial.Serial(
port="COM3",
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
# Send a message
port.write("Hola mundo!".encode())
# Close the port
port.close()
Este código creará un puerto serial en el puerto COM3 con una velocidad de baudios de 9600. El mensaje «Hola mundo!» se enviará al puerto serial.
Para recibir un mensaje, podemos usar el siguiente código:
import serial
# Create a serial port object
port = serial.Serial(
port="COM3",
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
# Wait for a message
data = port.read()
# Print the message
print(data.decode())
# Close the port
port.close()
Este código esperará a que se reciba un mensaje en el puerto serial. Una vez que se reciba un mensaje, se decodificará y se imprimirá.
Ejemplo
Para probar nuestra implementación, podemos conectar un dispositivo industrial que admita comunicación RS485 al puerto serial. El dispositivo industrial debe estar configurado para enviar mensajes en el puerto serial.
Una vez que el dispositivo industrial esté configurado, podemos ejecutar el siguiente código para enviar un mensaje al dispositivo:
import serial
# Create a serial port object
port = serial.Serial(
port="COM3",
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
# Send a message
port.write("Hola mundo!".encode())
# Close the port
port.close()
El dispositivo industrial debe responder con un mensaje. Podemos usar el siguiente código para recibir el mensaje del dispositivo industrial:
import serial
# Create a serial port object
port = serial.Serial(
port="COM3",
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
# Wait for a message
data = port.read()
# Print the message
print(data.decode())
# Close the port
port.close()
Si todo funciona correctamente, el código imprimirá el mensaje que envió el dispositivo industrial.
Conclusión
En este tutorial, aprendimos a implementar la comunicación RS485 en Python. Usando la biblioteca PySerial, podemos crear una interfaz de alto nivel para la comunicación serial.
Con este conocimiento, podemos interactuar con dispositivos industriales que admiten comunicación RS485.