TGL040 - Tempi taglio lamiere (Taglio Lamiere)¶
Panoramica¶
Programma GUI (maschera di testata + griglia) per la manutenzione dei tempi di taglio del modulo Taglio Lamiere, memorizzati nel file dedicato TGLTEMPT. I tempi/parametri di taglio sono organizzati per la terna macchina + tipo taglio + materia prima (dati di testata) e, per ciascuna terna, per spessore (righe di griglia). Ogni riga contiene metri/minuto, secondi di sfondamento, secondi per foro, secondi per puntatura, metri di spostamento, costo gas al minuto, metri di pellicola, metri 3D e tempo di posizionamento.
L'operatore inserisce prima macchina, tipo taglio e materia prima nella testata (con controlli e help F8), quindi la griglia visualizza gli spessori con i relativi tempi per quella terna. Il salvataggio (F3) riscrive completamente l'insieme dei tempi della terna: cancella tutti i record esistenti e riscrive quelli presenti in griglia.
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Magazzino | Archivi & Tabelle > Taglio Lamiere > Tempi taglio lamiere |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema (nomi file) |
| TGLTEMPT | I-O | Tempi di taglio; chiave ttpt-macchina + ttpt-tipo-taglio + ttpt-materia-prima + ttpt-spessore |
| CLCANAMA | Input | Anagrafica macchine; usato per validare tm-macchina (rd-clcanama, descrizione da mac-des) |
| TGLTIPGG | Input | Tipi di taglio; usato per validare tm-tipo-taglio (rd-tgltipgg, descrizione da tttg-des) |
| TGLMACTT | Input | Collegamento macchina/tipo taglio; verifica che il tipo taglio sia collegato alla macchina (rd-tglmactt) |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd / cogfiles.cpy | SELECT/FD e record della tabella di sistema |
| tgl040.select / tgl040.fd | SELECT e File Description (generati da Screens; il FD referenzia TGLTEMPT, CLCANAMA, TGLTIPGG, TGLMACTT) |
| tgl040.wrk / tgl040.decla / tgl040.prc | Working storage, declaratives e procedure di I/O generati da Screens |
| tgl040-01.scr | Screen section (maschera di testata e griglia e-tm-tab) |
| costanti-tgls.cpy | Costanti del modulo Taglio Lamiere |
| tgltempt.cpy / tgltempt.k01 | Record TGLTEMPT e chiave primaria |
| clcanama.cpy | Record anagrafica macchine |
| tgltipgg.cpy | Record tipi di taglio |
| tglmactt.cpy | Record collegamento macchina/tipo taglio |
| utiltgl044.cpy | Area di linkage per la chiamata a TGL044 (help tipo taglio) |
| wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy | Working storage errori, video, apertura file, stato I/O |
| cogazien.cpy | Dati azienda |
| wgrid.cpy / utilgdad.cpy / utils52.cpy / utilu10.cpy / utilu20.cpy / utilw76.cpy | Gestione griglia, GRIDADMN e utility controlli |
| wcont.cpy / util-tgl020.cpy / wcont1.cpy | Aree di comunicazione; util-tgl020 per la chiamata a TGL020 |
| grave.cpy / stato.cpy / stato1.cpy / winmsg.cpy / sendw76.cpy | Gestione errori, stato verbi, messaggi, subroutine W76 |
| mmmask.cpy | Gestione maschera (rd-msk-pop, z-99-init-program, z-99-exit-program) |
| opengen.cpy | Routine generica di apertura file (open-files, z-close-files) |
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| TGL020 | Help/selezione della Macchina (F8 sul campo Macchina); restituisce il codice in tgl020-out-cod |
| TGL044 | Help/selezione del Tipo taglio (F8 sul campo Tipo taglio); chiamato con tgl044-called = "TGL044-CALLED", restituisce tgl044-o-tttg-tipo |
| GRIDADMN | Preparazione e personalizzazione della griglia (Shift-F4 layout colonne) |
Logica di elaborazione¶
1. Inizializzazione (apri)¶
Imposta nome programma, verifica l'abilitazione, inizializza il programma, apre i file e legge i dati azienda. Abilita i tasti funzione (Invio, F3, F8 aiuto, Sf4, Ctrl-A, Ctrl-E), imposta il titolo, prepara la griglia (z-prepara-tm-grid) e i controlli. Imposta la modalita' iniziale in a-modalita.
2. Selezione della terna di testata (a-tm-macchina / a-tm-tipo-taglio / a-tm-materia-prima)¶
Accept sequenziale dei tre campi di testata, ciascuno con help F8 e validazione:
- Macchina (
x-controlla-tm-macchina): obbligatoria ed esistente in CLCANAMA; F8 richiama TGL020; - Tipo taglio (
x-controlla-tm-tipo-taglio): obbligatorio ed esistente in TGLTIPGG, inoltre deve essere collegato alla macchina (verifica su TGLMACTT); F8 richiama TGL044 in modalita' selezione; - Materia prima (
x-controlla-tm-materia-prima): obbligatoria.
Con F3 si passa a a-richiesta-conferma che rivalida tutti e tre i campi.
3. Caricamento griglia (a-richiesta-conferma -> a10-loop -> a30)¶
Dopo la conferma della terna, si posiziona su TGLTEMPT con st-tgltempt-notmin (chiave macchina+tipo-taglio+materia-prima) e scorre con rdnxt-tgltempt finche' la terna corrisponde (rottura su macchina/tipo-taglio/materia-prima). Per ogni record valorizza la riga di griglia: spessore, metri/minuto, secondi sfondamento, secondi foro, secondi puntature, metri spostamento, costo gas al minuto, metri pellicola, metri 3D, tempo posizionamento. Al termine costruisce la tabella video.
4. Gestione eventi griglia (a-grid / a-accept-grid)¶
Ciclo di accept sulla griglia (z-99-accept-tm-tab) che gestisce ESC (con test-wesc, ritorno a a4), Shift-F4 (GRIDADMN), F3 (salvataggio/cambio modalita'), Ctrl-A (aggiungi riga), Ctrl-E (elimina riga previa abilitazione w-abi-del e conferma). Il mouse/doppio click sulla griglia e' gestito da x-test-mouse, che distingue tra i controlli di testata (id 101-199) e la griglia (id 1-99).
5. Validazioni di riga¶
Le validazioni di cella (x-controlla-tm-spessore, x-controlla-tm-secsfon, x-controlla-tm-mtmin, x-controlla-tm-secforo, x-controlla-tm-secpunt, x-controlla-tm-mtspost, ecc.) rendono obbligatori i campi principali quando la riga non e' interamente vuota, e verificano la non duplicazione dello spessore nella stessa terna. Il costo gas, i metri pellicola, i metri 3D e il tempo di posizionamento non sono obbligatori. E' presente una logica particolare che, se sono valorizzate righe di dati, forza uno spessore "999,99" sull'ultima riga valida quando non gia' presente (riga "di chiusura/limite superiore").
6. Salvataggio (a1-aggiorna / b-aggiorna)¶
a1-aggiorna esegue le validazioni complessive (x-controlla-tm-tab-col e x-controlla-tm-tab-tutto, con i flag flag-ok-aggiorna / flag-ok-aggiorna-9999). Se validi chiama b-aggiorna, che opera per sostituzione completa della terna:
- cancella tutti i record TGLTEMPT della terna (
st-tgltempt-notmin+rdnxt+del-tgltemptfino a rottura chiave); - riscrive con
wr-tgltempttutte le righe di griglia non interamente vuote, valorizzando la chiave (macchina+tipo-taglio+materia-prima+spessore) e i campi dei tempi.
7. Chiusura (fine / z-chiudi)¶
Chiude i file, chiude la finestra, esegue z-99-exit-program ed esce con exit program.
Note tecniche¶
- Tabella dedicata TGLTEMPT a chiave composta: i tempi di taglio risiedono in un file indicizzato dedicato con chiave macchina + tipo taglio + materia prima + spessore. La griglia rappresenta le righe per spessore di una singola terna selezionata in testata.
- Salvataggio per sostituzione completa: a differenza di TGL030/TGL044 (aggiornamento differenziale per riga), qui il salvataggio cancella l'intero blocco di record della terna e lo riscrive dalla griglia. Non usa quindi il confronto cod/cod-prec (i paragrafi
b1-inserisci/b2-modifica/b3-cancellasono vuoti). - Validazione a catena della testata: il tipo taglio non e' solo verificato esistente in TGLTIPGG, ma deve anche risultare collegato alla macchina tramite TGLMACTT; in caso contrario l'inserimento e' bloccato.
- Help richiamati: F8 su Macchina richiama TGL020, F8 su Tipo taglio richiama TGL044 in modalita' selezione (
tgl044-called = "TGL044-CALLED"). - Riga limite "999,99": la logica in
x-controlla-tm-spessoreforza uno spessore massimo 999,99 sull'ultima riga valorizzata, che agisce da soglia superiore per la ricerca dello scaglione di spessore in fase di calcolo tempi. - Programma generato da Screens: struttura e I/O provengono dai file
tgl040.select/.fd/.wrk/.decla/.prce dalla screentgl040-01.scrincbl/screens/. La griglia e' amministrata da GRIDADMN. - Linkage con
util-tgl020: il programma includeutil-tgl020.cpynel linkage (riuso del layout comune del modulo Taglio Lamiere per la comunicazione con i sottoprogrammi), ma non e' esso stesso richiamabile in selezione (w-dc-fl-callednon viene mai posto a "S").