Industriella Styrsystem Övningskompendium

Storlek: px
Starta visningen från sidan:

Download "Industriella Styrsystem Övningskompendium"

Transkript

1 Industriella Styrsystem Övningskompendium 27 mars 2012 REGLERTEKNIK AUTOMATIC CONTROL LINKÖPING Reglerteknik, Institutionen för systemteknik, Linköpings universitet, Linköping

2 Detta kompendium har utvecklats under flera år av olika lärare i reglerteknik vid Linköpings universitet.

3 Del I Uppgifter 1

4

5 Kapitel 1 PLC-programmering II Följande uppgifter är av lite mer krävande karaktär än i förra kapitlet och målsättningen är att tillämpa stegkodsprogrammering på mer komplicerade problem. När kommer ni istället för att få en lista på operationer som ska utföras, få ett problem som ska lösas med hjälp av stegkodsprogrammering. Ta för vana att skriva upp en tabell med vilka register som ni använder och vilka skalfaktorer som de innehåller. Definerar flaggor och register när ni tycker att de saknas. 1.1 Överfyllnadsskydd (fort.) Under laboration 1 införde ni ett överfyllnadsskydd till det skelett som visas i figur??. Detta skydd slog om regulatorn till manuellt läge med styrsignal 0 om nivån i någon av tankarna översteg ungefär 90% av maximal nivå. För att komma ur detta läge måste man sedan manuellt återställa regulatorn tillbaka till automatiskt läge. Detta kan vara ett problem i situationer när processer är oövervakade. Vi vill därför införa någon automatik som återställer regulatorn till automatiskt läge om något villkor är uppfyllt. Komplettera därför den struktur som ni använde under laboration 1 som överfyllnadsskydd med följande: a) om nivån i båda tankar är mindre än 60%, så återställs drift i automatiskt läge. (tänk på att detta inte ska ske om vi är i manuellt läge från början, utan bara när ett överfyllnadslarm verkligen har löst ut). b) om överfyllnadslarmet har löst ut och automatisk drift har återsällts enligt villkoret i föregående uppgift, 5 gånger så ska ingen mer automatisk återställning ske. c) inför begränsningen att dessa 5 gånger måste inträffa inom 2 minuter för att ingen mer automatisk återställning ska ske. Programmet körs i 100 Hz och därmed ska time base vara 0.01 sekunder. 3

6 4 KAPITEL 1. PLC-PROGRAMMERING II d) slutligen, ersätt de fasta gränserna för skyddet samt återställningen med variabler. Inför två register där man kan ange vilken nivå (i procent av maximal fyllnadsnivå) då de två händelserna ska utföras. Tips: Skalning, registernamn och stegkodsprogrammet till laboration 1, hittar ni i föregående kapitel i tabell?? samt figur??. För c) använd en timer för att återställa räknaren för antal återställningar. 1.2 Automatisk lastning Ett sätt att utföra en operation med visst intervall är att använda en timer. Tänk dig att du har en process där en vagn ska fyllas med järnmalm ur ett lager. En flagga N11:17/0 indikerar att en ny tom vagn inväntar järnmalm. Använd en timer för att ettsätta variabeln N11:17/4 (som styr att bandet som fyller vagnen med järnmalm körs) under exakt 10 sekunder eller tills dess att N14:1/2 (vagnens överfyllnadsskydd) är ettsatt. PLC-programmet körs i 70 Hertz. Skriv ned både psuedokoden samt ett RSLogixschema som löser detta problem. 1.3 Att undvika förgreningar Antag att vi har ett program med tester och förgreningar till ett djup av 3 enligt: N7:0/1 ADD N9:10 N9:11 N9:12 S:5/0 N9:10/15 MOV N9:12 N9:10/15 MOV N9:12 S:5/0 U Om man vill ha ett test i koden som kräver att flera villkor är uppfyllda samtidigt kan man seriekoppla testen. Till exempel kommer programmet

7 1.4. FYLLNADSBEGRÄNSNING 5 N7:0/1 S:5/0 N9:10/15 MOV N9:12 endast utföra MOV-instruktionen om N7:0/1 är hög, S:5/0 är hög, och N9:10/15 är låg. Antag för övnings skull att förgreningar inte är tillåtna alls. Rita om programmet utan förgreningar! 1.4 Fyllnadsbegränsning Vi har ett system med två likadana tankar. Bordet de står på är feldimensionerat och klarar inte av tyngden om båda tankarna är fyllda, utan riskerar att gå sönder om den totala fyllnadsgraden är större än tyngd motsvarande 1, 4 ggr en fylld tank. Därför vill man larma då de två tankarna tillsammans är fyllda till mer än motsvarande 1, 2 ggr en fylld tank. Nivån för tank 1 lagras i register I:3.0 och nivågivaren ger data i intervallet Nivån för tank 2 lagras i register I:3.1 och nivågivaren ger data i intervallet Ett larm körs då register N10:0 sätts till 1. Det finns även tomma register, N9:0-N9:2. Skriv ett RSLogix-program som larmar då den totala vattenmängden är för stor. (Du behöver inte nollställa larmet.) Tips: Börja med skalning av variabler (här kan t.ex. % vara en lämplig enhet att arbeta i). Skriv sedan upp pseudokod för vad du vill göra och översätt till sist denna till RSLogix-kod. 1.5 Regelbaserad styrning av vattenkokare Vi har en speciell vattenkokare, som kan koka vatten till 70, 80 eller 100 grader. Denna nivå kan man välja med hjälp av en brytare som finns på vattenkokaren. Vi vill nu använda oss av regelbaserad reglering, där man ställer ut en utsignal beroende på regler som beror på insignalen. Lös nu följande uppgifter: a) vad är in- respektive utsignal i detta fall. b) vad är lämpliga regler för styrningen av vårt system? Kom ihåg att vi vill hålla temperaturen kring varje nivå men vi kan tillåta temperaturen att avvika några grader. c) skriv nu ett stegkkodsprogram som ska göra följande: i) ettställer värmaren för alla tre fall när vattnet är för kallt (använd intervallen från b). Börja med att skriva pseudokod om det hjälper dig.

8 6 KAPITEL 1. PLC-PROGRAMMERING II ii) När man programmerar brukar man vilja återanvända så mycket kod som möjligt. Kan du skriva om programmet på endast en rad? iii) Utöka din stegkodning så att en lampan indikerat om vatten är kallt eller varmt för att man inte ska bränna sig. Lampan ska vara blå när vatten är kallare än 40 grader. När vattnet är varmare ska lampan bli röd. Skriv denna utökning på samma rad som ni hade i föregående uppgift. Vattenkokaren har en temperaturgivare som nås genom registret I:1.0 och är kalibrerad så att 0 betyder 0 grader och betyder 100 grader. Värmaren nås genom registret O:1.0 och är endast en binär variabel där 0 betyder att värmaren är avstängd och 1 betyder att värmaren är på maximal effekt. Registren O:1.1 och O:1.2 styr den röda respektive blåa lampan på samma sätt som med värmaren. 1.6 Bilsortering Vi har en bilsorterare som kan detektera om bilen är blå, röd eller gul med hjälp av en sensor. För alla tre fall vill vi transportera bilen till ett och samma magasin. Vi vill också räkna hur många blåa, röda och gula bilar som har passerat sensorn. När vi har antingen tre blåa, röda eller gula bilar, vill vi införa ett alarm så att någon transporterar bilar vidare. Dock vill vi inte att larmet ska låta kontinuerligt utan pipa till vart tredje sekund. Personen som kommer för att transportera bilar ska kunna återställa alarmen. Skriv pseudokod och stegkodningen. Du behöver bara fyra rader för att lösa problemet!

