Página 1 de 1

modbus rtu en autoit

Publicado: 21 May 2014, 22:25
por kaxim
Hola,
Alguien sabe de alguna libreria para utilizar modbus rtu en autoit?
Necesito poderme comunicar con unos dispositivos PLC que funcionan sobre un bus 485 con protocolo modbus rtu. Actualmente para salir del paso estoy utilizando un exe: http://www.modbusdriver.com/modpoll.html que me devuelve los valores que consulto al PLC pero tengo que abrir una consola de windows tratar cadenas de texto y etc....
Me gustaria poder tener otras vías para no depender de este exe y que quede una cosa mas profesional.

Gracias.

Re: modbus rtu en autoit

Publicado: 22 May 2014, 00:08
por chekok
Hola, echale un vistazo a esta web: http://www.icpdas.com/products/PAC/i-8000/modbus.htm

Tienen una dll que quizás podría valerte.

Re: modbus rtu en autoit

Publicado: 22 May 2014, 00:25
por kaxim
gracias compañero, le hecho un vistazo.

El problema es que ando algo verde de dll, no entiendo mucho la verdad. De programación sé lo básico.
Alguna ayuda para poder entender como hacer funcionar las dll en autoit?

Re: modbus rtu en autoit

Publicado: 22 May 2014, 09:41
por chekok
Puedes encontrar en la ayuda de Autoit las funciones que necesitas con sus explicaciones.

Por ejemplo:

Código: Seleccionar todo

$archivo_dll = DllOpen("mi_fichero.dll")                               ; Esta línea abre el archivo dll que deseamos usar.
DllCall($archivo_dll , "int", "Funcion_a_usar", "tipo_parametro1", "valor_parametro1", ...)  ; Con dllcall() usamos la dll
DllClose($archivo_dll )                                                         ; Esta cierra la dll cuando ya no la necesitamos.
Creo que el ejemplo es claro. Si tienes dudas consultanos y te lo aclaramos. :smt023

Re: modbus rtu en autoit

Publicado: 22 May 2014, 13:59
por Dany
esto quizas te ayude con las dlls

http://www.emesn.com/autoitforum/viewto ... f=2&t=3435


Saludos

Re: modbus rtu en autoit

Publicado: 22 May 2014, 18:48
por kaxim
Mi problema es el traducir de C# a Autoit. Pongo ejemplo:
Configurar el puerto COM y abrir la conexion. En C# se hace del siguiente modo:

1. Creamos el puerto. Codigo C#

Código: Seleccionar todo

SerialPort serialPort = new SerialPort();
En Autoit, la primera vez tengo que abrir la Dll. Código autoit:

Código: Seleccionar todo

Local $mbus = DllOpen("Modbus.dll")
$serialport = DllCall ($mbus,"SerialPort","new SerialPort")

2. Configuramos el puerto. Codigo C#

Código: Seleccionar todo

serialPort.PortName = "COM1";
serialPort.BaudRate = 19200;
serialPort.DataBits = 8;
serialPort.Parity = Parity.None;
serialPort.StopBits = StopBits.One;
serialPort.Open();
Este paso no lo sé traducir a AutoIT porque deberia crear una estructura, pero no sé de que tipo tiene que ser cada variable.


3. Abrimos el puerto. Codigo C#

Código: Seleccionar todo

ModbusSerialMaster master=ModbusSerialMaster.CreatuRtu(serialPort);
Código autoit:

Código: Seleccionar todo

$master = DllCall ($mbus,"ModbusSerialMaster","ModbusSerialMaster.CreatuRtu("&$serialPort&")")
Alguien me hecha una mano en como traducir todo esto?

Re: modbus rtu en autoit

Publicado: 22 May 2014, 20:47
por Dany
pasa el link de la libreria y la dcumentacion...

Re: modbus rtu en autoit

Publicado: 22 May 2014, 20:54
por kaxim
En el siguiente link está la documentación y las dll:
http://ftp.icpdas.com/pub/cd/8000cd/nap ... s/nmodbus/

La question es que primero hay que crear un objeto "SerialPort". No tengo muy claro si hay que crearla con la dll o si autoit a traves de algun objeto com de windows se puede ocupar un puerto COM y luego con la dll para consultar via modbus.

Gracias compañero por tu apoyo.

Re: modbus rtu en autoit

Publicado: 23 May 2014, 20:54
por kaxim
Creo que esto va a resultar bastante dificil, no?

Re: modbus rtu en autoit

Publicado: 23 May 2014, 20:58
por Dany
Creo que esa libreria solo funciona con .Net

Re: modbus rtu en autoit

Publicado: 25 May 2014, 10:26
por kaxim
ya me lo temía porque esta muy vinculado a comandos que solo pueden utilizarse en .Net