• Ei tuloksia

5.1 Toteutusympäristö

5.1.2 GURU sovelluskehitin

5.1.2.1 GURUn asiantuntijapiirre

GURU sovelluskehitin tarjoaa mahdollisuudet sääntöpoh­

jaisen järjestelmän kehittämiseen /8/. Sääntöjoukon sisäl­

tämä koodi on samanlaista kuin tavallistenkin GURU-ohjel- mien. Sääntöpohjainen järjestelmä eroaakin ei-sääntöpoh- jaisesta järjestelmästä lähinnä joustavammilla ajoaikaisi­

lla käyttömahdollisuuksilla.

Kun ns. normaaliohjelman koodi etenee aina tiettyä määrättyä polkua, voidaan sääntöjoukon päättelyä ohjata noin 50:n eri etsintästrategian avustuksella. Säännöille voidaaan mm. antaa erilaiset kustannus- ja prioriteet- tiarvot. Yhteistä sääntöpohjaisilla järjestelmillä on se, että sääntöjen tavoitteena on aina löytää jonkun kohde- muuttujan arvo. Tunnusomaista sääntöpohjaiselle järjes­

telmälle on myös se, että kohdemuuttujalle etsitään "tar­

peeksi hyvä" arvo, mutta ei koskaan parasta mahdollista arvoa.

Yhden sääntöjoukon sisältämien sääntöjen liittyminen toisiinsa voidaan tulostaa hierarkkisena riippuvuusdia- grammina. Sääntöjen muodostamaa päätöksentekoketjua voi­

daan jälkikäteen tarkastella ja tarkastelun yhteydessä GURU kertoo, minkä takia jokin sääntö on lauennut. Perus­

edellytyksenä sääntökannan käyttämiselle on se, että tar­

kasteltavan ongelman rakenne on "sopiva".

5.2 K0MP0NENTTIK00DIEN SIJOITUS-ALGORITMIN PÄÄPERIAATTEET

Lukuisat erikoisvaatimukset aiheuttavat sen, että komponenttikoodeja ei voida sijoittaa minkään yksinker­

taisen teoreettisen mallin mukaan. Teoreettisesta mallista on luovuttava tyypillisesti sellaisten erikoispiirteitten kohdalta, jotka koskevat pelkästään jonkin ladontakoneen suppeeaa osa-aluetta. Nämä erikoisratkaisut hoidetaan pitkälti ko. tilanteeseen räätälöidyillä ohjelmamoduleil- la.

Kun kaikki ladontakoneitten hienokuormitukseen liit­

tyvät erikoisvaatimukset on otettu huomioon, on kehitys­

työn aikana päädytty seuraavanlaiseen algoritmiin :

1. Mahdollisimman suuri osa komponenttikoodeista pyri­

tään latoamaan koneellisesti. Ensimmäisessä vaiheessa jokainen komponenttikoodi yritetään osoittaa jollekin ladontakoneelle. Komponenttikoodit käydään läpi alkaen suurivolyymisimmasta päästä, jotta ladontakoneitten osuus ladottavasta kokonaisvolyymista olisi mahdollisimman suuri. Komponenttikoodit, joille ei voida osoittaa ladon- takonetta, osoitetaan manuaaliseen ladontaan.

2. Korkeamman prioriteetin omaavilla komponenttikoodeilla on etuajo-oikeus ladontakoneille, ladottavasta volyymista

xxxi

riippumatta. Tämä tarkoittaa sitä, että ne komponentti- koodit, joiden käsiladontatieto on 0, osoitetaan ladon- takoneille ennen muita komponenttikoodeja.

3. Komponenttikoodit sijoitetaan ensisijaisesti korkeam­

man prioriteetin omaaville ladontakoneille. Kun komponent- tikoodille etsitään sopivaa ladontakonetta, käydään aina ensin läpi ensisijaiset ladontakoneet: Koneen ja kom- ponenttikoodin tiedoista tarkastetaan soveltuuko ko. kom- ponenttikoodi sijoitettavaksi tietylle koneelle ja, jos sopii, tarkastetaan vielä, että ko. ladontakoneella on vielä tilaa. Vasta, kun kaikki ensi-sijaiset ladontakoneet on käyty läpi yllämainitulla tavalla eikä sopivaa konetta löydy, käydään läpi toissijaiset ladontakoneet samaa periaatetta käyttäen.

4. Ladottavien komponenttikoodien volyymit pyritään tasaamaan ladontakoneitten kesken. Tasaus tapahtuu käytän­