9 Kapitel 2 Överspill 2.1 Addition med binära tal Genomför följande additioner i binära tal. Blir resultatet det förväntade? a) b) ( 10) + 12 c) 10 + ( 12) d) ( 10) + ( 12) 2.2 Multiplikation med överspill Vi vill nu multiplicera följande tal, vad blir resultatet om har obegränsat med bitar? Vad blir det om vi har tillgång till 6 bitar? Om överspill inträffar antar vi att svaret avrundas till det närmaste tal som kan representeras. a) 5 ( 6) b) 7 7 c) Vad måste vi göra för att få plats med alla bitarna i uppgift b)? 2.3 Skalad addition med överspill Vi vill addera två tal a och b, talet a är lagrat som 5 med en skalfaktor på 1, och talet b är lagrat som 7 med en skalfaktor på 2. För att kunna addera talen måste de ha samma skalfaktor. Det finns (minst) två sätt att göra detta. När kan de olika sätten vara bra att använda? Motivera svaret. 7

10 8 KAPITEL 2. ÖVERSPILL 2.4 Överspill i P-regulator Vi har nu bestämt oss för att göra en P-regulator, och vill utföra multiplikationen K e. e har skalfaktorn 1 och K har skalfaktorn 16. Vi vill att resultatet ska ha skalfaktorn 1. Vi har inte möjlighet att utföra multiplikationen först och sedan skala ned resultatet, utan måste skala ner antingen e eller K (eller båda två). Vilken eller vilka variabler skulle du skala ner och varför? 2.5 Skalad multiplikation med överspill I Vi vill nu återigen multiplicera a och b. Denna gång är a representerat som 4 och b representerat som 6 där båda har skalfaktor 2. Vi vill att resultatet ska ha skalfaktor 1. Vi har endast tillgång till 6 bitar. Om överspill inträffar, avrunda till närmaste tal som går att representera. Genomför multiplikationen genom att a) Först genomföra multiplikationen a b och sedan skala resultatet så att skalfaktorn är 1. b) Först skala b så att b har skalfaktorn 1 2, och sedan genomföra multiplikationen. Vad blir resultetet? c) Vilken av ordningarna är att föredra? Varför då? 2.6 Skalad multiplikation med överspill II Samma uppgift som i uppgift 2.5, men nu är a = 4 och b = 14. Både a och b har skalfaktor 2. Vi vill att resultatet ska ha skalfaktor 1. Vi har endast tillgång till 6 bitar. Om överspill inträffar, avrunda till närmaste tal som går att representera. Genomför multiplikationen genom att a) Först genomföra multiplikationen a b och sedan skala resultatet så att skalfaktorn är 1. b) Först skala b så att b har skalfaktorn 1 2, och sedan genomföra multiplikationen. Vad blir resultetet? c) Vilken av ordningarna är att föredra? Varför då? 2.7 Överspillshantering i stegkod Efter att ha gjort uppgifterna 2.5 och 2.6, tänk ut ett bra sätt att genomföra multiplikationen a b. Rita gärna ett stegdiagram (ladder diagram) eller skriv pseudokod för hur du tänkt.

11 2.8. ÖVERSPILL I PID-REGULATORN Överspill i PID-regulatorn I PID regulatorn har vi tre olika bidrag till styrsignalen: bidragen från den proportionella, integrerande och deriverande återkopplingenn. Alla tre bidrag måste adderas för att vi ska kunna ställa ut en styrsignal till pumpen. Kommer ihåg att additionsblocken kan bara addera två olika värden. Vi måste därför addera två bidrag i en första steg och det tredje bidraget i ett andra steg. a) Ställ upp en pseudokod för detta samt ett stegkodsprogram. b) Låt bidraget från P-delen vara 24000, från I-delen vara och från D- delen vara Alla bidrag har skalfaktor 1. Försök nu addera dessa tal i alla möjliga ordningar. Vilka olika svar får vi? Glöm inte att PLC:n har begränsnad precision och maximala värde i PLC:n är 32767! c) Vi kan lösa problemet med överspill för detta fall genom att välja en lämplig ordning vid additionen. Men när talen i de olika delarna förändras, så kan vi råka ut för problem med överspill igen. Hur kan man använda skalning för att lösa detta problem? Lösningen ska inte bli perfekt för det här problemet men ska lösa alla problemen så bra som mögligt.

12 10 KAPITEL 2. ÖVERSPILL

13 Del II Lösningar/Svar 11

14

15 Kapitel 1 PLC-programmering II Vi vill först skala om de två nivåerna med skalfaktorerna 8 resp. 120 för att få båda nivåerna i %. Därefter adderas de (okej eftersom de båda är i %) och den totala volymen beräknas. Om denna är för hög sätts larmregistret. Pseudokod: (:= betyder tilldelas) N9:0 := I:3.0 / 8 [skala om nivå tank 1 till \%] N9:1 := I:3.1 / 120 [skala om nivå tank 2 till \%] N9:2 := N9:0 + N9:1 [total vattenmängd i tankarna i \%] if N9:2 >= 120 [om nivån är för hög] N10:0 := 1 [sätt larmregistret] end if 13

16 14 KAPITEL 1. PLC-PROGRAMMERING II Figur 1.1: Lösningsförslag till uppgift

17 Kapitel 2 Överspill 2.1 a) (22) b) (2) c) (-2) d) (-22) 2.2 a) I båda fallen blir svaret 30 (100010) b) Har vi obegränsat med bitar blir svaret 49, (110001). Har vi endast tillgång till 6 bitar blir svaret 31 (011111). Observera att talet är lika med 15 eftersom den första biten är en teckenbit. c) Vi måste skala ner någon eller båda av talen. 2.3 Vi måste skala bitarna så de har samma skalfaktor. Vi kan antingen skala upp a eller skala ner b. Att skala ner b leder till minskad precision, men svaret tar upp färre bitar. Att skala upp a leder till bättre precision men riskerar att orsaka överspill. 15

18 16 KAPITEL 2. ÖVERSPILL 2.4 Förmodligen är det så att skalfaktorn med för K är vald med omsorg för att få mesta möjliga upplösning i K. Isåfall är det bäst att skala ner e eftersom de sista bitarna är de mest brusiga, och informationen som förloras isåfall inte är viktig a) Då blir svaret 6. b) Då blir svaret 4. c) Det är bäst att först utföra multiplikationen och sedan skala resultatet eftersom man då inte förlorar någon information. a) I multiplikationen inträffar överspill, och svaret blir därför 7. b) Nu inträffar inget överspill, och restultatet blir 12, vilket inte är det rätta värdet (vilket skulle vara 14), men det är bättre än att först utföra multiplikationen och sedan skala resultatet. c) I detta fallet är det bästa att först skala svaret eftersom om överspill inträffar så förloras mer information. Ett bra sätt att göra det på är att först försöka genomföra multiplikationen a b och undersöka om överspill inträffar. Om överspill inte inträffar skalar man ner resultatet och sparar undan det. I annat fall, dvs om överspill har inträffat skalar man först ner en eller båda variablerna och utför därefter multiplikationen. 2.8

19 Del III Bilagor 17

20

