• No results found

Software-ontwikkeling voor een meerkanaals P.C.-gestuurd meetsysteem

N/A
N/A
Protected

Academic year: 2021

Share "Software-ontwikkeling voor een meerkanaals P.C.-gestuurd meetsysteem"

Copied!
76
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

Software-ontwikkeling voor een meerkanaals P.C.-gestuurd

meetsysteem

Citation for published version (APA):

Spijkerman, F. J. (1985). Software-ontwikkeling voor een meerkanaals P.C.-gestuurd meetsysteem. (DCT rapporten; Vol. 1985.031). Technische Hogeschool Eindhoven.

Document status and date: Gepubliceerd: 01/01/1985 Document Version:

Uitgevers PDF, ook bekend als Version of Record Please check the document version of this publication:

• A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website.

• The final author version and the galley proof are versions of the publication after peer review.

• The final published version features the final layout of the paper including the volume, issue and page numbers.

Link to publication

General rights

Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain

• You may freely distribute the URL identifying the publication in the public portal.

If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement:

www.tue.nl/taverne

Take down policy

If you believe that this document breaches copyright please contact us at:

openaccess@tue.nl

providing details and we will investigate your claim.

(2)

HOGERE TECHNISCHE SCHOOL AFD. INFORMATIKA

F. J . S p i j k e r m a n

SOFTWARE-ONTWIKKELING VOOR EEN MEERRANAALS

P.C.-GESTUURD MEETSYSTEEEM

WFW 85.031

(3)

INSTITUUT VOOR HOGER BEROEPSONDERWIJS EINDHOVEN

HOGERE TECHNISCHE SCHOOL AFD. INFORMATIKA

SOFTWARE-ONTWIKKELING

VOOR EEN MEERKANAALS

P.C.-GESTUURD MEETSYSTEEM

HTS-afstudeerverslag van F.J. Spijkerman

24 Mei i 9 8 5

opdrachtgevers:

(THE afd. W vakgroep WEW) L.J.M.G. Dortmans

L.H.T.M. v. Beukering

schoolmentor 2

(IHBO Eindhoven, HTS-I) Th.Stoffele

(4)

INHOUDSOPGAVE VOORWOORD INLEIDING De Vakgroep WFW Het Knie-projekt 1 . DE OPDRACHT

1 . 9 Omschrijving van de Opdracht

2. APPARATUUR 2.1 De Personal Computer 2.2 De Labmaster 2.3 Het Filtersysteem 3. EXPERIMENTEN 3.1 Mogelijkheden v.d. Labmaster 3.2 DOS en Programmeertalen

3.3 Direct Memory Access

3 . 4 Conclusies

4 METINGEN

4.1 De Meetprocedure

4.2 Veranderingen aan de Procedure

5. GEGEVENSSTRUKTUREN 5.1 Soorten Gegevens 5.1.1 Invoer 5.1.2 Uitvoer 5.1.3 Tijdelijke Data 5.1.4 Permanente Data 5.2 Bestanden 5.2.9 Specificatiefiles 5.2.2 DIA-files 2 4 4 5 6 6 1 1 1 1 12 14 16 18 18 20 23 23 23 25 25 25 26 28 31

(5)

-3-

5.2.3 Ruwe Data 5.2.4 Uitvoerfiles

6. PROGRAMMASTRUKTUREN

6.1 Specificeren, Ijken en Dataverwerking 6.2 Meten en Standaardiseren

7. IMPLEMENTATIE EN BEHEER 7.1 Stand van Zaken

7.2 Bestandsbeheer

LITERATUUR

BIJLAGEN

A. Instellen v.d. Labmaster

B . oiogramma's en Subroutines in Assembler

C. Dynamische Metingen

D. Verklaring van Gebruikte Schemasymbolen

E. Assembler Source-tekst 32 33 34 34 36 38 38 40 42 43 45 49

(6)

INLEIDING

Dit is het verslag van een afstudeerproject vaar de

afdeling informatika van de HTS te Eindhoven. Het betreft een opdracht van de vakgroep Fundamentele Werktuigbouwkunde en Biomedische Techniek (WFW) van de afdeling der

Werktuigbouwkunde aan de Technische Hogeschool Eindhoven. De afstudeeropdracht is ontstaan uit een project in de biomedische techniek.

De Vakaroep WFW

In de vakgroep WFW worden veel metingen verricht om de

mechanische eigenschappen te bepalen van allerlei objecten. 20

kan het in een bepaald onderzoek nodig zijn het gedrag van een verwarmingskete7 bij herhaalde verhitting en afkoeling, of van een kniegewricht bij verschillende belastingen te bepalen. De metingen houden meestal in dat er op verschillende punten van het meetobject opnemers worden bevestigd die een bepaalde mechanische grootheid omzetten naar een meetbare elektrische grootheid. Daarna kunnen dan allerlei gekontroleerde

belastingen op het voorwerp worden uitgeoefend. A l s opnemers worden bijvoorbeeld verplaatsings- en versnellingsopnemers, rekstrookjes of temperatuursensoren gebruikt.

Om dergelijke metingen uit te voeren is apparatuur nodig die op een aantal meetpunten gelijktijdig of kort na elkaar de meetwaarden kan registreren. Voor het meten van dynamisch

gedrag (snel veranderende verschijnselen) is een apparaat nodig dak alle meetpunten binnen korte tijd vele malen langsloopt. Bij statische metingen is zo'n snelle machine niet nodig en dient een relatief trage herhaling slechts om de meetwaarden later statistisch te kunnen valideren. De methoden van

verwerking van beide typen meetgegevens vertonen echter veel overeenkomst.

(7)

Omdat het bij dit soort metingen meestal om aanzienlijke hoeveelheden gegevens gaat wordt het ondoenlijk om alle

resultaten met de hand over te nemen en te verwerken, nog afgezien van de grote kans op fouten hierbij. Daarom wordt tegenwoordig vaak apparatuur gebruikt met mogelijkheden voor automatisch data-opslag, zoals bij mijn stage-opdracht en deze afstudeeropdracht het geval was. In het eerste geval betrof het een intelligent apparaat voor statische mekingen dat aan een multi-user (Prime) systeem gekoppeld werd, bij deze opdracht gaat het om een personal computer, met speciale hardware uitgebouwd om dynamisch te kunnen meten.

Het kniemmiekt

In juli 1 9 8 3 is in de vakgroep het project "Aspecten van ket dynimische gedrrrg v a n het Kniegewricht" gestart. In d i t

project wordt getracht he% dynamische gedrag van het menselijke kniegewricht te onderzoeken in een daarvoor gekonstrueerde

proefopstelling. Hierin wordk een geprepareerd kniegewricht dynamisch belast [met behulp van een zogenaamde excitator), waarbij op een aantal plaatsen in het gewricht relevante gegevens gemeten moeten worden. Deze gegevens moeten in

principe simultaan gemeten worden in verband met het toepassen van Fast Fourier Transformation-technieken voor het analyseren van deze signalen. Gezien de hoeveelheid gewenste gegevens

(waarschijnlijk 100 kilobytes per gemeten kanaal) zijn de aanwezige conventionele wave-analysers voor dit doel niet

geschikt. Daarom is overgegaan tot de aanschaf van een personal compu-ter (IBM PC/XT) met passende randapparatuur. Met dit

systeem moeten in principe minimaal 1 6 signalen simultaan gemeten kunnen worden met een maximale sample frequentie van naar schatting 300Hz. Deze maximale sample frequentie wordt in het kader van het project gezien als een minimum vereiste, en wordt in hoge mate bepaald door de wijze van gegevensopslag, in

(8)

DE OPDRACHT

Ten behoeve van het eerder genoemde project diende de

software te worden ontwikkeld die metingen met het systeem kan begeleiden, de gegevens kan opslaan en deze tenslotte kan

verwerken tot bruikbare resultaten.

Omsckriivina van de opdracht

Op de eerste plaats dienden experimenten te worden

uitgevoerd waaruit de maximaal haalbare sample-frequentie als functie van de toegepaste gegevensinname en -opslag technieken moest volgen. Ten tweede moest een meetprogramma voor het

innemen van de signalen, aansturing van de excitator en het filtersysteem ontworpen te worden. Dit programma dient gebruik

te saken v a n de gevonden technieken VQQX een maximale sample- frequentie. Tenslotte diende er een programma te komen waarmee de gemeten signalen met behulp van Fast Fourier Transformation- technieken onderzocht kunnen worden. Men verwachtte dat als afstudeeropdracht de eera.te twee stappen van deze ontwikkeling gerealiseerd zouden kunnen worden. De afstudeeropdracht werd derhalve als volgt gedefinieerd:

-1- Het verrichten van voornoemde haalbaarheidsstudie ten

behoeve van de verificatie van de maximaal te hanteren sample- frequentie en (indien nodig) het opvoeren hiervan door

aanpassing van de gegevensopslag tijdens de DMA, bijvoorbeeld door sequentieel opslaan op disk.

-2- Ontwikkeling van gebruikersvriendelijke en goed

