|
|
||
|---|---|---|
| .paul | ||
| Cnc | ||
| field-test | ||
| Licensing | ||
| NcProgramManager.Tests | ||
| Properties | ||
| .gitignore | ||
| App.config | ||
| ArgParser.cs | ||
| BUG_ANALYSIS.md | ||
| Dockerfile.test | ||
| FanucProgram.cs | ||
| FanucProgramManager.csproj.user | ||
| fwlib32.cs | ||
| InputArgs.cs | ||
| NcProgramManager.crproj | ||
| NcProgramManager.csproj | ||
| NcProgramManager.sln | ||
| nlog.config | ||
| nunit.runsettings | ||
| packages.config | ||
| Program.cs | ||
| README.md | ||
NcProgramManager
Software per il trasferimento di programmi CNC da e verso controller di macchine utensili. Supporta Fanuc (FOCAS), Heidenhain (LSV2), Siemens Sinumerik (FTP), Mitsubishi (FTP) e Fagor (FTP). Funziona completamente offline come applicazione console per Windows.
Requisiti
- Windows (qualsiasi versione compatibile con .NET Framework 4.7.2)
- .NET Framework 4.7.2 installato
- File
license.licvalido (rilasciato dal fornitore)
Licenza
Copiare il file license.lic nella stessa cartella dell'eseguibile NcProgramManager.exe. Senza licenza valida il programma si chiude all'avvio.
Per ottenere una licenza contattare il fornitore fornendo l'impronta hardware della macchina. L'impronta si ottiene eseguendo il comando fingerprint dello strumento LicenseGenerator.exe sulla macchina di destinazione.
Utilizzo
NcProgramManager.exe -manufacturer=<tipo> -azione=<azione> -ip=<ip> -porta=<porta> [opzioni]
Parametri
| Parametro | Valori | Descrizione |
|---|---|---|
-azione= |
Scarica / Invia |
Azione da eseguire |
-manufacturer= |
fanuc / heidenhain / siemens / mitsubishi / fagor |
Tipo di controller CNC (predefinito: fanuc) |
-ip= |
indirizzo IP | Indirizzo IP del controller — connessione Ethernet |
-porta= |
numero porta | Porta di connessione Ethernet |
-tipo= |
3 / 2 |
Tipo di connessione: 3 = Ethernet, 2 = HSSB (solo Fanuc, legacy) |
-nodo= |
numero nodo | Nodo HSSB (solo Fanuc, connessione HSSB) |
-username= |
nome utente | Credenziale per Heidenhain, Siemens, Mitsubishi, Fagor |
-password= |
password | Credenziale per Heidenhain, Siemens, Mitsubishi, Fagor |
-pathprogramma= |
percorso file | Percorso del file locale da caricare sul CNC (richiesto per Invia) |
-path= |
numero | Percorso programmi sul CNC; predefinito 1 = //CNC_MEM/USER/PATH1/ |
-workzero= |
qualsiasi valore | Se presente: include dati work zero offset nell'operazione |
-tooloffset= |
qualsiasi valore | Se presente: include dati tool offset nell'operazione |
-commento= |
testo | Commento da associare al programma |
-compatibility |
— | Attiva modalità compatibilità (flag senza valore) |
-debug= |
qualsiasi valore | Mantiene il terminale aperto al termine dell'operazione |
-help |
— | Mostra l'elenco dei parametri e termina (flag senza valore) |
La licenza viene letta automaticamente dal file license.lic nella cartella dell'eseguibile — nessun parametro aggiuntivo richiesto.
Esempi
Scarica programma da controller Fanuc:
NcProgramManager.exe -manufacturer=fanuc -azione=Scarica -ip=192.168.1.100 -porta=8193
Invia programma a controller Heidenhain:
NcProgramManager.exe -manufacturer=heidenhain -azione=Invia -ip=192.168.1.50 -porta=19000 -username=operator -password=secret
Scarica programma da Siemens Sinumerik:
NcProgramManager.exe -manufacturer=siemens -azione=Scarica -ip=192.168.1.200 -porta=21 -username=admin -password=secret
Invia programma a Fagor 8065:
NcProgramManager.exe -manufacturer=fagor -azione=Invia -ip=192.168.1.150 -porta=21 -username=user -password=pass -pathprogramma=C:\programmi\PROG1.nc
Controller supportati
| Produttore | Protocollo | Porta predefinita | Note |
|---|---|---|---|
| Fanuc | FOCAS (DLL 32-bit) | 8193 | Richiede fwlib32.dll nella stessa cartella |
| Heidenhain | LSV2 (TCP) | 19000 | Testato su TNC series |
| Siemens | FTP | 21 | Directory programmi: /_N_MPF_DIR/ — richiede opzione FTP abilitata sul Sinumerik |
| Mitsubishi | FTP | 21 | Directory programmi: /PRG/ |
| Fagor | FTP | 21 | Directory programmi: /Users/Prg/. Modelli supportati: 8060, 8065, 8070 (FTP nativo); 8055 (richiede opzione Ethernet) |
Controller Fagor
Modelli supportati
| Modello | Supporto | Note |
|---|---|---|
| 8055 | Solo con opzione Ethernet | Richiede attivazione esplicita del server FTP via parametri macchina |
| 8060 | Sì | FTP nativo (sistema Windows-based) |
| 8065 | Sì | FTP nativo (sistema Windows-based) |
| 8070 | Sì | FTP nativo (sistema Windows embedded) |
Modelli NON supportati
| Modello | Motivo |
|---|---|
| 8055 base (senza Ethernet) | Solo trasferimento RS232; il programma non implementa il protocollo seriale |
| 8025 / 8030 / 8040 / 8050 | Legacy, esclusivamente RS232 |
Regole nome programma
- Lunghezza massima 24 caratteri
- Caratteri ammessi: lettere (A-Z, a-z), cifre (0-9), spazi
- Carattere
ñNON ammesso - Estensione predefinita:
.nc(configurabile via codice)
Funzioni non supportate via FTP
ReadActiveProgramAsync— Fagor espone lo stato di esecuzione via DNC/OPC-UA, non via FTPSelectMainProgramAsync— selezione del programma principale richiede DNC, non disponibile via FTP- Lettura runtime stato macchina (
ReadAsyncritorna sempreUnknown)
Variabili d'ambiente per test integration con macchina reale
| Variabile | Valore | Default |
|---|---|---|
FAGOR_TEST_IP |
indirizzo IP macchina Fagor | (test skippato se assente) |
FAGOR_USER |
username FTP | user |
FAGOR_PASS |
password FTP | pass |
Validazione del programma NC
Prima di inviare un programma al controller, NcProgramManager esegue una validazione automatica del codice NC. Gli errori bloccano il trasferimento. Gli avvisi vengono registrati ma non interrompono l'operazione.
Codici di errore
| Codice | Descrizione | Causa probabile | Soluzione |
|---|---|---|---|
-100 |
Licenza errata o non valida | File license.lic assente, corrotto o generato per un'altra macchina |
Verificare che license.lic sia nella stessa cartella dell'eseguibile e generato per questa macchina |
-101 |
Impossibile parsare i parametri di input | Sintassi errata negli argomenti passati (spazi attorno a =, caratteri speciali) |
Controllare che ogni parametro sia nella forma -nome=valore senza spazi. Eseguire con -help per la sintassi corretta |
-102 |
Parametri obbligatori mancanti | Mancano -azione=, -ip= o -porta= |
Aggiungere i parametri mancanti alla riga di comando |
-103 |
Codice connessione non valido | Valore -tipo= non è 3 (Ethernet) né 2 (HSSB) |
Usare -tipo=3 per connessione Ethernet (più comune) o -tipo=2 per HSSB |
-201 |
Impossibile connettersi alla macchina | IP o porta errati, macchina spenta, firewall, protocollo non abilitato sul CNC | Verificare IP e porta, pingare la macchina, controllare che il protocollo (FOCAS/LSV2/FTP) sia abilitato sul controller |
-202 |
Eccezione durante l'esecuzione dell'azione | Errore di rete durante l'operazione, timeout, CNC in stato non valido | Controllare la connessione di rete; riprovare. Se persiste, verificare lo stato del CNC |
-203 |
L'azione richiesta è fallita | Il CNC ha rifiutato l'operazione (protezione scrittura, programma in esecuzione, permessi insufficienti) | Verificare che il CNC non stia eseguendo programmi e che non sia attiva la protezione scrittura |
-204 |
Errore durante invio o ricezione del programma CN | File locale non trovato (per Invia), memoria CNC piena, nome programma non valido |
Per Invia: verificare il percorso in -pathprogramma=. Per Scarica: verificare che il programma esista sul CNC |
-205 |
Errore durante invio o ricezione dei dati tool offset | Tool offset non supportato dal produttore selezionato, o errore di comunicazione | Verificare che il produttore supporti tool offset. Rimuovere -tooloffset= se non necessario |
-206 |
Errore durante invio o ricezione dei dati work zero offset | Work zero offset non supportato dal produttore selezionato, o errore di comunicazione | Verificare che il produttore supporti work zero offset. Rimuovere -workzero= se non necessario |
-207 |
Il CN deve essere in modalità MDI o EDIT | Il CNC è in modalità AUTO o MEM durante un tentativo di invio programma | Portare il CNC in modalità MDI o EDIT dal pannello operatore, poi ripetere l'operazione |
-208 |
Programma CN caricato ma non impostato come principale | Il programma è stato trasferito ma il CNC non lo ha selezionato come programma attivo | Selezionare manualmente il programma come programma principale dal pannello del CNC |