Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Libmodbus: Usando Una Librería Externa
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Libmodbus: Usando Una Librería Externa 
 
Qué tal,

Pss hasta que me animé a utilizar una librería externa, gracias a los varios hilos que publica vuott acerca del tema.

La verdad que es muy fácil y muy útil. Me base principalmente en Extern: Llamar Funciones Externas A Gambas y en un ejemplo sencillo Far mostrare sulla Scrivania i messaggi della specifica Desktop Notifications mediante le funzioni esterne del API di Libnotify

Y también usando la documentación de la librería en cuestión libmodbus (por cierto, son necesarios los paquetes libmodbus5 y libmodbus-dev).

Por ahora he usado un par de funciones:

' http://manpages.ubuntu.com/manpages/wily/man7/libmodbus.7.html
Library "libmodbus"

' modbus_t * modbus_new_tcp (const char *ip, int port)
' Create a libmodbus context for TCP/IPv4
Private Extern modbus_new_tcp(ip As String, port As Integer) As Pointer

' int modbus_connect(modbus_t *ctx)
' Establish a Modbus connection
Private Extern modbus_connect(ctx As Pointer) As Integer

' int modbus_write_bit(modbus_t *ctx, int addr, int status)
' Write a single bit
Private Extern modbus_write_bit(ctx As Pointer, addr As Integer, status As Integer) As Integer

' void modbus_close(modbus_t *ctx)
' Close a Modbus connection
Private Extern modbus_close(ctx As Pointer)

' void modbus_free(modbus_t *ctx)
' Free a libmodbus context
Private Extern modbus_free(ctx As Pointer)

' int modbus_read_input_bits(modbus_t *ctx, int addr, int nb, uint8_t *dest);
' Read many input bits
Private Extern modbus_read_input_bits(ctx As Pointer, addr As Integer, nb As Integer, dest As Byte[]) As Integer
 


Adjunto el código completo de un pequeño ejemplo. Éste programa lo he probado con un modulo ADAM 6266, espero realizar un código para utilizar un arduino como Modbus TCP/IP server (que es más fácil que las personas tengan un arduino).

 mbgb_screenshot

mbgb-0.0.1.tar.gz
Descripción: Ejemplo de uso de librería libmodbus en gambas 
Descargar
Nombre del archivo: mbgb-0.0.1.tar.gz
Tamaño: 15.27 KB
Descargado: 53 veces
mbgb-0.0.1.tar.gz
Descripción: Ejemplo de uso de librería libmodbus en gambas 
Descargar
Nombre del archivo: mbgb-0.0.1.tar.gz
Tamaño: 15.27 KB
Descargado: 53 veces
mbgb-0.0.1.tar.gz
Descripción: Ejemplo de uso de librería libmodbus en gambas 
Descargar
Nombre del archivo: mbgb-0.0.1.tar.gz
Tamaño: 15.27 KB
Descargado: 53 veces

 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Libmodbus: Usando Una Librería Externa 
 
El anterior código es un pequeño ejemplo, el siguiente paso es crear una clase en base a libmodbus. Espero sacar tiempo, jejeje.
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Libmodbus: Usando Una Librería Externa 
 
razaAztk, bravo, bravo bravo !    popopopopopopo
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Libmodbus: Usando Una Librería Externa 
 
vuott escribió:  
razaAztk, bravo, bravo bravo !    popopopopopopo


Muchas gracias a ti, por compartir el conocimiento.
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Libmodbus: Usando Una Librería Externa 
 
Bien, he creado un pequeño código para arduino haciendo uso de Modbus library para probar la aplicación gambas. Nota: cambiar las IP.

 arduino_modbus

Disculpen que nadamás están unos cablecitos, jeje. Es que no tengo protoboard.

modbus_slave_test.tar.gz
Descripción: Ejemplo de modbus TCP/IP slave. Es necesario la shield Ethernet.
Los pin0, pin1, pin2 y pin3 son entradas con sus pullup resistors (se tiene un uno lógico con el pin y GND). Y los pin4, pin5, pin6 y pin7 son salidas. 

Descargar
Nombre del archivo: modbus_slave_test.tar.gz
Tamaño: 4.28 KB
Descargado: 48 veces
modbus_slave_test.tar.gz
Descripción: Ejemplo de modbus TCP/IP slave. Es necesario la shield Ethernet.
Los pin0, pin1, pin2 y pin3 son entradas con sus pullup resistors (se tiene un uno lógico con el pin y GND). Y los pin4, pin5, pin6 y pin7 son salidas. 