21 Bilaga A Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer och strukturer som främst används i programvaran RSLogix. En del av det diskuterade materialet är även tillämpligt i andra programmeringsspråk. Vi skiljer på operationer och villkor när vi programmerar. Vanliga villkor kan exempelvis vara IF-satser och matematiska villkor (såsom olikhet, likhet, osv.). Operationer kan vara multiplikation, addition eller manipulation av enskilda bitar. Vi gör även skillnad på register- och bitvisa operationer/villkor. Den första typen förändrar/kontrollerar talet som lagras i hela registret och den andra typen förändrar/kontrollerar bara värdet av en bit 1. Slutligen kan vi placera operationer och villkor i strukturer är att göra mer avancerade program. Vi kommer nu i tur och ordning redogöra för dessa begrepp i mer detalj och även ge exempel på hur de kan användas. A.1 Datatyper och variabler Datatyper kallas de olika typer av data som man kan spara i variabler och liknande. I de flesta programmeringsspråk idag är dessa av typen double vilket är stora flyttal (decimaltal). Inom PLC-programmering är det dock mer vanligt med typen integers (heltal) av en relativt begränsad storlek. Vanligt är att varje integer (i vårt fall) kan innehålla maximalt 16 bitar (varav en teckenbit). En annan typ av data är flaggor eller booleanska variabler, dessa kan antingen vara 0 (falskt) eller 1 (sant). Varje integer kan således innehåller 16 flaggor. 1 Kom ihåg att ett register Nx:y innehåller 16 bitar. Vi når hela registret om vi använder den tidigare hänvisningen och vi kan nå bit z genom att använda oss av adressen: Nx:y/z där z = 0, 1,..., 15 och 15 betecknar registrets teckenbit. 19

22 20 BILAGA A. GRUNDERNA I STEGKODSPROGRAMMERING Variabler av heltalstyp lagras som ett register under en datafil. En datafil benämner man som Nx där x är något heltal. Ett exempel på detta är det första registret i datafilen N9 som betecknas N9:0. Om vi istället vill använda registret för att lagra flaggor kan vi använda följande beteckning Nx:y/z där y är något register och z är en bit i registret. I N9:0 kan vi därför lagra flaggor med namnen N9:0/0 upp till N9:0/15 (som också är teckenbiten). Egentligen lagras heltalen i varje register som ett binärt tal. Detta innebär att ett 16-bitars heltal egentligen är 16 platser som vardera kan innehålla 0 eller 1. Vi kan därför se ett heltal som 16 lådor där varje låda också kan vara en flagga. Vi kan undersöka innehållet i en låda genom att använda /-operatorn. Om vi använder oss av operationer som påverkar hela registret kommer vi antagligen att påverka alla bitar/lådor som finns på den adressen. Därför kommer vi göra skillnad på register- och bitvisa operationer. Det är även viktigt att endast använda ett register till enbart flaggor (där varje bit/låda representerar en enskild sak) eller för att presentera ett heltal (där alla bitar/lådor används för att representera en sak). A.2 Villkor Vi fortsätter med några speciella villkor som finns att tillämpa i stegkodsprogrammering. Några exempel på dessa villkor finns i tabell A.1 nedan. Det finns två Tabell A.1: Vanliga villkor i stegkodsprogrammering Typ Kod Symbol Förklaring x:x/x Bitvis XIC x:x/x Testa för hög bit XIO Testa för låg bit Registervis EQU Testa = GEQ Testa GRT Testa > LEQ Testa LES Testa < Special TON Timer för nedklockning RES RES Nollställ timer enkla vanliga bitvisa villkor, nämligen testa för hög bit (ettsatt eller sann) och för låg bit (nollsatt eller falsk). Vi får passera genom dessa villkor om registret som villkoret pekar på faktiskt är ettsatt respektive nollsatt. Denna typ av villkor har alltså ett argument, det register som man vill undersöka om det är ettställt eller nollställt. För att använda oss av dessa jämförelser behöver vi bara använda

23 A.2. VILLKOR 21 respektive grind ur tabell A.1 och byta ut argumentet x:x/x till rätt bitadress. Vi förändrar dessa bitar genom de två operation som diskuteras i det kommande avsnittet om operationer. Stegkodningsspråket som vi kommer att nyttja på kursen innehåller även matematiska villkor. Dessa är exempelvis att testa för likhet och olikhet. I tabellen ser ni några exempel på dessa uttryck som har två argument. Vanligtvis fungerar dessa block att om villkoret A B är uppfyllt får vi passera. kan exempelvis vara likhet (=) eller större än eller lika med ( ). I dessa block skriver vi således in argument på två rader där den första raden är källregister A och den andra är källregister B. Vi har därför två argument i denna typ av villkor. Vi avslutar diskussionen om dessa enklare villkoren med två exempel som visas nedan. I det första exemplet är villkoret att 5000 N9:1 och om detta är uppfyllt får vi passera villkoret. Lägg här märke till att vi kan använda oss av både register och tal i vår jämförelse här kan bytas ut till vilket heltal som helst eller ett register, som vi snart kommer att se. I det andra exemplet är villkoret att talen som lagras i register N9:0 och N9:1 ska vara lika. Om talen är lika får vi passera villkoret och då utförs det som står på höger sida av samma rad. Även här är det tillåtet att byta ut ett av registren till ett heltal. Genom att använda förgreningar och placera dessa villkor i rad kan vi vidare skapa de flesta logiska satser. Detta kommer vi att diskutera i ett senare avsnitt. A.2.1 Timers En sista typ av villkor är specialvillkor som bland annat innefattar timer och räknare. Timers byggs upp av ett block som ettsätter en bit när en visst uppräkning är slutförd. Som användare kan man ställa in hur ofta man ska räkna upp räknaren, alltså sätta i = i + 1, och vilket som är målvärdet i end. När man sedan når målvärdet med räknaren, alltså då i = i end ettsätter man biten DN annars (när i i end ) så är istället biten EN ettsatt. Ett timerblock ser i praktiken ut som följer:

24 22 BILAGA A. GRUNDERNA I STEGKODSPROGRAMMERING TON Timer Time Base Preset Accum Tn:0 t i end i start Tn:0/EN Tn:0/DN där Tn:0 är blockets namn, jämför PID-blocket i laboration 1. Time base indikerar hur lång tid som det ska ta innan man räknar upp variabeln Accum, alltså sätter i = i + 1. Time base beskriver denna tid i sekunder, så om man skriver 0.01 i denna variabel räknar man upp i hundra gånger per sekund, eller i 100 Hz. Preset är målvärdet som man önskar och Accum är det nuvarande värdet på i. Bitarna Tn:0/EN samt Tn:0/DN är ettsatta när vi har inte har nått respektive när vi har nått vårt målvärde. Vi avslutar detta med ett exempel där vi har döpt vår timer till T4:0: TON Timer T4:0 Time Base 0.01 Preset 1000 Accum 0 T4:0/EN T4:0/DN T4:0/DN (stuff) Blah... T4:0/DN T4:0 RES här har vi även lagt till ett villkor som kontrollerar om T4:0/DN är ettsatt. När detta villkor är uppfyllt kommer det som står i rutan stuff att utföras samt så kommer timern att nollställas av RES vilket betyder att Accum nollsätts, alltså i sätts till noll och uppräkningen påbörjas igen. I detta exempel har vi time base 0.01 sekunder (vi kommer alltid att använda denna time base, eftersom att vår PLC arbetar i 100 Hz) och preset är 1000, det kommer således att ta 0, = 10 sekunder innan vi ettsätter T4:0/DN. Därmed kommer vi att göra det som står i stuff -rutan vart tioende sekund. Lägg även märke till att vi kan använda oss av flaggan T4:0/EN för att utföra något annat när vi inte har nått målvärdet. Exempelvis kan detta vara en påfyllnadsprocess där påfyllnad sker sålänge som T4:0/DN är ettsatt och när T4:0/EN ettsätts som byts vagnen som ska fyllas på ut.