gedocumenteerde software voor aansturing van het systeem met behulp van de IBM PC/XT. Gezien de opbouw van het systeem is samenwerking met een elektronicus hierbij van belang. Bij de ontwikkeling van de software dient gebruik te worden gemaakt van de binnen de aEdeling der Werktuigbouwkunde algemeen

(9)

-7-

de mens-machine-communicatie. Daarnaast dient ten behoeve van back-up communicatie met de op de afdeling aanwezige Prime- systemen mogelijk gemaakt te worden.

(10)

2 . APPARATUUR

De opdracht moest op reeds aanwezige apparatuur worden uitgevoerd. Speciaal voor het knie-project was namelijk juist een personal computer aangeschaft en een bestelling gedaan voor een bijpassende uitbreidingskaart met behulp waarvan de

gewenste metingen kunnen worden uitgevoerd. Om de signalen geschikt te maken voor de later uit te voeren FFT-berekeningen is in eigen laboratorium een filtersysteem ontwikkeld dat door het systeem moet kunnen worden gestuurd.

In figuur 2 . 1 is een schets gegeven van het totale

meetsysteem met daarin ook de excitator, die krachten op de proefopstelling kan uitoefenen en ook door het systeem gestuurd moet kunnen worden om vooraf bepaalde belastingen (bijvoorbeeld

een " r ~ i s "

1

+,e kunnen aanbrengen. 2.1 De Personal Computer

Centraal i w het ayateem staat de microcomputer IBM PC/XT. Dit is een computersysteem gebaseerd op fntel's 5NHz 8088 microprocessor met 8-bit databus en 16-bit registers en

operaties. De XT heeft in de standaardversie een RAM-capaciteit van 256 Kilobytes die voor deze toepassing uitgebreid is tot het maximum van 640 Kb. Als achtergrondgeheugen zijn aanwezig een diskette-station voor gegevensopslag op 5.25 inch

schijfje (360 KB) en een Winchester-drive met een capaciteit van 10.5 megabytes. In verband met laker te genereren grafische uitvoer is een kleuren-beeldscherm aangeschaft en voor uitvoer op papier is er een Epson matrix-printer. Er wordt gewerkt onder het operating systeem PC-DOS van Microsoft en diverse compilers en een krachtige Macro-assembler zijn aanwezig.

(11)

-9-

2.2 De Labmaster

Om de feitelijke metingen te verrichten is een meetkaart voor laboratorium-toepassingen aangeschaft. Het is de Labmaster van Tecniar met zestien analoge ingangen, enige digitaal-

analoog-converters en mogelijkheden om verschillende logische signalen in en uit te voeren door parallelle poorten. De

analoge ingangsspanningen kunnen door een gemuitiplexte A/D converter worden omgezet naar digitale informatie, die door de computer opgeslagen en verwerkt kan worden. De resolutie van A/D- en D/A-converters is 12 bits, de A/D-sample-snelheid is volgens de specificaties (in bepaalde gevallen) maximaal 30kHz, onder meer afhankelijk van het gebruikte aantal kanalen. Verder bevat de kaart vijf timers/counters die voor allerlei gebruik te programmeren zijn, bijvoorbeeld voor het tellen van externe geheurtenissen, of hek generere2 vafi 5efi uitgangssignzal,

afgeleid van de Labmaster-klokfrequentie. Zie voor een uitgebreide beschrijving van de Labmaster de bijbehorende

"Installation Manual/Wsers Guide".

2.3 Het filtersysteem

Fast Fourier Transformations zijn bedoeld om te onderzoeken welke frequenties in een bepaald signaal voorkomen en wat de bijbehorende amplituden zijn. Om de berekiningen tot het juiste resultaat te kunnen laten leiden is het nodig de te onderzoeken signalen, voordat ze bemonsterd worden, te filteren (zie

bijlage C). Als men bijvoorbeeld geinteresseerd is in

componenten tok 100Hz, moeten frequenties daarboven afgekapt worden om fouten in de resultaten te voorkomen. Hiertoe is een filtersysteem ontwikkeld dat maximaal 24 kanalen simultaan kan filteren met 48dB/oktaaf. Het filter is extern instelbaar door middel van een kloksignaal dat een frequentie van 100 maal de gewenste kantelfrequentie (-3dB punt) moet hebben. Dit

(12)

Omdat de Labmaster de monsters van de verschillende signalen niet echt gelijktijdig kan innemen, is dit filtersysteem ook van een "sample-and-hold"-schakeling voorzien. Vlak voordat de Labmaster zijn samples gaat nemen moet dit aan de het filtersysteem gemeld worden met een HOLD-

signaal. Op dat moment worden de uitgangswaarden van de filters vastgehouden, en kunnen ze snel achterelkaar worden

binnengehaald door de Labmaster. Het programma moet ervoor zorgen dat dit HOLD-signaal op de juiste momenten wordt gegenereerd en weer verdwijnt.

?

matrix-

i

print er

u

(13)

-11-

3 . EXPERIMENTEN

He% eerste gedeelte van de opdracht betrof het doen van experimenten met de Labmaster om te bepalen hoe snel ermee gemeten kan worden en op welke manier dit vanuit een programma moet gebeuren. Omdat het gebruik van een ZBM Personal Computer nieuw was voor de afdeling, werden ook het besturingssysteem

DOS en verschillende andere programma's onderzocht voordat met het ontwerpen begonnen werd.

3.1 Moseliikheden van de Labmaster

De Labmaster-kaart van Tecmar is op veel verschiilende manieren te gebruiken. Bijgeleverde software geeft voorbeelden van allerlei gebruiksmogelijkheden en bevat bibliotheken om de m e s t e mgelijkheden te benutten vanuit de programmeertalen

BASIC, FORTRAN of Pascal, zonder dat daarvoor de hardware

uitgehreid hoeft te worden bestudeerd.

Zo is er een subroutine die als input een gewenste snelheid en een aantal kanaalnummers nodig heeft, en als uitvoer keurig een array met gemeten waarden aflevert. Deze leek goed

bruikbaar, maar omdat er voor toepassing van EFT-berekeningen een zoveel. mogelijk continue stroom van meetgegevens nodig is en de gebruikte arrays maar beperkte afmetingen mogen hebben was de routine hier niet toe te passen. Bij steeds herstarten van de subroutine met een nieuw array is het namelijk

onmogelijk het begin zo te synchroniseren dat er ononderbroken gemeken wordt. Bovendien geeft het deklareren van een aantal zeer grote arrays onnodig grote execute-files, die het het

starten van het programma erg vertragen. Een tweede bezwaar van de bibliotheek-routines was de maximaal haalbare meetsnelheid

(sample-frequentie). Deze bleek maar ruim de helft van het in de opdracht aangegeven minimum te zijn, terwijl de

specificaties van de Labmaster veel meer beloofden. Besloten werd het geheel in assembler op te lossen, of gebruik te maken

(14)

van in assembler geschreven subroutines vanuit FORTRAN- programma's (omdat FORTRAN algemeen gebruikt wordt op de afdeling der Werktuigbouwkunde).

Voor de meegeleverde voorbeeldprogramma's stond de

Labmaster ingesteld op de zogenaamde 1/0 mapped mode. In deze mode moeten de ingestelde adressen voor de communicatie tussen meetapparaat en personal computer als I/O-lijnen benaderd

worden. In assembler wordt dit bereikt met IN- en OUT-

operaties, die echter nogal onhandig in het gebruik zijn. Omdat MOVE-operaties naar en van het geheugen veel eenvoudiger werken is gekozen voor de memory mapped mode van de Labmaster zodat de communicatie ermee gelijk is aan lezen en schrijven in het

geheugen. Ter vergelijking de assembler-statements, nodig om een byte (hier 80 hex) naar de besturingspoort van de Labmaster +,e stcren, VQQX heide modes:

I/O mapped

MOV DX,OFFSET LABCTRL MOV AL,80H

OUT DX,AL

3 . 2 DOS en proarammeertalen

memory mapped

MOV LABCTRL I 80H

De IBM PC draait onder het besturingssyteem DOS 2.0. Bij dik systeem zijn diverse compilers en een macro-assembler te koop. Alle vertalers leveren gelijksoortige object-files af, die met een LINK-programma tot een executeerbaar programma gecombineerd kunnen worden. Het is ook mogelijk routines te linken die zijn geschreven in verschillende talen, maar dan moet er wel goed op gelet worden dat bij parameteroverdracht aanroeper hetzelfde concept gebruikt als de subroutine (zie bijlage Bj. Voor het uitvoeren van deze opdracht zal gebruik gemaakt worden van FORTRAN en de Macro-assembler; de eerste

(15)

-13-

vanwege de duidelijkheid en omdat die algemeen gebruikt wordt binnen de afdeling, de tweede omdat veel data daar zeer snel mee verwerkt kan worden, en omdat de Labmaster alleen vanuit assembler volledig benut kan worden.

Bij het installeren van het Kermit-programma werd voor het eerst de Macro-assembler bestudeerd. Kermik een in assembler geschreven interfaceprogramma dat het mogelijk maakt om

verschillende typen computers, beide uitgerust met een versie van Kermit, via een seriële (31s-232) interface te laten

communiceren. Om het communicatieprogramma met voor ons

gemakkelijke default-instellingen te laten werken, zodat bij het starten niet steeds zaken als baudrate en pariteit hoeven te worden ingesteld, moesten in het programma een paar details veranderd worden. Na het aanbrengen van deze veranderingen bleek echter dat het programma niet meer correct te vertalen

was. Na veel zoeken bleek dat de Editor tekstfiles die langer dan circa 5ûkB zijn domweg afkapt, zonder enige waarschuwing of

foutmelding. Om de source toch aan te kunnen passen is deze met behulp van Kermit naar de Prime computer gestuurd, daar

aangepast, verkort en opgesplitst, en weer teruggezonden; verkort door het verwijderen van voor de PC-versie overbodige programmatekst, opgesplitst in een data- en een code-gedeelte, kleiner dan 50Kb, om eventueel de PC-Editor weer te kunnen

gebruiken. Hierna kon de Macro-assembler een foutloze vertaling maken.

Met name op het gebied van disk-1/0 is er aan programmeren in assembler eer te behalen. Vanuit assembler kunnen namelijk de I/O-systeemroutines rechtstreeks benaderd worden. Een

programma dat hier handig gebruik van maakt kan, vergeleken met een programma in een hogere programmeertaal, een veel hogere snelheid halen bij het schrijven van data naar disk. Een test- programma in assembler had voor het vullen van een file van 1

(16)

de gebruikelijke, geformatteerde I/O, kostte het ruim 8

minuten, 3 0 keer trager.

De FORTRAN compiler van PC-DOS (van Microsoft) werd uitgebreid bestudeerd toen het COIN-pakket op de personal computer geimplementeerd moest worden. Hierbij werd uitgegaan van een VAX-versie van het pakket in FORTRAN-IV. Het omzetten naar de o p de PC gebruikte FORTRAN-77 betekende voornamelijk het aanpassen van I/O-statements en het veranderen van strings van het type INTEGER naar het type CHARACTER. Bij het testen bleek echter dat er steeds foutmeldingen kwamen op statements als :

READ ( * , I O ) STRING ?O FORMAT f&OA'I)

Wanneer niet precies zoveel karakters werden inge-toetst als er

in het formaat aangegeven stond, werd een zogenaamde format- error gegenereerd. Na veel zoeken bleek dit een onvolkomenheid in de compiler te zijn. De FORTRAN compiler van MS-DOS (ook van Microsoft, maar een nieuwere versie) bleek hier wel goed

werkende c ~ d e op te leveren, die strings automatisch met spaties aanvult als er te weinig wordt ingetoetst.

3 . 3 Direct Memory Access

Om de data snel en ononderbroken te kunnen binnenhalen en toch niet beperkt te worden in hoeveelheid door de maximale geheugencapaciteit zou het gewenst zijn de gegevens tijdens het sample-proces naar schijf te kunnen schrijven. De beste manier om dit te bereiken is gebruik te maken van DMA-techniek (Direct Memory Access). Daarvoor is in de PC een speciale DNA-processor aanwezig, die zonder de centrale processor nodig te hebben het geheugen zeer snel kan benaderen om bijvoorbeeld I/O te plegen. Als de DMA-processor de juiste opdrachten heeft ontvangen zal deze met met de hoogste prioriteiten van de systeem-bussen gebruik maken en op cPie momenten de centrale processor buiten

(17)

-15-

werking stellen. De allerhoogste prioriteit heeft het DMIA- proces dat de memory-refresh verzorgt.

Helaas bleek bij nadere bestuderiny van Labmaster en DMA- processor dat deze niet op geschikte wijze met elkaar kunnen communiceren. Er zijn verschillende DNA-technieken mogelijk, waarvan bruikbaar leken:

-

copieren van de inhoud van een deel van het geheugen naar een ander deel,

-

lezen van een aantal bytes van een ingangspoort en die naar achtereenvolgende geheugenplaatsen wegschrijven.

Wanneer het gekozen DMA-proces dan een hogere prioriteit krijgt dan de disk-DNA (duurt per record ca. 30 ms) zal iedere

aanyebc6en meetwaarde vrijwel snmiddelijk in het geheugen geplaatst kunnen worden, onafhankelijk van het naar de schijf schrijven van een record.

Ge L ~ b m a s t e r b i e d t zijn digitale meetwaarden aan op twee bytes met opvolgende adressen. Deze zouden voor DNA als een geheugenblok beschouwd kunnen worden om naar een deel van het RAM-geheugen te worden geschreven. Maar dan zou na iedere twee bytes het DMA-proces opnieuw gestart moeten worden, waarvoor de centrale processor nodig is. Deze heeft echter altijd een

lagere bus-prioriteit dan de DMA-processor, zodat tijdens disk- 1/0 toch meetwaarden verloren zouden gaan. De twee bytes kunnen ook niet als ingangspoort gebruikt worden, omdat een DMA-proces maar êkn 8-bits poort met Bt-n adres tegelijk kan gebruiken. Er moest een andere oplossing gezocht worden.

(18)

3.4 Conclusies

De enige oplossing voor het probleem is het met

gebruikmaking van standaard DOS-I/O-routines wegschrijven van

de data, zodra er niet voldoende opslagruimte meer is in het geheugen. Het bemonsteringsproces moet dan stilgelegd worden, waardoor de tijdreeks wordt onderbroken. In een geheugen van

640 kilobytes met daarin het meetprogramma en het operating systeem blijft naar schatting ruim 500 kb over voor opslag van meetdata. Omdat voor een meting aan 16 kanalen ongeveer drie keer zoveel. ruimte nodig is moet tijdens zo'n meting twee tot drie keer het geheugen naar de schijf geschreven gaan worden. Dit gaat ongeveer 9 seconden duren (17 sec/Mb), wat geen

ernstige verstoring betekent van de meetdata, mits het op de juiste momenten gebeurt. Lees bijlage C voor een nadere

beschouwing over de eisen die aan metingen gesteld worden.

Het uiteindelijke meetprogramma zal dus met de Macro-

assembler ontwikkeld worden, gebruik makend van zoveel mogelijk geheugenruimte voor data-opslag en snelle uitvoer naar disk. De procedures voor het vastleggen van de meetspecificaties (veel communicatie met de gebruiker) en het verwerken van de meetdata

(veel rekenwerk) kunnen beter in FORTRAN geschreven worden.

Het genereren van de gewenste uitvoersignalen (filterklok, sampl/hold en analoge uitgang), zal gebeuren met behulp van de timers en poorten die op de Labmaster aanwezig zijn en die vanuit het programma aangestuurd moeten worden. In figuur 3.1

is schematisch weergegeven hoe de verschillende signalen in de tijd verlopen.

(19)

-17-

Figuur 3.1. Tijdschema van een meting

C : klokfrequentie (samplefrequentie)

S/H: sample/hold-s.iqnaal voor extern filtersysteem

A/D: binnenhalen

van

de door het filtersysteem vastgehouden waarden.

Naast deze signalen zijn er nog de D/A-uitvoer, die iedere sampletijd een andere waarde kan krijgen, en de filter-

klokfrequentie, die doorgaans 100/3 maal de samplefrequentie zal zijn (de faktor 100 omdat het filtersysteem daar om vraagt, een faktor 1/3 om de juiste kantelfrequentie te krijgen, zie bijlage C).

(20)

4 . METINGEN

Om tot een gestruktureerd systeemontwerp te komen moet eerst duidelijk worden aangegeven in welke vorm de grote hoeveelheden gegevens moeten worden vastgelegd. Daartoe zal eerst worden onderzocht hoe een meetproces precies verloopt en welke verzamelingen en stromen van gegevens er bij zo'n proces van belang zijn. Gepoogd is een algemene procedure te vinden waarmee ieder meetproces beschreven kan worden. De hier

beschreven procedure start op het moment dat in een onderzoek wanneer bekend is wat er gemeten moet gaan worden en hoe de te verkrijgen meetgegevens ongeveer verwerkt moeten gaan worden.

4.1 De meetprocedure

Een meetproces ia te verdelen

In

v i e r deelprocessen die min of meer onafhankelijk van elkaar zijn uit te voeren:

-

specificeren

-

opstellen

-

meten

-

kontroleren & verwerken

Specificeren van een meting houdt in dat precies bepaald wordt wat men wil meten, met welke apparatuur en hulpmiddelen dit moet gebeuren en wak de waarde moet zijn van alle

meetparameters.

Hierna kan men beginnen met het maken van de opstelling. In deze fase dient een komplete meetopstelling gemaakt te worden met bevestiging van van alle opnemers en aansluiting van alle verder benodigde apparatuur. Tevens moeten alle gespecificeerde meetparameters op hun juiste waarde worden ingesteld.

Het eigenlijke meten houdt niets anders in dan het starten van alle apparatuur en het begeleiden van de meting. Met

(21)

kontroleren & verwerken I I

i"-i

eindre- sultaat

u

Figuur 4,i Aktiviteiten rond een.,meting met iriformatie- en reele stromen.

(22)

4.

begeleiden wordt hier bedoeld het volgen en kontroleren van het meetproces en het op de juiste momenten uitvoeren van vooraf gespecificeerde, tussentijdse veranderingen van opstelling en parameters.

Na afloop moet gekontroleerd worden of er tijdens het meten iets is misgelopen wat toen niet waarneembaar was. De meetdata moet gevalideerd worden en als alles goed is kan met de

eigenlijke verwerking van de gegeven begonnen worden. Deze verwerking, waarin de zoveel mogelijk vooraf gespecificeerde berekeningen plaatsvinden, moet tot het uiteindelijke resultaat van het meetproces leiden.

In het ideale geval is de meting afgerond na het eenmaal doorlopen van de verschillende fasen, en kan het onderzoek waar

de neting deel V I R iritmzzkke verder gaan. In de praktijk blijkt echter dat de fasen lang niet altijd vlekkeloos doorlopen

kunnen worden en er moet vaak via terugkoppelingen met een fase

of zelfs een voorliggende fase opnieuw begonnen worden. Figuur 4 - 3 geeft het, hier beschreven meetproces in de vorm van een aktiviteitenschema weer.

2 Veranderinsen aan de Procedure

Om aan de opdracht te kunnen voldoen moest de in de vorige paragraaf beschreven procedure enigszins worden aangepast (zie figuur 4.2). Veranderingen zijn te zien in de opslag van

specificaties en meetdata, die nu permanent bewaard worden zodat het eenvoudiger wordt een meting te herhalen,

specificaties te veranderen en opnieuw te gebruiken en bovendien om meetdata opnieuw te kunnen kontroleren en verwerken. Specificeren kan nu betekenen het aanmaken van

nieuwe specificaties, maar ook het veranderen van een bestaande verzameling specificatie-gegevens. Bij de specificaties zal ook aangegeven moeten worden of er tijdens de meting signalen naar de excikator gestuurd moeten worden. Om de excitator aan te

(23)

2B

appara-

L y /

1B I Ç ~ Ï kings- pdracht

.2 Aktiviteitenschema van d e meetprocedure, aangepast voor deze opdracht.

(24)

kunnen sturen is een gegevensverzameling "D/A-data" ingevoerd, die de waarden bevat van de spanningen die achtereenvolgens aan de excitator moeten worden toegevoerd.

Om het proces flexibel te laten verlopen moeten er

mogelijkheden tot terugkoppeling zijn. De enige in het schema aangegeven terugkoppeling is de melding die door het programma gegeven wordt wanneer de meting fout loopt. Alle andere

terugkoppelingen kunnen vanuit een bepaald proces naar een voorgaand proces lopen en moeten door de gebruiker zelf worden bepaald. Als bijvoorbeeld tijdens het opstellen blijkt dat aan een bepaalde specificatie nooit voldaan kan worden, moet de gebruiker bepalen of er iets aan de specificaties veranderd moet worden.

Een m d e r e v e r a n d e r i n g In het proces is de toegevoegüe ijkprocedure die nodig is om filters en versterkers te kunnen afregelen en eventuele offsets en versterkingsfaktoren te kunnen vastleggen. Dit is nodig om later de meetdata op de juiste manier te kunnen interpreteren. Omdat ijken een een

bijzondere vorm van meten is, is er geen apart ijkproces in het schema aangegeven.

(25)

-23-

5 . GEGEVENSSTRUKTUREN

In het vorige hoofdstuk is al globaal aangegeven wat voor gegevens er van belang zijn bij een meetproces. Dit hoofdstuk geeft aan hoe die data er uit gaat zien en in welke vorm er in het proces mee gewerkt zal gaan worden. Eerst wordt aangegeven om welke soorten gegevens het gaat, daarna wordt per

verzameling aangegeven hoe die precies moet zijn opgebouwd.

5.1 Soorten geqevens

Voor deze beschrijving worden de gegevensverzamelingen naar soort ingedeeld, namelijk invoer- en uitvoergegevens,

tijdelijke data en permanente data. In figuur 5.1 is de samenhang tussen de verschillende verzamelingen aangegeven.

5 . 1 . 1 Invoer

De invoer van het systeem bestaat eigenlijk alleen uit handmatige invoer via de terminal. Het gaat hier om commando's en antwoorden op door het systeem te stellen vragen, waarmee bijvoorbeeld de specificaties kunnen worden vastgelegd en de

meting of een ander deelproces kan worden gestart. Omdat het om interaktieve input gaat, is moeilijk een struktuur van die

invoer te geven, belangrijk is wel dat erbij zoveel mogelijk gebruik moet worden gemaakt

van

het algemeen gebruikte pakket

COIN (COmmand INterpreter)

én

de daaruit voortvloeiende invoer- struktuur. Dit pakket is op de afdeling der Werktuigbouwkunde ontwikkeld om de gebruikers van FORTRAN zoveel mogelijk van de lastige user I/O te ontlasten en alle zelfontwikkelde

programma's op een zelfde manier met de gebruikers te laten communiceren [SI.

(26)
(27)

-25-

5.1.2 Uitvoer

De uiteindelijke uitvoer van het systeem bestaat uit de resultaten van de berekeningen op de meetdata. Deze resultaten kunnen in de vorm van grafieken of tabellen, op het scherm of op papier weergegeven worden. Omdat het ontwerpen van een programma voor de verwerking van de meetdata niet tot de afstudeeropdracht behoort, is er geen beschrijving van de

uitvoer van dit laatste deelproces gegeven. Als uitvoer van het deelsysteem volgens de opdracht kan de verzameling standaard- meetdata beschouwd worden, die verderop beschreven wordt.

5.1.3 Tijdelijke data

Tijdens het proces kan tijdelijk een dataverzameling

bestaan die als uitvoer van een deelproces de invoer voor een volgend deelproces vormt. Het betreft hier de verzameling ruwe meetdata, de gegevens zoals die tijdens de meetfase uit de Labmaster komen en de uitvoer van het ijkproces. Deze gegevens moeten uiteindelijk samen met de meetspecificaties

gehergroepeerd worden tot standaard-meetdata.

5.1.4 Permanente data

Het systeem wordt een stuk flexibeler als bepaalde gegevens voor korte of langere tijd in het systeem bewaard kunnen

blijven. Zo moeten de specificaties van een meting bewaard worden als de meting meer dan één keer uitgevoerd gaat worden. Voor een soortgelijke meting zouden dan bovendien niet alle specificaties opnieuw hoeven te worden ingevoerd. Een deel van de specificaties moet zelfs bewaard worden om de meetdata later zinvol te kunnen verwerken, denk hierbij aan gespecificeerde instellingen van apparatuur.

Om diezelfde reden moet de ijkdaka bewaard worden. Gemeten offsets en versterkingen kunnen tijdens de verwerkingsfase voor

(28)

correctie van de meetdata gebruikt worden. De hier apart aangegeven verzameling D/A-data, met de gegevens voor aansturing van de excitator, behoort eigenlijk tot de

meetspecificaties en liet kan daarom nuttig zijn deze te bewaren voor een latere, eventueel andere meting.

Vanzelfsprekend moet ook de gestandaardiseerde meetdata bewaard blijven, minstens tot na het verwerken ervan. Ook

langer bewaren van de meetdata kan nodig zijn als later blijkt dat er opnieuw berekeningen op moeten worden uitgevoerd. Het opslaan van deze gegevens heeft als tweede belangrijke voordeel dat ze niet meteen verwerkt hoeven te worden, maar dat eerst meer metingen kunnen worden uitgevoerd.

5.2 Bestanden

Om de in de vorige paragraaf beschreven gegevens te kunnen bewaren moeten daarvoor bestanden gemaakt worden. In deze

paragraaf wordt aangegeven welke vormen voor de verschillende bestanden worden qekozen en op welke manieE de gegevens er in worden opgeslagen. Figuur 5.2 geeft schematisch de keuze van de verschillende opslagmethoden weer. De voor de verschillende files gekozen namen, afgeleid van de naam van de bedoelde meting, staan rechts boven de betreffende paragrafen

aangegeven

Alle getallen worden binair gerepresenteerd in de files, vanuit FORTRAN te benaderen met ongeformatteerde READ- en

WRITE-statements. Waar het representaties van voltages betreft zijn het 16-bit binaire getallen (INTEGER*S), waarvan slechts

12 bits gebruikt worden. Deze getallen liggen daarom tussen

-4096 en 4 0 9 5 , bijvoorbeeld - 5 tot 5 volt voorstellend.

Maximumwaarden en lengten van andere getallen zijn aangegeven in de parameterfile SAMP.PAR en het specificatie-deel van het programma CAMP.ASM (bijlage E ) .

(29)

I comando

'

s

5

programma

'

s 2. specifi 3 . ijken

4.

meten

5.

standaardiseren

6,

kontroleren & verwerken

L

resultaten

(30)

5 . 2 . 1 Specificatiefiles <naam>. SPC

Om een exacte beschrijving van de specificatiefiles te kunnen geven moet eerst bekend zijn door welke gegevens een meting specificeerd wordt. De specificaties zijn te verdelen in drie groepen, te weten:

-

Meetparameters, de gegevens die nodig zijn om de Labmaster te kunnen laten werken en de meetdata op de juiste manier op te bergen;

-

Ingangsparameters, die aangeven wat voor signalen er aan de ingangen van het systeem worden aangeboden en hoe bijvoorbeeld eventuele voorversterkers zijn ingesteld, om de meetdata later op de juiste manier te kunne interpreteren;

-

Ijkparameters, die beschrijven op welke manier de gegenereerde ijkdata later moet worden verwerkt.

Omdat in dit verslag alleen hek meetprogramma helemaal

uitgewerkt wordt, kan hier alleen een precieze omschrijving van de eerste groep, de meekparameters gegeven worden. Voor de

ingangs- en ijkparameters wordt in de specificatiefile ruimte gereserveerd die door de maker van het specificeer- en

ijkprogramma moet worden ingevuld.

Om een meting te kunnen uitvoeren moet bekend zijn hoeveel samples er genomen moeten worden en hoe deze moeten worden

gerangschikt. Voor de uit te voeren Fast Fourier Transformaties is het nodig dat de data in zogenaamde tijdrecords kan worden opgesplitst, die ononderbroken sample-reeksen voorstellen. Als de gewente lengte van deze records bekend is kan daaruit

bepaald worden op welke momenten het sample-proces mag worden onderbroken zonder dat er tijdrecords worden afgebroken. De hoeveelheid gewenske meetdata wordt daarom gespecificeerd door drie getallen:

(31)

-29-

-

het aantal tijdrecords;

-

het aankal monsters per tijdrecord;

-

het aantal te bemonsteren kanalen.

Naast het aantal kanalen is het ook handig om de nummers van die kanalen op te geven als specificatie, zodat niet altijd met dezelfde kanalen gemeten hoeft te worden. Er kan dan

bijvoorbeeld een meting aan de drie kanalen 7 , % en 12 gedaan worden.

Afhankelijk van het gewenste frequentiedomein In de

resultaten moeten twee frequenties gespecificeerd worden; de sample-frequentie en de filterfrequentie. Als men bijvoorbeeld geinteresseerd is in frequenties tot IOOHz, moeten de filters een klokfrequentie van 10000Hz aangeboden krijgen. Theoretisch is bepaald dat om voldoende informatie overs componenten tot een bepaalde frequentie .te verzamelen, er bemonsterd moet worden met drie maal die frequentie, in dit voorbeeld levert dat een sample-frequentie van 300Hz op. Zowel sample- als filterklok- frequentie worden dus bepaald door de gewenste grensfrequentie, maar om het programma ook voor andere toepassingen bruikbaar te maken worden deze frequenties beide als specificatie gevraagd. Dit moet dan in de vorm gebeuren waarin ze door het programma gebruikt gaan worden: voor beide frequenties de tijd (l/f) als een geheel getal en een decimale exponent.

Indien er een D/A-file gebruikt moet worden voor aansturing van de excitator, maet dat in de specificaties worden

aangegeven. Van die aansturing moet ook aangegeven worden of die al moet beginnen voordat er gemeten gaat worden, en hoelang dat moet gebeuren. Dit noemen we "pre-D/A", gebruikt om

inschakelverschijnselen van de proefopstelling te kunnen

elimineren. De D/A-parameters kunnen in &&n getal weergegeven worden: als er pre-D/A nodig is geeft dit getal aan hoevaak dit moet gebeuren (gedurende hoeveel sample-peïioden), nul betekent

(32)

proces- ins tel- parae

t

ers parameters

dat er geen pre-D/A nodig is, en als de excitator helemaal niet gebruikt dient te worden, moet dit getal negatief zijn.

i j k -

parameters

Als extra is in de specificatiefile opgenomen een vlag die aangeeft of er ti-jdens het sample-proces gekontroleerd moet worden of de gebruiker de "break"-toets heeft ingedrukt om het proces te oinderbreken. Deze kontrole, via een DOS-routine, kost enkele miliseconden, en het niet uitvoeren ervan scheelt drastisch in de maximale sample-frequentie. Vooral als er aan weinig kanalen gemeten wordt kan het uitschakelen

kontrole verbetering betekenen: bij

een

kanaal van

SOQOHz, bij 16 kanalen van 330 naar 660Hz. VOO S

'j 1 6 kanalen echter al voldoende.

Een beschrijving van de specificatiefile is gegeven datastruktuur in figuur 5 . 3 . De precieze invulling van verschillende velden is te vin in bijlage E.

specifi- catie- file I I 1 I I

I

besturingsl paramet e m

u

Figuur 5.3. frequent i

I

parameters

1

1

parameter1 Specificatiefile ti jdrecord parame

t

ers

(33)

-31- D/A-file

..

5.2.2 D/A-files

*

D/A-

waarde I <naam > . D A

Wanneer er tijdens ..et sample-proces D/A-uitvoer gegenereerd moet worden om met de excitator een bepaalde belasting op de pkoefopstelling aan te brengen, moet worden vastgelegd hoe deze belasting in de tijd dient te verlopen. Dit kan gebeuren door een serie getallen in het geheugen te

plaatsen, die de voltages representeren die ach aan de excitator moeten den aangeboden. Als sync

samples steeds zo'n wa u i t g e r o e r d , kar: fie gevoerde signaal all equentiekamponenten ingestelde saniplefre tie nog gemeten kunn serie getallen, die bij

ruissignaal represente

gegenereerd en moet wo agen in een sequen

en, eventueel cyclisch, worden doorlopen tijdens het

bemonsteren, en ook al kort daarvoor indien dat gewenst is

(pre-D/A). Een D/A-file is niet meer dan een aaneengesloten rij binaire getall.en, zoalla hieronder aangegeven.

e file zal aan het b t meetproces

w

(34)

5.2.3 Ruwe Data <naam

>

.

TMP

De binnengehaalde samples worden onmiddellijk in het computergeheugen opgeslagen. Wanneer daar niet genoeg ruimte meer is om een volledig tijdrecord voor alle gespecificeerde kanalen op te slaan, wordt het sample-proces onderbroken en worden alle dan in het geheugen opgeslagen meetwaarden naar een tijdelijke file op de harde schijf geschreven. Om dit zo snel mogelijk te doen wordt de inhoud van het gebruikte geheugen sequentieel gedumpt. Het tijdelijke bestand met ruwe data bevat dus de meetwaarden in de volgorde waarin ze door het proces zijn binnengehaald.

Figuur 5 . 5 geeft alleen aan hoe deze file moet worden opgebouwd, in het bestand is deze struktuur niet terug te

vinden. Het betreft hier weer een aaneengesloten rij getallen. Om de file na het bemonsteren naar standaard-data te kunnen omzetten moet die opbouw in de vorm van enkele variabelen door het proces worden onthouden.

ti j ä r e e k s

6

buret

meet-

Figuur 5 . 5 . Ruwe data in een tijdelijke file

waarde

(35)

5 . 2 . 4

-33-

Uitvoerfiles <naam

>

, Cnn

De uitvoer van het proces "Meten" is de verzameling

gestandaardiseerde uitvoerfiles (het standaardisatieproces is hierin immers geintegreerd, zie figuur 6 . 1 ) . Zo'n uitvoerfile bevat achtereenvolgens een kopie van de gebruikte

specificatiefile met alle meetparameters en gegevens over kanaalinstellingen en ijking, en alle meetdata van het be kanaal. Zo staat alle informatie die nodig is voor verdere

werking samen met de meetdata in &n bestand. Het is da t bezwaarlijk als de gebruikte specificatiefile wordt verwijderd of veranderd moet worden als er bijv

ing van de gebruikte paratuur verandert

Hieronder is de file-struktuur van een standaa uitvoerfile gegeven. De ruimte waar door het sp

ijkprogramma eerst ingangs- en ijkdata geschreven moet worden is gereserveerd, maar nog niet beschreven. Deze gegevens zijn voor het sample- en standaardisatie-proces niet van belang, maar worden wel naar de uitvoerfiles gekopieerd.

s tttndaard

meetdata

u i t v o e r -

Figuur 5.6. Standaard uitvoerfile

tij drecord

c!l

(36)

6. PROGRAMMASTRUKTUREN

In hoofdstuk 4 is al aangegeven dat het totale meetproces in een aantal deelprocessen kan worden onderverdeeld. In het datasysteemontwerp (fig. 5.2) zijn vijf programma's aangegeven

(2 tm. 6 ) die ieder een deelproces uit moeten voeren. Alle deelprocessen zouden in een compleet programma met een duidelijke commando- en vragenstruktuur ingebouwd moeten

worden, maar door de onhandig grote afmetingen van de daarvoor te creeren execute-file is gekozen voor een loskoppeling van kwee processen uit dit geheel, zodat die met de Macro-assembler ontwikkeld kunnen worden en zo beduidend minder ruimte in het geheugen zullen gaan innemen (zie paragraaf 3.2). Het betreft hier de processen "meten" en "standaardiseren" omdat die beide veel geheugenruimte gebruiken en fiefst zo snel mogelijk moeten kunnen verlopen.

Omdat standaardiseren altijd onmiddelijk op meten volgt, kunnen deze deelprocessen tot &én programma verwerkt worden, zodat ook efficienter met data omgegaan kan worden. In het datasysteemontwerp voor dit programma (fig. 6 . 1 ) wordt de gewenste specificatiefile maar &!an keer ingelezen en maakt de standaardisatie-routine gebruik van de in het geheugen

aanwezige specificaties (vgl. fig. 6 . 1 met fig 5.2).

6 . 1 Specificeren, ijken en dataverwerkinq

Van het specificatieproces kan slechts gezegd worden hoe de uitvoer (specificatie- en DIA-files) er uit moet zien omdat het meetproces hier duidelijke eisen aan stelt. De struktuur van het programma is hiervoor niet van belang. Een eis is

natuurlijk wel weer dat het gebruik dient te maken van het COIN-pakket en dus in FORTRAN geschreven moet worden. Om h e t gewenste file-formaat (binair) te bereiken moeten in FORTRAN zogenaamde ongeformateerde write-statements gebruikt worden.

(37)
(38)

6.

Voor het ijkprogramma geldt hetzelfde. Daar komt bij dat er geen nauwkeurige beschrijving van de ijkdata gegeven kan worden omdat de vorm daarvan pas precies blijkt als bekend wordt wat voor informatie bij de verwerking van de gemeten signalen nodig is. Wel wordt in paragraaf 5.2.1 aangegeven waar de ijkdata moet blijven. Omdat voor ijking v.d. apparatuur ook een meting gedaan moet worden, moet het (assembler-) meetprogramma ook vanuit het (FORTRAN-) ijkprogramma aangeroepen kunnen worden. Het bezwaar van het gebrek aan geheugenruimte vervalt hier omdat voor een ijking niet zo veel data nodig is.

Ook het dataverwerkingsgedeelte blijft oningevuld. Het enige dat daarover gezegd kan worden is dat erbij uitgegegaan moet worden van de gestandaardiseerde meetdata-file zoals beschreven in paragraaf 5.2.4. Voor dit programma geldt weer dezelfde eis van het Gebruik van COIN voor de kommunikatie met de gebruiker.

2 Meten en Standaardiseren

Het deelproces "Meten", inklusief het standaardiseren, is geheel uitgewerkt, geimplementeerd en getest. In deze paragraaf vindt u een beschrijving van het ontwerp van deze software. In het datasysteemontwerp voor dit deelproces (figuur 6 . 1 ) is al een indeling in drie subprogramma's gemaakt:

-

initialisatie,

-

sampling,

-

standaardisatie.

Deze indeling is in processtruktuur PO (figuur 6.2) terug te vinden.

Het initialisatieproces leest de specificatiefile in, die wordt aangegeven door de naam van de meting in de cornmando- regel. Als deze regel bijvoorbeeld "MEET METING-1" luidt, wordt

(39)

-37-

de specificatiefile METING-l.SPC gezocht. Aan de hand van de ingelezen specificaties worden de verschillende voor het proces benodigde variabelen geinitialiseerd op de juiste waarden.

Indien gespecificeerd is dat er D/A-uitvoer moet zijn wordt bovendien de file METING-1.DA gezocht en ingelezen.

Het deelproces "Sampling" creëert de tijdelijke file voor de ruwe data, zorgt voor de Juiste klokfrequentie voor het

filtersysteem en wacht vervolgens totdat de gebruiker aangeeft eigenlijke meting te willen starten. Dan wordt eventueel de excitator aangestuurd en worden de meetgegevens o p de

gespecificeerde wijze binnengehaald, begeleidt door de juiste sample/hold-signalen voor de filters. Als alle meet

de schijf zijn geschreven wordt de tijdelijke file en worden alle uitgangen van de Labmaster uitgesc

Het standaardisatieproces opent tenslotte de t file voor lezen, creëert en vult de standaard uitv zoals aangegeven in figuur 5 . 6 , en sluit alles af. De tijdelijke file wordt uit de directory verwijderd.

(40)

7. IMPLEMENTATIE EN BEHEER

In dit laatste hoofdstuk wordt aangegeven hoe de in dit verslag beschreven programmatuur is geimplementeerd en welke andere programma's ten behoeve van het systeem zijn

geschreven. Daarnaast worden aanwijzigingen gegeven over het beheer van bestanden (zowel software, invoer als uitvoer) en manieren om die te kunnen bewaren.

7 . 1 Stand van zaken

Op het moment dat dit verslag afgerond werd w a s er al een vrijwel afgerond meetsysteem in het laboratorium. Na de eerste tests werkte het, met enkele kleine verbeteringen, geheel

volgens plan. Het ontwikkelde programma verwerkt aangeleverde specificatieSiles en levert daarna de gewenste uitvoerfiles af.

Om de specificaties op eenvoudige wijze in zo'n bestand te plaatsen heeft de opdrachtgever zelf een uitgebreid FORTRAN- programma geschreven dat gebruik maakt van het interaktieve gebruikers-communicatiepakket COIN. Hiermee kunnen naast specificatie-files ook verschillende soorten D/A-files

gegenereerd worden en een ijkprocedure worden uitgevoerd. Het programma geeft tevens mogelijkheden tot verwerking van

uitvoerfiles in de vorm van Fourier-transformaties.

Om het ijken met behulp van een FORTRAN-programma mogelijk te maken is van het assembler-meetprogramma ook een versie gemaakt die vanuit FORTRAN aanroepbaar is. Dit heeft

geresulteerd in drietal subroutines (initialisatie, sampling en afsluiting) die in een bibliotheek geplaatst kunnen worden. Tegenover het voordeel van het gebruik vanuit een hogere programmeertaal staat natuurlijk wel dat de maximale

hoeveelheid meetdata per meting wordt begrenst door de in een FORTRAN-programma beschikbare geheugenruimte, maar deze is ruim voldoende om een ijking uit te voeren.

(41)

-39-

De verwerking van uitvoerfiles kan nu, in tegenstelling tot de oorspronkelijke plannen, vrijwel geheel op de personal

computer plaatsvinden. Het verwerkingsgedeelte van het FORTRAN- programma leest aangegeven standaard-uitvoerfiles in en

verwerkt deze interaktief tot de gewenste resultatenfiles met daarin opgeslagen gegevens over de frequentiespectra van

verschillende signalen. Alleen om grafische uitvoer te

genereren is de Prime-computer voorlopig nog nodig, met daarop programma's om plotfiles te genereren die naar grafische

terminals of de plotter gestuurd kunnen worden. Dit proces kan ook helemaal vanaf de PC gestuurd worden. De resultatenfiles kunnen met behulp van het Kermit-programma naar de Prime worden gezonden en een emulatiepakket verandert de PC in een

Tektronix-compatible, grafische terminal. Het is hierbij

mogelijk grafieken van het beeldscherm met de PC-matrixprinter

op papier te zetten. wanneer hogere r e z o l i l t i e gewefist is kan de aan de Prime gekoppelde plotter gebruikt worden.

Om de FFT-algoritmen snel te kunnen laten verlopen is een 8087-rekenprocessor besteld, die rekenintensieve programma's zeker 10 maal sneller moet doen verlopen. Een alternatieve rekenbibliotheek (ALTMATH.LIB), die iets onnauwkeuriger rekent zan de standaard-bibliotheek, maar nauwkeurig genoeg voor de 12-bits invoer, versnelt voorlopig het rekenwerk met een factor

2. De verwerking van meetdata, die nu bijna een uur kan duren,

zal straks in enkele minuten voltooid kunnen zijn. Voor de co- processor is in het computersysteem al ruimte gereserveerd en de FORTRAN-compiler is in staat de juiste code ervoor te

(42)

7.2 Bestandsbeheer

Voor de gebruiker zijn er in het hele systeem verschillende soorten bestanden, te weten

-

Programma ' s

-

Specificatiefiles

-

D/A-files

-

Uitvoerfiles

-

Resultatenf iles

.

Van de programma's kunnen bestaan de oorspronkelijke

tekstfiles, objectfiles en execute-files. Om metingen te kunnen uitvoeren dienen alleen de laatste op de werkschijf

(Winchester) aanwezig te zijn. De sourceteksten dienen

zorgvuldig te worden bewaard. bijvoorbeeld op veilig opgeborgen diskettes of, via de Prime, op tape. Objectfiles kunnen na het Link-proces verwijderd worden.

Aangemaakte specificatiefiles hoeven na een meting niet bewaard te worden, alle informatie wordt naar de gegenereerde uitvoerfiles gekopieerd. Het kan echter gemakkelijk zijn om specificatiefiles van veel gebruikte metingen steeds bij de hand te hebben op de werkschijf. Dit laatste geldt natuurlijk ook voor D/A-files.

Uivoerfiles zullen doorgaans, in het geval van metingen zoals beschreven in bijlage C, 100 kilobytes groot zijn. Met een paar metingen aan zestien kanalen zal de harde schijf (10.5

MB) daarom snel gevuld zijn. Het is natuurlijk mogelijk de uitvoerfiles steeds naar floppies te kopieren, maar voor een meting aan zestien kanalen zijn dan al zes schijfjes nodig ( 3

uitvoerfiles op een 360K-floppy). Daarom lijkt het raadzaam om een manier te zoeken om grote hoeveelheden data snel op tape of speciale cassettes te zetten, bijvoorbeeld met een zogenaamde tape-streamer.

(43)

- 4 1 -

Resultatenfiles die bewaard moeten blijven voor latere berekeningen kunnen, omdat ze veel kleiner dan uitvoerfiles zijn en toch voor grafische verwerking naar de Prime worden overgezonden, goed bewaard worden in het Prime-systeem, bij grote hoeveelheden liefst op tape. Het is natuurlijk ook mogelijk deze files (waarschijnlijk circa 5kB groot) op

(44)

LITERATUUR c 1 1 c21 C3I C41 CSl E53 c 7 1 c91

M.sargent & R.L.Shoemaker

The IBM Personal Computer from the inside out Addison-Wesley, march 1984

IBM Personal Computer

Disk Operating System version 2.00, may 1983 IBM Personal Computer

Technical Reference IBM Personal Computer Computer Language Series

Macro Assembler, december 1981 IBN Personal Computer

Computer Language Series FORTRAN Compiler, april 1982 IEP! P e r s ~ n a l . Computer XT

Handboek voor de gebruiker, juli 1983 PC-Mate LabMaster

Installation Manual / Users Guide Tecmar Incorporated

F . J . Spijkerman

Automatisch Meten & Verwerken van Meetdata HTS-Stageverslag

TH-Eindhoven, juli 1984 J.P.A Banens

COIN gebruikershandleiding TH-Eindhoven, oktober 1981

(45)

-43-

INSTELLEN V.D. LABMASTER

De hier gegeven instellingen betreffen alleen de in de behuizing van de PC geplaatste Labmaster-moederkaart omdat

rop ingesteld wordt op welke manier de Labmaster vanuit het programma bestuurd moet gaan worden. Voor het instellen van de dochterkaart (de A/D-converter) en nadere uitleg van de hier

en instellingen zie het bijbehorende handb

Adre s s er 1 nq

De labmaster wordt in de memory mapped mode gezet met jumper 55 en op hexadecimaal adres A00

P-schakelaars SWi, SW2 sw3 c

Disitaal/Analooa-converters

OPEN

De voor de excitator gebruikte DACO wordt met jumper J6 ingesteld op een bereik van +IO Volt. Aan connector J4 worden de draden verbonden die naar de versterker voor de excitator

eten gaan.

J 6

De voor de excitator gebruikte DACO wordt met jumper J6 ingesteld op een bereik van +IO Volt. Aan connector J4 worden de draden verbonden die naar de versterker voor de excitator

eten gaan.

(46)

Timers/Counters

Op connector J2 wordt OUT 5, de uitgang van timer 5, met

SOURCE 5 verbonden, die in het programma aan teller 3 gekoppeld

zal worden (pen 4 en 9 ) . Voor het genereren van F-out voor instelling van de filterfrequentie, wordt OUT 4 met GATE 4

verbonden (pen 5 en IO).

Op Jumper J7 wordt niets doorverbonden omdat er n Gebruik van timer-interrupts wordt gemaakt.

21 4t? 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ~ ~ 0 0 0 f [ 0 0 0 0 0 0 0 0 0 0

J2

Parallelle Poort

Met jumper J8 worden de parallelle poorten op normaal gebruik ingesteld. De draden voor het HOLD-signaal naar het filtersysteem worden aan connector J3 aangesloten.

&ol

GND 26 0 . 0

i

0 o 0 0 0 0 0 o

i

0 0 0 0 0 0 0 0 0 0 0 0 0

1

13

J 3

(47)

-45-

BIJLAGE B

Proaramma's en Subroutines in Assembler

Voor het schrijven van programma's in 8088/8086-assembler bestaat een aantal standaardtechnieken. Het betreft hier zowel executeerbare (hoofd-)programma's als subroutines die aan een in een hogere programmeertaal geschreven programma gekoppeld kunnen worden. De gegeven voorbeelden zijn bedoeld voor

vertaling door de Macro-assembler.

Hoofdproaramma's in Assembler

Om te zorgen dat een assemblerprogranima na vertaling

executeerbaar is, moet de code aan bepaalde eisen voldoen. De belawgxijkste daarvan zijn:

1 .

2.

3 .

4.

Vanuit het operatingsysteem wordt een zogenaamde "Far Call" gepleegd naar het programma, d.w.z dat de instruktie-

pointer (IP) èn het codesegmentregister (CS) als terugkeeradres op de stack worden gezet, zodat het programma in ieder segment kan staan. Het assembler- programma moe% daarom als "Far Procedure'' gedeklareerd worden.

Er moet een stacksegment van voldoende lengte aanwezig zijn;

Aan het begin van het programma moet een terugkeeradres 0000 in het meegegeven datasegment op de stack gezet worden, als verwijzing naar de Program Segment Prefix vanwaaruit de besturing weer aan DOS wordt overgegeven. De registers SS en SP (stacksegment en stackpointer), die samen de gehele stackpointer vormen, moeten aan het eind van het programma dezelfde waarde hebben als aan het begin om terugkeer naar DOS mogelijk te maken;

Op de volgende bladzijde is een voorbeeld gegeven van hoe zo'n programma er uit zou kunnen zien.

(48)

Voorbeeld van een Assembler~roaramma CONSTI EQU AWORD EQU 31H 1725H ;definitie constanten ;datasegment met ;geheugen-reservering DSEG SEGMENT TELLER DB ? X DQ ? Y DQ ?

ARRAY DW I00 DUP ( ? )

STRING DB 'Geef nieuwe waarde: '

DSEG ENDS c o P - r n v r F CiFnmz DB 100H DUP ( ? I J E U L 113LX i J i mb&\ E E F P J J G U

STACKP EQU THIS WORD SSEG ENDS CSEG SEGMENT ASSUME CS:CSEGfDS:DSEGfSS:SSEG START PROC PUSH MOV PUSH MOV NOV RET START ENDP CSEG ENDS END FAR DS AX,O AX AX DSEG DS

,

AX START ;push DS:OOOO ; als terugkeeradres ;initialiseer datasegment ;programma-code ;einde hoofdprogramma ;einde stacksegment ;einde source-file.

(49)

-47-

Het Linken van Assembler-subroutines aan FORTRAN-Prosramma's

Het is mogelijk om met behulp van het LINK-commando

subroutines die in assembler geschreven zijn aan een in FORTRAN geschreven hoofdprogramma te koppelen. De assemblerroutine moet dan zodanig gestruktureerd worden dat bij een vertaling een FORTRAN-compatible object-file gekreerd wordt. Hiertoe dient men met de volgende zaken rekening te houden:

1 .

2.

3 .

4.

Voor de linker moet het gebruikte codesegment de public- naam "CODE" hebben, zodat dit bij de vertaalde FORTRAN- routines geplaatst wordt. Een eventueel datasegment kan men het best "DGROUP" noemen. Er hoeft geen stacksegment

gedefinieerd te worden.

Vanuit het hoofdprogramma wordt een zogenaamde "Far Call" gepleegd naar de routine, de assembler-routine moet daarom als "Ear Procedure" gedeklareerd worden.

De inhoud van de registers SS:SP, BP, DS en ES moeten aan het einde weer dezelfde waarde hebben als aan het begin van de routine, alle andere registers mogen veranderen.

FORTRAN kent alleen de "call by reference", zodat van eventuele parameters altijd het adres op de stack wordt gezet. Het is gebruikelijk deze adressen niet van de stack te verwijderen in de routine, maas ze indirekt te

benaderen. Voordat wordt teruggekeerd naar de aanroeper wordt de stack-pointer dan zodanig aangepast dat weer naar het terugkeeradres wordt gewezen. Indirekte benadering van de s-tack gaat vrij eenvoudig met behulp van een zogenaamde frame-definitie.

Zo'n subroutine wordt meestal opgebouwd zoals het voorbeeld op de volgende pagina aangeeft.

(50)

Voorbeeld van een Assembler-subroutine voor FORTRAN-Prosramma's ;SUBROUTINE TELOP (PARIfPAR2,PAR3)

t

I

; Deze routine is vanuit FORTRAN aanroepbaas met

; CALL TELOP (11, 12, ISOM)

I ? ; en resulteert in ; ISOM = I1

+

I2 t ? ? FlpAME STRVC SAVEBP DW ? SAVERET DD ? PAR3 DD ? PAR2 DD ? PAR i DD ? FRAME ENDS 4 a l l e INTEGER*2 f

;strüKtuur van stack-top ;save-area voor caller's BP ;save-area voor returnadres ;adres van laatste parm. ;adres van eerste parm.

I

-CSEG SEGMENT PUBLIC 'CODE' TELOP PROC FAR

PUBLIC TELOP ASSUME CS:CSEG PUSH MOV PUSH LDS XOV LDS ADD LDS MOV POP POP RET TELOP ENDP BP BP, SP DS BX,[BP]+PARI n v r n v i BX, [BP]+PAR2 BX,[BP]+PAR3 DS BP 12 L W R J Ax, EBXl CBXI ,AX CSEG ENDS END ;begin codesegment ;red aanroeper's BP

;laat BP naar stack wijzen ;red aanroeper's 13s

;adres PARI in DS:BX

;CAR-! in

;adres PAR2 in DS:BX ;tel PAR2 bij AX op

;adres PAR3 in DS:BX ;resultaat in PAR3 ;herstel DS

;herstel BP

;far return, geef 12 bytes ;(parm.adressen) vrij

;einde subroutine ;einde codesegment ;einde source

(51)

-49-

BIJLAGE C

Dynamische metincren

In deze bijlage wordt aangegeven welke eisen er te gesteld dienen te worden bij het meten van dynamische verschijnselen.

Er wordt verondersteld dat de lezer enigszins bekend is met begrippen in deze sfeer.

In het algemeen kan gesteld worden dat men bij een

dynamische meting geinteresseerd is in een signaal met daarin frequenties tot een bepaalde maximale waarde f

daarboven zijn niet interessant. Omdat bij praktische metingen, waarbij men een signaal in getalvorm wil vastleggen met behulp van een A/D-converter, niet oneindig snel gemeten kan worden, moet men volstzan met het i n n e ~ e n van h e t signaal. n p bepaalde diskrete tijdstippen (sampling). Voor de eenvoud nemen we aan dat deze tijdstippen equidistant zijn met tijdsintervallen Ats, zodanig dat vanaf het tijdstip t=O sample k overeenkomt met de signaalwaarde op het t i j d s t i p t.=(k-l)Ats.

K

Frequenties max.

Het bemonsteringstheorema van Shannon laat zien dat de maximale frequentie die op deze wijze detecteerbaar is gelijk is aan

fv = 1/2Ats

ofwel, indien samplefrequentie fs gebruikt wordt met

fs = l / A t s

dan volgt

(52)

De frequentie fv wordt de vouwfrequentie genoemd en is dus de maximale frequentie die detecteerbaar is uit een signaal dat met fs gesampeld is

Als met deze metingen inderdaad alle frequenties tot fmax detecteerbaar moeten zijn, dan moet gelden

fv

2

fmax ofwel

fs

2

2fmax.

Anderzijds geldt dus dat bij samplefrequentie fs moet gelden

f

<

fs/2 'max

-

Indien nu in het signaal frequenties voorkomen die groter zijn dan fv dan ontstaan er problemen: er ontstaan schijnbare frequentles (zwevingen] die de resultaten in het bedoelde frequentiegebied kunnen bederven (aliasing).

De enige remedie daartegen is er voor te zorgen dat het signaal geen frequenties bevat groter dan fv. Dit kan bereikt worden door analoge of digitale filtering. We beperken ons verder tot analoge filtering.

Een analoog (low-pass-)filter heeft in het algemeen een filterkarakteristiek zoals wwergegeven in figuur I .

(53)

-51-

H = U/i

log f

f c

f iauur I

Door deze karakteristiek wordt niet voldaan aan de eis dat alle frequenties boven f s / 2 verwijderd worden. Een mogelijkheid om toch met zo'n filter te werken is de volgende, waarbij

uitgegaan wordt van fiquur 2.

H = U/i

(54)

Doordat frequenties boven fv zwevingen Veroorzaken met f

S

zal een frequentie f

>

fv resulteren in schijnfrequenties

waarvan de frequentie Ifv-f de belangrijkste is (mits f

<

2fv). Frequenties groter dan 2f worden dermate verzwakt door het filter dat we deze verder buiten beschouwing laten. Het signaal

V

met frequentie f ter groote van Uin resulteert dus in een frequentie f' = 2f - f met amplitude Uui.t:

V

volgens de gestippelde lijn in figuur 2. Dit omvouwen van het signaal is nu toelaatbaar indien Uuit kleiner is dan de fout die gemaakt wordt bij het digitaliseringsproces met behulp van de A/D-converter. Nemen we een n-bits A/D-converter met een range tussen

-

dan is de digitaliseringsfout gdig:

'max en +'max

E dig

-

-

2Umax /zn = 'max /2n-1.

Er zijn dus geen problemen te verwachten indien geldt

Voor het steile stuk in de filterkarakteristiek geldt nu:

waarbij (3 de steilheid van het filter is in dB/oktaaf.

Het omvouwen van het signaal levert dus geen problemen indien voor f' = fmax geldt:

(55)

-53-

Met fs = 2fv volgt dan dat moet gelden:

log ((fs-fmax)/fc)

2

(6/S) log ((Uin/Umax)'lHcl) ofwel

+

f ((Uin~Umax~2n-11~ci

1

6/S fs .L fmax C

Nemen we nu als getalswaarden:

IHcI = 1/2 J2 n = 12 = 5 Volt 'max S = 48 dB/okt dan. volgt: f 2.7 fc(Uin/5) 1 / 8

-

fs

2

fmax

Omdat Uin maximaal Urnax

+

2.7 fp.

-

f=

...

flc^x

kan zijn volgt

Stellen we nu nog de.eis fmax

-

f, dan volgt: fs

2

3.7 fc = 3.7 fmax

Door dus circa 3.7 maal sneller te bemonsteren dan de

maximale interessante frequentie (bij de gekozen getalwaarden) met een kantelfrequentie gelijk aan fmax veroorzaakt het

omvouwen van het signaal geen enkel probleem. In het algemeen is Uin voor frequenties boven fmax natuurlijk veel kleiner dan

(56)

De gekozen getalwaarden behoren bij de in hoofdstuk 2 genoemde apparatuur, waarvoor dan ook geldt

= 5 / 2 0 4 8 = 2 . 4 mV. dig

E

Dat wil zeggen dat signalen met een amplitude van enkele milivolt leiden tot onzinnige resultaten. Wanneer gemeten moet worden in het frequentiegebied van O tot 1 0 0 Hz, met een kantelfrequentie van 100 Hz, dan kan er gesampeld worden met

300 HZr indien zeker is dat zich niet te veel ruis met frequenties boven 1 5 0 Hz in het signaal bevindt. De

vouwfrequentie is dan 150 HZr maar de resultaten tussen 100 en 150 Hz zijn onbetrouwbaar.

Dit alles geldt voor een signaal. Wanneer n kanalen s i m u l t a a n gemeten m e k e n worden, noet i n principe mek n * f bemonsterd worden. Voor latere verwerking is het echter noodzakelijk dat alle n monsters afkomstig zijn van exact hetzelfde tijdstip. Daartoe worden n sample-and-hold-

schakelinsen gebruikt. die de parallelle filteruitgangen op een bepaald moment (gestuurd door een extern kloksignaal)

bevriezen. Door alle uitgangen zo op het zelfde tijdstip vast te houden en vervolgens na elkaar met de A/D-converter naar het computergeheugen te schrijven wordt het gewenste effekt

bereikt. Het sample/hold-signaal moet dus ook met frequentie fs werken, de A/D-converter werkt dan met een gemiddelde

frequentie van n*fs Hz.

(57)

-

5 5 -

BIJLAGE

D

Voor

het tekenen van schema's is in dit verslag

gebruik gemaakt van symbolen uit de ISAC-ontwerpmethode, Het betreft hier de volgende soorten schema's:

A-

of liktiviteitenschema's;

I-

o f Informatieprecedentiesch~ma's;

D-

o f Datasysteemschemais;

r}- of Datastrukturen;

ocesstmkturen,

Tijdens de aktiviteitenstudie wordt vastgelegd wat

voor

aktiviteiten er plaatsvinden, en w a t daar eventueel schematische weergave van

een

bepaalde aktiviteit,

Aktiviteit A i heeft hiey betrekking op vier

verzamelingen, V e r z m e l b g e n V i en V 2 vormen de invoer van deze aktiviteit, 763 en

V4

de uitvoer (informatie- stromen lopen van boven naar beneden, tenzij met pijl anders aangegeven).

vz

en

764 zijn reële verzamelingen

(materiaal, apparatuur) w a w v a n de stroom met een dikke

lijn wordt aangegeven, de overige zijn gegevensverzamelingen. De lijn met de pijl geeft a m dat het hier een permanente verzameling betreft, die blijft nadat hij door A4 gebruikt

(en eventueel veranderd) is.

Referenties

GERELATEERDE DOCUMENTEN

Voor de gemeente Goirle stijgt de algemene uitkering voor uitkeringsjaar 2011 met € 12.592,00 ten opzichte van de raming die gemaakt is voor het financieel tussenbericht.. Dit

Als de continuïteitscorrectie bij deze vraag niet is toegepast, geen punten hiervoor in

Hoewel er een product in de formule staat, hoef je de productregel niet toe te passen, omdat een van de factoren niet afhankelijk is van

Nu gaat de raad met genodigde organisaties praten over de inhoud van de nota en hun reacties Op basis van deze discussie wordt de nota eventueel aangepast en door het college aan de

Naast de objecten met organische mest zijn ook enkele referenties zwavelzure ammoniak, ureum opgenomen in het onderzoek.. In het onderzoek is zowel een voorjaars- als

“Ook voor bedrijven en vereni- gingen lassen we een voor- verkoop in van 29 oktober tot 11 november.. Zij kunnen zich aan- melden

In het kader van de Warmste Week schen- ken ze de opbrengsten van de eetavond weg aan De Stappaert, een lokale vzw die zich inzet voor kansar- me jongeren en jonge al-

Oplossing: Plaats de container(s) liefst in een afgesloten ruimte, maar in ieder geval minstens 10 meter vanaf de gevel gerekend, geborgd door een ketting met slot om af te sluiten