Descargar
Nombre del archivo: modbus_slave_test.tar.gz
Tamaño: 4.28 KB
Descargado: 48 veces
modbus_slave_test.tar.gz
Descripción: Ejemplo de modbus TCP/IP slave. Es necesario la shield Ethernet.
Los pin0, pin1, pin2 y pin3 son entradas con sus pullup resistors (se tiene un uno lógico con el pin y GND). Y los pin4, pin5, pin6 y pin7 son salidas. 

Descargar
Nombre del archivo: modbus_slave_test.tar.gz
Tamaño: 4.28 KB
Descargado: 48 veces

 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Libmodbus: Usando Una Librería Externa 
 
Con éste ejemplo he realizado otro ejemplo, pero ahora es una interfaz web, haciendo uso del componente gb.web.form

Muy interesante las herramientas que ofrece. Aunque tengo que ver como montar mi servidor web, y como integrar CGI gambas; ya que hasta ahora he usado el web server built-in del IDE de gambas.

 web_modbus_screenshot

Saludos.

webmb-0.0.1.tar.gz
Descripción: Uso de libmodbus para un dispositivo modbus TCP/IP. Y haciendo uso de gb.web.form para realizar una aplicación web. 
Descargar
Nombre del archivo: webmb-0.0.1.tar.gz
Tamaño: 15.65 KB
Descargado: 57 veces
webmb-0.0.1.tar.gz
Descripción: Uso de libmodbus para un dispositivo modbus TCP/IP. Y haciendo uso de gb.web.form para realizar una aplicación web. 
Descargar
Nombre del archivo: webmb-0.0.1.tar.gz
Tamaño: 15.65 KB
Descargado: 57 veces
webmb-0.0.1.tar.gz
Descripción: Uso de libmodbus para un dispositivo modbus TCP/IP. Y haciendo uso de gb.web.form para realizar una aplicación web. 
Descargar
Nombre del archivo: webmb-0.0.1.tar.gz
Tamaño: 15.65 KB
Descargado: 57 veces

 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Libmodbus: Usando Una Librería Externa 
 
razaAztk:

Citar:
pero ahora es una interfaz web, haciendo uso del componente gb.web.form


guayyyy!!!    

Citar:
Aunque tengo que ver como montar mi servidor web, y como integrar CGI gambas;

En mi blog, comenté como configurar c9.io, para ver páginas web realizadas con gambas y cgi

http://jsbsan.blogspot.com.es/2015/...n-gambas-y.html

supongo que la configuración en otro servidor, debe de ser similar...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Libmodbus: Usando Una Librería Externa 
 
jsbsan escribió:  

En mi blog, comenté como configurar c9.io, para ver páginas web realizadas con gambas y cgi


Gracias jsbsan.

He hecho la prueba con un servidor web llamado lighttpd, y lo más curioso es que ya lo tenía instalado. Creo, aunque no estoy seguro, es que gambas lo instala para que funcione su web server builtin... pueden checar si tienen instalado ese webserver?

Bueno, pongo los pasos para montar su webserver lighttpd con gambas CGI.

sudo apt-get install lighttpd
sudo lighttpd-enable-mod userdir   # Esto es para que cada usuario tenga su carpeta a servir
sudo lighttpd-enable-mod cgi
mkdir $HOME/public_html/
sudo gedit /etc/lighttpd/lighttpd.conf
 


Y al final del fichero poner:

Citar:

cgi.assign = ( ".gambas" => "", ".sh" => "" )


NOTA: Agregué también scripts bash, y se pueden agregar otros tipos de lenguajes de forma análoga.

Después hay que reiniciar el servidor:

sudo service lighttpd reload
 


Ahora en el IDE de gambas en algún proyecto WEB le dan en crear ejecutable y como destino lo ponen en el directorio public_html que crearon, tiene que tener la extensión *.gambas

En su explorador web tienen que acceder de la sig forma:

Citar:

http://dominio/~usuario/app.gambas


Aquí una imagen de la aplicación webmb abierta desde un dispositivo android.

 wbmb_en_movil

Aunque la aplicación reacciona lento, cosa que no pasa cuando se prueba desde el IDE gambas.
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Libmodbus: Usando Una Librería Externa 
 
Por cierto, por default una aplicación web hecha en gambas muestra un favicon de la mascota de gambas; si quieren poner otra tiene que guardar el logo como favicon.png en el directorio .public del proyecto.

Saludos.
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Libmodbus: Usando Una Librería Externa 
 
razaAztk:

Citar:
Creo, aunque no estoy seguro, es que gambas lo instala para que funcione su web server builtin... pueden checar si tienen instalado ese webserver?

Lighttpd: yo no lo tengo instalado, y el contenido web de tu programa se me muestra en el navegador, pero no me funciona completamente tu ejemplo (supongo porque me falta la parte del hardware que tienes conectado).
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron