Vai al contenuto

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-tgltempt fino a rottura chiave);
  • riscrive con wr-tgltempt tutte 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-cancella sono 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-spessore forza 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/.prc e dalla screen tgl040-01.scr in cbl/screens/. La griglia e' amministrata da GRIDADMN.
  • Linkage con util-tgl020: il programma include util-tgl020.cpy nel 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-called non viene mai posto a "S").