Initial LMEMoxaTransfer application

This commit is contained in:
Livio Merola
2026-07-24 09:11:00 +02:00
commit dee8e930ea
25 changed files with 2217 additions and 0 deletions
+104
View File
@@ -0,0 +1,104 @@
# LMEMoxaTransfer
Solution VB.NET WinForms per inviare e ricevere programmi CNC tra PC e macchinario Okuma tramite dispositivo Moxa in modalita TCP Server.
Prima della riorganizzazione e' stata creata una copia completa in:
`C:\Users\livio\Documents\TrasferimentoProgrammiOkuma_backup_20260724_azienda_macchine`
## Configurazione vista nella schermata Moxa
- Operating mode: `TCP Server Mode`
- Local TCP port: `10001`
- Packing length: `0`
- Delimiter 1/2: `0 (Disable)`
- Force transmit: `0`
- Serial baud rate: `4800`
- Data bits: `7`
- Stop bits: `1`
- Parity: `Even`
- FIFO: `Disable`
- Flow ctrl: `None`
- Interface: `RS-232`
Con questa configurazione il PC si collega come client TCP all'indirizzo IP del Moxa sulla porta `10001`.
## Configurazione aziende e macchine
All'avvio l'app legge `moxa-okuma-settings.json` dalla cartella dell'eseguibile. Il file contiene:
- elenco aziende e macchine Okuma con IP Moxa;
- impostazioni predefinite di invio/ricezione;
- hash e salt della password amministratore.
Le macchine SECUREX mantengono il numero originale dell'immagine, quindi sono `M4`, `M5`, `M8`, `M11`, `M12`.
La password iniziale e' `moxa`. Se nel JSON si svuotano `AdminPasswordHash` e `AdminPasswordSalt`, al primo sblocco l'app chiede di impostare una nuova password senza richiedere la vecchia.
## Uso
1. Aprire `TrasferimentoProgrammiOkuma.sln` con Visual Studio.
2. Avviare il progetto `TrasferimentoProgrammiOkuma.App`.
3. Selezionare azienda e macchina dalle due tendine.
4. Per ricevere da Okuma:
- scegliere la cartella di destinazione sul PC;
- premere `Ricevi da Okuma`;
- dal controllo Okuma avviare l'uscita/invio programma.
- la ricezione viene salvata prima in una cartella temporanea dell'app;
- se nel file ricevuto e' presente un nome preceduto da `$`, l'app lo propone come nome finale nella cartella scelta; il nome e' modificabile prima del salvataggio definitivo.
5. Per inviare a Okuma:
- mettere il controllo Okuma in ricezione;
- scegliere il file programma dal PC;
- premere `Invia a Okuma`.
I controlli di configurazione sono bloccati di default. Rimangono disponibili i bottoni operativi e le caselle dei file. Usare `Sblocca controlli` per modificarli.
## Stato Moxa
La scheda `Stato Moxa` mostra tutte le macchine Okuma divise per azienda. Il pallino verde indica che l'IP Moxa risponde sulla porta TCP configurata, il rosso indica che non e' raggiungibile, il grigio indica che non e' ancora stato controllato.
Il pulsante `Aggiorna` e' sempre disponibile. Il controllo automatico usa l'intervallo `Intervallo s`, modificabile solo dopo lo sblocco con password.
## Menu e informazioni
I comandi generali sono nel menu `Strumenti`; la voce `? > Informazioni su` mostra azienda `Compomac SPA`, autore `Livio Merola` e versione dell'app.
All'avvio viene mostrato uno splash screen con l'icona dell'app.
## ClickOnce
Profilo di pubblicazione:
```powershell
& "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" .\TrasferimentoProgrammiOkuma.App\TrasferimentoProgrammiOkuma.App.vbproj /target:Publish /p:Configuration=Release /p:PublishProfile=GiteaClickOnce /p:PublishDir=..\clickonce\
```
La cartella `clickonce` contiene `LMEMoxaTransfer.application` e i file necessari. L'URL di aggiornamento configurato e':
`https://gitea.lmcloud.it/livio/LMEMoxaTransfer/raw/branch/main/clickonce/LMEMoxaTransfer.application`
## Note pratiche
- Se la ricezione termina troppo presto, aumentare `Fine ricez. s`.
- Se la ricezione non finisce mai, ridurre `Fine ricez. s`.
- Se Okuma richiede un fine programma esplicito, provare `Terminatore invio` con `%` oppure `% + CRLF`.
- Per la procedura Okuma READ da `CN0:`, attivare `Invio a blocchi`, lasciare `Dim. blocco byte` a `32` e `Pausa blocco ms` a `100` come punto di partenza, avviare prima READ sulla macchina, attendere che sia in ricezione, poi premere `Invia a Okuma`. Questa modalita aggiunge automaticamente `% + CRLF` e mantiene il socket aperto almeno 1 secondo dopo l'invio. Se appare ancora `5239`, provare `16` byte con `250` ms, poi `8` byte con `300` ms.
- Il trasferimento e' byte-per-byte: il programma non modifica il contenuto del file selezionato, salvo il terminatore opzionale in invio.
- Se l'invio verso Okuma genera `5238 RS232C device not ready ERROR FF`, controllare prima il lato seriale Okuma-Moxa: baud rate, data bit, parita, stop bit, flow control e segnali DSR/CTS/DTR/RTS. L'app TCP puo collegarsi al Moxa, ma non puo forzare la porta RS232C della macchina a diventare pronta.
- Per controlli Okuma che non accettano un flusso troppo rapido, lasciare attivo `Invio riga per riga`, provare `Pausa riga ms` tra `200` e `500`, attivare `Invio carattere per carattere`, provare `Pausa carattere ms` tra `10` e `30`, e tenere `Attesa dopo invio s` almeno a `2`.
- Dalla schermata Moxa attuale il flow control e' `None`. Se sul parametro Okuma e' impostato `DC CODE`, provare `XON/XOFF` sul Moxa. Se invece Okuma usa handshake hardware, provare `RTS/CTS` e controllare il cablaggio dei segnali ready.
- Se l'errore corretto e' `5239 memoria lettura per canale RS232C troppo piena`, il flusso in ingresso e' troppo rapido per il buffer Okuma. Ridurre la velocita applicativa con `Invio carattere per carattere`, aumentare le pause, oppure far funzionare correttamente il flow control `XON/XOFF` o hardware.
- Se `5239` appare subito appena si preme invio, usare `Test connessione`: apre TCP verso il Moxa senza inviare dati. Se l'allarme non compare, il problema nasce al primo byte seriale. Se compare comunque, riavviare il Moxa con `Save/Restart`, azzerare l'allarme Okuma e controllare stato/cablaggio RS232.
- Dopo modifiche Moxa premere sempre `Submit` e poi `Save/Restart`; in caso di prove fallite, spegnere/riaccendere o riavviare il Moxa per svuotare eventuali dati rimasti nel buffer.
## Build da terminale
```powershell
dotnet build .\TrasferimentoProgrammiOkuma.sln
```
## Avvio da terminale
```powershell
dotnet run --project .\TrasferimentoProgrammiOkuma.App\TrasferimentoProgrammiOkuma.App.vbproj
```