COGQ70 - Attivita' Giornaliere CdL¶
Intestazione¶
| Campo | Valore |
|---|---|
| Programma | COGQ70 |
| Titolo | Attivita' Giornaliere Programmate |
| Posizione menu | Magazzino -> Produzione -> Cicli di Lavorazione -> Operativo -> Avanzamento Lavori -> Attivita' Giornaliere |
| Posizione menu alternativa | Magazzino -> Produzione -> Cicli di Lavorazione -> Visualizzazioni -> Attivita' Giornaliere |
Scopo e logica generale¶
COGQ70 e' un programma batch/interattivo che visualizza e stampa il piano delle attivita' giornaliere per macchina (centro di lavoro). Dato un giorno e un'eventuale macchina di filtro, scansiona le righe ciclo (CLCCCRIG) per ricavare tutte le fasi pianificate per quel giorno. Gestisce anche le fasi iniziate nei giorni precedenti che si estendono nel giorno corrente, calcolando i minuti residui per i tre tempi (attrezzaggio, lavorazione, disattrezzaggio) tramite COGQS3.
Il programma usa COGTRANS come file di transito temporaneo con doppia chiave (macchina+data+ora e data+ora+macchina). La maschera e' di tipo carattere (old-style, non Screen Designer).
Flusso principale¶
- Inizializzazione (
screen-0): controllo abilitazione, costruzione nome transito, apertura file, lettura azienda, apertura/creazione COGTRANS, visualizzazione maschera a caratteri - Accept parametri (
a-accetta/a4): a-10: data (via COGS52 calendario). Verifica giorno lavorativo tramite COGQS1; se ore = 0 messaggio "giorno non lavorativo"a-20: macchina (con F8 -> COGQ08 per ricerca per codice; ricerca per descrizione via COGQ07). Se blank -> tutte le macchinea-90: conferma (F3)- Elaborazione (
b-elabora): - Scansiona CLCANAMA (anagrafica macchine) per tutte le macchine o quella selezionata
- Per ogni macchina cerca fasi in CLCCCRIG chiave 2 (data-ini-prv + macchina):
- Prima cerca fasi del giorno precedente che sconfinano nel giorno corrente (
b-20-loopconrdprv-clcccrig) - Poi cerca fasi del giorno corrente (
b-30-loopconrdnxt-clcccrig)
- Prima cerca fasi del giorno precedente che sconfinano nel giorno corrente (
- Calcola i minuti residui per fasi precedenti tramite COGQS3 (
b3-cerca-residuo) - Scrive record su COGTRANS (
b1-scrivi-transito) per ciascuna fase - Scrive record riepilogativo con conteggio per macchina (
b2-scrivi-n-record) - Visualizzazione (
c-visualizza): lettura COGTRANS e presentazione a video / stampa su FLSTA - Chiusura (
z-chiudi): chiusura e cancellazione COGTRANS, chiusura file, exit program
Struttura COGTRANS¶
trs-chia1:
trs-mac pic x(05) Codice macchina
trs-data pic 9(08) Data (AAAAMMGG)
trs-ora pic 9(04) Ora inizio (HHMM)
trs-lotto:
trs-lot-ann / trs-lot-num / trs-lot-fas Anno/numero/fase lotto
trs-cli pic 9(05) Codice cliente
trs-cli-des pic x(20) Descrizione cliente
trs-lav pic 9(05) Codice lavorazione
trs-lav-des pic x(10) Descrizione lavorazione
trs-mac-des pic x(30) Descrizione macchina
trs-dis pic x(10) Disegno
trs-ora-inizio pic 9(04) Ora inizio fase (HHMM)
trs-minuti-prg / trs-minuti-att / trs-minuti-lav / trs-minuti-dis
trs-ore-prg / trs-ore-att / trs-ore-lav / trs-ore-dis
Chiave alternativa su trs-chia2 = trs-data, trs-ora, trs-mac.
File e tabelle acceduti¶
| File logico | Record | Modalita' | Uso |
|---|---|---|---|
| COGGEANA | ana-rec | Input | Anagrafica generale - nome cliente |
| CLCTABEL | (tabelle CLC) | Input | Tabelle cicli di lavorazione |
| CLCLAVOR | lav-rec | Input | Anagrafica lavorazioni |
| CLCANAMA | mac-rec | Input | Anagrafica macchine - scansione per macchina |
| CLCDISEG | dis-rec | Input | Anagrafica disegni |
| CLCCCTES | cct-rec | Input | Testate commesse ciclo - cliente e disegno base |
| CLCCCRIG | ccr-rec | Input | Righe commesse ciclo - fasi pianificate (chiave 2: data+macchina) |
| COGTRANS | trs-rec | I-O | File transito temporaneo per elaborazione |
| FLSTA | riga | Output | File di stampa |
Copybook inclusi¶
Working storage¶
| Copybook | Contenuto |
|---|---|
wstato.cpy |
Working stato |
wopenf.cpy |
Gestione apertura file |
wgrave.cpy |
Gestione errori gravi |
wnscr.cpy |
Gestione schermo |
cogazien.cpy |
Dati azienda |
wdisp002.cpy |
Utility display |
utilqs1.cpy |
Interfaccia COGQS1 (calendario lavorativo) |
utilqs3.cpy |
Interfaccia COGQS3 (calcolo tempo residuo fase) |
utilq07.cpy |
Interfaccia COGQ07 (ricerca macchina per descrizione) |
utilq08.cpy |
Interfaccia COGQ08 (ricerca macchina per codice) |
utilq62.cpy |
Interfaccia COGQ62 |
utilq65.cpy |
Interfaccia COGQ65 |
utils52.cpy |
Interfaccia COGS52 (calendario) |
utils54.cpy |
Interfaccia COGS54 (stampante) |
utils62.cpy |
Interfaccia COGS62 (calcolo tempi) |
Linkage¶
| Copybook | Contenuto |
|---|---|
wcont.cpy |
Dati operatore |
wcont1.cpy |
Dati azienda linkage |
Programmi chiamati (CALL)¶
| Programma | Scopo |
|---|---|
| COGS52 | Calendario (selezione data) |
| COGQS1 | Verifica giorno lavorativo e calcolo ore lavorative |
| COGQS3 | Calcolo minuti residui di una fase a una data di riferimento |
| COGQ07 | Ricerca macchina per descrizione |
| COGQ08 | Ricerca macchina per codice (F8) |
| COGS62 | Calcolo differenza/somma tempi HH:MM |
| GRIDADMN | Amministrazione griglia (visualizzazione) |
Configurazione (RNEWCONF)¶
Il programma non usa direttamente RNEWCONF. I parametri operativi (ora inizio giornata: default 8:00 = w-ora-inizio = 800) sono costanti nel sorgente.
Il flag fl-ore-minuti (default "M" = minuti) determina l'unita' di misura dei tempi visualizzati.
Logica di business¶
Fasi del giorno precedente¶
Per ogni macchina, prima di cercare le fasi del giorno corrente, il programma cerca fasi con ccr-data-ini-prv < tm-data che abbiano ccr-data-fin-prv >= tm-data tramite navigazione all'indietro su CLCCCRIG chiave 2 (rdprv-clcccrig). Per ciascuna di esse chiama COGQS3 per calcolare i minuti residui al momento del giorno corrente, poi ridistribuisce i residui sui tre tempi (dis -> lav -> att) rispettando il totale disponibile nel giorno (tm-minuti-lav-g).
Fasi del giorno corrente¶
Scansione CLCCCRIG chiave 2 con ccr-data-ini-prv = tm-data e ccr-mac = mac-cod. Per ogni fase che finisce oltre il giorno corrente, vengono calcolati i tempi effettivi del giorno tramite COGS62 (differenza tra ora inizio giornata + ore lavorative e ora inizio fase).
Calcolo ora di inizio¶
L'ora di inizio della prima fase e' w-ora-inizio = 800 (08:00). Le fasi successive ricevono come orario di inizio il risultato della fase precedente (calcolato via COGS62 sommando i tempi).
Record riepilogativo macchina¶
Per ogni macchina viene scritto un record con trs-data = 0 e trs-ora = 0 che contiene il numero totale di fasi (trs-minuti-lav = w-scroll-rec). Viene usato dalla fase di visualizzazione per scorrere il transito.