25 A.3. OPERATIONER 23 A.3 Operationer Operationer används för att förändra data som lagras i olika register. Detta kan vara att sätta registret till ett visst värde eller till något matematiskt uttryck som är funktion av andra register. I tabell A.2 presenterar vi några vanliga operationer Tabell A.2: Vanliga operationer stegkodsprogrammering Typ Kod Symbol Förklaring x:x/x Bitvis OTU U x:x/x Nollställa bit OTL L Ettställa bit Registervis MOV Kopiera ADD Addition SUB Subtraktion MUL Multiplikation DIV Division för både bitar och register. Bitvisa operationer har bara ett argument, nämligen den bit som man vill sätta till noll eller till ett. Vill vi således nollsätta biten som vi hittar på adressen S:5/0 (överspillsindikatorn) byter vi ut x:x/x operationen ovan och får följande: Registervisa operationer har två eller tre argument beroende på vilken typ vi använder oss av. Matematiska operationer har ofta tre argument och följer konventionen att A B = C där är exempelvis addition eller multiplikation. Sådana typ av block har alltså tre rader med register, två som kallas källregister (A och B) samt ett målregister C. Ett exempel på detta är: där A =N9:10, B =N9:11 och C =N9:12. På samma sätt kan vi även skapa block för multiplikation, division och subtraktion. MOV-blocket har endast två argument: källa och mål. Det flyttar således det som finns i källregistret till målregistret. Lägg märke till att vi även här kan byta ut ett av registren till något heltal om vi så vill. Detta kommer vi se exempel på i nästa avsnitt där vi behandlar strukturer i stegkodsprogrammering.

26 24 BILAGA A. GRUNDERNA I STEGKODSPROGRAMMERING A.4 Strukturer Man kan slutligen placera operationer och villkor i strukturer för att skapa avancerade program. Den grundläggande strukuren i stegkodsprogrammering består av olika steg. Varje steg är placerad i en rung eller rad. Ett program exekveras sekvensiellt uppifrån och ned i detta språk. Detta innebär att raderna utförs en och en i den ordning som de står i programmet. Varje rad delas in i en villkors- och operationsdel. Villkor placeras till vänster på raden och operationer till höger. Det är tillåtet att placera flera villkor efter varandra (seriekoppling) men endast en operation tillåts på vardera rad. Ett exempel på en enkel rad med flera villkor är som följer: N7:0/1 S:5/0 N9:10/15 MOV N9:12 där vi flyttar talet till registret N9:12 om följande tre villkor är uppfyllda samtidigt: (i) biten N7:0/1 är ettsatt, (ii) biten S:5/0 (överspillsindikatorn) är ettsatt, samt (iii) biten N9:10/15 (teckenbiten) är nollsatt (positivt tal). I detta exempel kontrollerar vi alltså bland annat om vi har ett överspill (vi försöker lagra ett större tal än som får plats i registret) samt om talet är positivt. När detta är uppfyllt skriver vi det största positiva talet vi kan till registret N9:12. Det föregående exemplet var av en struktur med villkor i serie som motsvarar ett logiskt och. Alltså att alla villkor samtidigt måste vara uppfyllda för att något ska hända. En annan vanlig konstruktion är logiskt eller där det räcker med att ett villkor är uppfyllt. Denna typ av struktur motsvarar en parallellkoppling, där man lägger en förgrening så att villkoren ligger över varandra. Ett exempel på detta är: där operationen (som är utelämnad ur figuren) utförs om minst ett av villkoren är uppfyllt, alltså om N9:0 är större än N9:1 eller om N9:2 är större än N9:1. Vi kan även kombinera denna struktur med ett villkor som är kopplat i serie:

27 A.4. STRUKTURER 25 nu kräver vi även att N9:5/4 är ettsatt för att vi ska multiplicera N9:1 och N9:2 och lagra resultatet i N9:3. På detta sätt kan vi skapa stora komplicerade villkor där vi kombinerar jämförelser med logiskt och samt eller. Tidigare nämnde vi begränsningen med att endast en operation får utföras per rad. Detta är ofta begränsande och skulle leda till att vi måste skapa många rader med samma villkor men olika operationer. Vanligtvis vill vi ha så få rader som möjligt där vi försöker att återanvända (modularisera) så mycket av vår kod som möjligt. Detta brukar man betrakta som god programmeringssed. För att undvika begränsningen kan vi lägga ett antal operationer parallellt med hjälp av en förgrening. Detta leder till strukturer som liknar de som vi introducerade för logiskt eller. Som vanligt beskrivs detta enklast med två exempel. I det första exemplet lägger vi ihop två tal från registren N9:10 och N9:11 samt sparar resultatet i N9:12. Samtidigt så nollsätter vi biten S5:/0 som indikerar överspill (den ettsätts då vi försöker lagra ett större tal än möjligt i ett register). ADD N9:10 N9:11 N9:12 S:5/0 U Det andra exemplet är en multiplikation och omskalning av svaret. Vi kommer först att utföra divisionen och sedan multiplikationen. Kom ihåg att vi läser programmet uppifrån och ned. Först skalar (dividerar) vi om registret N10:13 med 128 och sparar resultatet i N10:14. Sedan utför vi multiplikationen mellan talen i registren N10:14 och N10:2 och lagrar detta i registret N10:14.

28 26 BILAGA A. GRUNDERNA I STEGKODSPROGRAMMERING DIV N10: N10:14 MUL N10:14 N10:2 N10:14 Här ser vi ett exempel på att vi återanvänder ett register. Först läser vi ett tal från ett register genomför någon matematisk operation och slutligen skriver det till samma register. Detta är en tillåten operation och det enda vi behöver tänka på är i vilken ordning saker utförs: läsa register, utföra beräkning, skriva till register. Vi ser också att det är det skalade talet som vi utför multiplikationen med, vi kan därför göra matematiska operationer i sekvens genom att bygga parallella strukturer. Slutligen borde vi även nämna att man kan skapa nestlade strukturer som är mer avancerade än de som vi har gjort här. I sådana strukturer kan man ha parallella rader (fortfarande som tillhör samma huvudrad) där men både utför operationer och villkor. Detta kommer dock att vara utanför denna kurs och är därmed inte intressanta för våra syften. A.5 Praktisk programmering Vi avslutar detta dokument men en kort diskussion om hur man praktiskt går tillväga för att programmera ett program. Vi passar även på att nämna några saker som kan vara bra att komma ihåg och hur man skriver ett snyggt program. Som med de flesta saker blir man enbart duktig på programmering om man övar på att att skriva program. Programmering är till lika stor del en praktisk kunskap som en teoretisk. I princip har vi beskrivit all teori som krävs i detta kapitel för att skapa relativt komplicerade program. Det som inte har diskuterats är implementering, felsökning och andra praktiska aspekter. Dessa lär man sig bäst när man sitter vid datorn och provar själv. Ett bra sätt att strukturera sin programmering är att utgå från problemet och bryta ned det i delproblem. Sedan löser man varje delproblem för sig för att sedan plocka samman allt till en lösning av det ursprungliga problemet. För att underlätta detta är det bäst att börja med att skriva en pseudokod där man med enbart ord skriver ned vad som ska hända. Här identifierar man även de olika delar som programmet och problemet består av. Sedan försöker man hitta lösningar till vardera delproblem. Detta innebär att svara på frågor som vart man hittar den informationen man behöver, vilka villkor

