Styring av en vaskemaskin

Gruppeoppgave om:

H-P Ulven 30.08.16

Vaskemaskin

En vaskemaskin består av følgende hoveddeler:

Systemskisse

Her er DI og DU registre for Digtal Inn og Digital Ut.

A1 og A2 er registre som mottar et tall som er konvertert fra ett enkelt analogt signal.

Registre

Vi forenkler og konsentrerer oss om disse måle- og styreverdiene i de to digitale registrene:

Innsignaler register DI:

 

Bit nr: 7 6 5 4 3 2 1 0
128
 64 
 32 
 16 
  8 
  4 
  2 
  1 
Temperatur
nådd
  Tomt for
vann
      Nivå
Nådd
 

Utsignaler til register DU:

Bit nr: 7 6 5 4 3 2 1 0
128
 64 
 32 
 16 
  8 
  4 
  2 
  1 
  Varmeelement Pumpe Tømmekran Fyllekran Fort Bakover Fremover

 

Programmering

Vi tenker oss at vår lille datamaskin som skal styredenne vaskemaskinen blandt annet har følgende instruksjoner:
(Vi trenger nå også noen test- og gjentagelsesinstruksjoner)

Instruksjon: Eksempel: Forklaring:
WRITE( <reg>, <tall>) WRITE(DU, 5) Skriver tallet 5 til register DU.
Motoren vil da gå fremover og med største hastighet.
tall = READ( <reg>) tall = READ(DI) Hvis vannivået er nådd og ønsket temperatur er nådd,
vil variabelen tall inneholde tallet 130.
tall = AND(<tall>,< tall>) tom = AND(32, tall) Hvis variabelen tall inneholder 130 vil variabelen tom bli 1,
fordi bit nr 5 som tilsvarer 32 inneholder 1.
Vi "maskerer ut", eller sjekker om bit nr 5 er 1 eller 0.
WAIT( <tall>) WAIT(500) Datamaskinen vil vente og ikke gjøre noe i 500 millisekunder.
REPEAT

UNTIL(<variabel>=<tall>)
WRITE(DU,48)
REPEAT
   WAIT(5000)
   tall=READ(DI)
   tom=AND(32,tall)
UNTIL(tom=1)
WRITE(DU,5)
WAIT(300000)
Instruksjonene mellom REPEAT og UNTIL gjentas inntil variabelen får verdien tall.

Eksempelt viser hvordan vi kan kan vente til pumpen er ferdig med å tømme ut vannet
før vi starter sentrifugering.

LOOP(<tall>)

ENDLOOP
LOOP(20)
   WRITE(DU,1)
   WAIT(5000)
   WRITE(DU,2)
   WAIT(5000)
ENDLOOP
Gjentar alle instruksjonene som står mellom LOOP() og ENDLOOP instruksjonene.
Så sekvensen med 5 sekunder forover og 5 sekunder bakover vil bli gjentatt 20 ganger.

 

Oppgaver

Lag et program som kjører en vanlig "hovedvask", som kort og stikkordsmessig kan beskrives omtrent slik:

Fyll vaskemaskinen med vann

Varm opp vannet til ønsket temperatur

Kjør 5 ganger fremover, vent 3 sekunder, kjør 5 ganger bakover 3 sekunder. Dette gjentaes 20 ganger.

Tøm vaskemaskinen for vann

Sentrifuger