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.dlle mettilo nella cartella del progetto o in PATH. - Linux: Installa tramite
sudo apt-get install libsnap7-dev.
- Windows: Scarica
Installazione
Questo progetto utilizza uv per la gestione dell'ambiente virtuale e delle dipendenze.
-
Installazione di uv (se non presente): Segui le istruzioni su astral.sh/uv
-
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).