nössä siten, että käytössä olevat ladontakoneet asetetaan aina yhden komponenttikoodin sijoittamisen jälkeen ar­

vojärjestykseen. Järjestys määräytyy ladontakoneen osuu­

desta ladottavasta kokonaisvolyymista siten, että ladon- takone, jolla on pienin ladottava komponenttivolyymi, on ensimmäisenä jne. Luonnollisesti ensisijaiset ja tois­

sijaiset ladontakoneet käsitellään täysin toisistaan erillään.

5. Ladontakoneitten eri latomisnopeudet huomioidaan kokonaisvolyymin tasauksessa. Järjestelmän nopeimmalla ladontakoneella voi olla suurimmillaan nopeuskerroin 100.

Muitten koneitten ladontanopeudet ilmaistaan tämän nopeim­

man koneen ladontanopeuden osalukuina. Painottamalla kohdassa 4 olevat konekohtaiset osuudet ladottavasta kokonaisvolyymista tällä nopeuskertoimella tasataan ladon­

takoneitten kokonaisladonta-aika keskenään.

6. Käyttäjä ohjaa Kone&Syöttölaite-tietojen avulla, mitä komponenttikoodia voidaan/halutaan latoa kullakin ladon­

takoneella. Jokaiselle ladontakoneelle on määriteltävä, minkä tyyppisiä komponenttikoodeja voidaan latoa ko.

koneella. Komponenttikoodin pakkaus- ja kotelotyyppi- tiedoista tarkastetaan voidaanko ko. komponenttikoodia latoa tietyllä ladontakoneella.

7. Käyttäjän valinnan mukaan ladontakoneelle osoitetut komponenttikoodit järjestetään ladontakoneen syöttöpöy- dälle siten, että niiden volyymijakauma seuraa Gauss'n käyrää tai niin että komponenttikoodit järjestetään syöt- töpöydän vasemmasta reunasta alkaen alenevan volyymin mukaan.

8. Jos ladontakoneelle on valittu erikoistarkastustieto, edellisessä vaiheessa määrätyn syöttöpöytäjärjestyksen laillisuus tarkastetaan ja tarvittaessa laittomat syöttö- laiteparit puretaan ja uudelleenjärjestetään.

- FUJI CP-sarjan ladontakoneitten syöttöpöydille voidaan kiinnittää 8,12,16,24 ja 32mm levyisiä syöttölaitteita.

xxxii

Syöttölaitteiden fyysisistä ulkomitoista johtuen syöttö- laiteparit (8,16),(8,24) ja (8,32) vievät yhden ylimääräi­

sen kiinnityspaikan. Koska useammat komponenttikoodit voidaan kiinnittää 8- ja 12mm levyisiin syöttölaitteisiin, syntyy syöttöpöydälle enemmän laillisia pareja kuin lait­

tomia. Jos syöttöpöydällä havaitaan laittomia pareja, parit puretaan vaihtamalla parin osapuolet keskenään.

Viimeksi mainittu järjestely saattaa synnyttää uusia laittomia pareja, ja tämän johdosta syöttöpöytäjärjestys käydään läpi niin monta kertaa, ettei enää ole yhtään laitonta paria. Tällaiseen algoritmiin päädyttiin, koska se oli helppo toteuttaa ja laillinen syöttölaitejärjestys löytyy aina ilman, että olisi osoitettava joku komponent- tikoodi, joka jo on kerran osoitettu ko. koneelle, ma­

nuaaliseen ladontaan. Pahimmassa tapauksessa kaikki 8mm syöttölaitteet ajautuvat syöttöpöydän oikeaan reunaan.

Käytännössä komponenttikoodien volyymijakauma kärsii jonkin verran laittomien parien purkamisesta, mutta vaiku­

tus on lähinnä muodollinen.

HP4000 ladontakoneen 1. puoli on järjestelmän kannalta erikoisasemassa. Syöttölaitteet voidaan jakaa kahteen luokkaan. Toisaalta on sellaiset syöttölaitteet joihin mahtuu yksi komponenttikoodi tikkupakkauksessa, toisaalta on syöttölaitteet, joihin mahtuu kaksi samaa kotelotyyppiä olevaa komponenttikoodia tikkupakkauksessa. Molemmat syöttölaitetyypit vievät normaalisti kaksi syöttölaitteen kiinnityspaikkaa syöttöpöydältä. Syöttölaitteiden fyysi­

sistä ulkomitoista johtuen kahta erityyppistä syöttölai­

tetta ei voida asettaa syöttöpöydälle vierekkäin menet­

