Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Android comunicazione modbus

    Buongiorno a tutti ho eseguito un programma di supervisione in java.
    Con la libreria jmodbus vado ad interrogare in wifi un plc S7-1200(protocollo modbus TCP).
    Funziona tutto perfettamente.
    Ho rifatto il programma adattandolo ad android. Legge e scrive il file nella sd, non da errori particolari nella comunicazione in senso che accetta e mi lascia implementare la libreria.
    Quando provo a leggere però mi da eccezzione e mi restituisce un valore null.
    es schematizzato:

    codice:
    ModbusTCPMaster modbus;
    boolean ok;
    int[] buff;
    
    try
    {
       modbus=new ModbusTCPMaster("192.168.0.1",502);
    }catch(Exception e)
    {
       Toast toast=Toast.makeText(this, e.getMessage(),Toast.LENGHT_SHORT);
       toast.show();   //Nessuna segnalazione
    }
    
    try
    {
       buff=new int[2];
       ok=modbus.readMultiRegisters(1,0,1,0,buff);
       Toast toast=Toast.makeText(this, buff[0],Toast.LENGHT_SHORT);
       toast.show();        //Questa funzione da pc restituisce il valore
    }catch(Exception e)
    {
       Toast toast=Toast.makeText(this, e.getMessage(),Toast.LENGHT_SHORT);
       toast.show();       //Da android restituisce null
    }
    Volevo capire se è la libreria non adatta ad android o se c'è qualche settaggio a fare all'htc.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Lo sviluppo per Android viene trattato nel forum Java (visto il linguaggio di riferimento).

    PS: sarebbe opportuno che tu indentassi il codice e lo postassi all'interno degli appositi tag CODE, come richiesto dal regolamento interno.

    Sposto nel forum Java.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Ok grazie. Era molto tempo che non mi capitava di scrivere.

  4. #4
    Ciao penso il problema sia legato all'installazione della libreria jmodbus.jar.
    Prima avevo copiato il file nella cartella libs.
    Funzionava tutto a livello programmazione ma probabilmente la libreria non veniva esportata nel telefono.
    Ora l'ho installato andando su proprietà del progetto e aggiungendo libreria jar.
    Quando provo a compilare mi dice che non trova il package net.souceforge.jmodbus.*;
    grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Ora l'ho installato andando su proprietà del progetto e aggiungendo libreria jar.
    Se ancora non ti funziona prova a descrivere dettagliatamente come hai aggiunto la libreria.

  6. #6
    Sopra il progetto>tasto dx>proprietà>jar Libraries>su custom location ho indicato la cartella dove risiede la mia libreria>Su referenced JRA ho selezionato il nome della libreria.
    Una volta uscito il package non è sottolineato in rosso e riesco a vedere le varie funzioni della libreria.
    Quando compilo però mi dice:
    D:\programmi\java\...\aImpostazioni.java:11:
    error: package net.souceforge.jmodbus does not exist
    import net.sourceforge.jmodbus.* ;

    e così ripete per tutti i punti in cui uso la libreria.

    grazie mille

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Mi sembra corretto, oltretutto se compilavi non per android mi pare di capire che questa libreria ti funzionava.
    Essendo solo una dozzina di files .class in quel jar potresti provare a scaricarne i sorgenti e ricompilarla.

    [EDIT] Vedo adesso che anche il jar più recente sembra essere stato compilato nel 2001, quindi credo che una ricompilata gli farebbe bene, magari ci sono incompatibilità di bytecode.

  8. #8
    Grazie mille dei consigli. Comunque ieri notte ho provato una strada nuova.
    Ho usato jamod. E' un'altra libreria piu' recente e piu' a basso livello.
    Col pc al solito funziona mentre con android mi da "Permission denied" durante l'inizializzazione della porta.
    A questo punto mi viene da pensare che il problema non sia di librerie(ho risolto l'errore importando la libreria da netbeans e copiando jmodbus nel package del manifest) ma di autorizzazione da parte di android.
    Adesso voglio fare dei tentativi inserendo dei permessi nel manifest.
    Se hai consigli sono ben accetti.
    grazie

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    707
    Col pc al solito funziona mentre con android mi da "Permission denied" durante l'inizializzazione della porta.
    Mi sono perso di che porta si tratta.
    Ero rimasto che si tratta di una applicazione android (su smartphone) che usa wifi e sd.

  10. #10
    Scusa mi spiego meglio. La comunicazione e' wifi pero' comunque devo dichiarare indirizzo es: 192.168.0.1, porta 502, id(slave)1.
    Normalmente all'apertura dell'applicazione inizializzo la comunicazione passando i dati sopra elencati. Qua mi da l'eccezione Permission denied.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.