Comunicación RS485 en Python: Interacción con dispositivos industriales.

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:

Python
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:

Python
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:

Python
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:

Python
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.