tämättä yhtä ylimääräistä kiinnityspaikkaa. Kolme eri syöttölaitteiden kombinaatiotapausta otetaan algoritmissa huomioon:

Jos kaikki koneelle osoitetut komponenttikoodit on asetettava ensimmäisen kategorian syöttölaitteisiin, muodostetaan komponenttikoodien volyymijakaumasta Gauss'n jakaumaa seuraava käyrä.

Mikäli kaikki koneelle osoitetut komponenttikoodit on asetettava toisen kategorian syöttölaitteisiin, ryhmitel­

lään komponenttikoodit ensin alenevan volyymin ja kotelo- tYYPin perusteella pareihin. Lopuksi parit asetetaan Gauss'n jakaumaa vastaavaan volyymijärjestykseen.

Useimmiten ladontakoneelle on kuitenkin osoitettu kom­

ponenttikoodeja, jotka tarvitsevat sekä ensimmäisen että toisen kategorian mukaisia syöttölaitteita. Tässä tapauk­

sessa syöttölaitteet ryhmitellään kahteen ryhmään syöttö- laitekategorian mukaan. Ryhmien väliin jää yksi tyhjä syöttölaitepaikka ja ryhmien sisäinen volyymijakauma alenee siirryttäessä ryhmien välisestä paikasta poispäin.

Täten on HP4000-ladontakoneen 1. puoli mahdollisimman hyvin hyväksikäytetty.

HP4000-ladontakoneen 2. puoli on järjestelmän kannalta aivan oma ladontakone. 2. puolen syöttölaitepaikat nume­

roidaan alkaen paikasta 31. Tämän lisäksi 2. puoli ei tar-xxxiii

vitse muita erikoistarkastuksia, vaan ladontakoneen tiedot voidaan määritellä aivan normaalisti, tietokannan ladon- takonetietoja käyttäen.

Lopulta kaikille komponenttikoodei11e on osoitettu oma ladontakone ja oma syöttölaitepaikka ko. ladonta- koneella, tai komponenttikoodi on osoitettu manuaaliseen ladontaan. Kaikki näin määrätyt paikkatiedot kootaan yhteen tiedostoon. Tämä tiedosto sisältää ohjelmiston varsinaisen tuloksen.

5.3 TIETÄMYSTEKNIIKAN KÄYTTÖMAHDOLLISUUDET

Yksi tämän projektin johtoajatuksista oli tietämys­

tekniikan soveltaminen eli sääntökantapohjäisen järjes­

telmän käyttö ongelmaa ratkaistaessa.

Tietämystekniikan käytölle tuotannonohjauksessa voi­

daan asettaa seuraavat määreet /9/ .

1. Tehtävän on rajoituttava tietyn alan suppeaan erityis­

ongelmaan, eikä ongelman ratkaisu saa olla liian riip­

puvainen yleisen älykkyyden soveltamisesta.

2. Tehtävä ei saa olla inhimilliselle asiantuntijalle liian helppo eikä myöskään liian vaikea; se ei saa ratketa muutamassa minuutissa, mutta se ei saa myöskään kestää useita viikkoja tai kuukausi.

3. Tehtävän ratkaisun on pääasiassa perustuttava ihmis- asiantuntijan yksityiseen tietämykseen, heuristiikkaan.

4. Tehtävän on oltava opetettavissa muille, eli siihen liittyvän tietämyksen on oltava eksplisiittisesti ilmais­

tavissa.

Lisäksi ratkaistavan ongelman on mieluiten oltava tyypiltään hierarkkinen. Ongelma on voitava paloittaa useaan tasoon ja alemmalta tasolta on oltava monta tietä seuraavaksi korkeammalle tasolle.

Jos ongelma on monitasoinen tyypiltään, mutta tasot ovat yksiuloitteisia ei sääntöpohjaisesta järjestelmästä ole hyötyä, koska päätöksenteko kulkee aina samojen sol­

mukohtien kautta. Tässä tapauksessa ongelman ratkaisu voidaan pukea sääntökantamuotoon, mutta saavutettava höyty on pienempi kuin sääntökannan muodostamisesta ja käsit­

telystä aiheutuvat lisätyön haitat.

Kun komponenttikoodien sijoittamiseen tarvittavaa tietämystä lähdettiin selvittämään kokoonpanolinjan asian­

tuntijoiden kanssa, ilmeni pian, että ongelma täyttää edellämainituista kriteereistä ainakin kolme.

Ongelma on selvästi rajattu muutaman ladontakoneen hienokuormituksen ohjaukseen ja ongelman luonne selvisi muutaman päivän selvitystyön jälkeen, joskin uusia

