4.1 Ideaalinen tapaus
4.1.1 Ladontakoneen valinta
Hienokuormitusj ärj estelmän ensimmäinen ongelma on päättää, millä ladontakoneella ladotaan mitä komponentti- koodia. Kuva 7 selventää ongelman perusluonnetta. Käytössä on 1-N keskenään, vaihtelevien rajoitusten mukaan, vaih
tokelpoista ladontakonetta. Komponenttikoodit halutaan sijoittaa eri koneille siten, että piirikorttivirta on mahdollisimman nopea.
Päämäärä saavutetaan jakamalla komponenttikoodit eri ladontakoneille siten, että ladontakoneitten kuormitus tasataan ladontakoneitten kesken.
PIIRIKORTTIVIRTA
KOMPONENTTIKOODIT
LAOONTAKONEET l-N ( = NOIN 10 )
Kuva 7. Ladontakoneen valintaongelma.
xxiv
4.1.2 LADONTAKONEEN SYÖTTÖPÖYDÄN KONFIGURAATIO
Ladontakoneen ladontapään ja syöttöpöydän välisen liikkeen minimointi on hienokuormitusjärjestelmän toinen ongelma.
Tavoite saavutetaan asettamalla komponenttikoodit syöttöpöydällä siten, että suurivolyymisimmat komponent
tikoodit ovat mahdollisimman lähellä ladontapään imupäätä.
Volyymilla tarkoitetaan tässä tietyllä aikavälillä ladot
tavaa määrää.
Koska ladontapään normaaliasento suhteessa syöttöpöyt- ään on syöttöpöydän keskellä, muodostuu volyymijakaumasta eräänlainen Gauss'n käyrä. Kuva 8 esittää yhden koneen syöttöpöydän komponenttikoodien ideaalista volyymijakau
maa.
Komponent tikoodien volyymit t - ladottavat m#àr6t/ tietty aik&veü )
KPL
1000000
600 000
Ladontakoneen komponentlikoodien
■vöttölaitteiden kihmltvapelkat ( * ladontakoneen eyôttôpdylâ )
Kuva 8. Ladontakoneen syöttöpöydän ideaalinen komponentti- koodien volyymij akauma.
XXV
4.2 JÄRJESTELMÄN ERIKOISVAATIMUKSET
Todellisuudessa voidaan tuotannonohjauksen teoreettis
ta mallia harvoin soveltaa sellaisenaan suoraan johonkin ongelmaan. Tässäkin tapauksessa käytännössä joudutaan ottamaan huomioon montakin erikoisvaatimusta, joskin järjestelmän perustoiminta on ideaalisen tapauksen mukai
nen.
4.2.1 KÄYTETTÄVÄT KONEET
Kulloinkin käytössä olevat koneet on voitava määri
tellä erikseen. Ladontakone voi vuosihuollon tai laiteri
kon takia olla poissa käytöstä. Järjestelmään on myös kyettävä tarvittaessa lisämään uusia ladontakoneita.
4.2.2 KONEITTEN LADONTANOPEUDET
Erityyppisten ladontakoneitten ladontanopeudet vaih- telavat huomattavasti. Lisäksi yhden koneen käytännön ladontanopeus voi vaihdella ladottavien komponenttien mukaan. Nopeimmin ladottavat komponentit ovat pieniä vastuksia, kun taas suurten mikropiirien ladonta vaatii enemmän aikaa.
4.2.3 SYÖTTÖLAITEJÄRJESTYKSEN UUSIMISPÄÄTÖS
Järjestelmän on tuettava tuotantoprosessin valvojaa erityisesti silmälläpitäen tärkeää päätöstä syöttölaite- järjestyksen uusimisesta. Syöttölaitteiden järjestyksen muuttaminen on tehtävä käsin ja uusi komponenttikonfigu- raatio ladontakoneen syöttöpöydällä vaati myös uusien konekohtaisten ladontaohjelmien generoimisen. Kaiken kaikkiaan työ aiheuttaa muutaman tunnin seisauksen proses
sissa.
4.2.4 KONEITTEN ERIARVOISUUS
Ladontakoneet voidaan jakaa kahteen luokkaan . Kom
ponentit halutaan latoa pääasiallisesti nopeilla FUJI- ladontakoneilla, kun taas vanhempi OMNIPLACE-ladontakone on järjestelmän kannalta toisarvoinen ladontakone, jota käytetään vain silloin, kun komponenttia ei enää voida latoa muilla koneilla, koneitten sopimattomuuden tai vapaitten syöttölaitepaikkojen loppumisen johdosta. Koska OMNIPLACE-ladontakoneena on myös järjestelmään kuulumat-
"tornia komponenttikoodeja, ei ko. koneen erikoispiirteitä tarvitse huomioida, vaan riittää että komponenttikoodi ehdotetaan ladottavaksi OMNIPLACE-koneella.
xxvi
4.2.5 KOMPONENTTIEN ERIARVOISUUS
Sellaisille komponenteille, joiden käsiladonta aiheut
taa kohtuutonta vaivaa, esim. komponentin pienuuden vuok
si, on taattava paikka ladontakoneella ennen niitä kom
ponentteja, joita voidaan tarvittaessa latoa käsin, kom
ponentin volyymistä riippumatta.
4.2.6 LAITTOMAT SYÖTTÖLAITEPARIT
Eräitten komponenttien syöttölaitteiden fyysiset ulkomitat aiheuttavat tilanteita, joissa tietyt syöttö- laiteparikombinaatiot vievät yhden ylimääräisen syöttö
laitteen kiinnityspaikan 1adontakoneen syöttöpöydältä.
Koska manuaaliseen ladontaan osoitettavien komponenttien määrä pyritään minimoimaan, on ylimääräistä tilaa vievien syöttölaiteparien muodostamista vältettävä.
4.2.7 KOODIEN VOLYYMIJAKAUMA SYÖTTÖPÖYDÄLLÄ
Johteilla liikkuvan syöttöpöydän turha liike vie ylimääräistä aikaa ja nopeuttaa pitkällä tähtäimellä ladontakoneen kulumista. Kiinteän syöttöpöydän tapauksessa turhan liikkeen suorittaa vuorostaan ladontapää.
Yllämainitun turhan liikkeen minimoimiseksi on otet
tava huomioon komponenttien volyymijakauma syöttöpöydällä, kun määrätään komponenttien syöttölaitteiden paikat syöt
töpöydällä. Volyymijakaumasta on pystyttävä muodostamaan Gauss'n käyrää seuraava jakauma tai vaihtoehtoisesti on käyttäjän valinnan mukaan komponentit voitava asettaa syöttöpöydän toisesta reunasta alkaen alenevan volyymin mukaan. Tämä sen takia, että jotkut 1adontakoneet olet
tavat että syöttölaitteet on kiinnitetty paikasta 1 al
kaen.
4.2.8 HP4000 LADONTAKONEEN ERIKOISVAATIMUKSET
FUJI HP4000-1adontakone poikkeaa FUJI CP-sarjan ladon- takoneista huomattavasti. Kone on jaettu kahteen itse
näiseen syöttöpöytäyksikköön, jotka sijaitsevat koneen vastakkaisilla puolilla. Ensimmäinen puoli käsittää syöt
tölaitteen kiinnityspaikat 1-30. Kiinnityspaikkojen 10 ja 11 välillä sijaitsee ladontakoneen CCD-kamera, joten on huolehdittava ettei syöttölaitetta yritetä sijoittaa siten että se tarvitsisi sekä kiinnityspaikat 10 että 11. Toisen puolen syöttöpöytä käsittää kiinnityspaikat 31-66. On ilmeistä että HP4000-ladontakoneen syöttöpöydät muodos
tavat järjestelmän kannalta kaksi erillistä "ladontakonet- ta" .
4.2.9 LAJIMERKKIKOHTAINEN KOMPONENTTIJÄRJESTYS
Tarvittaessa on jokaiselle lajimerkille ( =piirilevy- tyypilie ) pystyttävä määräämään oma
komponenttikonfigu-xxvii
raatio 1adontakonei11e. Jotta tämä olisi käytännössä mahdollista, on kyettävä määräämään monta eri kon
figuraatiota etukäteen, joista sitten valitaan sopivin tilanteen mukaan. Järjestelmän on siis kyettävä ylläpitä
mään monta alku- ja lopputilannetta samanaikaisesti.
4.2.10 PIIRILEVYN PRIMÄÄRI/SEKUNDÄÅRIPOOLI
Komponenttien ladonta piirilevyn primääri- ja sekun- dääripuolelle ovat täysin toisistaan riippumattomia työ
vaiheita. Ladontaoperaatio ja ladonnan perustiedot ovat kuitenkin samanlaisia ja tässä luvussa mainitut erikois
vaatimukset pätevät näin ollen molempien puolien ladon- taoperaatioille. Järjestelmällä onkin pystyttävä hallit
semaan sekä primääri- että sekundääripuolen hienokuor- mitusta.
xxviii
5.0 ULS-GURU : PIIRILEVYJEN LADONNAN REAKTIIVINEN HIENO- KUORMITUS JÄRJESTELMÄ
5.1 TOTEUTUSYMPÄRISTÖ
Toteutusympäristöksi valittiin Telenokialla yleisessä käytössä oleva mikrotietokoneympäristö. Ohjelmiston kehi- tystyökaluksi valittiin integroitu asiantuntij aj ärj es- telmäkehitin GURU, jonka valintaan vaikutti Gurun monipuo
linen sisältö sekä halu tutkia asiantuntij apiirteitten soveltamista projektiin ja Gurun tehokkuutta sovellus- kehitystyökaluna. GURU:n valintaan vaikutti myös se tosi
asia, että Telenokialla oli vuosien 1986-1987 aikana tehty diplomityö /8/ juuri GURU: a hyväksikäyttäen.
5.1.1 LAITTEISTO
Kehityslaitteistona ohjelmistoa rakennettaessa on käytetty Nokian IBM AT-yhteensopivaa Mikro-Mikko 3 lait
teistoa, laitteisto on nimenomaan samanlainen, jolla lopullinen käyttö tulee tapahtumaan Telenokian Haukiputaan tuotantolaitoksella. Käyttöjärjestelmänä on MS-DOS ja kes
kusmuistia on 640 Ktavua, lisäksi Mikro-Mikko 3:ssa on käytössä 20 Mtavun kovalevy.
ULS GURU-ohjelmisto edellyttää 640 Ktavun keskusmuis
tia ja vähintään 7 Mtavua kovalevytilaa. Levytila tar
vitaan sekä GURU-sovelluskehitintä, ULS GURU-ohjelmistoa että ohjelmiston käyttämiä tietokantoja varten.
5.1.2 GURU SOVELLUSKEHITIN
GURU-sovelluskehitin on monipuolinen integroitu asian
tuntijajärjestelmien kehitystyökalu, joka sisältää seuraa- vat osat :
- Asiantuntijapiirre ( =Sääntöjokot )
- Relaatiotietokannat ja tietokantakyselyt
- Tietokannan statistiikka-analyysit ja raporttigene
raattori
- Taulukkolaskenta ja "tasku"-laskin
- Kuvaruutulomakkeet ja kirjoitintulostukset - Tekstinkäsittely
- Luonnollinen komentokieli - Grafiikka
- Linjaliikenneyhteydet.
Valikko-ohjatun käyttöliittymän avulla käyttäjä pystyy käyttämään kaikkia yllämainittuja piirteitä samassa istun
nossa. Kokeneempi käyttäjä pystyy myös käyttämään suoraan GURUn komentokieltä työskennellessään.
xxix
Gurun proseduraalista ohjelmointikieltä käytettäessä aliohjelmat talletetaan omiksi tiedostoikseen. Kuvassa 9 on yhden ohjelmamodulin koodi. Komentokielellä voidaan kutsua aliohjelmia, sijoittaa ja verrata muuttujia sekä tehdä aritmeettisia ja loogisia laskentaoperaatioita.
Gurun komentokielen sisältämät rakenteet ovat : - IF THEN ELSE ENDIF
- WHILE DO ENDWHILE - TEST CASE ENDTEST
/***»**.t *********** ************* t ********************»*. ***t***»*******
/* EXPF.UNA. IPF t /
Med ri“nhär procirjfusnut^sr> bestämmer vi fçsd(?rp] ançrinqsrn^ tör ; / /* en specifik maskin börjande -från ena kanten . l)e -f ärdiga datan k /
/* placeras genast i output— fi 1en sr»««,[TB »/
/*****t**ttt***ttt*tt*tt****ttttt*tttt.tt**tt**t*t*t**ttt*tttt*t*******/
use dumko;destroy dumko
define dumko;field k01 str 13; f i eld k02 int using "d"
fin] fl k 03 num using "ddddrldd": I j e] d k(»l sfr 8; end de f default. -takon
obtatn first ; i »currert lakon)
/» vi ordnar den behövliga datan i en dummy-fi 1 */
/* ? "reuna börjar " » '
while i<=1astrec(-1 akon) and 1 astrec<A1akon)>0 do pluck ko from "kod
pluck kone < 1 anuir, 1 ) , "'kodk2, -fcodkS from •"'kof attach 1 tn dumko
d Limko. kOl-'-kodk 1 dum к о. k02=-4kof 5 dumko.к 03=лkodк4 dumko.k04=Akof4
i =i + 1 ; obtain i from "'lakon endwhi1 e
finish "'kod ; def aul t dum к о
'* vi ordnar dummy—filen enligt nedgående volym t/
sort dumko by za k03
vi kollar att ordningen är OK %/
if < kone(a,6)=1 ) then /* fuji-special-check * t
obtain first; i=currec(dumko'
while it— i astrec (dumko) arid J astrec (dumko) !>0 do attach 1 to —кои
-кou01«durnko.ко1 'kou02=kone ( 1 ап и m, .1 )
"■'kou03=f eedp
" ' k ouO 4=rl и m k o . k 03
finish dumko release i,feedp return
Kuva 9. Aliohjelman EXREUNA.IFF ohjelmakoodi.
XXX
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 :
Kooditiedoston sisältämät kentät ovat seuraavat :