Topic: Snap7  (Letto 133 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Cristian Nori

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Snap7
« il: Aprile 24, 2020, 18:02 »
Buongiorno,
qualcuno è pratico di libreia snap7?
Sto tentando di seguire un esempio basilare per comandare un PLC Siemens S7-1200 da remoto e mi da un errore
>>> import snap7
>>> plc = snap7.client.Client()
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    plc = snap7.client.Client()
  File "C:\Python3\lib\site-packages\snap7\client.py", line 38, in __init__
    self.library = load_library()
  File "C:\Python3\lib\site-packages\snap7\common.py", line 54, in load_library
    return Snap7Library(lib_location).cdll
  File "C:\Python3\lib\site-packages\snap7\common.py", line 46, in __init__
    raise Snap7Exception(msg)
snap7.snap7exceptions.Snap7Exception: can't find snap7 library. If installed, try running ldconfig
>>>

Sembra che la libreria non sia installata correttamente ma volevo una conferma, avendo già provato a reinstallarla.
Grazie.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.020
  • Punti reputazione: 9
    • Mostra profilo
Re:Snap7
« Risposta #1 il: Aprile 24, 2020, 19:03 »
beh, a me sembra piuttosto chiaro. Si lamenta che non trova la "snap7 library". Tu ce l'hai, questa "snap7 library"? Se no, ti consiglio di procurartela.

Offline Cristian Nori

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re:Snap7
« Risposta #2 il: Aprile 24, 2020, 19:45 »
beh, a me sembra piuttosto chiaro. Si lamenta che non trova la "snap7 library". Tu ce l'hai, questa "snap7 library"? Se no, ti consiglio di procurartela.
Sì anch'io avevo inteso che ci fossero problemi con il pacchetto...ho provato anche a creare un ambiente virtuale in cui ho reinstallato il pacchetto ( se faccio pip list lo vedo e se controllo la directory vedo lo script client) ma ancora non funziona.
Tra l'altro sto tentando di eseguire un esempio ufficiale che c'è dentro la cartella della libreria.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.020
  • Punti reputazione: 9
    • Mostra profilo
Re:Snap7
« Risposta #3 il: Aprile 24, 2020, 19:55 »
non hai capito... il "pacchetto" funziona benissimo, altrimenti ti beccheresti un ImportError subito. Probabilmente questo "pacchetto" si appoggia a una libreria esterna che dev'essere installata. Hai provato (la butto lì, eh?) a leggere la documentazione?

Offline Cristian Nori

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re:Snap7
« Risposta #4 il: Aprile 24, 2020, 21:04 »
non hai capito... il "pacchetto" funziona benissimo, altrimenti ti beccheresti un ImportError subito. Probabilmente questo "pacchetto" si appoggia a una libreria esterna che dev'essere installata. Hai provato (la butto lì, eh?) a leggere la documentazione?
Sì ho seguito la guida ufficiale per l'installazione e l'avvio del pacchetto e non citavano l'installazione di un altro pacchetto.
Ma l'istruzione snap7.client.Client non va a richiamare uno script dentro la libreria di snap7? Che tra l'altro vedo nella cartella che si è generata dopo aver installato il pacchetto (client.py).
Sono alle prime armi con python e quindi non so se dico una sciocchezza.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.020
  • Punti reputazione: 9
    • Mostra profilo
Re:Snap7
« Risposta #5 il: Aprile 24, 2020, 21:07 »
link di questa "guida ufficiale per l'installazione"?

Offline Cristian Nori

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re:Snap7
« Risposta #6 il: Aprile 24, 2020, 21:22 »
Eccola qui:
https://python-snap7.readthedocs.io/en/latest/index.html
Ora rileggendo ho letto che esiste un script di test da eseguire per controllare il funzionamento...casomai provo ad eseguirlo.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.020
  • Punti reputazione: 9
    • Mostra profilo
Re:Snap7
« Risposta #7 il: Aprile 24, 2020, 23:18 »
Scusa ma... hai delle difficoltà di lettura?

"To use python-snap7 you need to have the snap7 library installed."
Mi sembra piuttosto chiaro.

Offline Cristian Nori

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re:Snap7
« Risposta #8 il: Aprile 24, 2020, 23:53 »
Ovvio che il primo passaggio è stato quello di installare la libreria snap7 tramite il comando pip install python-snap7 . Pensavo che si fosse capito anche perché ho scritto sopra che ho provato a reinstallarlo anche in un ambiente virtuale ed eseguendo il comando pip list me lo trovo nella lista dei pacchetti installati.
Infatti import snap7 non mi dà errore come avevi scritto tu.
Non so sono alle prime armi ma mi sembra di aver capito che basta il comando pip per installare un pacchetto... tralascio qualcosa?
Domani provo a fare tutti i test su un PC con Ubuntu per vedere se la funziona.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.020
  • Punti reputazione: 9
    • Mostra profilo
Re:Snap7
« Risposta #9 il: Aprile 25, 2020, 09:10 »
non hai capito.
Il pacchetto python è quello che hai installato con pip. E il pacchetto si chiama "python-snap7".

La documentazione dice
"To use python-snap7 you need to have the snap7 library installed."
Ma davvero è così difficile? Prova a rileggere ad alta voce questa frase qualche volta. Fallo per esercizio, davvero.

PER USARE, al fine di usare, allo scopo di usare, se vuoi usare, se hai necessità di usare
python-snap7
ALLORA DEVI AVERE, hai necessità di avere, hai bisogno di avere,
la libreria snap7 installata.

Quindi ti suggerirei di procurarti questa "libreria snap7", qualunque cosa sia, e installarla.
Forse facendo attenzione che finisca nella path di sistema, hai visto mai.
E poi (forse!) anche il tuo pacchetto si mette a funzionare.

Offline Cristian Nori

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re:Snap7
« Risposta #10 il: Aprile 25, 2020, 09:41 »
Ok grazie, proverò a capire cos'è e come si installa questa libreria.