rat-xxxiv

kalsunäkökohtia tietenkin tuli työn aikana. Sekä ongelma että ratkaisu kyettiin myös hyvin esittämään kirjallisessa muodossa.

Ongelman rakenne ja ratkaisun perustuminen heuris­

tiikkaan vaati kuitenkin lähemmän tarkastelun. Seuraa- vaksi pyrittiin löytämään säännön tai sääntöjen mahdol­

linen kohdemuuttuj a. Työn aikana esiin tuli selvästi seuraavat neljä vaihtoehtoa :

- Yksittäisen komponenttikoodin sijoituspaikka.

- Yksittäisen komponenttikoodin ladontakoneen valinta.

- Tietyn ladontakoneen syöttöpöydän konfiguraatio.

- Uusi syöttölaitepaikka laittoman parin osapuolelle.

Yksittäisen komponenttikoodin sijoituspaikan määräämi­

nen säännön perusteella koostuisi selvästi kahdesta vai­

heesta; ensin määrättäisiin kone, millä komponenenttikoodi ladottaisiin, ja toisessa vaiheessa määrättäisiin kom­

ponenttikoodin syöttölaitteen kiinnityspaikka ko. ladon­

takoneen syöttöpöydällä. Eli vaikuttaisi siltä, ettäongel- ma on monitasoinen, voidaan hyvin ajatella, että kaksi päätasoa voidaan jakaa useiksi osatasoiksi. Se tosiasia, että yhden komponenttikoodin paikkaa ei voida määrittää, ennenkuin tunnetaan muut samalle ladontakoneelle osoitetut komponenttikoodit katkaisee tämän ajatusketjun. Vaihtele- vista alkutiedoista ei voida tehdä mitään olettamuksia vaan on ilmiselvää, että ensin on jaettava kaikki kom­

ponenttikoodit käytettävissä olevien ladontakoneitten kesken, ennenkuin voidaan määrittää yhdellekään komponent- tikoodille lopullista sijoituspaikkaa.

Luonnollisesti seuraavaksi tulee mieleen tutkia miten edellisessä vaiheessa todettu osaongelma, eli komponent­

tikoodien jako eri ladontakoneille, soveltuu sääntöpoh­

jaisen järjestelmän kohdemuuttujaksi. Ongelman rakenne on selvästikin kolmijakoinen; ensin määritellään käytettävät koneet, toiseksi ko. komponenttikoodille sopivat koneet ja lopuksi valittaisiin sopivin kone. Tämä ongelma voitaisiin teoriassa ratkaista tietämysteknisten menetelmien avulla, mutta koska ongelmalle pystyttiin esittämään verraten yksinkertainen matemaattinen algoritmi, ei tietämyspoh­

jainen ratkaisuvaihtoehto ole mielekäs.

Kun kaikki yhdellä ladontakoneella ladottavat kom­

ponenttikoodit on määrätty, on komponenttikoodien syöttö­

laitteiden kiinnityspaikkojen määräämisen vuoro. Ongelma on teoriassa helppo; lajitellaan vain komponenttikoodit halutun volyymijakauman mukaan. Näin helppoon tehtävään ei tarvita tietämyspohjaista ratkaisua.

Edellisessä vaiheessa syntynyt jakauma on muuten hyvä, mutta saattaa pitää sisällään laittomia syöttölaitepareja!

Jos laittomia syöttölaitepareja on olemassa, tarkoittaa se sitä, että kaikki ko. ladontakoneelle osoitetut

komponen-XXXV

ttikoodit eivät mahdukaan syöttöpöydälle. Laittomat syöt- tölaiteparit on siis purettava. Purkaamistilanteeseen ei iiity heuristiikkaa, vaan yksinkertainen purkamisalgorit- mi. Näin ollen ei tähänkään ongelmaan ole tarkoituksen­

mukaista soveltaa tietämystekniikkaa.

Tietämystekniikan käyttöä Telenokian piirilevyjen ladonnan hienokuormituksessa ei siis voida pitää perustel­

tuna. Vaikka ehdotuksia sääntökannan kohdemuuttujaksi löytyikin useampia, eivät tarkasteltavien osaongelmien ominaisuudet täytä kaikkia kriteerejä, jotta ongelmat soveltuisivat tietämyspohjaisen järjestelmän ratkaistavik­

si. Yleisenä piirteenä koko ongelmakentässä oli se, että sinänsä vaikea ongelma voitiin paloittaa pienempiin ongel­