29 A.5. PRAKTISK PROGRAMMERING 27 och vilka operationer som är nödvändiga. Tillslut bygger man upp en struktur som löser det problem man är ute efter. När man sedan har tänkt genom detta försöker man hitta grupper av villkor och operationer som återkommer. Detta kallas att modularisera sin kod och då försöker man återanvända så mycket av den som möjligt. Ska man exempelvis utföra samma beräkning på ett antal rader kanske man istället kan kombinera villkoren i en parallell struktur så att man kan slå ihop flera rungs till en. Detta kan även innebära att man skapar subrutiner där man genomför delberäkningar. Slutligen ska man alltid kommentera sin kod, både för sin egen del och för andras. Ute i industrin arbetar man ofta flera stycken med samma program och då behöver man beskriva vad man har gjort. Ni kanske även måste gå tillbaka i kod som ni skrev för flera år sedan. Att man då har kommenterat kort vad varje grupp av rader gör, kan spara mycket tid och möda. Tillsammans med detta tillhör även att döpa variabler till vettiga saker, detta hjälper både i felsökning och i dokumentation.

Grunderna i stegkodsprogrammering

Grunderna i stegkodsprogrammering Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer

Läs mer

Industriella Styrsystem Övningskompendium

Industriella Styrsystem Övningskompendium Industriella Styrsystem Övningskompendium 13 januari 2012 REGLERTEKNIK AUTOMATIC CONTROL LINKÖPING Reglerteknik, Institutionen för systemteknik, Linköpings universitet, 581 83 Linköping www.control.isy.liu.se

Läs mer

Industriella Styrsystem Övningskompendium

Industriella Styrsystem Övningskompendium Industriella Styrsystem Övningskompendium 14 mars 2013 REGLERTEKNIK AUTOMATIC CONTROL LINKÖPING Reglerteknik, Institutionen för systemteknik, Linköpings universitet, 581 83 Linköping www.control.isy.liu.se

Läs mer

Industriella Styrsystem (TSIU04, TSIU06) Övningskompendium

Industriella Styrsystem (TSIU04, TSIU06) Övningskompendium Industriella Styrsystem (TSIU04, TSIU06) Övningskompendium 7 april 2016 REGLERTEKNIK AUTOMATIC CONTROL LINKÖPING Reglerteknik, Institutionen för systemteknik, Linköpings universitet, 581 83 Linköping www.control.isy.liu.se

Läs mer

PID N7:0 N9:0 N9:2. PID-implementering i PLC. Laboration i industriella styrsystem. Denna version: 2 februari Namn: Personnr: Datum: Godkänd:

PID N7:0 N9:0 N9:2. PID-implementering i PLC. Laboration i industriella styrsystem. Denna version: 2 februari Namn: Personnr: Datum: Godkänd: Laboration i industriella styrsystem PID-implementering i PLC Denna version: 2 februari 2012 PID N7:0 N9:0 N9:2 REGLERTEKNIK Namn: Personnr: AUTOMATIC LINKÖPING CONTROL Datum: Godkänd: Innehåll 1 Introduktion

Läs mer

PID N7:0 N9:0 N9:2. PID-implementering i PLC. Laboration i industriella styrsystem. Denna version: 16 april Namn: Personnr: Datum: Godkänd:

PID N7:0 N9:0 N9:2. PID-implementering i PLC. Laboration i industriella styrsystem. Denna version: 16 april Namn: Personnr: Datum: Godkänd: Laboration i industriella styrsystem PID-implementering i PLC Denna version: 16 april 2013 PID N7:0 N9:0 N9:2 REGLERTEKNIK Namn: Personnr: AUTOMATIC LINKÖPING CONTROL Datum: Godkänd: Tabell 1. Godkännande

Läs mer

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler Exempeluppgift i Logikstyrning Inledning Idén med detta papper är att ge en allmän beskrivning av labbutrustningen och tips för hur man kan lösa olika praktiska problem i samband med laborationen. Läs

Läs mer

TSIU06 - Lektion 1. Johan Dahlin [johan.dahlin(at)isy.liu.se] 14 mars Mycket viktigt att ni ställer frågor om ni inte förstår!!

TSIU06 - Lektion 1. Johan Dahlin [johan.dahlin(at)isy.liu.se] 14 mars Mycket viktigt att ni ställer frågor om ni inte förstår!! TSIU06 - Lektion 1 Johan Dahlin [johan.dahlin(at)isy.liu.se] 14 mars 2012 1 Allmän kursinformation Vem är jag? Johan Dahlin, doktorand, osv. Kontaktuppgifter! johan.dahlin@isy.liu.se, finns i A-korridoren

Läs mer

Hjälp och tips till RSLogix och InTouch

Hjälp och tips till RSLogix och InTouch Hjälp och tips till RSLogix och InTouch 30 oktober 2015 RSLogix I RSLogix sköts stegkodsprogrammeringen (ladder diagrams). Här följer några råd och tips kring utvecklingen, överföringen och exekveringen

Läs mer

PID N7:0 N9:0 N9:2. PID-implementering i PLC. Laboration i industriella styrsystem. Denna version: 31 januari Namn: Personnr: Datum: Godkänd:

PID N7:0 N9:0 N9:2. PID-implementering i PLC. Laboration i industriella styrsystem. Denna version: 31 januari Namn: Personnr: Datum: Godkänd: Laboration i industriella styrsystem PID-implementering i PLC Denna version: 31 januari 2018 PID N7:0 N9:0 N9:2 REGLERTEKNIK Namn: Personnr: AUTOMATIC LINKÖPING CONTROL Datum: Godkänd: Tabell 1. Godkännande

Läs mer

Labb i industriella styrsystem. Processdator. Denna version: 13 april 2015. Namn: Personnr: Datum: Godknd: LINKÖPING

Labb i industriella styrsystem. Processdator. Denna version: 13 april 2015. Namn: Personnr: Datum: Godknd: LINKÖPING Labb i industriella styrsystem Processdator Denna version: 13 april 2015 REGLERTEKNIK Namn: Personnr: AUTOMATIC LINKÖPING CONTROL Datum: Godknd: Innehåll 1 Syfte och organisation 4 1.1 Laborationens syfte

Läs mer

LABORATIONSINSTRUKTION

LABORATIONSINSTRUKTION Högskolan Dalarna Elektroteknik LABORATION LABORATIONSINSTRUKTION PLC-styrning av ett minimalt parkeringsgarage KURS El- och styrteknik för tekniker ET 1015 INNEHÅLL LAB NR 4 Ver 1.0 1. Inledning 2. Laborationskortet

Läs mer

Programmerbar logik. Kapitel 4

Programmerbar logik. Kapitel 4 Kapitel 4 Programmerbar logik Programmerbar logik (PLC: Programmable Logic Controller; fi. ohjelmoitava logiikka) är en sorts mikrodatorliknande instrument som är speciellt avsedda för logik- och sekvensstyrningsproblem.

Läs mer

Logik och kontrollstrukturer

Logik och kontrollstrukturer Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal.

I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal. Laboration:. Jämförelser mellan assembler och C. I denna laboration undersöker vi hur aritmetiska beräkningar utförs. Vi tittar på olika variabeltyper: 8-bitars, 16-bitars, 32-bitars och flyttal. Förberedelser:

Läs mer

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647 Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel

Läs mer

Styrteknik: MELSEC FX och numeriska värden

Styrteknik: MELSEC FX och numeriska värden PLC2C:1 MELSEC FX I kursen styrteknik används styrsystemet FX1S som är ett litet system i MELSEC FX-serien. Vår version av FX1S har endast digitala in- och utgångar men oftast finns det både digitala och

Läs mer

Laboration i Industriella styrsystem (TSIU04, TSIU06) Processdator. Denna version: 5 januari Namn: Personnr: Datum: Godknd: LINKÖPING

Laboration i Industriella styrsystem (TSIU04, TSIU06) Processdator. Denna version: 5 januari Namn: Personnr: Datum: Godknd: LINKÖPING Laboration i Industriella styrsystem (TSIU04, TSIU06) Processdator Denna version: 5 januari 2018 REGLERTEKNIK Namn: Personnr: AUTOMATIC LINKÖPING CONTROL Datum: Godknd: Innehåll 1 Syfte och organisation

Läs mer

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION Laborationsansvarig: Anders Arvidsson Utskriftsdatum: 2005-08-31 Laborant(er): 1 Syfte Laborationen ska ge studenten möjlighet att genom assemblerinlägg

Läs mer

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler Talsystem Talsystem - binära tal F1.1. Hur många unsigned integers kan man göra med n bitar? Vilket talområde får dessa

Läs mer

Lathund - Konfiguration av PLC och dator

Lathund - Konfiguration av PLC och dator Lathund - Konfiguration av PLC och dator Johan Dahlin och Ylva Jung 17 januari 2012 1 Introduktion Detta dokument innehåller information om konfigurationen av PLC:n och tillhörande dator för laborationerna

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ ETT Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. Ett av dem är Python, som du ska få

Läs mer

Vilken skillnad gör det var du placerar det? Prova båda.

Vilken skillnad gör det var du placerar det? Prova båda. Micro:bit- Namnskylt Vi börjar med att döpa programmet till något. Till exempel ditt namn. Det gör du längst ner i mitten. Nu ska vi göra ett enkelt program som med lysdioderna skriver ditt namn. När du

Läs mer

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner

Läs mer

CE_O3. Nios II. Inför lab nios2time

CE_O3. Nios II. Inför lab nios2time IS1200 Exempelsamling till övning CE_O3, 2015 CE_O3. Nios II. Inför lab nios2time 3.1. Logiska operationer (se uppgift 1.2 c) Repetera (eller lär dig) innebörden av de logiska operationerna "bitvis AND",

Läs mer

Industriella styrsystem, TSIU06. Föreläsning 2

Industriella styrsystem, TSIU06. Föreläsning 2 Industriella styrsystem, TSIU06 Föreläsning 2 Reglerteknik, ISY, Linköpings Universitet Sammanfattning av Föreläsning 1 2(24) Det finns en stor mängd system och processer som behöver styras. Återkopplingsprincipen:

Läs mer

CPU. Carry/Borrow IX. Programräknare

CPU. Carry/Borrow IX. Programräknare Laboration:. Jämförelser mellan assembler och C. CPU ACCA ACCD ACCB 8-bitars ackumulatorer eller 16- bitars ackumulator CCR 1 1 1 SXH I NZVC Flaggregister Carry/Borrow IX IY PC Indexregister X Indexregister

Läs mer

LOGIKSTYRNING/18/2: Laboration. 1 Uppgiften. Figur 1: Tågbanan

LOGIKSTYRNING/18/2: Laboration. 1 Uppgiften. Figur 1: Tågbanan LOGIKSTYRNING/18/2: Laboration Figur 1: Tågbanan 1 Uppgiften En programmerbar logik (PLC) skall programmeras för ett transportör-problem med en transportör (tåg) och ett antal stationer (se figur 1). Vid

Läs mer

Flyttal kan också hantera vanliga tal som både 16- och 32-bitars dataregister hanterar.

Flyttal kan också hantera vanliga tal som både 16- och 32-bitars dataregister hanterar. FLYTTAL REAL Flyttal används i datorsystem för s k flytande beräkning vilket innebär att decimalkommat inte har någon fix (fast) position. Flyttal består av 2 delar (mantissa och exponent). När ett datorsystem

Läs mer

Laboration 1 Introduktion till Visual Basic 6.0

Laboration 1 Introduktion till Visual Basic 6.0 Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.

Läs mer

Lösningar till tentamen i styr- och reglerteknik (Med fet stil!)

Lösningar till tentamen i styr- och reglerteknik (Med fet stil!) Lösningar till tentamen i styr- och reglerteknik (Med fet stil!) Uppgift 1 (4p) Figuren nedan visar ett reglersystem för nivån i en tank.utflödet från tanken styrs av en pump och har storleken V (m 3 /s).

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TVÅ Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta

Läs mer

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre Lågnivåprogrammering Föreläsning 2 Lågnivåprogrammering Förberedelse inför laboration 2. Maskinspråk, assemblerspråk Talrepresentation En enkel dator, komponenter Instruktionsformat, instruktionscykel

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Datorsystemteknik DVG A03 Föreläsning 3

Datorsystemteknik DVG A03 Föreläsning 3 Datorsystemteknik DVG A03 Föreläsning 3 Datoraritmetik Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Hur stora tal kan vi få med N bitar? Största

Läs mer

JavaScript del 3 If, Operatorer och Confirm

JavaScript del 3 If, Operatorer och Confirm JavaScript del 3 If, Operatorer och Confirm Under förra uppgiften så kollade vi på hur användaren kan ge oss information via promt(), vi använde den informationen både för att skriva ut den och för att

Läs mer

För att få ett effektiv driftsätt kan det ibland behövas avancerad styrning.

För att få ett effektiv driftsätt kan det ibland behövas avancerad styrning. För att få ett effektiv driftsätt kan det ibland behövas avancerad styrning. Används för att reglera en process. T.ex. om man vill ha en bestämd nivå, eller ett speciellt tryck i en rörledning kanske.

Läs mer

MMA132: Laboration 2 Matriser i MATLAB

MMA132: Laboration 2 Matriser i MATLAB MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Torsdagen den 13 mars 2014, klockan 14:00 19:00 i MA:10. Tillåtna hjälpmedel: på tentan utdelad formelsamling,

Läs mer

Att förstå bråk och decimaltal

Att förstå bråk och decimaltal Att förstå bråk och decimaltal Flera undersökningar som är gjorda visar att elever har svårt att förstå bråk. I undervisningen är det också vanligt att eleverna lär sig olika regler för bråk, men få förstår

Läs mer

Läran om återkopplade automatiska system och handlar om hur mätningar från givare kan användas för att automatisk göra förändringar i processen.

Läran om återkopplade automatiska system och handlar om hur mätningar från givare kan användas för att automatisk göra förändringar i processen. Reglering Läran om återkopplade automatiska system och handlar om hur mätningar från givare kan användas för att automatisk göra förändringar i processen. Regulator eller reglerenhet används för att optimera

Läs mer

Sekvensstyrning Grafcet och IEC

Sekvensstyrning Grafcet och IEC Sekvensstyrning Grafcet och IEC 61131-3 Indtroduktion GRAFCET Tekniken grundades i Frankrike på 1970-talet och ligger till grund för ett standardiserat programspråk i enlighet med standard IEC 61131-3.

Läs mer

Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor.

Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor. Lektion C2 Villkor Repetera snabbt vad du lärde dig förra veckan. Du är nu redo att kasta dig in i nästa fas, teorin om villkor. Du gör ofta val i livet, och valet du gör får olika konsekvenser och följder.

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

Labb i industriella styrsystem. Processdator. Denna version: 10 januari Namn: Personnr: Datum: Godkänd: LINKÖPING

Labb i industriella styrsystem. Processdator. Denna version: 10 januari Namn: Personnr: Datum: Godkänd: LINKÖPING Labb i industriella styrsystem Processdator Denna version: 10 januari 2013 REGLERTEKNIK Namn: Personnr: AUTOMATIC LINKÖPING CONTROL Datum: Godkänd: Innehåll 1 Introduktion 4 1.1 Historik..............................

Läs mer

Programmering för språkteknologer I, VT2012. Rum

Programmering för språkteknologer I, VT2012. Rum Programmering för språkteknologer I, VT2012 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.lingfil.uu.se/~evelina/uv/uv12/pst1/ Idag - Kursplan - Börja programmera - Lokala variabler - aritmetiska

Läs mer

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Övningsuppgifter till föreläsning 2 Variabler och uttryck Sid 1 (5) Övningsuppgifter till föreläsning 2 Variabler och uttryck Syfte Syftet med övningsuppgifterna är att träna på: Aritmetik, variabler, tilldelning, scanf och printf Generellt Diskutera gärna uppgifterna

Läs mer

Föreläsning 3.1: Datastrukturer, en översikt

Föreläsning 3.1: Datastrukturer, en översikt Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,

Läs mer

Lego Robot [ ] [ ] [ ]

Lego Robot [ ] [ ] [ ] Lego Robot av [ ] [ ] [ ] INNEHÅLLSFÖRTECKNING LABB1 (INFORMATION) # UPPGIFT 1 # UPPGIFT 2 # UPPGIFT 3 # LABB2 (OPERATÖRER) # UPPGIFT 1 # UPPGIFT 2 # UPPGIFT 3 # LABB3 (VARIABLER) # UPPGIFT 1 # UPPGIFT

Läs mer

i LabVIEW. Några programmeringstekniska grundbegrepp

i LabVIEW. Några programmeringstekniska grundbegrepp Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar

Läs mer

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp

Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp Tentamen i Digitala system - EDI610 15hp varav denna tentamen 4,5hp Institutionen för elektro- och informationsteknik Campus Helsingborg, LTH 2016-12-22 8.00-13.00 Uppgifterna i tentamen ger totalt 60

Läs mer

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK.

3. Välj den sprajt (bild) ni vill ha som fallande objekt, t ex en tårta, Cake. Klicka därefter på OK. Moment 2: Klonspel Instruktioner för deltagare Idag ska du få lära dig om: Kloner - kopior av samma figur (sprajt) Variabler - ett värde, exempelvis antal poäng Slumptal - slå en tärning för att välja

Läs mer

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte ARM-instruktioner, A4-format, 17 sidor. Maxpoäng: TENTAMEN D1/E1/Mek1/Ö1 1400-1800 Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor Maxpoäng: Betyg 3 Betyg 4 Betyg 5 60p 24p 36p 48p Frågor under tentamen: Börje Delistrand tel. +46702986358 Bilaga

Läs mer

Det finns en hemsida. Adressen är http://www.idt.mdh.se/kurser/ct3760/

Det finns en hemsida. Adressen är http://www.idt.mdh.se/kurser/ct3760/ CT3760 Mikrodatorteknik Föreläsning 1 Torsdag 2005-08-25 Upprop. Det finns en hemsida. Adressen är http://www.idt.mdh.se/kurser/ct3760/ Kurslitteratur är Per Foyer Mikroprocessorteknik. Finns på bokhandeln.

Läs mer

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C 1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen

Läs mer

Data, typ, selektion, iteration

Data, typ, selektion, iteration Data, typ, selektion, iteration En programmeringkurs på halvfart IDT, MDH ttp://www.negative-g.com/nolimits/no%20limits%20defunct%20coasters.htm 1 Dagens agenda Talrepresentation Typkonvertering Sekvens

Läs mer

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser

AVR 3 - datorteknik. Avbrott. Digitala system 15 hp. Förberedelser Namn: Laborationen godkänd: Digitala system 15 hp AVR 3 - datorteknik LTH Ingenjörshögskolan vid Campus Helsingborg Avbrott. Syften med den här laborationen är att introducera avbrott. Avbrott som uppkommer

Läs mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Introduktion till formella metoder Programmeringsmetodik 1. Inledning Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur

Läs mer

Språket Python - Del 1 Grundkurs i programmering med Python

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Kompilera och köra programmet under terminal 2: I Skapa Hej.java

Läs mer

Denna uppdelning är ovanlig i Sverige De hela talen (Både positiva och negativa) Irrationella tal (tal som ej går att skriva som bråk)

Denna uppdelning är ovanlig i Sverige De hela talen (Både positiva och negativa) Irrationella tal (tal som ej går att skriva som bråk) UMEÅ UNIVERSITET Institutionen för matematik och matematisk statistik Olof Johansson, Nina Rudälv 2006-10-24 SÄL 1-10p Avsnitt 1.1 Grundläggande begrepp Detta avsnitt behandlar de symboler som används

Läs mer

IE1205 Digital Design: F6 : Digital aritmetik 2

IE1205 Digital Design: F6 : Digital aritmetik 2 IE1205 Digital Design: F6 : Digital aritmetik 2 Talrepresentationer Ett tal kan representeras binärt på många sätt. De vanligaste taltyperna som skall representeras är: Heltal, positiva heltal (eng. integers)

Läs mer

Övning2 Datorteknik, HH vt12 - Programmering

Övning2 Datorteknik, HH vt12 - Programmering Övning2 Datorteknik, HH vt12 - Programmering För denna övning behöver man adresskarta och beskrivning av laborationsplattform. Finns bland föreläsningsanteckning samt i bilaga l till Lab l. Använd även

Läs mer

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program Kompilera och köra programmet Objektorienterad Programmering (TDDC77) Föreläsning II: utmatning, variabler, typer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 under terminal 2: I Skapa Hej.java

Läs mer

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik

