|
Página 1 de 2
|
Libmodbus: Usando Una Librería Externa
Autor |
Mensaje |
razaAztk
aztk crux
Analista Programador
Registrado: Enero 2010
Mensajes: 340
Edad: 35 Ubicación: Tenochtitlan
|
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).
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 |
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 |
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 |
|
#1 Viernes, 07 Octobre 2016, 19:59 |
|
|
razaAztk
aztk crux
Analista Programador
Registrado: Enero 2010
Mensajes: 340
Edad: 35 Ubicación: Tenochtitlan
|
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.
|
#2 Viernes, 07 Octobre 2016, 20:03 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Libmodbus: Usando Una Librería Externa
razaAztk, bravo, bravo bravo !
|
#3 Sabado, 08 Octobre 2016, 01:09 |
|
|
razaAztk
aztk crux
Analista Programador
Registrado: Enero 2010
Mensajes: 340
Edad: 35 Ubicación: Tenochtitlan
|
Re: Libmodbus: Usando Una Librería Externa
vuott escribió: razaAztk, bravo, bravo bravo !
Muchas gracias a ti, por compartir el conocimiento.
|
#4 Sabado, 08 Octobre 2016, 01:19 |
|
|
razaAztk
aztk crux
Analista Programador
Registrado: Enero 2010
Mensajes: 340
Edad: 35 Ubicación: Tenochtitlan
|
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.
Disculpen que nadamás están unos cablecitos, jeje. Es que no tengo protoboard.
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 |
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 |
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 |
|
#5 Sabado, 08 Octobre 2016, 01:33 |
|
|
razaAztk
aztk crux
Analista Programador
Registrado: Enero 2010
Mensajes: 340
Edad: 35 Ubicación: Tenochtitlan
|
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.
Saludos.
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 |
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 |
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 |
|
#6 Viernes, 14 Octobre 2016, 01:11 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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...
|
#7 Viernes, 14 Octobre 2016, 19:14 |
|
|
razaAztk
aztk crux
Analista Programador
Registrado: Enero 2010
Mensajes: 340
Edad: 35 Ubicación: Tenochtitlan
|
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:
Aquí una imagen de la aplicación webmb abierta desde un dispositivo android.
Aunque la aplicación reacciona lento, cosa que no pasa cuando se prueba desde el IDE gambas.
|
#8 Lunes, 17 Octobre 2016, 04:49 |
|
|
razaAztk
aztk crux
Analista Programador
Registrado: Enero 2010
Mensajes: 340
Edad: 35 Ubicación: Tenochtitlan
|
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.
|
#9 Lunes, 17 Octobre 2016, 04:52 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
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).
|
#10 Lunes, 17 Octobre 2016, 09:51 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|