ImagenImagenImagenImagen
Hazte Socio (El Foro siempre Gratis)
Paga con Tarjetas+ Info www.arde.cc/socios

Protocolo modbus

Postea aqui toda la parte de programación del lenguaje C, C++, C#...

Moderador: Junta Directiva

Responder
popkorn
Novato
Novato
Mensajes: 19
Registrado: Jue Ago 25, 2011 5:18 pm

Protocolo modbus

Mensaje por popkorn » Mar Oct 18, 2011 3:29 pm

Hola, he estado navegando por la red y por el foro intentando entender lo suficiente este protocolo para poder implementarlo en C para hacer pruebas el caso es que todos dicen lo sencillo que es y demás pero no tengo experiencia con protocolos y aunque a groso modo se como funciona el protocolo no consigo entenderlo al 100% ya digo no tengo experiencia en esto. Si sabeis de libros alguna buena web o simplemente sabeis del tema y podeis ayudar os lo agradeceria. Más tarde con más tiempo posteare algunas dudas.

Gracias.



Avatar de Usuario
Sphinx
Usuario Experto
Usuario Experto
Mensajes: 639
Registrado: Jue Abr 03, 2008 4:45 pm
Ubicación: Madrid
Contactar:

Re: Protocolo modbus

Mensaje por Sphinx » Mar Oct 18, 2011 4:16 pm

Hola popkorn,

Creo que encontrarás algunas implementaciones ya por la red. Esta es en C++:
http://www.modbusdriver.com/doc/libmbusmaster/
¿ te sirve esa ?
No he mirado a fondo, pero me imagino que también existirá documentación sobre el protocolo en sí ahí.

Slds, Sphinx.
Tanto si piensas que puedes, como si piensas que no puedes, estás en lo cierto.- Henry Ford
>> Mis experiencias y proyectos robóticos: http://linuxdroids.com

Avatar de Usuario
Heli
Usuario Experto
Usuario Experto
Mensajes: 747
Registrado: Mar May 23, 2006 7:47 am
Nombre: Heli Tejedor
Ubicación: Alcala de Henares
Contactar:

Re: Protocolo modbus

Mensaje por Heli » Mié Oct 19, 2011 6:30 am

¿Que es lo que no entiendes, el uso o la implementación del protocolo?.
Tengo muchos compañeros que no saben de protocolos pero usan modbus todos los días, basta con saber la dirección del esclavo, el número de i/o y el tipo de dato...
El protocolo tiene varios interfaces de transporte: serial-RTU, serial-ASCII y TCP, creo que existe otra implementacion UDP, pero no se si es estándar. Son tramas muy sencillas, start, dirección de esclavo, dirección de I/O, función, datos, CRC16, end... Mejor verlo en los documentos:
http://www.modbus.org/docs/Modbus_Appli ... _V1_1b.pdf" onclick="window.open(this.href);return false;
http://www.modbustools.com/PI_MBUS_300.pdf" onclick="window.open(this.href);return false;
Para entrar en detalles del protocolo hay muchos recursos en la red:
http://www.modbus.org/" onclick="window.open(this.href);return false;
http://www.modbus.pl/" onclick="window.open(this.href);return false; (con ejemplos para PIC)
¡No es imposible, lo que pasa es que no sabes como hacerlo!
http://heli.xbot.es/" onclick="window.open(this.href);return false;

popkorn
Novato
Novato
Mensajes: 19
Registrado: Jue Ago 25, 2011 5:18 pm

Re: Protocolo modbus

Mensaje por popkorn » Mié Oct 19, 2011 2:15 pm

El funcionamiento del protocolo más o menos se como va, el maestro envia una trama solicitando cierta información al esclavo que le contesta con otra trama (si estoy verde xd), el caso es k no me queda muy claro en la trama como funciona la parte de "datos" es decir como indicarle que entradas/salidas tiene que comprobar y demas. Lo que no tengo tampoco claro es como implementar todo esto en C, las tramas como se mandan? como cadenas?

Salu2

PD: Espero aprender todo lo que pueda en el camino

Avatar de Usuario
beamspot
Usuario Desarrollador
Usuario Desarrollador
Mensajes: 1132
Registrado: Jue Oct 11, 2007 8:56 pm
Nombre: Guillem

Re: Protocolo modbus

Mensaje por beamspot » Jue Oct 20, 2011 11:53 am

El protocolo define que tipo de acceso quieres tener, si lo que quieres es escribir o leer en registros de datos, registros de estado de bobinas, u otras funcionalidades. Ten en cuenta que esto está escrito para comunicarse con un PLC, con lo cual lo que pretende es escribir en salidas del PLC (bobinas de relé), leer entradas del mismo, o datos almacenados que dependen del programa.

Lo habitual suele ser que los datos internos o registros, vengan definidos por tu aplicación. Es decir, que tú te lo guisas, y tú te lo comes. Dos productos con ModBus no tienen porqué tener los mismos tipos de datos en las mismas direcciones para ser ModBus. Esa es la simplificación y la grandeza de este protocolo. Y también lo que complica la cosa.

Particularmente, lo que yo hacía era definirme estructuras de datos, puestas dichas estructuras en ciertas posiciones de direccionamiento del ModBus, y así mediante simples punteros, ir incrementando. Luego en el PC u otro aparato ModBus maestro, tenía las mismas estructuras definidas, para acceder a los datos de la misma manera.

Si estuviese en casa (de hecho, estoy en Deustchland) te podría pasar algo de lo que tengo hecho para AVR y C#. De hecho, es posible que encuentres algo puesto por ahí.

De todas maneras, en http://www.freemodbus.org" onclick="window.open(this.href);return false; (creo) puedes encontrar código C de muestra para varias arquitecturas (AVR como mínimo, creo que también PIC, PC en C, etc).

Generalmente, los protocolos que se suelen usar de manera general, sólo se encargan de traspasar datos de un sistema a otro de manera segura (para solucionar sincronizaciones, seguridad, integridad), pero no se encargan de interpretarlos.
Beamspot.

sistemasorp
Usuario Experto
Usuario Experto
Mensajes: 469
Registrado: Vie Ene 29, 2010 9:51 pm

Re: Protocolo modbus

Mensaje por sistemasorp » Mar Sep 23, 2014 1:36 pm

zohaa3492 escribió:gracias por la ayuda sistemasorp!
Ein?

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado