Tietojenkäsittelyopin laöoratorio
DIPLOMITYÖ
Junavaa'an tietojenkäsittelyjärjestelmä
Työ saatu koneinsinööriosaston osastokollegilta 28.11.1978
Vt. prof. Markku Syrjänen Pii. raaist. Erkki Kureniemi Työn johtaja:
Työn ohjaaja:
Työ hyväksytty: £/-4?. /9?$
yj/'ÿ risei
Risto Rautee
Jarrumiehenkatu 2 A 47 00520 HELSINKI 52
puh. 782 122
Vaakasilta ja kiskokytkiraet Eri akselirakenteet
Vaakaelektroniikka
Punnitusten aloitushetket Maksiminopeudet
Veturin akselien eliminointi
Yleistä
Keskeytysten käsittely ja initiali- soinnit
Kellonajan ja vuorokauden päivitys 4.1.3
3. TOIMINTAYMPÄRISTÖ JA ASETETUT VAATIMUKSET Yleistä
Perustaaroitus Bruttopunnitus Taarapunnitus Nettopunnitus
Muistiin kirjoitus Muistista poisto Muistin listaus Kellonajan asetus
Päivän ja kuukauden asetus Vuosiluvun asetus
Ohj auspäätteen kuvaus
28
■ 4. OHJELMISTO
4.1 Pääohjelma 29 Sisällysluettelo
4 ALKULAUSE
JOHDANTO 5
1. JÄRJESTELMÄN RAKENNE 7
2. JÄRJESTELMÄN TOIMINTA 9
(Ti1Лu>tv
H
U)LJu>u>u>u> CTi
H
■sr(Nn
roH
<NI—II—I
C T iC T iO fN rr iO C O O O O O H
r—II—Ir—li—II—ICNCNCNCNCN UItotO
Ю
toM
N» 'J(TlUIU)<N
O H
<4r-i<4rr>'a'mvor-'C0o>HHHto to to to to to to to to to to to
Yleistä
Kiskokytkinten tarkkailu Veturin akselien eliminointi Vaunun yhden akselin tai telin punnitus
Vaakaelektroniikan ohjaus, luku ja tuloksen käsittely Akselipunnitus
(punnitustapa 1)
Telipunnitus; 2 teliä/vaunu (punnitustapa 2)
Telipunnitus, 4 teliä/vaunu (punnitustapa 3)
4.2.3.5 4.2.3.6 4.2.3.7 4.2.3.8
Tietojen interaktiivinen syöttö Punnitustavat
Yleistä
Talletusten kesto Talletettavat tiedot Tulostuksen asettamat vaatimukset
4.3.2.2 Tietorakenteiden kuvaus Systeemxalue
Pesäallas
4.3.3 Muistin hallinta 64
4.3.3.1 Muistin hallintaohjelmat 64
5. YHTEENVETO 71
6. LIITTEET
Kirjallisuusluettelo 73
4.3.2 Tietorakenteet 57
4.3.2.1 Asetetut vaatimukset 57 4.3. Muistin käsittely
4.3.1 Muistitilan käyttö 4.3.1.1 Työmuisti
52 53 54
О О Н О
11Лr-00G\o1o1o1o1o1o1o1o1ino
H
CNJroO1U)UIUIU)
(N(N<N(N
^
Æb Г-Г-Г"00COlom m
iolo UiUi enUIro
[U
M
4
ALKULAUSE
Tämä työ on suoritettu TKK:n tietojenkäsittelyopin vt.
professorin Markku Syrjäsen johdolla ja fil. maist. Erkki Kureniemen ohjauksessa. Varsinainen valmistava työ, juna- vaa'an tietojenkäsittelyjärjestelmän suunnittelu, toteu
tus ja asennus Rautaruukin Raahen tehtaille tehtiin nyt jo toimintansa lopettaneen Digelius Electronics Finland Oy:n palveluksessa vuosina 1975 - 1976. Työn ohjaaja toimi tuolloin yrityksen teknisenä johtajana.
Kirjoittajan osuuteen työssä kuului ohjelmiston suun
nittelu, ohjelmointi ja testaus. Laitteistona käytettiin Digeliuksessa kehitettyä Intel 8008 -pohjaista modulaa
rista mikrotietokonejärjestelmää (DIS-system). Kirjoittaja suoritti myös laitteiston testauksen ja asennuksen, tosin diplomityö aiheesta keskittyy lähinnä ohjelmistopuolen
Ohjelmointikielenä käytettiin assembleria, kääntäjä ja ohjelmiston kehityslaitteisto olivat Digeliuk- sen omaa tuotantoa.
kuvaukseen.
Omistan suuret kiitokseni työn johtajalle, ohjaajalle ja koko edesmenneen Digelius Electronics Finland Oy:n hen
kilökunnalle siitä tuesta ja opastuksesta, jonka avulla tämä työ on syntynyt. Vielä haluan kiittää nykyistä esi- miestäni, toim.johtaja Tapio Ahosta, jonka myöntämä virka
vapaa vauhditti jo hieman viipyneen opinnäytteeni loppuun- Viimeiset kiitokset osoitan pitkäaikaiselle asuinkumppanilleni Asta Tyvennölle, joka on toiminut myötä- ja vastoinkäymisenäni opiskeluaikani vivahderik- kaalla polulla.
saattamista.
Risto Rautee
Rautaruukki Oy:n Raahen rautatehtaat päätti keväällä 1975 hankkia yhdelle sisääntuloraiteelleen automaattisen punni
tus järjestelmän. Tarkoituksena oli korvata entinen. run
saasti manuaalisia toimenpiteitä vaativa junien punnitus- käytäntö uudemmalla, luotettavammalla ja nopeammalla
telmällä.
mene- Punnituksien kohteena ovat tehtaalle tulevien raaka-ainejunien sekä eräiden lähtevien junien brutto-, taara- ja nettopainot.
Järjestelmän tietojenkäsittelyosa päätettiin tilata laiselta Digelius Electronics Finland Oy:Itä.
osa (vaakasilta, venymäliuska-anturit sekä A/D-muuntimet) sekä kiskokytkimet hankittiin muualta.
suoma- Itse vaaka-
Järjestelmällä vuosittain punnittavien raaka-aineiden mää
rät arvioitiin tilaushetkellä seuraaviksi:
- rikasteita Kokkolasta, Rautuvaarasta ja Otanmäestä yhteensä 1 300 000 tn/vuosi
- pellettejä Kostamuksesta 1 100 000 tn/vuosi - koksia Vainikkalasta 870 000 tn/vuosi
Tehtaalta rautateitse lähtevä tavara oli soodaa, harkkoja, kuonaa ja romua. Nämä junat punnittiin vain tarvittaessa.
Lähtevän tavaran punnitus oli vähäistä verrattuna tulevan tavaran punnitukseen.
Tehtaalle tavaraa tuovan junan bruttopunnitus tapahtui aiemmin siten, että juna ajettiin erittäin hiljaa vaaka- sillan yli. Vaakakopissa vaakamies asetti kunkin vaunun kohdalla vaakalapun koneeseen ja valitsi näppäimistä vaunun numeron ja päivämäärän.
vaa'alla (vaakasilta oli koko vaunun mittainen) hän painoi leimauspainiketta, jolloin kone leimasi vaakalappuun pai-
vaunun numeron, päivämäärän sekä juoksevan numeron.
vaunun Samanaikaisesti toinen henkilö kopioi vaunu- painot yhteiseen lomakkeeseen, ns. vaununluettelosanomaan.
Vaunun ollessa kokonaan
non.
Toimenpide suoritettiin samalla tavoin jokaisen kohdalla.
6
Tavaran purkauksen jälkeen suoritettiin junan taarapun- nitus. Punnitus tapahtui kuten bruttopunnituskin. Taara- painot leimattiin bruttopainojen kanssa samoille vaaka- lapuille, joista ne edelleen kopioitiin vaununluettelo
sanomaan. Nettopainot saatiin laskemalla käsin luettelosanoman brutto-
vaunun- ja taarapainojen erotukset.
Lähtevän tavaran punnitus erosi tulevan tavaran punnituk
sesta vain punnitusjärjestyksen osalta, ts. ensin punnit
tiin junan taara-, sitten bruttopaino.
Entisen menetelmän heikkouksina olivat suuri manuaalisen työn määrä sekä virhemahdollisuudet punnitushetken valin
nassa ja nettopainojen laskennassa. Uudelle järjestelmälle asetettujen vaatimusten joukossa olivatkin punnitushetken automaattinen määräytyminen vaunun ylittäessä vaakasillan, vaunupainojen talletusmahdollisuus järjestelmän muistiin sekä nettopainojen automaattinen laskenta. Huomiota tuli kiinnittää myös veturin ja sen jäljessä tulevien ns. suoja- vaunujen punnitusten eliminointiin sekä siihen, että junan palatessa tehtaalta vaunut tulevat vaa'alle käänteisessä järjestyksessä tulopunnitukseen verrattuna.
ennen punnitusta suorittaman tietojen syötön järjestelmään tuli tapahtua luotettavasti ja yksinkertaisesti,
jestelmältä vaadittiin myös suurta interaktiivisuutta.
Vaakamiehen
ts. jär-
Edellä olivat karkeasti järjestelmälle asetetut vaatimuk
set sekä toimintaympäristön kuvaus. Yksityiskohtiin pala
taan erikseen järjestelmän tarkemman kuvauksen yhteydessä.
Järjestelmä toteutettiin, kuten alkulauseessa mainittiin, Digeliuksen kehittämällä vakioyksiköistä kootulla DIS- mikrotietokoneella.
"neitseelliseen"
Ohjelmointi suoritettiin assembler- koneeseen, ts. käyttöjärjestel
mää tai muuta apuohjelmistoa ei koneeseen vielä ollut kielellä
saatavilla.
Järjestelmä koostuu keskusyksiköstä (DIS-mikroprosessori), kirjoittimesta (Philips PER 3100), ohjauspäättestä, joka sisältää nelinumeroisen näytön, ledejä, numeropainikkeet sekä ohjauspainikkeita, vaa'asta, vaakaelektroniikasta,vaa- alle asetetuista kiskokytkimistä sekä junan kuljettajalle tarkoitetusta järjestelmän ohjaamasta merkkivalosta.
Anturit Kiskokytkimet
/
/I
z
ЛMerkki
valo Hg)
! f V V
Vaaka- elektro
niikka (A/D-muun- nin ym.)
4xBCD
DIS- mikro
prosessori start
Kirjoitin
e -s-
ready
il
V
Ohj aus- pääte
птп
8 Keskusyksikön modulikuvaus
6047 I 6020
I/O-adapteri Prosessori
6066
Työmuisti 4 kB + muistipsuo- _________ ~i aus
Ohjaustaulu 6036
Sarjaliitäntä (modifioitu)
7
6036 I
Sarjaliitäntä
X 6029
Dig.input Vaaka-
elektro
niikka
4 dek
BCD 1 6x /' -i»
readvfc
Ì
^tart 6029 6058
Reaaliaikakelloi Dig.input
1 6x
Kisko- kytki
met
6035
Dig.output 1 6x
Triac-rele liitäntä
cz,
>
Akku
Philips 601 6
Ohjelmamuisti 2 kB
601 6
Ohjelmamuisti 2 kB
oooo
OOOO
2 JÄRJESTELMÄN TOIMINTA
2.1 Yleistä
Punnitusten suoritus tapahtuu siten, että vaakamies ensin valitsee ohjauspäätteen avulla halutun punnitusohjelman painamalla vastaavaa painiketta. Tämän jälkeen järjestelmä
1 kyselee1 päätteen, ledien avulla muut tarvittavat tiedot, jotka vaakamies antaa joko numero- tai muiden vastauspai- nikkeiden avulla. Tietojen syötön päätyttyä järjestelmä sytyttää junan kuljettajalle tarkoitetun "valmis"-valon.
Junan tullessa vaakasillalle punnitus alkaa automaattises
ti. Junan mentyä ohi vaakamies painaa päätteen "lopetus"- painiketta, jolloin kirjoitin tulostaa punnitustiedot päi- väyksineen valmiiksi painetulle punnituslomakkeelle.
Paitsi varsinaisia punnitusohjelmia, järjestelmässä on myös päivämäärän ja kellonajan asetusohjelmat (kellonajan ja vuo
rokauden päivitys tapahtuu automaattisesti) sekä muistin listaus-, muistiin kirjoitus- ja muistista poisto-ohjelmat.
Mikäli punnitus ei suju oletuksen mukaan ts. junan nopeus on liian suuri tai muistitila loppuu kesken punnituksen, suoritetaan hälytys kirjoittimen avulla.
Varsinaisia punnitusohjelmia järjestelmässä on neljä kpl.:
- perustaaroitus - bruttopunnitus - taarapunnitus - nettopunnitus
2.2 Perustaaroitus
Ohjelmaa käytetään haluttaessa nollata vaa'an lukema. Vaa- an lukema saattaa muuttua vaakasillalle kertyvän jään tms : n johdosta tai vaakaelektroniikan A/D-muuntimen asetusten muut
tuessa. Painettaessa perustaaroitus-painiketta järjestelmä lukee vaakaelektroniikan ulostulossa olevat neljä BCD-lukua perustaararekisteriin. Perustaararekisterin sisältö vähenne
tään aina vaakaelektroniikan annosta kunkin punnituksen yh
teydessä .
10
2.3 Bruttopunnitus
Ohjelmaa käytetään silloin, kun täysi juna tulee tehtaalle ja vaunujen bruttopainot on pantava muistiin myöhempää net- topunnitusta (= tässä tapauksessa tyhjän junan punnitusta) varten.
Ohjauspäätteellä annetaan seuraavat tiedot ennen punnitusta - junanumero
- runkonumero
}
identifioivat ko. junan- eliminoitavien akselien lukumäärä = junan alkupäässä ole
vien punnitsemattomien akselien (veturin akselit) lkm.
- punnitustavan numero ; määrittelee junan vaunujen akseli- rakenteen seuraavasti:
2 akselia/vaunu 2 teliä/vaunu 4 teliä/vaunu 1
4 akselia/vaunu 8 akselia/vaunu
- talletetaanko painot muistiin ; mikäli talletetaan, ne jää
vät odottamaan seuraavaa saman junan nettopunnitusta, min
kä yhteydessä ne automaattisesti poistetaan muistista.
Muussa tapauksessa painot poistetaan muistista heti tu
lostuksen jälkeen.
2 3
Lopetus-painikkeen painamisen jälkeen kirjoitin tulostaa - päivämäärän ja kellonajan
- junanumeron - runkonumeron
- juoksevan vaununumeron - vaunujen bruttopainot - koko junan bruttopainon
ALKU
Junan n : o ?
Rungon n : o ?
Elim.aks.
lukum.?
Punnitus tapa ?
Muistiin talletus ?
4 numeroa
1 numero
2 numeroa
1 = akselipunnitus 2 = telip.; 2
3 = " 4
2 teliä/vaunu If
Kyllä/Ei
Punnitus Punnitus päättyy lopetus- painikkeen painamisen jäl
keen
Tulostus
Muisti
tiedon tu
hoaminen Talletu
?
^LOPPU
Cc
rt
c
12
2.4 Taarapunnitus
Ohjelmaa käytetään silloin, kun lähtevän tai
nan taarapainot halutaan tietää ja tallettaa muistiin jo
ko seuraavaa saman junan nettopunnitusta (= tässä tapauk
sessa täyden junan punnitusta) varten tai kiinteästi, jol
loin painojen sanotaan olevan talletettuna riin.
tulevan ju-
vaunurekiste-
Ohjauspäätteellä annetaan seuraavat tiedot ennen punni
tusta :
- junanumero - runkonumero
- eliminoitavien akselien lukumäärä - punnitustavan numero
- talletetaanko painot muistiin
- talletetaanko painot vaunurekisteriin
Lopetuspainikkeen painamisen jälkeen kirjoitin tulostaa:
- päivämäärän ja kellonajan - junanumeron
- runkonumeron
- juoksevan vaununumeron - vaunujen taarapainot - koko junan taarapainot
- onko painot talletettu vaunurekisteriin
(alku J
Junan n : о ?
Rungon n : o ?
Elin.aks.
lukum. ?
Punnitus
tapa
Talletus muistiin?
Talletus vrpekiste- nin ? yllä ?
I Punnitus
Tulostus
Muisti
tiedon tu
hoaminen Talletu
?
Ç LOPPU ^
14
2.5 Nettopunnitus
Ohjelmaa käytetään, kun punnituksen yhteydessä halutaan laskea nettopainot. Edellytyksenä on, että vastaavat brut
to/t aarapainot ovat laitteen muistissa. Punnituksen ja tu
lostuksen jälkeen laitteen muistista poistetaan tulostetut tiedot, lukuunottamatta vaunurekisterissä olevia tietoja.
Ohjauspäätteellä annetaan seuraavat tiedot ennen punnitus
ta :
3unanumero runkonumero
- eliminoitavien akselien lukumäärä - punnitus!avan numero
- aikaisemmassa (brutto- tai taara-) punnituksessa punni
tun junan numero (Huom. junanumero ei ole junakohtainen, vaan junavuorokohtainen, ts. junan saapuessa ja lähties
sä junanumero on muuttunut, mutta runkonumero on pysynyt samana). Mikäli annetun numeroista junaa ei ole muistissa, ohjelma keskeytetään ja järjestelmä tekee tästä kirjoit
timelle ilmoituksen.
Lopetus-painikkeen painamisen jälkeen kirjoitin tulostaa
- päivämäärän ja kellonajan - junannumeron
- juoksevan vaununumeron
- vaunujen brutto-, taara- ja nettopainot - koko junan brutto-, taara- ja nettopainot - onko taarapainot talletettu vaunurekisteriin
Lisäksi kirjoitin kirjoittaa aikaisemmin suoritetun nituksen sarakkeen alle k.o. punnituksen
pun-
- päivämäärän - kellonajan - junanumeron - runkonumeron
(^Alku^)
Junan n : о ?
Rungon
n : о ? \
Aik.punn.
junan no?
löytyikö I
"Ei sen numeroista muistissa Elim.aks.
lukum. ?
Punnitus
tapa ?
Punnitus
Tulostus
Muisti
tiedon tuhoamine n
c
Loppu)
16
2.6 Muistiin kirjoitus
Ohjelmaa käytetään haluttaessa manuaalisesti tallettaa muistiin jonkin junan taara- tai bruttopainot.
Päätteeltä annetaan seuraavat tiedot:
- ]unanumero - runkonumero
- onko kyseessä taara- vai bruttopainot
- talletetaanko painot vaunurekisteriin (vain taara- painojen yhteydessä)
- vaunupainot vaunujen numerojärjestyksessä.
Annettaessa vaunupainoksi nolla, järjestelmä lopettaa vaunupainojen pyytämisen ja tekee tarkistustulosiuksen, josta ilmenee
- junanumero - runkonumero
- juokseva vaununumero
- vaunujen taara/bruttopainot - koko junan taara/bruttopaino
- taarapainojen ollessa kyseessä, onko painot talletettu vaunurekisteriin.
Mikäli painoja ei talletettu vaunu rekisteriin, ne pois
tetaan muistista seuraavan saman junan nettopunnituksen j älkeen.
) (
AlkuJunan n : o ?
Rungon
n : o ? \
Taara/
brutto?
Talletus v-rekister Taara?
iin?
Vaunun paino?
1
0
Tulostus
(
Loppu)
18
2.7 Muistista poisto
Ohjelmaa käytetään haluttaessa poistaa jonkin punni
tuksen tiedot muistista. Tiedot voivat olla talle
tettuna muistiin väliaikaisesti tai kiinteästi.
Päätteeltä annetaan seuraavat tiedot:
j unanumero runkonumero.
Mikäli k.o, junan punnitus!ietoja ei löytynyt muis
tista, järjestelmä tekee siitä ilmoituksen kirjoit
timen avulla.
Muistista poisto
Alku
Junan n : o ?
Rungon
n : n 7
öytyikä
?
"Ei sen numeroista muistissa"
Muisti
tiedon tuhoaminen
^Loppu J
20
2.8 Muistin listaus
Painettaessa muistin listaus-painiketta ohjelma tulos
taa kaikkien muistissa olevien punnitusten tiedot. Tu
lostuksesta ilmenee kunkin punnituksen
- junanumero - runkonumero
- punnituspäivämäärä ja - kellonaika
- juokseva vaununumero
- vaunujen brutto/taarapainot - koko junan brutto/taarapainot
Taarapainojen ollessa kyseessä ilmenee myös, onko pai
not talletettu taararekisteriin.
2.9 Kellonajan asetus
2.10 Päivän ja kuukauden asetus
2.11 Vuosiluvun asetus
Painettaessa jotain ko. painikkeista järjestelmä jää odottamaan asetusarvon antamista numeropainikkeilta.
Arvot voidaan näppäillä painikkeiden avulla näyttöön.
Painettaessa ENTER-painiketta järjestelmä hyväksyy näytössä olevan lukeman asetusarvoksi. Kellonaikaa ja vuorokautta pidetään järjestelmässä yllä reaaliaikakel- lon avulla.
л Alku J
Vuosi?
^LoppiTj
Alku
Päivä, kk ?
Loppu asetus
^ Alku ^
klo?
Ç Loppu
Muistin listaus
(
AlkuTulostus
Loppu
Kellonajan, päivän ja kuukauden sekä vuosiluvun
V V
Ohjauspäätteen paneelit
N3
® Junanumero?
® Runkonumero?
® Aikaisemmin punnitun junan n : o?
® Eliminoitavien akselien lukumäärä?
® Punnitustavan numero?
® Talletetaanko painot muistiin?
® Talletetaanko painot vaunurekisteriin?
<3 Taara vai brutto?
® Näppäile vaunupaino!
sø se
hOo1—J.
DJ
C
СЛ
D0-:j:
rt
rtП) ro 9 C
< Dic en
Kellonajan asetus
Päivän ja kk : n asetus Vuosiluvun asetus
Perustaaroi- tus
Brutto- punnitus Taara- punnitus Netto- punnitus Lopetus
Kyllä Control
7 8 9
Muistin listaus Muistiin kirjoitus Muistista poisto 0
0 Ei 5 6
0
4
Brutto
0
00 0
1
2
30
0 Taara0
00 c
¡MEF
Näihin ohjelmiin siirty
minen vaatii CONTROL-pai- nikkeen samanaikaista pai
namista . Oltaessa jossain ohjelmassa
vastaavan painikkeen LED palaa jatkuvasti.
ro
Punnitusten toimintaympäristö ja asetetut vaatimukset 3.
3.1 Vaakasilta ja kiskokytkimet
Kiskokytkinten ja vaa'an mitoitus selviää alla olevas
ta kuvasta.
silta 4250
1 000 1 000
Î- - f
kkl kk2 kk3
Kiskokytkimet on sovitettu järjestelmään digitaali- rinnakkaisottoyksikön (DIS 6029 ) välityksellä,
kön ottorekisteri muodostuu RS-kiikuista.
Yksi- Kiskokytki- men sulkeutuessa vastaava kiikku asettuu ykköstilaan.
Ottorekisteri voidaan ohjelmallisesti lukea ja nollata.
24
3.2 Eri akselirakenteet
Käytössä on kolme eri akselirakennetta, jotka kukin Käytännössä junan vaativat oman punnitusohjelmansa.
kaikki vaunut ovat akselirakenteeltaan samanlaisia.
Ennen punnitusta käyttäjä antaa järjestelmälle punni
tustavan numeron (1,2 tai 3) joka ilmaisee käytettä
vän punnitusohjelman.
Punnitusohjelma 1
= Akselipunnitus
ö ö
Punnitusohjelma 2
= Telipunnitus;
2 teliä/vaunu
ОЮ 04)
I I
У
1800-2000 Punnitusohjelma 3
= Telipunnitus 4 teliä/vaunu
[
0404 0404
i iI
\
r
1800 1200 1800
Akselirakenne määrää eri punnitusten aloitushetket ja sen, kuinka monen punnituksen summasta vaunupaino muo
dostuu .
Vaakaelektroniikka antaa vaa1 an lukeman neljän BCD- luvun muodossa, joista vähiten merkitsevä edustaa
kymmeniä kiloja ja eniten merkitsevä kymmeniä tonneja.
Elektroniikka sisältää A/D-muuntimen, jonka muunnos- Aika on suhteellisen pitkä, minkä ta
kia muunnoksen ajoitus täytyy tapahtua tietokoneen oh
jaamana (1,5 m/s nopeudella kulkeva juna liikkuu 600 ms :ssa 0,9 m).
aika on 600 ms.
Vaakaelektroniikan ohjaus tapahtuu seuraavasti:
ALKU
Tietokone antaa punnituksen aloi
tuskäskyn vaaka- elektroniikalle
Vaaka-elektroniik
ka suorittaa A/D- muunnoksen_________
Vaaka-elektroniik
ka antaa signaalin
"muunnos suoritettu'
Tietokone lukee punnitustuloksen vaakaelektroniikan annosta
^LOPPU ^
Vaakaelektroniikan anto (vaa'an lukema ja "muunnos suo
ritettu" -signaali) on sovitettu järjestelmään digitaa- li-rinnakkaisottoyksiköiden (DIS6029) välityksellä. Tie
tokone antaa aloituskäskyn digitaali-rinnakkaisantoyksi- kön (DIS6035) välityksellä. Sekä aloituskäsky että vaa'an vastaus ovat positiivisia pulsseja, joiden nousureunasta ajoitus tapahtuu.
26
3.4 Punnitusten aloitushetket
1. Akselipunnitus
4250
(1125) (1125) 1 ППП 1 000
I l
ÏÏ T •KK2
I KK1 KK3
2. Telipunnitus 2 teliä/vaunu I
2000
1 800 I
(S
\
I
♦ f f
KK1 KK2 KK3
4 teliä/vaunu 3 . Telipunnitus
1 ЯПП 1,2Лй
I vaihe
0 0
0
Tkki fKK2 f KK3Ì
1200 1 800
II vaihe
1
0 - 0 0
0
f KK 2 ♦ KK3I
♦ KK1
Huom: Kuvat piirretty tilanteessa, jolloin juna saapuu kisko- Päinvastäisessä tapauksessa kis- kytkin 1:n suunnasta,
kokytkin 1 ja kiskokytkin 3 vaihtavat paikkaa.
3.5 Maksiminopeudet
Vaakaelektroniikan A/D-muunnokseen kuluva aika sekä vaakasillan, kiskokytkinten etäisyyksien ja vaunujen akselirakenteiden väliset mittasuhteet määräävät kul
lekin punnitustavalle teoreettiset junien maksimino- Nämä on pyöristetty seuraavasti :
peudet.
Akselipunnitus
Telip innitus; 2 teliä/vaunu Telipunnitus; 4 teliä/vaunu
> Vmax = 1,5 m/s 1,0 m/s Vmax
Ennen kutakin yksittäistä punnitusta järjestelmä tar
kastaa junan kulkunopeuden. Nopeuden mittaus perustuu yhden akselin kulkuajan mittaamiseen kahden peräkkäisen kiskokytkimen välillä. Mikäli nopeus ylittää sallitun arvon, punnitus keskeytetään ja kirjoittimelle tulostuu tästä ilmoitus .
3.6 Veturin akselien eliminointi
Punnitus aloitetaan vasta veturin ym. punnituksen kan
nalta merkityksettömien vaunujen ohitettua vaakasillan.
Tässä tarkoituksessa käyttäjän tulee antaa järjestelmäl
le eliminoitavien akselien lukumäärä ennen punnitusta.
Veturin akselien eliminointi on tärkeää jo sen akseli- rakenteen erilaisuuden vuoksi, mikä saattaa sekoittaa järjestelmän käsityksen vaunujen rajoista.
28
4. OHJELMISTO
4.1.1 Yleistä
Pääohjelman alkuun joudutaan
- jännitteiden uudelleen kytkeytyessä (autostart) - tehtäessä manuaalinen keskeytys I/О-adapteri-
kortilla olevalla kytkimellä
- reaaliaikakellon laskurin vuotaessa yli, jolloin reaaliaikakello suorittaa keskeytyksen
(kts. tarkemmin keskeytysten käsittely-kohtaa)
Pääohjelman alussa tutkitaan mistä keskeytys on läh
töisin ja suoritetaan tarvittavat toimenpiteet.
Seuraavana sammutetaan ohjauspäätteen kaikki ledit.
Jännitteiden kytkeytyessä ledien ohjauspiirit asettu
vat satunnaisesti eri tiloihin, joten ledien sammutus täytyy tehdä ohjelmallisesti. Samoin eri punnitus- ym. ohjelmien lopussa ei sytytettyjä ledejä erikseen sammuteta, vaan se tapahtuu ohjelman tässä kohdassa.
Tämän jälkeen ohjelma asettuu pääohjelmasilmukkaan, jossa vuoronperään
- päivitetään työmuistissa pidettävää kellonaikaa ja päiväystä
- suoritetaan punnitus ja viedään tulos näyttöön
- tutkitaan onko painettu mitään päätteen painiketta, ja jos ei ole, hypätään luupin alkuun.
Mikäli jotain painiketta oli painettu, tutkitaan mikä painike oli kyseessä ja hypätään vastaavaan ohjelmaan.
Numero- ym. vastauspainikkeet eivät aiheuta mitään toi
mintoa tässä yhteydessä.
Tässä yhteydessä tarkastellaan lähemmin keskeytysten kä
sittelyä ja initialisointeja sekä kellonajan päivitystä.
Punnituksen suoritus selviää kohdassa "Vaakaelektronii
kan ohjaus, luku ja tuloksen käsittely"
Pääohjelma
30
Alku
Keskeytys
ten käsit
tely ja ini-- tialisoinnil
<
Ledien sammu
tus
<«
i Kellon
ajan päivitys
!
i
Punnitus ja tulok
sen näyttö
/ Onko
painettu ^ xpainike*^3
? i
I Brutto-
punnitus -► ►
Bruttop.
?
^ Taara- punnitus Taarap.
?
i I
i i
i
>- Perus- taaroitus xÇerustaar.
!
t j
Keskeytysten käsittely .ja initialisoinntt
4.1.2
Keskeytyksen syltä saattoivat olla - manuaalinen keskeytys
- reaaliaikakellon keskeytys
- jännitteiden uudelleen kytkeytyminen virtakatkon jälkeen Manuaalinen keskeytys tehdään l/O-adapterikortilla olevasta kytkimestä esim. haluttaessa keskeyttää jokin punnitus— tai
ohjelma mielivaltaisessa vaiheessa. Keskeytyksen teke- muu
minen vaatii keskusyksikön kannen avaamisen ja tapahtuu käytännössä hyvin harvoin. Manuaalinen keskeytys aiheuttaa ainoastaan hypyn pääohjelman alkuun.
Reaaliaikakellon (RTC) keskeytys tapahtuu reaaliaikakellon laskurin vuotaessa yli. Normaalisti reaaliaikakello
tettu askeltamaan minuutin taajuudella 8 hitin laskuria ylöspäin. PääohjeImasilmukassa kellonajan päivitys —ohje1—
laskuri käydään tyhjentämässä ja vastaavasti kasva
en ase
massa
tetaan laskuriin kertyneellä minuuttimäärällä työmuistissa olevia kellonaikaa ja päiväystä ylläpitäviä rekistereitä.
Mikäli ohjelma syystä tai toisesta juuttuu tämän pääohjel- masilmukan ulkopuolelle (esim. käyttäjän jättäessä johon
kin kysymykseen vastaamatta) yli 256 minuutiksi, suorit
taa RTC keskeytyksen. Tämän keskeytyksen tapahduttua lada
taan RTC:n laskuriin luku 256 ja hypätään pääohjelmaan, jossa tapahtuu kellonajan päivitys. Samalla suoritetaan RTC:n keskeytyksen kuittaus, joka tarkoittaa" reaaliaika- kellokortilla olevan keskeytyskiikun nollaamista.
Jännitteiden kytkeytyessä virtakatkon jälkeen, suorittaa l/O-adapterikortilla oleva piiri autumaattisesti keskey
tyksen. Tämän keskeytyksen tapahduttua, mikäli varavirta- lähteenä toimivan akun kapasiteetti on riittänyt säilyttä
mään työmuistin sisällön, järjestelmän tehtävänä on aino
astaan käynnistää reaaliaikakello. Mikäli muistin sisältö järjestelmä initialisoi muistin. Initiali-
(=ASCII-välilyönti) tulostuspusku- on tuhoutunut,
sointiarvoina ovat 0408
32
rissa, 060g (=ASCII-nolla) systeemialueella olevissa numee
risen tiedon tallennuspaikoissa sekä erityisesti tätä jär
jestelmää varten suunniteltu ketjutetun muistin rakenne, joka esitetään tarkemmin kohdassa ”Muistin käsittely".
Järjestelmä erottaa eri keskeytykset toisistaan (Intelin 8008 -prosessori ei pysty ns. vektoroituun keskeytykseen) tutkimalla ensin reaaliaikakellon status-rekisteriä.
Jos se on täysin ennallaan, on tapahtunut manuaalinen keskeytys. Jos status-rekisterin eräs tietty hitti on kääntynyt, tiedetään RTC:n tehneen keskeytyksen. Mikäli rekisterin hitit ovat asettuneet aivan mielivaltaisesti, on tapahtunut virtakatko. Muistin mahdollinen tuhoutu
minen voidaan todeta tätä varten varatusta muistipaikas
ta, joka initialisoinnin yhteydessä sai arvon 060o.
8
Alku
/ Man. ^ keskeytys
?
Täytetään RTC: n lasku
ri ja kuita
taan keskey- tys .
^RTC: n ^ keskeytys
?
/ Muistix tuhoutunut
?
Käynnistetään RTC
Initialisoi- daan muisti, käynnistetään
Loppu
34
4.1.3 Kellonajan ja vuorokauden päivitys
Edellisessä kohdassa tuli jo tarpeellisessa määrin selvitettyä reaalikellon toimintaa. Ohjelman 'TIME' tehtävänä on kasvattaa työmuistissa ylläpidettävää kellonaikaa ja tarvittaessa päivämäärää kellon las
kuriin kertyneitten minuuttien määrällä. Ohjelmaa käytetään paitsi pääohjeImasilmukassa, myös aina ennenkuin päiväys ja kellonaika kopioidaan tulostus- puskuriin. Täten punnitusilmoituksessa näkyy aina tulostushetken kellonaika. Ohjelman toiminta selvin- nee seuraavalla sivulla olevasta lohkokaaviosta.
Alku
*■
Akku RTC
kku = 0
?
Loppu Akku
ku-1
Ak
RTC Akku
Iin Min + 1
Min= 60
Min 0
Hour Hour И
our= 24
Hour 0 )ay4-Day+1
4.2 PUNNITUSOHJELMAT 36 4.2.1 Yleistä
Järjestelmässä tunnettiin neljä varsinaista punnitus- ohjelmaa :
- perustaaroitus - bruttopunnitus - taarapunnitus - nettopunnitus
Kolmen jälkimmäisen loogiset toiminnat voidaan jakaa kolmeen osaan :
- tietojen interaktiivinen syöttö ohjauspäätteen avulla - punnitus
- tulostus
f
Johtuen käytössä olevista erilaisista vaunujen akseli- rakenteista, kussakin punnitusohjelmassa voi olla kol
mea erilaista punnitustapaa, jotka kukin vaativat oman ohjelmansa (kahden akselin, kahden telin ja neljän telin vaupujen punnitukset). Tämä on johtanut seuraavanlai
seen ohjelmiston struktuuriin.
^NETTOPJ MTAARAPJ
BRUTTOP.
Tietojen syöttö
Tietoj en syöttö
Tietojen syöttö -*
Valinta ' i
Punnitus
tapa 1
Punnitus
tapa 2
Punnitus
tapa 3
aiintä
Ì
i
Brutto-- tai taara- tulcxrtJi
Netto- tulos
tus s
^LOPPU ^
4.2.2 Tietojen interaktiivinen syöttö
Aikaisemmin on kuvattu ne tiedot, jotka vaakamies an
taa järjestelmällä eri ohjelmien yhteydessä.
teenä on, ettei niitä tässä vaiheessa vielä mitenkään käytetä hyväksi, vaan ne ainoastaan talletetaan työ
muistissa systeemialueella oleviin tallennuspaikkoihin.
Periaat-
Numeerisen tiedon syöttö tapahtuu yleisessä muodossaan seuraavasti:
ALKU
Sytytetään kysymyksen tekevä LED
DATAINP-rutiini vie päät
teeltä numeropainikkeilta painetut merkit näyttöre- kisteriin ja näyttöön.
Paluu ohjelmasta tapahtuu painettaessa ENTER-paini- ketta (lohkokaavio seu
raavalla sivulla) DATAINP
-rutiini
Sammutetaan kysymyksen tekevä LED
Siirretään tieto näyt- törekisteris
tä omalle pa ikalleen
^ LOPPU ^
38 DATAINP
^ALKU j
Sytytetään ENTER- painikkeen led
Nollataan näyttörekis- teri ja
näyttö
* Onko painettu
pSsjjiiket
2. Siirretään
näyttörekisteriä vasemmalle. Vie
dään numero oi
keaan laitaan.
Kopioidaan näyt- törekisteri
näyttöön.
Numero? ■*>
Nollataan näyttörekis- teri ja
näyttö______
Clear? »
Enter?
Sammutetaan ENTER-pai- nikkeen LED
^ LOPPU ^
Punnitustulosten tallentamista koskeviin kysymyksiin käyttäjä vastaa painamalla painiketta KYLLÄ tai EI.
Ohjelma toimii silloin seuraavasti:
' ALKU
Sytytetään kysymyksen tekevä LED sekä KYLLÄ ja EI-painikkeiden LEDit
Onko painettu
><iniket г
Kyllä tai ei
?
Sammutetaan LEDit
Talletetaan vastauksen merkitys STATUS-tavuun
LOPPU
Ohjelma on täysin vastaava kysyttäessä ovatko manuaali
sesti talletettavat painot brutto- vai taarapainoja.
Käyttäjä vastaa tällöin painikkeilla 'brutto' tai 'taara'.
40
*+•2.3 Punnitusoh j elmat (punnitustavat)
Huom:
Tarkasteltaessa asiaa järjestelmän käyttäjän kannalta käsite "punnitusohjeIma" tarkoittaa joko taara-, brutto- tai nettopunnitusta tietojen syöttöineen, punnituksineen ja tulostuksineen. •
Seuraavassa käsite punnitusohjeIma rajataan kuitenkin koskemaan varsinaisia punnituksia, jotka käyttäjä tuntee vain eri punnitustapoina.
laan puhumaan akselipunnitusohjelmasta ja eri telipunni- tusohjelmista, joita ei tule sekoittaa taara-, brutto
ja nettopunnitusohjelmiin.
Ts. Seuraavilla sivuilla tul-
Yleistä 4.2.3.1
Punnitusohjelmissa voidaan erottaa neljä eri toiminnal
lista osaa:
junan suunnan päättely ja veturin akselin eliminointi
junan nopeuden tarkkailu
punnituksen aloitushetken havaitseminen
vaakaelektroniikan ohjaus ja luku.
Näistä ensimmäinen suoritetaan vain kerran ja kolme seu- raavaa toistetaan samassa järjestyksessä kutakin punni- tuskertaa kohden.
On huomattava, että järjestelmä käsittelee vaunu- eikä
"teli- tai akselipainoja. (Jälkimmäiset tosin näkyvät punnituksen aikana ohjauspäätteen näytössä.) Tällöin vaunupaino muodostuu useamman punnitustuloksen summasta.
Punnitus lopetetaan käyttäjän haluamalla hetkellä pai
namalla ohjauspäätteen lopetus-painiketta,
muistiin jää kaikkien kokonaan punnittujen vaunujen (Ts. jos lopetus-painiketta painetaan kesken jonkin vaunun punnitsemisen, vaunun alkupään punnitus- tuloksia ei huomioida.)
Tällöin
painot.
4.2.3.2 Kiskokytkinten tarkkailu
Koska järjestelmän tulee toimia junien ylittäessä vaaka- sillan kumpaan suuntaan tahansa ja toisaalta koska neljän telin vaunuja punnittaessa joka toisen telin punnitus aloitetaan eri kohdassa kuin toisen, on päädytty seuraa- vaan ratkaisuun:
Itse punnitusohjelmat eivät tiedä, minkä todellisen kiskokytkimen sulkeutumista kulloinkin odottavat. Oh
jelmat tuntevat vain käsitteet kiskokytkin X ja kisko- kytkin Y, jotka ovat kiskokytkinten input-tavun ja systeemialueella olevien maskirekisterien XMASK ja YMASK AND-funktio.
Kiskokytkin X määritellään yleisesti kiskokytkimeksi, jon
ka sulkeutuminen aiheuttaa ajan laskennan alkamisen nopeu
den mittausta varten.
(Itse asiassa pelkkä kiskokytkimen sulkeutuminen ei aiheuta missään yhteydessä vielä mitään toimintoa. Oh
jelma odottaa myös kiskokytkimen avautumista ennenkuin Vain tällä tavoin pystytään esim. erot
tamaan toisistaan veturin akselit, joita tutkitaan yh
dellä ja samalla kiskokytkimellä.) toiminta alkaa.
Kiskokytkin Y on kiskokytkin, jonka sulkeutuminen lopettaa ajan laskennan ja - mikäli junan nopeus oli sallitun rajan alapuolella - aloittaa varsinaisen punnituksen.
42
Kiskokytkimillä X ja Y operoidaan myös laskettaessa ak
selien ohituksia.
(Huom: Paitsi veturin akselit, myöskään telipunnituk- sissa telien jälkimmäiset akselit eivät saa laukaista kumpaakaan edellä mainituista toiminnoista.)
Digitaalisen rinnakkaisottoyksikön yhteen 8-bittiseen ottorekisteriin tuodaan kiskokytkinten signaalit seuraa
vasti :
Bitti 76543210 x
X
Kiskokytkin 1
•Kiskokytkin 2 -Kiskokytkin 3
Maskirekisterissä asetetaan tutkittavaa kiskokytkintä vastaava bitti ykköseksi, muut nollaksi.
suoritetun input-tavun ja maskitavun AND-operaation jäl
keen
Tällöin akussa
zero on asettunut, mikäli tutkittava kiskokytkin ei ollut sulkeutunut (ts. input-tavun vastaava bitti oli nolla)
zero on nolla, mikäli tutkittava kiskokytkin oli sul- keutunut.
Koska rinnakkaisottoyksikön ottorekisteri muodostuu R-S- kiikuista, jää kiskokytkinten sulkeutuminen "muistiin"
eikä ottorekisteriä tarvitse ehtiä lukea kytkinten sul- keutuneenaoloaikana. Toisaalta (todennäköisesti) järjes
telmän nopeus verrattuna kiskokytkinten nopeuteen tekee tämän ominaisuuden tarpeettomaksi.
Kaikki ohjelmasilmukat, jotka odottavat jonkin kisko- kytkimen sulkeutumista tai avautumista, tutkivat myös, onko painettu ohjauspäätteen lopetus-painiketta. Näin
ehkäistään ohjelman jääminen jatkuvaan silmukkaan jonkin odotetun kiskokytkinsignaalin jäädessä tulematta,
petus-painikkeen painaminen saa aikaan ohjelmallisesti keskeytyksenomaisen hypyn suoraan tulostusohjelmaan.
Lo-
Kiskokytkinten tarkkailu tapahtuu seuraavasti (ohjelmat KKX ja KKY):
ALKU
Onko
painettu lo^>
pb<us-pajXiketta?
Onkox.
iskokytkinX x^sulkeutuRlit ?
^'Onko painettu
■bqpetus- z- pa rhilcai^fa ?
*
^/önko kiskokytki s-avautunu*1
U
?
Tulostus- ohjelmaan
(
loppu^
44
4.2.3.3 Veturin akselien eliminointi tapahtuu laskemalla kisko- kytkin X : n sulkeutumisia ja vähentämällä systeemi-
alueella olevan ELA-rekisterin sisältöä. Ko. rekisteriin on ennen punnitusta talletettu eliminoitavien akselien lukumäärä kahdella ASCII-numerolla.
ALKU -*»
ELÄ ELA-1
ELÄ < 0?
KK X
g
LOPPUTulostus- ohjelmaan
4.2.3.4 Vaunun yhden akselin tai telin punnitus nopeuden tark- kailuineen tapahtuu lohkokaavion osoittamalla tavalla.
Nopeuden tarkastus onnistuu vakiokestoisen ohjelmasil- mukan avulla, kun tiedetään kiskokytkinten välinen etäi
syys (1,125 ra), prosessorin kierrosaika (4,5 us) sekä eri käskyjen suoritukseen vaadittavien kierrosten luku
määrät. Ohjelmasilraukoiden lukumäärä lasketaan vähentä
mällä etukäteen asetettuja CPU:n D ja E -rekistereitä.
Mikäli tutkittava kiskokytkin sulkeutuu ohjelman vie
lä pyöriessä em. silmukassa, tiedetään junan nopeuden olevan liian suuri, keskeytetään punnitus ja hypätään hälyty s o h j eImaan. HälytysohjeIma sammuttaa junan kul
jettajalle tarkoitetun merkkivalon ja tekee hälytys- ilmoituksen kirjoittime11a.
(vaunun yhden akselin tai telin punnitus)
46^ ALKU ^
KK X
Asetetaan Dja E rekit alkuarvoi- hmsa
nko painettu lo etuspaini-
ketta
^ ? -
o \kyt- ulkeu- /xisko kin Y s
\tunut
?
Dekrementoi- daan D,E-re- kisteriparié
Hälytys- ohjelmaan D,E = 0
?
KK Y
g
Punnitus
Tulostus
ohjelmaan LOPPU
loksen käsittely tapahtuu seuraavasti :
ALKU
Annetaan punnituksen aloituspulssi
Valmis ?
Luetaan vaa'an lukema punnitusrekis- teriin
Vähennetään perustaara- rek:n sisältö punnitusrekis- tenstä
Viedään pun- nitusrek: n sisältö näyt
töön
Summataan pun- nitusrek: n sisältö VSUM- rekisteriin
Ç LOPPU ^
VSUM (vaunun summapaino)-rekisteri nollataan aina uuden vaunun punnitusta aloitettaessa.
Vastaava kiskokytkin
XMASK 01000100 tämän ykkösen merkitys selviää kohdas
sa telipunnitus; 4 teliä/vaunu i
YMASK ; juna saapuu KK1:n suunnasta KK3 : n
00010000
11 11 H
00000001 5
I Vaunun -Ф-
II akseliin
punnitus I
Vaunu- painon
talletus
\z
Tulostus-oh
jelmaan pai
nettaessa lo- petuspaini- ketta
Hälytys-oh
jelmaan ju
nan nopeu
den ylittä
essä kynnys
arvon
Mikäli juna saapuu kiskokytkin 1:n suunnasta, toimii kisko- kytkin 3 punnituksen aloitushetken määrääjänä ja päinvastoin.
Kiskokytkin 2 aloittaa kummassakin tapauksessa ajan laskennan nopeuden tarkistusta varten.
Maskirekisterit asetetaan kohdassa 'junan suunnan päättely' seuraavasti eikä niitä muuteta punnituksen aikana.
48
AKSELIPUNNITUS 4.2.3.6
(punnitustapa 1)
ALKU
Junan suunnan päättely
^T-
I I
Veturin akselien
Vaunun I akselin punnitus
KK1
KK2
KK3
Г
•H
Akselin
ohitus --- #4 I
Hälytys- ohjelmaan Vaunupai-
non tal
letus
Tulostus- ohjelmaan
Maskirekistèrit asetetaan kuten akselipunnituksessakin ja ne säilyvät muuttamattomina punnituksen aikana. Telin jäl
kimmäisen akselin ohitus varmistetaan kiskokytkin Y:n avul
la. (Akselin ohitusohjelma = KKY) I I
-H I I I A_
Telipunnitus kahden telin tapauksessa tapahtuu lähes samoin kuin akselipunnituksessakin (punnituksen aloitus tapahtuu samassa vaiheessa ja vaunun paino muodostuu kahden punni
tuksen summana), ainoana erona on, että telin jälkimmäi
sen akselin tulee ohittaa kiskokytkimet aiheuttamatta mi
tään punnitus- tai ajanlaskentatoimintoa.
ALKU
Junan suunnan päättely
Vaunun II telin punnitus Vaunun I telin punnitus Akselin ohitus Veturin akselien eliminointi
I------
1
II
50 4.2.3.8 TELIPUNNITUS; 4 teliä/vaunu (punnitustapa 3)
Tässä tapauksessa vaunupaino muodostuu neljän punnituksen summasta. Lisäksi joka toisen punnituksen on alettava eri kohdassa kuin toisen. Toisin sanoen maskirekistereiden si
sältöä on käytävä muutamassa aina punnitusten välissä.
^ ALKU ^
Junan suunnan päättely
% Veturin aks: ien
eliminointi
Vaunun I telin punnitus_______
Akselin ohitus Maskirek: ien muuttaminen
Vaunun II telin punnitus ---
Akselin ohitus |--- ^-|
I
Maskirek: ien
muuttaminen
I
Vaunun III te ---U
lin punnitus
I
I
-IAkselin ohitus -n
I
Maskirek: ien I muuttaminen
I
Vaunun IV te
lin punnitus I Akselin ohitus -
I Maskirek: ien
muuttaminen
\z Vaunupainon
talletus Tulostus-
ohj elmaan
Hälytys- ohjelmaan
00000001 00010000
; juna saapuu KK1: n suunnasta KK3 : n
XMASK
II II tl
YMASK 01000100
Joka toisen punnituksen aikana maskirekisterien tuleekin olla näin asetettuna. Joka toisen punnituksen aikana telman tulee kuitenkin olla
ase- seuraava:
XMASK 01000100
00010000 00000001
; juna saapuu KK1:n suunnasta KK3 : n
YMASK
v h ti
3
Tässä onkin maskien käytöllä saavutettu asioiden yksinkertaisuus: maskirekisterien muuttaminen voi"
aina tapahtua yhdellä ja samalla ohjelmalla, joka ainoastaan vaihtaa X- ja Y-maskirekisterien sisäl-
Kiskokytkinsignaalien tuominen ottorekistereiden tiettyi- hin hitteihin sekä kiskokytkin 2:ta tutkittaessa maskire- kisterissä oleva ylimääräinen bitti palvelevat juuri tätä maskirekisterien muuttamisen yksinkertaistamista. Junan
suunnan päättelyvaiheen jälkeen itse ohjelman ei tarvitse olla tietoinen maskirekisterien sisällöstä, saati sitten niitä todellisuudessa vastaavista kiskokytkimistä!
Maskirekisterien käsittely neljän telin vaunujen punni
tuksessa.
Junan Suunnan päättelyvaiheessa asetetaan maskirekisterit seuraavasti:
KK1
KK2
KK3 •%Ф
H H
cd?I:^
•HO£
rh
CD
iu:
M H
CDp:rh•H
•n!y
ti'CD
h•H•HCfl
cd
H
Hcdh
cd
CO
ti
o:
H
52
4.3 MUISTIN KÄSITTELY
Sivu (1 sivu = 256 tavua á 8 bittiä) O X
8
48
Ohjelmamuisti (lukumuisti)
sivut 0-16„ (3,75 Kb)
1 08 /
e
1 48
208
Työmuisti
(luku/kirjoitusmuisti) sivut 20g-338 (3 Kb) Koneen
muistiava- / ruus
148 \ \
>
X
sivut 0-77 yht. 16 Kb
8 308
348
408
708
74 8
54
4.3.1.1 Työmuisti (luku/kirjoitusmuisti)
Järjestelmässä on käytetty työmuistia 3 kilotavua, joka sijoittuu muistiavaruudessa sivuille 20 Työmuis
ti jakaantuu ns. systeemialueeseen ja pesäaltaaseen. Sys- teemialueen muodostaa 79-merkin mittainen tulostuspuskuri
8 338 •
sekä erilaisten osoittimien ja kiinteiden tiedontallennus- paikkojen varaama alue.
Pesäallas on jaettu kokonaisuudessaan 8 tavun mittaisiin kenttiin, joita kutsutaan pesiksi,
raava.
Pesän rakenne on seu-
0 1 2
Pesän runko 3 >
4 5
6 Pesien ketjutukseen
käytettävä osoitin 7
Pesän runko-osa käytetään paino- tai muiden tietojen tal
lentamiseen tai ylimääräisille osoittimille.
Muistin initialisoinnin jälkeen pesäaltaan kaikki pesät ketjutettu vapaaksi muistiksi. Vapaan muistin ensimmäistä pesää osoittaa systeemialueella oleva AVAIL-osoitin.
on
Systeemialue (osoitteet oktaalisina)
Sivu Alaosoite Nimi Selitys
020 000 - 116 79 merkin mittainen tulostus- puskuri
II 117 KIVI
Kirjoittimen rivilaskuri 11
120
,121
Z Osoitin pinon päällimmäiseen junatauluun
tl 122, 123 AVAIL Vapaan muistin pino-osoitin 11 124, 125 CTR
Juna-osoittimet i
II 126, 127
PRTR 11 130, 131
cw
Vaunuosoittimet
(Osoittimien tarkemmat seli
tykset kohdassa "Muistin hal
linta" ) II 132, 133
zw
II 1 34 - 137 PTR
Perustaararekisteri II 140 - 143
JNO Junanumeron tallennuspaikka
II 144 RNO
Runkonumeron tallennuspaikka
II 145 STATUS
Status-tavun tallennuspaikka II 146 - 1 51
OJNO Aikaisemmin punnitun junan numeron tallennuspaikka 11 1 52 ORNO Aikaisemmin punnitun junan
runkonumeron tallennuspaikka II 153 - 154 ELÄ
Eliminoitavien akselien luku
määrä
II 155 PTAPA Punnitustavan numero
II 156 XMASK
Kiskokytkinten tarkkailussa tarvittavat maskirekisterit.
II 1 57 YMASK >
56
Sivu Alaosoite Nimi Selitys
‘ 020 160 - 163 PR Punnitusrekisteri
II 1 64 - 1 67 NR Näyttörekisteri
II 170 - 177 JSUM Junan summapaino tl 200 - 205 VSUM Vaunun summapaino
II 206, 207 DAY Päivä
II '210, 211 MONTH Kuukausi
Päivitettävää päivämäärä- ja kellcnaikatie- toa
II 212, 213 YEAR Vuos i
II 214, 215 HOUR Tunnit
II 216, 217 MIN Minuutit
II 220, 221 ODAY
II 222, 223 OMONTH Tulostuksen yhteydessä tar- ' vittavia päivämäärä- ja
kellonaikatietojen tallen
nuspaikkoja
II 224, 225 OYEAR
II 226, 227 OHOUR
II 230, 231 OMIN
II 232, 233 VNO Vaunun numero
11 234 TEST Muistin säilymisen testaus- paikka
Pesäallas käsittää osoitteet 020.240 - 033.377 ( 364 8:n tavun mittaista pesää)
4.3.2.1 Asetetut vaatimukset
Yleistä
Järjestelmä suorittaa kolmenlaatuisia punnituksia:
brutto-, taara- ja nettopunnituksia. Nettopunnituksen yhteydessä koneen muistissa tulee olla aikaisemmin pun
nittuna (tai sinne manuaalisesti kirjoitettuna) junan taara- tai bruttopainot.
saman (Järjestelmä suorittaa automaattisesti tästä tarkastuksen ennen nettopunnituk
sen aloittamista.
Talletusten kesto
Punnitustuloksia on voitava säilyttää muistissa
a) vain punnitusilmoituksen kirjoittamiseen asti.
lostuksen jälkeen tiedot poistetaan muistista,
nettopunnituksen yhteydessä tiedot aina tuhotaan tu
lostuksen jälkeen.
Tu- Es im.
b) Seuraavaan saman junan nettopunnistukseen asti. (Kos
kee vain taara- ja bruttopainoja.) Nettopunnituksen yhteydessä tiedot käytetään hyväksi, jonka jälkeen ne poistetaan muistista.
c ) Kunnes ne erillisellä ohjelmalla poistetaan muistista.
Tämä koskee vain taarapunnitustuloksia ja painojen sa
notaan tällöin olevan talletettuna vaunurekisteriin (puhutaan myös taararekisteristä).
Talletettavat tiedot
Jokaisesta punnituksesta tulee jäädä muistiin paitsi nupainot myös seuraavat tiedot:
vau-
58 Junanumero
Runkonumero
Punnituksen päivämäärä Punnituksen kellonaika Koko junan summapaino
' Käytetään junan identifioinnissa
Onko kyseessä taara-, brutto- vai nettopainot Tieto tailetustavasta (talletuksen kestosta)
Tulostuksen asettamat vaatimukset
Tulostuksessa vaunu n:o 1:n tulee aina olla junan tie
tyssä päässä, oli punnitussuunta (eli vaunujen punnitus- järjestys) kumpi tahansa. Ts. tarvittaessa vaunut on voitava tulostaa punnitukseen nähden päinvastaisessa järjestyksessä.
4.3.2.2 Tietorakenteiden kuvaus
Kaikki punnitustulokset talletetaan 8 tavun mittaisista pesistä muodostettuihin, erikoisesti tätä sovellutusta varten suunniteltuihin rakenteisiin. Näiden osina toimi
vat ns. Junataulu (1 pesä), infotaulut (4 pesää) ja nutaulut (0-n pesää).
vau-
Junataulu sisältää neljä kappaletta osoittimia:
1 . Osoitin seuraavaan junatauluun. Junataulut muodostavat keskenään ketjutetun pinon, jossa viimeksi punnitun ju
nan junataulu on päällimmäisenä, mii systeemialueella oleva Z-osoitin.
Pino-osoittimena toi-
г.
Osoitin junan info-ketjuun, muodostama ketju,ki junakohtaiset tiedot (j status-tavu
kä koko junan summapaino).
Info-ketju on neljän pesän Pesien runko-osiin talletetaan kaik
una- ja runkonumerot, junan , punnituksen päivämäärä ja kellonaika + )
se-
+) Status-tavusta ilmenee talletustapa, onko kyseessä brutto-, taara- vai nettopunnitus sekä junan tulosuun
ta.