Strumento di automazione per la compilazione di applicazioni CODESYS PLC da repository SVN. Avvia il CODESYS IDE in modalità headless, esegue il checkout del sorgente, compila il progetto e genera il boot application pronto per il deploy sul PLC.
python main.py
Il flusso di esecuzione è il seguente:
- Scansiona la directory di installazione CODESYS per rilevare i profili disponibili
- Propone una selezione interattiva del profilo se ne sono presenti più di uno
- Esegue il checkout del progetto dal repository SVN nella directory
repos/ - Avvia CODESYS in modalità
--noUIcon lo script di buildcodesys_build.py - Compila l'applicazione e genera il boot application (
.app) - Riporta l'esito della build con gli eventuali errori
Gli artefatti generati vengono salvati nella directory output/:
| File | Descrizione |
|---|---|
Application.app |
Boot application compilata da caricare sul PLC |
Application.crc |
Checksum CRC del file .app |
- Windows 10/11
- CODESYS IDE 3.5.17.30 installato in
C:\Program Files\CODESYS 3.5.17.30\ - Python 3.x (solo libreria standard, nessuna dipendenza esterna)
- Accesso al repository SVN configurato in
main.py
I parametri di build sono definiti direttamente in main.py:
| Parametro | Descrizione |
|---|---|
SVN_URL |
URL del repository SVN contenente il progetto CODESYS |
REPO_DIR |
Directory locale per il checkout SVN (./repos/) |
OUTPUT_DIR |
Directory di destinazione degli artefatti (./output/) |
PROJECT_NAME |
Nome del progetto CODESYS |
SVN_USER / SVN_PASS |
Credenziali SVN (opzionali) |
CODESYS_EXE |
Percorso dell'eseguibile CODESYS |
codesys-builder/
├── main.py # Entry point: orchestrazione del processo di build
├── codesys_build.py # Script eseguito da CODESYS in modalità headless
├── repos/ # Cache del checkout SVN (ignorata da git)
└── output/ # Artefatti generati dalla build (ignorati da git)
main.py costruisce ed esegue il seguente comando:
CODESYS.exe --noUI --profile=<profilo> --runscript=codesys_build.py --scriptargs="<parametri>"
codesys_build.py viene eseguito internamente dal motore di scripting CODESYS e riceve i parametri via --scriptargs. Si occupa di: checkout SVN, apertura del progetto, compilazione e generazione del boot application.