ciaa / firmware_v1

Firmware de la CIAA
http://www.proyecto-ciaa.com.ar
129 stars 120 forks source link

Crear el módulo ModBus #13

Closed mcerdeiro closed 10 years ago

mcerdeiro commented 10 years ago

Podemos basarnos en: http://libmodbus.org/download/? Implementarlo de cero?

gmuro commented 10 years ago

Hola Mariano. Por lo que estuve viendo, la biblioteca no tiene Modbus Slave, que es lo primero que estamos necesitando en CIAA-Firmware. Yo plantearía una implementación desde cero. Te copio abajo el mail que envié hace unos días para que me den su opinión. Los que estén interesado en comenzar a trabajar con el módulo modbus, escriban así comenzamos a intercambiar opiniones. Saludos

Mail:

Estuve reunido con Luciano Diamand (CIAA-Software) charlamos sobre una posible estructura para la implementación de MODBUS (adjunto). Como ya se mencionó antes, los mensajes MODBUS comparten el mismo formato independientemente si son peticiones del maestro o respuestas de un esclavo, por este motivo pensamos en una interfaz (6) donde se definan los mensajes:

struct Type_MsgModProt { uint8_t *msg; int32_t size; };

y una estructura común con llamados a funciones para el intercambio de los mismos:

struct Type_ModProt { int32_t (_pSend) (Type_MsgModProt msg); int32_t (_pRecv) (Type_MsgModProt msg); }

(3) (4) y (5) Se inicializan pasando como argumento el/los handler de los dispositivos, cuya interfaz podría ser:

struct Type_IO { int32_t fd; int32_t (_pwrite) (int32_t fd, const void buffer, int32_t size); int32_t (_pread) (int32_t fd, const void buffer, int32_t size); }; [1]

Al inicializar devuelve un Type_ModProt que es pasado como argumento en la inicialización de ModbusSlave (2), de esta manera queda vinculado el puerto al protocolo ModbusSlave ASCII. Y así con las otras posibles combinaciones.

Es una idea y está abierta a todas los ca modbus-ciaa mbios que sugieran. Saludos

[1] Design of an Extensible, Portable and POSIX Compliant Protocol, Agustin Alba Chicar, Ezequiel Esposito, Ariel Lutenberg

mcerdeiro commented 10 years ago

Hola Gustavo,

me parece bien, recién mande un mail a la lista consutlando el tema de los drivers/bus/etc y como se registrarian.

Saludos. Mariano.-

mcerdeiro commented 10 years ago

TODO tests for the commit 94aae74d8635f58010a0dcf35ce9498e65353bb4.

mcerdeiro commented 10 years ago

I think the first version is running and we can close this issue. if needed new issues shall be opened.