sábado, 30 de abril de 2016

Conversor MODBUS TCP a RTU con OpenWrt



Les presento un programa para pruebas de comunicación entre MODBUS TCP a MOSBUS RTU. Lo que hace el programa es funcionar como esclavo MODBUS TCP y como maestro MODBUS RTU asi es como realiza la conversion de MODBUS TCP a  MODBUS RTU, para lograr esto se ha utilizado un router TPlink TL-WR1043ND Ver 1.0 con OpenWrt Chaos Calmer 15.05 y la libreria de libmodbus 3.02.



Router conectado dispositvo esclavo por RS485 Modbus

El procedimiento para instalar el OpenWrt en el router lo pueden encontrar en internet. La compilación y depuración del programa lo realice en Linux UBUNTU 14.04 con ECLIPSE, la información la pueden encontrar en el siguiente link:

https://downloads.openwrt.org/docs/eclipse.pdf

Para la prueba del programa utilice el rectificador controlado (PIC18F2550) con comunicación MODBUS RTU y como maestro la aplicación de Android modbus-DROID.

http://www.bencatlin.com/sofware-projects/modbus-droid/

El  http://www.jeperez.com/monitor-solar-instalacion-codigo-fuente/ esta una aplicación con la libreria libmodbus.



  • Se requiere las siguientes librerias instaladas en el router:


libmodbus
libgcc
libstdcpp
gdbserver

opkg update
opkg install libmodbus
opkg install libgcc
opkg install libstdcpp
opkg install gdbserver "Solo es necesario para depuración"
  • Para la comunicacion RS485 utilizo un conversor USB-SERIAL RS485  para lo cual instalo la siguiente libreria en el router.

opkg install kmod-usb-serial-pl2303

Nuevo puerto de alimentación disco duro HDD SATA Cables para venta / alta calidad USB 2.0 a RS-485 RS-422 adaptador convertidor Serial Cable



Deben tener el cross-compiler en UBUNTU para poder compilar e instalar la libreria libmodbus y asi poder compilar el archivo fuente del conversor TCP-RTU. pueden seguir los pasos del siguiente link

http://telecnatron.com/articles/Cross-Compiling-For-OpenWRT-On-Linux/

El archivo compilado lo envian al router:

scp modbus_converter root@192.168.43.5:/root

En mi caso lo envio al root.

En algunos casos se debe configurar el archivo como ejecutable con la siguiente instrucción.

chmod 777 modbus_converter

y ejecutamos el archivo

./modbus_converter

No olvidar de ejecutar el archivo antes de conectar el modbus droid.


En Modbus droid se configura el IP del router, el puerto de entrada y el registro del dispositivo
esclavo.

IP:depende del IP que tenga su router
port:1502

Point Type: Holding Register

Address:0 (corresponde al registro 40001)

Length: 1(solo se utiliza el registro 40001)





El siguiente es el link donde esta el programa fuente y compilado

Codigo


Espero que les sirva para hacer sus pruebas con MODBUS.

Saludos
Nestor