Struktur: Elektroteknik A. Digitalteknik 3p, vt 01. F1: Introduktion. Motivation och målsättning för kurserna i digital elektronik Digitalteknik 3p, vt 01 Struktur: Elektroteknik A Kurslitteratur: "A First Course in Digital Systems Design - An Integrated Approach" Antal föreläsningar: 11 (2h) Antal laborationer: 4 (4h) Examinationsform:

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner 732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (

Läs mer

Kort beskrivning av Sveriges första dator BESK

Kort beskrivning av Sveriges första dator BESK Kort beskrivning av Sveriges första dator BESK Bo Einarsson MAI 10 januari 2005 Den första svenska egentliga datorn är BESK, vilket står för Binär Elektronisk SekvensKalkylator. Den var körklar den 6 november

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #24 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Allmänt Behovet av processorinstruktioner för multiplikation

Läs mer

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på

Läs mer

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val 732G11 Linköpings universitet 2011-01-26 1 2 3 4 Program recept 1 spaghetti = 100; 2 salt = 1; 3 olja = 5; 4 köttbullar = 8; 5 ketchup = 0,5; 6 koka(salt, spaghetti); 7 micra(köttbullar); 8 Om(micron ==

Läs mer

Styrenheten styrsignalsekvenser programflödeskontroll

Styrenheten styrsignalsekvenser programflödeskontroll Styrenheten styrsignalsekvenser programflödeskontroll Kontroll av programflöde Instruktionerna är ordnade sekventiellt i minnet och utförs normalt i denna ordning. Vissa programkonstruktioner kräver dock

Läs mer

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: Föreläsning 1 OH: Övergripande information Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk: * maskinspråk = ettor och nollor, kan bara en maskin förstå. * programmeringsspråk

Läs mer

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är

Läs mer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis

Läs mer

Högskolan Dalarna Sida 1 av 8 Elektroteknik Per Liljas

Högskolan Dalarna Sida 1 av 8 Elektroteknik Per Liljas Högskolan Dalarna Sida 1 av 8 Elektroteknik Per Liljas Tentamen i ET1014 Introduktion till elektroteknik och styrteknik 7.5 hp 2012-08-22 14.00-18.00, Sal Sxxx Hjälpmedel: Miniräknare, formelblad (bifogad)

Läs mer

Föreläsning 8: Aritmetik och stora heltal

Föreläsning 8: Aritmetik och stora heltal 2D1458, Problemlösning och programmering under press Föreläsning 8: Aritmetik och stora heltal Datum: 2006-11-06 Skribent(er): Elias Freider och Ulf Lundström Föreläsare: Per Austrin Den här föreläsningen

Läs mer

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1

TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Halmstad University School of Information Science, Computer and Electrical Engineering Tomas Nordström, CC-lab TENTAMEN Datorteknik (DO2005) D1/E1/Mek1/Ö1 Datum: 2012-05- 23 Tid och plats: 9:00 13:00 i

Läs mer

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Lunds Universitet LTH Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Skrivtid: 8.00-13.00 Inga tillåtna hjälpmedel Uppgifterna i tentamen ger maximalt 60 poäng. Uppgifterna är

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en

Läs mer

Industriella styrsystem, TSIU04. Föreläsning 1

Industriella styrsystem, TSIU04. Föreläsning 1 Industriella styrsystem, TSIU04 Föreläsning 1 Reglerteknik, ISY, Linköpings Universitet Mål Ge kunskaper och färdigheter om reglerteknik närmare verkligheten. Mera precist: Trimning av PID-regulatorer.

Läs mer

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra

Läs mer

LABORATIONSINSTRUKTION

LABORATIONSINSTRUKTION Högskolan Dalarna Elektroteknik LABORATION LABORATIONSINSTRUKTION KURS ET1001 Styrteknik LAB NR PLC 5 INNEHÅLL 1. Inledning 2. Laborationskortet i styrteknik 3. Laborationsuppgifter NAMN KOMMENTARER PROGRAM/KURS

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

IE1204 Digital Design

IE1204 Digital Design IE1204 Digital Design F1 F3 F2 F4 Ö1 Booles algebra, Grindar MOS-teknologi, minimering F5 F6 Ö2 Aritmetik Ö3 KK1 LAB1 Kombinatoriska kretsar F7 F8 Ö4 F9 Ö5 Multiplexor KK2 LAB2 Låskretsar, vippor, FSM

Läs mer

IE1204/IE1205 Digital Design

IE1204/IE1205 Digital Design TENTAMEN IE1204/IE1205 Digital Design 2012-12-13, 09.00-13.00 Inga hjälpmedel är tillåtna! Hjälpmedel Tentamen består av tre delar med sammanlagd tolv uppgifter, och totalt 30 poäng. Del A1 (Analys) innehåller

Läs mer

Processidentifiering och Polplacerad Reglering

Processidentifiering och Polplacerad Reglering UmU/TFE Laboration Processidentifiering och Polplacerad Reglering Introduktion Referenser till teoriavsnitt följer här. Processidentifiering: Kursbok kap 17.3-17.4. Jämför med det sista exemplet i kap

Läs mer

ÖH kod. ( en variant av koden används i dag till butikernas streck-kod ) William Sandqvist

ÖH kod. ( en variant av koden används i dag till butikernas streck-kod ) William Sandqvist ÖH 8.4 7-4-2-1 kod Kodomvandlare 7-4-2-1-kod till BCD-kod. Vid kodning av siffrorna 0 9 användes förr ibland en kod med vikterna 7-4-2-1 i stället för den binära kodens vikter 8-4-2-1. I de fall då en

Läs mer

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING

TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING TENTAMEN I DYNAMISKA SYSTEM OCH REGLERING SAL: Ter2 TID:4 mars 207, klockan 8-2 KURS: TSRT2 PROVKOD: TEN INSTITUTION: ISY ANTAL UPPGIFTER: 6 ANSVARIG LÄRARE: Inger Erlander Klein, 0730-9699 BESÖKER SALEN:

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TRE Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta

Läs mer

Digital- och datorteknik

Digital- och datorteknik Digital- och datorteknik Föreläsning #8 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Aritmetik i digitala system Grindnät för addition: Vi

Läs mer

Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4

Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4 Ext-6 (Ver 2010-08-09) 1(5) Förenklad förklaring i anslutning till kompedieavsnitten 6.3 och 6.4 Tecken-beloppsrepresentation av heltal Hur skall man kunna räkna med negativa tal i ett digitalt system,

Läs mer

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen 68000 Arkitektur F2: Motorola 68000 I/O signaler Processor arkitektur Programmeringsmodell Assembler vs. Maskinkod Exekvering av instruktioner i 68000 Instruktionsformat MOVE instruktionen Adresseringsmoder

Läs mer

Vi börjar med en penna som ritar när du drar runt den på Scenen.

Vi börjar med en penna som ritar när du drar runt den på Scenen. Nivå 3 Målarlådan All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduktion

Läs mer

Variabler, värden och typer

Variabler, värden och typer Variabler, värden och typer Viktigt att förstå på djupet: För programmering i många språk, t.ex. Java För kommande objektorientering! TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Fråga kommentera

Läs mer

Algoritmer och interaktiv Python

Algoritmer och interaktiv Python Algoritmer och interaktiv Python Linda Mannila 11.9.2007 Denna föreläsning Räkneövningstider Algoritmer Interaktiv Python Datatyper Variabler Typning Repetition Vad vi än skall göra måste vi veta hur vi

Läs mer

Lunds Tekniska Högskola Avdelningen för industriell elektroteknik och automation

Lunds Tekniska Högskola Avdelningen för industriell elektroteknik och automation Lunds Universitet LTH Ingenjörshögskolan i Helsingborg Lunds Tekniska Högskola Avdelningen för industriell elektroteknik och automation REGLERTEKNIK Laboration 2 Empirisk undersökning av PID-regulator

Läs mer

Variabler, värden och typer

Variabler, värden och typer Variabler, värden och typer Viktigt att förstå på djupet: För programmering i många språk, t.ex. Java För kommande objektorientering! jonas.kvarnstrom@liu.se 2017 Fråga kommentera avbryt! Intro till variabler

Läs mer

1Mer om tal. Mål. Grunddel K 1

1Mer om tal. Mål. Grunddel K 1 Mer om tal Mål När eleverna har studerat det här kapitlet ska de: kunna multiplicera och dividera med positiva tal mi ndre än veta vad ett negativt tal är kunna addera och subtrahera negativa tal kunna

Läs mer