Nuestra librería nos brinda un manejo del puerto serial de la PC para poder conectarlo a un bus RS485.
La conversión RS232 a RS485 puede realizarse mediante el siguiente circuito, en el cual se utiliza el pin RTS del puerto serie para controlar la Transmisión/Recepción sobre el bus RS485.
El proyecto consiste en una librería dinámica ( ".dll" para Windows y ".so" para Linux ) escrita en lenguaje C la cual maneja el puerto serie de la PC y controla el pin RST para controlar la condición de transmisor / receptor del bus RS485.
La librería puede compilarse sobre Windows con MinGW y sobre Linux con GCC.
Esta librería dinámica puede ser utilizada en cualquier lenguaje que soporte exportar este tipo de librerías, se da como ejemplo, una clase wrapper de nuestra librería en C# ( exportando la dll sobre Windows ) y en lenguaje Python ( exportando la shared library sobre Linux )
Ejemplo uso en Python
- librs485_linux_i386.so
- Rs485.py
Luego importamos la clase y abrimos el puerto serial (en este caso ttyUSB0) creando un objeto del tipo Rs485:
from Rs485 import * port = Rs485(0,115200) #ttyUSB0 - 115200 if port.openPort() == False : print("Error opening serial port")
Luego podemos enviar una trama creando un objeto bytarray de python:
ba = bytearray() ba.append(1) ba.append(2) ba.append(3) ba.append(4) port.sendPacket(ba,4) #Enviamos 4 bytes
Para recibir bytes, utilizaremos el método "receivePacketWithTimeout"
while True: ba = port.receivePacketWithTimeout(5000) # Esperamos 5 segundos if len(ba) > 0 : print("Bytes received:"+str(len(ba)))
Para descargar el proyecto, click aquí