DTU CIVILINGENIØREKSAMEN Side 1 af 19 sider Skriftlig prøve den 4. juni 2002, Kursus nr. 31370 Kursus navn: Mikrodatamater i Robot- og Automationssystemer. Tilladte hjælpemidler: Alle sædvanlige. Vægtning : Se nedenfor. Opgaveteksten omfatter i alt 19 sider. NAVN Underskrift Bord nr. Opgave 1 2 3 4 5 6 7 8 Svar Opgave 9 10 11 12 13 14 15 16 Svar Svarmulighederne for hvert spørgsmål er nummereret fra 1 til 6. For hvert spørgsmål skal nummeret på den valgte svarmulighed indføres i skemaet ovenfor. Indføres et forkert nummer i skemaet kan dette rettes ved at sværte det forkerte nummer over og anføre det rigtige nummer nedenunder. Er der tvivl om meningen med en rettelse, betragtes spørgsmålet som ubesvaret. KUN FORSIDEN SKAL AFLEVERES. Afleveres blankt eller forlades eksamen i utide, skal forsiden alligevel afleveres. Kladde, mellemregninger og bemærkninger tillægges ingen betydning, kun tallene indført ovenfor registreres. Der gives 5 points for et korrekt svar og -1 for ukorrekt svar. Ubesvarede spørgsmål eller et 6- tal (svarende til ved ikke ) giver 0 points. Det antal points, der kræves for, at et sæt anses for tilfredsstillende besvaret, afgøres endeligt ved censureringen af sættene. Husk at forsyne opgaveteksten med navn, underskrift og bordnummer. Side 1 af 19 sider
Opgave 1. I et directory på det ved øvelserne anvendte UNIX system findes følgende filer: drwxrwxr-x 2 or sl_vip 1024 May 26 10:04. drwxrwxrwx 9 or sl_vip 2048 May 26 09:29.. -rw-rw-r-- 1 or sl_vip 264 May 26 10:08 Makefile -rwxrwxr-x 1 or sl_vip 29672 May 26 10:11 areal -rw-r--r-- 1 or sl_vip 283 May 26 09:34 areal.c -rw-rw-r-- 1 or sl_vip 480 May 26 10:10 areal.o -rw-rw-rw- 1 or sl_vip 67 May 26 10:08 subr.c -rw-rw-rw- 1 or sl_vip 33 May 26 10:09 subr.h -rw-rw-r-- 1 or sl_vip 116 May 26 10:10 subr.o Filen subr.h ser ud som følger: #define FACTOR 12 float kugle(float); Filen subr.c ser ud som følger: #include subr.h float kugle( float a) { return(factor*a); } Filen areal.c ser ud som følger: #include <stdio.h> #include "subr.h" int main(void) { float a,b,d; printf("indtast afstand "); scanf("%g",&a); printf("\nafstanden var %g\n",a); b=a*a; d=kugle(a); printf("areal beregning start\n"); printf("arealet af en kugle er \t%g,\n",d); printf("slut\n"); exit(0); } Opgaven fortsættes Side 2 af 19 sider
Filen Makefile ser ud som følger: PROGRAM = areal DEST =. LD = cc OBJS = areal.o \ subr.o areal: $(OBJS) @echo Linking $(PROGRAM)... @$(LD) $(OBJS) -o $(PROGRAM) @echo done ### areal.o: subr.h subr.o: subr.h Hvad sker der når ordren make udføres. 1 areal.c oversættes og der linkes 2 subr.c oversættes og der linkes 3 Kun linkning udføres 4 areal.c og subr.c oversættes og der linkes 5 Ingenting 6 Ved ikke Side 3 af 19 sider
Opgave 2. Hvilket af nedenstående programmer giver outputtet: 1. i1=13,i2=12,*p1=13,*p2=13 #include <stdio.h> main() { int i1,i2; int *p1,*p2; i1=5; p1=&i1; i2=*p1/2+10; p2=p1; *p2=i1+28; } printf( i1=%x,i2=%d,*p1=%x,*p2=%x\n,i1,i2,*p1,*p2); 2. #include <stdio.h> main() { int i1,i2; int *p1,*p2; i1=5; p1=&i1; i2=*p1/2+10; p2=p1; *p2=i1+8; } printf( i1=%d,i2=%d,*p1=%d,*p2=%d\n,i1,i2,*p1,*p2); Opgaven fortsættes Side 4 af 19 sider
3. #include <stdio.h> main() { int i1,i2; int *p1,*p2; i1=5; p1=&i1; i2=*p1/3+10; p2=p1; *p2=i1+28; } printf( i1=%x,i2=%d,*p1=%x,*p2=%x\n,i1,i2,*p1,*p2); 4. #include <stdio.h> main() { int i1,i2; int *p1,*p2; i1=6; p1=&i1; i2=*p1/3+10; p2=p1; *p2=i1+28; } printf( i1=%x,i2=%d,*p1=%x,*p2=%x\n,i1,i2,*p1,*p2); 5. #include <stdio.h> main() { int i1,i2; int *p1,*p2; i1=5; p1=&i1; i2=*p1/2+10; p2=p1; *p2=i1+28; } printf( i1=%d,i2=%d,*p1=%d,*p2=%d\n,i1,i2,*p1,*p2);. Side 5 af 19 sider
Opgave 3. Hvilke af følgende udsagn i forbindelse med versionstyring er rigtige (R) og, hvilke er forkerte (F): a) Formålet med versionstyring er blandt andet at sikre muligheden for at tilgå gamle versioner af programmel. b) Det er typisk de oversatte (binære) filer som gemmes i et versionsstyringssystem. c) Versionstyringssystemer er velegnede til at forbedre afviklingshastigheden af programmer. d) Versionsstyringssystemet CVS er baseret på at filerne opbevares i et centralt lager/ repository. 1. (a,b,c,d)=(f,f,r,r) 2. (a,b,c,d)=(r,f,r,r) 3. (a,b,c,d)=(r,f,f,r) 4. (a,b,c,d)=(f,r,f,r) 5. (a,b,c,d)=(r,f,r,f) Side 6 af 19 sider
Opgave 4. Angiv hvilke kombinationer af argumenter (i1, d1, flag) nedenstående funktion skal kaldes med for at man kan lave en path test: func( int i1, double d1, int flag ) { if ( flag == 0 ) { printf(" Faliure of ptpt function\n"); } else { for (i1 = 1; i1 < 10; i1++) d1 = d1 + 8.8; } if ( d1 <= -23.4 ) printf("success = %g \n",d1); d1 = 2.32; printf("slut\n"); } 1 (0, -1000.0, 0), (0, -1000.0, 1), (0, 1000.0, 0), (0, 1000.0, 1) 2 (0, 1000.0, 0), (0, 1000.0, 1), (1, 1000.0, 0), (1, 1000.0, 1) 3 (1, -1000.0, 0), (1, -1000.0, 0), (0, 1000.0, 0), (0, 1000.0, 0) 4 (0, 0.0, 0), (0, 0.0, 1), (0, 0.0, 0), (0, 0.0, 1) 5 (3, 0.0, 0), (4, 0.0, 1), (3, 0.0, 0), (4, 0.0, 1) 6 Ved ikke Side 7 af 19 sider
Opgave 5. I et multitasking realtidssystem, hvor processoren tildeles det højst prioriterede kørbare task, er der tre task T1,T2 og T3 med følgende struktur: T1 WAIT(s3) A SIGNAL(s4) WAIT(s2) B T2 WAIT(s0) C SIGNAL(s1) WAIT(s2) D T3 WAIT(s1) E SIGNAL(s2) WAIT(s4) F SIGNAL(s4) SIGNAL(s3) SIGNAL(s2) T1, T2 og T3 startes i vilkårlig rækkefølge og kører derefter cyklisk (d.v.s. starter forfra hvergang tasket er afsluttet). Initialisering af semaforer: s0=1, s1=0, s2=0, s3=0, s4=0. Hvilke af nedenstående forløb er rigtige? 1. De tre task vil køre med perioden CEDAFB. 2. De tre task vil starte med CEDAFB og derefter køre med perioden CEDAF. 3. Afviklingen afhænger af taskenes prioritet. 4. Afviklingen afhænger af startrækkefølgen. 5. De tre task vil starte med CEDAFB og vil derefter gå istå. Side 8 af 19 sider
Opgave 6. I et multitasking realtidssystem, hvor processoren tildeles det højst prioriterede kørbare task, er der tre task T1,T2 og T3 med følgende struktur: 1 T1 WAIT(s2) T2 3 WAIT(s1) T3 2 WAIT(s1) 2 2 1 SIGNAL(s2) 1 SIGNAL(s1) 2 SIGNAL(s1) 2 Tallene på tegningen angiver udførelsesstider. Der ses bort fra tiden til WAIT og SIGNAL kald samt tiden til taskskift. T3 har højere prioritet end T2, der har højere prioritet end T1; s1 og s2 initialiseres til 1. (WAIT(s) og SIGNAL(s)) virker som beskrevet i bogen, hvis flere task venter på samme semafor, frigives de efter prioritet) T1 startes til tiden 0 T2 startes til tiden 2 T3 startes til tiden 6 Find afslutningstiderne for T1s gennemløb t1, T2s gennemløb t2 og T3s gennemløb t3. 1. (t1, t2, t3) = (16,14,12) 2. (t1, t2, t3) = (4,11,16) 3. (t1, t2, t3 )= (16,14,11) 4. (t1, t2, t3 ) = (14,16,12) 5. (t1, t2, t3 ) = (16,11, 14) 6. ved ikke Side 9 af 19 sider
Opgave 7. Som analoginterface i et mikrocomputer system anvendes en dual-slope A/D konverter som vist i fig. 1. Figur 1. (lærebogen s. 88. fig. 5.17 a) Ur = 10V, B: 12 bit counter, input signalet er begrænset til Ui [-10V, 0V] Find den maximale konverteringstid t max og den minimale konverteringstid t min, når counterens clockfrekvens er 50 khz. 1 (t max, t min ) =( 163.84 ms, 81.92ms) 2 (t max, t min ) =( 163.84 ms, 163.84ms) 3 (t max, t min ) =( 163.84 ms, 0 ms) 4 (t max, t min ) =( 81.92 ms, 81.92ms) 5 (t max, t min ) =( 81.92 ms, 0 ms) 6 Ved ikke. Side 10 af 19 sider
Opgave 8. I et automatiseringssystem tælles emner på et transportbånd ved hjælp af en fotodetektor og en lysstråle på tværs af transportbåndet. Fotodetektorens status (emne/ ikke emne) måles hver 10. ms. Emnernes minimumslængde er 4 cm og minimumsafstanden mellem emner er 1 cm. Emnerne passerer lysstrålen en ad gangen. Hvad er den maksimale båndhastighed, hvor alle emner detekteres med sikkerhed? 1. 0.25 m/s 2. 0.50 m/s 3. 1.00 m/s 4. 2.00 m/s 5. 4.00 m/s. Side 11 af 19 sider
Opgave 9. Hvilket af nedenstående udsagn er rigtigt: 1. Produktion af et skib er en typisk batch proces 2. En komponentgruppe må ikke indeholde faselogik 3. En komponentgruppe kan tilhøre flere procesenheder på samme tid 4. Fase logik kan ikke implementeres ved hjælp af SFC 5. En komponentgruppe kan indeholde andre komponentgrupper Side 12 af 19 sider
Opgave 10. Hvilket af nedenstående udsagn er rigtigt: 1. Automationsløsninger der anvender SCADA/PLC har flere system-grænseflader end automationsløsninger der anvender DCS 2. Master recepten dannes ud fra en på forhånd defineret kontrolrecept 3. Overvågning af en procesenhed er en opgave for et MES system 4. En operation kan bestå af flere procesenhedsprocedurer 5. Komponentgrupperne organiserer den rækkefølge hvori faserne afvikles Side 13 af 19 sider
Opgave 11. Hvilket af nedenstående udsagn er rigtigt: 1. En procesenhed kan indeholde flere batche på samme tid 2. Beskyttelse af personer behandles ikke i S88 standarden 3. En procesenhed skal indeholde komponentgrupper 4. Den procedurale model er en hierarkisk beskrivelse af strukturen i et anlæg 5. I den fysiske model (anlægsmodellen) fastlægges de parameterværdier som skal anvendes for at fremstille et specifikt produkt Side 14 af 19 sider
Opgave 12. Hvilket af nedenstående udsagn er rigtigt: 1. Faser deltager ikke i undtagelseshåndtering 2. En fysisk model (anlægsmodel) kan bestå udelukkende af kontrolmoduler 3. Arbitrering er en formel metode til organisering af batch historik 4. Værdien af en faseparameter kan fastlægges i en operation eller et højere sted i receptens procedurale hierarki 5. En procesenhed organiserer rækkefølgen af procesenhedsprocedurer Side 15 af 19 sider
Opgave 13. Hvilket af følgende udsagn er rigtigt om M modulerne i NASREM modellen? 1. M modulerne nedbryder tasks i subtasks 2. M modulerne besvarer "what-is" forespørgsler fra H modulerne 3. M modulerne integrerer sensor information i tid og rum 4. M modulerne er en del af den globale hukommelse 5. M modulerne modtager inputs direkte fra sensorerne. Side 16 af 19 sider
Opgave 14. Hvilket af følgende udsagn er forkert om NASREM modellens niveauer? 1. Antallet af niveauer afhænger af den konkrete anvendelse 2. Modulerne har samme indre funktionelle opbygning på alle niveauer 3. Tidshorisonten (samplingstiden) aftager når man bevæger opad i modellen 4. Den globale hukommelse udveksler information med moduler på alle niveauer 5. Et modul på niveau j (j = 2,3,4,5) kommunikerer med det overliggende (j+1) og underliggende (j-1) modul Side 17 af 19 sider
Opgave 15. Hvilke af de følgende udsagn om PLC programmering er rigtige (R) og hvilke er forkerte (F) a) PLC programmeringssprog er generelle programmeringssprog ligesom C og Pascal b) Ladder diagrammer (LD) og funktions blokprogrammering (FBD) er ækvivalente c) PLC programmeringssprog indeholder bl.a binære funktioner, timere og tællere d) PLCere er ikke særligt udbredt i industrien 1. (a,b,c,d)=(r,f,r,f) 2. (a,b,c,d)=(f,f,r,f) 3. (a,b,c,d)=(f,r,r,f) 4. (a,b,c,d)=(f,r,f,f) 5. (a,b,c,d)=(f,f,f,r) Side 18 af 19 sider
Opgave 16. Hvilke a de følgende udsagn om PLC programmering er rigtige (R) og hvilke er forkerte (F) a) En PLC indholder input og output interfaces b) PLC programmet gennemføres cyklisk c) Nogle PLCere kan programmeres til at udføre både logiske og kontinuerte styringer 1. (a,b,c)=(r,r,r) 2. (a,b,c)=(f,f,r) 3. (a,b,c)=(f,r,r) 4. (a,b,c)=(f,r,f) 5. (a,b,c)=(f,f,f) Side 19 af 19 sider