miin, jotka taas voitiin ratkaista algoritmipohjaisesti.

5.4 ULS-GURU : LADONTAKONEITTEN HIENOKURMITUKSEN REAKTIIVINEN OHJAUSOHJELMISTO

ULS-GURU ohjelmisto on toteutettu GURU-sovelluskehit- timellä käyttäen Gurun komentokieltä, tietorakenteita, grafiikkaa, raporttigeneraattoria sekä kuvaruutulomak- keita. Järjestelmä on toteutettu valikkopohjaisena, jol­

loin päävalikosta käsin voidaan kutsua järjestelmän eri aliohjelmia, jotka puolestaan voivat sisältää omia valik­

koja. Järjestelmän päävalikko on esitetty kuvassa 10.

1 -11 :23p

= IJL.S-GUFU

P S Ä » (U 1 K K 0 ; 1 Perustietojen ylläpito 2 Asiantuntijan konsultointi 3 Pr a д-fi. set kuvat.

\ 4 Raportit- kirjoittimelle*

5 Tietojen siirto Л 'varalla'

7 ’ varal 1 a’

0 Lopetus Valintasi :

Kuva 10. ULS-GURU-Ohjelmiston päävalikko.

Perustietojen ylläpidossa käyttäjä voi muuttaa, lisätä ja tuhota tietueita järjestelmän tietokannoista.

Asiantuntijan konsultointi-kohdasta käyttäjä voi käynnistää komponenttikoodien jaon eri koneille ja kone­

kohtaisen syöttöpöytäkonfiguraatlon määrittämisen.

Graafiset kuvat-kohdassa käyttäjä voi tarkastella edellisessä kohdassa määriteltyä järjestystä erilaisten diagrammien avulla.

Kirjoitinraporttien avulla voidaan tulostaa tiedos­

tojen sisältö sekä määritelty syöttöpöytäkonfiguraatio.

Tietojen siirto-osassa voidaan järjestelmän tietokan­

taan lukea ulkopuolinen ASCII-muotoinen tiedosto tai vaihtoehtoisesti määritellystä syöttöpöytäkonfiguraatiosta muodostaa ASCII-muotoinen tiedosto, ulkopuolista käyttöä varten.

5.4.1 TIETOKANNAT

Järjestelmässä on kaksi rinnakkaista tietokantaa, yksi primääripuolen ladontavaihetta varten ja toinen sekundää- ripuolen ladontavaihetta varten. Järjestelmän sisältämät tietokannat ovat muovautuneet kehitystyön aikana seuraa- viksi:

5.4.1.1 KOODITIEDOSTOT

Kooditiedostoissa ovat ladottavien komponenttien perustiedot, jotka yksilöivät kaikki järjestelmässä kul­

loinkin käytettävät komponenttikoodit. Kooditiedostojen nimet koostuvat 5 merkistä + alkukirjaimesta, jonka jär­

jestelmä lisää nimen alkuun erottaakseen primääri- ja sekundääripuolen perustiedot toisistaan. Primääripuolen kooditiedostoilla on alkukirjaimena A ja sekundääripuolen kooditiedostoilla vastaavasti alkukirjain В.

Kooditiedoston sisältämät kentät ovat seuraavat : KOI Kooditunnus

K02 Kotelotyyppi K03 Pakkaus

K04 Koodin volyymi

13 merkkiä 8 merkkiä 1 merkki 1-9999999 kpl Kooditunnus yksilöi komponentin.

Kotelotyyppi kertoo komponentin ulkomuodon.

Pakkaus kertoo miten koodi on pakattu.

Volyymi kertoo miten paljon ко. komponenttia ladotaan tietyllä aikavälillä.

5.4.1.2 KONEKOHTAISET TIEDOT

Konekohtaisissa tiedoissa on järjestelmässä käytet- xxxvii

tävien ladontakoneitten ominaisuudet eritelty. Primääri­

puolen tiedoston nimi on KON.ITB ja vastaavasti sekundää­

ripuolen tiedoston nimi on K0N2.ITB. Konetiedoston sisäl­

tämät kentät ovat seuraavat : N01 Koneen tunnus

N02 Koneen nimi N03 Feederlkm N04 Nopeuskerroin N05 Sijoitustapa N06 Prioriteetti N07 Erikoistarkistus

Koneen tunnus yksilöi ladontakoneen.

Koneen nimi on tunnuksen selväkielinen nimi.

Feederlkm kertoo koneen syöttöpöydän kiinnityspaik- kojen määrän.

Nopeuskerroin ilmoittaa koneen 1adontanopeuden suh­

teessa nopeimpaan koneeseen ( x/100 ).

Sijoitustavalla valitaan syöttöpöydän komponenttien volyymijakauman muodostusperiaate ( l=Gauss,

2=Reunasta alkaen )

Prioriteetti-kenttä jakaa koneet ensi- ja toissijaise­

sti käytettäviin. Arvolla 0 kone ei ole käytössä lainkaan.

Erikoistarkastus kertoo minkätyyppistä tarkastusta sovelletaan syntyneisiin syöttölaitepareihin ( 0=ei tarkastusta, 1=FUJI CP-sarjan tarkastus, 2=HP4000 koneen 1. puolen tarkastus, 3=HP4000 koneen 2. puoli

( = alkaa paikasta 31 ) ) 5.4.1.3 K0NE&SYÖTTÖLAITE-TIED0T

Kone&syöttölaite-tiedot kertovat, mitä komponentti- tyyppiä voidaan/halutaan latoa milläkin koneella. Pri­

määripuolen tiedoston nimi on KOF.ITB ja sekundääripuolen tiedoston nimi vastaavasti K0F2.ITB. Kone&syöttölaite- tiedoston sisältämät kentät ovat seuraavat :

F01 Koneen tunnus F02 Kotelotyyppi F03 Pakkaus

F04 Feedertyyppi F05 Paikkatarve F06 Käsiladonta

Koneen tunnus yksilöi ladontakoneen.

Kotelotyyppi kertoo komponentin ulkomuodon.

Pakkaus kertoo miten koodi on pakattu.

Feedertyyppi kertoo käytettävän syöttölaitteen tyypin.

Paikkatarve ilmaisee montako syöttölaitteen kiinnitys- paikkaa ко. syöttölaitetyyppi tarvitsee.

Käsiladontatiedolla 0 komponentin manuaalista ladontaa on mahdollisuuksien mukaan vältettävä, kun taas käsi­

ladontatiedolla 1 manuaalinen ladonta on tarvittaessa sallittu.

xxxviii

5.4.1.4 LÄHTÖTIEDOT

Lähtötietojen tiedostossa pidetään rekisteriä järjes­

telmän kaikista lähtötiedoista. Primääripuolen lähtötiedot pidetään tiedostossa AKO.ITB ja sekundääripuolen lähtötie­

dot taas vastaavasti tiedostossa AK02.ITB. Lähtötietojen tiedoston kentät ovat seuraavat :

A01 Tiedoston nimi : 5 merkkiä A02 Kuvaus : 30 merkkiä

Tiedoston nimi on lähtötietojen nimi, joka voi olla mikä tahansa 5 merkin kombinaatio.

Kuvaus on lähtötietojen sisällön sanallinen kuvaus ( esim. Valmistettavan lajimerkin tunnus ).

5.4.1.5 TULOSTIEDOSTO

Tulostiedostossa on järjestelmän määräämä komponent- tijärjestys eri koneilla. Kaikille lähtötiedoille on aina oma tulostiedosto. Tulostiedoston nimi on 0-kirjain + käytetyn lähtötiedoston nimi. Tulostiedostossa on seu­

raavat kentät :

U01 Kooditunnus U02 Konetunnus U03 Feederpaikka U04 Volyymi

U05 Feedertyyppi Kooditunnus yksilöi komponentin.

Konetunnus yksilöi käytettävän ladontakoneen.

Feederpaikka kertoo mihin syöttöpöydän syöttölaite- paikkaan komponentin syöttölaite kiinnitetään.

Volyymi kertoo miten paljon ko. komponenttia ladotaan tietyllä aikavälillä.

Feedertyyppi kertoo käytettävän syöttölaitteen tyypin.

5.4.2 ALIOHJELMIEN KUVAUKSET

Järjestelmä koostuu toisistaan riippumattomista alioh­

jelmista, jotka sijaitsevat omissa tiedostoissa. Aliohjel­

maa kutsutaan Perform-komennolla ja tiedonsiirto ohjelmas­

ta toiselle on hoidettu globaaleja muuttujia käyttämällä.

Jos ei muuta ole mainittu, siirtyy ohjelman suoritus aina takaisin sitä kutsuneeseen ohjelmaan, kun aliohjelma on suoritettu loppuun. Kuvassa 11 on esitetty eri aliohiel- mien keskinäiset riippuvuudet.

xxxix

OHJELMIEN KESKINÄISET RIIPPUVUUDET

—EXDATAM

EXFEDKY-— EXGRAKY STARTUP — EXPU01J----

EXMA1NMEXRAPOR EXKORKY --- EXREPOI EXREP02

EXREP03

EX RAP KY --- EXREP04 EXREP05

"E>:ATTKY' --- EXATTKO

■ЕХАТГКР

__ EXKNVKY--- EXKONVE

EXFUI1F

EXHPAR1 EXPLOTS

Kuva 11. ULS-GURU: Aliohjelmien riippuvuudet.

STARTUP.IPF

Järjestelmän käynnistysvaiheessa aliohjelma alustaa GURUN ympäristömuuttujat, tulostaa alkulogon ja käynnistää aliohjelman Expuoli.ipf.

EXPUOLI.IPF

Tuo näyttöön puolten valintamenuun; käyttäjän valin­

nalla 1 käsitellään primääripuolta ja valinnalla 2 sekun- dääripuolta. Valinnalla 0 palataan MS-DOS:in alaisuuteen ja GURU: n varaama muistila vapautetaan. Jos käyttäjä valitsee jommankumman puolen käsiteltäväksi, käynnistetään

lopuksi aliohjelma Exmainm.ipf.

xl

EXMAINM.IPF

Ohjelmiston varsinainen pääohjelma, tulostaa päävali­

kon ( kuva 10 ) ja haarautuu käyttäjän valinnan mukaiseen toimintoon ( aliohjelmaan ).

EXDATAM.IPF

Tietokannan ylläpitomenu, jolla valitaan tietokanta, jota halutaan ylläpitää. Jos ylläpidettäväksi valitaan kooditiedostot, käynnistyy seuraavaksi aliohjelma Exkod- ky.ipf, muussa tapauksessa aliohjelma Exlmod.ipf.

EXLMOD.IPF

Tietokannan muokkausohjelma, jolla muokataan edel­

lisessä aliohjelmassa valittua tietokantaa.

EXKODKY.IPF

Muokattavan kooditiedoston valinta ja aliohjelman Exmodko.ipf käynnistys.

EXMODKO.IPF

Kooditiedostojen muokkausohjelma, jolla muokataan edellisessä aliohjelmassa valittua tietokantaa.

EXFEDKY.IPF

Komponenttikoodien syöttölaitepaikkojen määritys käynnistetään ja hallitaan tästä ohjelmasta. Aluksi vali­

taan käytettävä alkutiedosto ja sitten kutsutaan aliohjel­

mia Exklkon.ipf,Exk2kon.ipf ja Exsortf.ipf.

EXK1K0N.IPF

Ensisijaisilla ladontakoneilla ladottavien komponent­

tikoodien valinta ja valittujen koodien jako käytettävien ensisijaisten 1adontakoneitten kesken. Ylijääneet kom­

ponent tikoodit jäävät tilapäiseen tiedostoon. Ohjelman toiminta selviää tarkemmin kuvasta 12.

EXK2K0N.IPF

Ohjelmasta Exklkon.ipf ylijääneitten komponenttiko­

odien jako toissijaisten ladontakoneitten kesken. Kom- ponenttikoodit, joille ei löydy toissijaista konetta osoitetaan manuaaliseen ladontaan.

EXSORTF.IPF

Ohjelma hallitsee syöttöpöytäkonfiguraatioiden muodos­

tamisen eri ladontakoneille kutsumalla aliohjelmia Ex- gauss.ipf, Exreuna.ipf ja Exhp400.

xl i

m ikon

Onko MANU

koodeja

Voiko koodin 1 sijoittaa

„koneelle J ? , ____У Onko koneella

X J Ulaa ?

Onko vitiä koneita ?

Onko koodilla I palkka •>

zOvatko kalkki \

\koneel lâfnnnl V MANU » TRUE

1*1, MANU = FALSE

Sijoita koodi 1 manuaaliseen ladontaan

Luetaan ensisijaisten koneitten tiedot muistiin

Luodaan jokaiselle koneelle ajoaikainen tiedosto kofVitb Lajitellaan koodit alenevan volyymin ja kasvavan kaeiladonta- liedon mukaan mukaan

Varataan paikka koodille I * sijoitetaan koodi tiedostoon Xof T.1TB ja pSivitetèân koneen tiedot.

Kuva 12. Ohjelman EXK1KON vuokaavio.

EXGAUSS.IPF

Yhdelle ladontakoneelle osoitetuista komponenttikoo- deista aliohjelma tekee syöttöpöytäkonfiguraation, jonka volyymijakauma seuraa mahdollisimman tarkasti Gauss'n käyrää. Mikäli koneelle on valittu erikoistarkastus, kutsutaan aliohjelmaa Exfujif.ipf.

xlii

EXREUNA.IPF

Yhdelle ladontakoneelle osoitetuista komponenttikoo- deista aliohjelma tekee syöttöpöytäkonfiguraation, jonka alenevan volyymin mukainen jakauma alkaa syöttöpöydän vasemmasta reunasta. Mikäli koneelle on valittu erikois- tarkastus, kutsutaan aliohjelmaa Exfujif.ipf.

EXFUJIF.IPF

FUJI CP-sarjan koneille tehtävä syöttöpöydän kom- ponenttikonfiguraation erikoistarkastusohjelma, joka purkaa kaikki laittomat syöttölaiteparit, kunnes laillinen järjestys on saavutettu. Laittomia pareja ovat (8,16),

(8,24) ja (8,32). Kaikki muut syöttölaiteparit ovat sal­

littuja ja laillinen järjestys löytyy aina ( 8-syöttölait- teet oikeassa reunassa! ), joskin volyymijakauma kärsii jonkin verran, jos laittomia pareja on paljon.

EXHP400.IPF

FUJI HP4000 1adontakoneen 1. puolen syöttölaitejärjes- tyksen määrittäminen. Komponenttikoodlt jaetaan kahteen ryhmään kotelotyypin mukaan. Näin syntyneen kahden ryhmän syöttölaitteet ryhmitellään syöttöpöydälle toisistaan erilleen. Komponenttikoodien volyymijakaumasta pyritään saamaan Gauss'n käyrän mukainen. Ohjelman tarkempi toimin­

ta selviää kuvasta 13.

EXHPARI.IPF

FUJI HP4000 ladontakoneen 1. puolelle osoitettujen komponenttikoodien ryhmittely pareiksi. Toinen edellisessä ohjelmassa syntyneistä ryhmistä koostuu sellaisista kom- ponenttikoodityypeistä, joita mahtuu 2 samaan syöttölait­

teeseen. Vain samalla kotBiotyypillä varustetut komponent- tikoodit voivat muodostaa samaan syöttölaiteeseen sijoite­

ttavan parin. Ohjelma muodostaa niin monta paria kuin mahdollista. Tarkempi kuvaus ohjelman toiminnasta on kuvassa 14.

EXGRAKY.IPF

Graafisen raportoinnin perustana käytettävän tulos­

tiedoston valinta ja ohjelman Exgrafi.ipf käynnistys.

EXGRAFI.IPF

Graafisen raportoinnin valikon tulostus ja haarautumi­

nen käyttäjän valitsemaan toimintoon ( aliohjelmaan ).

EXPLOKV.IPF

Konetunnuksen, jolle tehdään syöttöpöydän komponentti- koodien volyymijakaumasta graafinen raportti, valinta.

xliii

EXHP400

Varataan paikka

k

koodille

Laaditaan reunan mukainen järjestys DUMK2:een ( DCREU!EUNA )

Varataan koodille Sijoitetaan pari 1 paikka koneella menualiseen ladontaan

- I 41

lajit el lean koodit pareiksi. ( EXHPARI )

5jÜ ~

Sijoitetaan ylimenevät manuaaliseen ladontaan

Laaditaan reunan mukainen Järjestys koneelle osoite­

tuista koodipareista.

( öREUNA )

ГирД▼

Kuva 13. Ohjelman EXHP400 vuokaavio.

EXPLOT2.IPF

Edellisessä ohjelmassa valitun konetunnuksen perus­

teella volyymijakauman muodostaminen ко. ladontakoneelle ja muodostetun jakauman tulostus.

xliv

ЕХНРАЛ1

Onko parin A 1 pilkan koodin kotelo gama ?

Lajitellaan koodit alenevan volyymin mukaan

Kuva 14. Ohjelman EXHPARI vuokaavio.

EXVOPIE.IPF

Piirakan, joka näyttää jokaisen koneen osuudet ladot­

tavasta kokonaisvolyymista, muodostaminen ja tulostaminen.

Manuaaliseen ladontaan osoitettujen komponenttikoodien yhteisvolyymi näkyy yhtenä piirakan osana.

EXV0PI2.IPF

Ohjelma muodostaa saman piirakan kuin edellinen ohjel­

makin sillä erotuksella, että koneitten volyymiosuudet on painotettu koneitten nopeuskertoimilla. Manuaalisen ladon­

nan nopeuskertoimena käytetään 3/100 . xlv