Files
mht-siemens/solution/client
2026-06-23 17:56:43 +02:00
..
2026-06-23 17:56:43 +02:00

Siemens PLC Client (Python)

Questo progetto fornisce un client Python per la lettura di dati da un PLC Siemens S7 (es. S7-300/400/1500) utilizzando la libreria snap7.

Funzionalità

  • Lettura della DB100 contenente parametri di configurazione, stati e stringhe (Commessa, Articolo, ecc.).
  • Lettura della DB101 contenente un array di 4000 valori REAL.
  • Parsing automatico dei tipi di dati S7 (REAL, Stringhe, Bit).

Requisiti di Sistema

  • Python 3.8+
  • snap7 library: È necessaria la libreria nativa snap7.
    • Windows: Scarica snap7.dll e mettilo nella cartella del progetto o in PATH.
    • Linux: Installa tramite sudo apt-get install libsnap7-dev.

Installazione

Questo progetto utilizza uv per la gestione dell'ambiente virtuale e delle dipendenze.

  1. Installazione di uv (se non presente): Segui le istruzioni su astral.sh/uv

  2. Setup dell'ambiente: Esegui i seguenti comandi nella cartella del progetto:

    uv venv
    uv pip install python-snap7
    

Utilizzo

Per avviare il client:

uv run python plc_client.py

Configurazione

Modifica le variabili all'inizio di plc_client.py:

  • PLC_IP: L'indirizzo IP del PLC.
  • RACK: Numero di rack (solitamente 0).
  • SLOT: Numero di slot (solitamente 1 per S7-300, potrebbe variare per S7-1500).