Gebruikersprogramma voor het meetsysteem PCM2
Citation for published version (APA):
Massuger, R. (1987). Gebruikersprogramma voor het meetsysteem PCM2. (DCT rapporten; Vol. 1987.004). Technische Universiteit Eindhoven.
Document status and date: Gepubliceerd: 01/01/1987
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.
R. MASSUGER WFW 87 .O04
Eerste stageverslag
GEBRUIKERSPROGRAFVIA VOOR BET MEETSYSTEEM PCM2
Beschrijving van het gebruikersprogramma behorende bij het vier kanaals meetsysteem PCM2
WFW 87.004
Samengesteld in opdracht van:
Ir. A . Dortmans, bedrijfsmentor Ir. J. Ceel, stagedocent
stageplaats: T.U.E
Faculteit der w ~ r k ~ ~ ~ ~ k ~ n ~ ~ Vakgroep WFW
E‘ 1;i dh- 1 l W ’ G c ; l l
stageperiode: augustus 1986
-
januari 1987auteur: R . Massuger
student HTS-Eindhoven afd. elektrotechniek (TCK)
SAMENVATTING
Binnen de vakgroep WFW van de Technische Universiteit Eindhoven was behoefte aan een meetsysteem dat in staat is een aantal analoge signalen simultaan te meten. Om in deze behoefte te voorzien is het meetsysteem
PCMS ontworpen. Dit is een systeem bestaande uit een (IBM compatible)
P.C., een interface en een meetkast. Met deze meetkast kunnen vier signalen simultaan gemeten worden.
Elk van de vier ingangen is identiek uitgevoerd en omvat:
-
een omschakelbare AC/DC ingang-
een instelbare gain en offset om het ingangssignaal optimaal aan te passen aan de range van de Analoog Digitaal Converter (ADC).-
een analoog, low-pass, anti-aliasing filter met een variablekantelfrequentie die ingesteld word m.b.v. een programmeerbare timer- chip. Deze anti-aliasing filters zijn nodig om de frequentie inhoud van het analoge signaal te beperken.
-
een Sample-and-Hold schakeling om het simultaan meten van de vier kanalen mogelijk te maken, door bij de start van het meetproces alleS/H gelijktijdig te activeren.
Door voormalige afstudeerders zijn een aantal bibliotheken ontworpen waarin routines staan die de directe aansturing van de hardware
verzorgen. Om met het meetsysteem metingen te kunnen verrichten, is een
â:gemeen meet- en verwerkiagsprsgranna noaGzakelijk. frit programma moet in staat zijn de gebruiker te begeleiden, en eventuele ongeldige invoer te detecteren. Om dit te realiseren is gebruik gemaakt van een Commando Interpreter (COIN). Het programma heeft een menustructuur en is opgebouwd uit drie blokken: invoer specificaties, meten en datamanipulatie.
-
invoer specificaties: alle parameters gebruikt bij een bepaalde meting worden ingevoerd.-
meten : De meting begint, en de gemeten data wordt in binaire vorm weggeschreven op floppy- of harddisk.- 3 -
-
datamanipulatie : de gemeten data kan eenvoudig bewerkt worden (middelen, converteren, ascii-file), o f de data kan op het scherm geplot worden.VOORWOORD
Mijn eerste stage (15-8-1986 / 16-1-1987) heb ik doorgebracht op de
Technische Universiteit Eindhoven op de fakulteit der Werktuigkunde. Deze fakulteit is weer onderverdeeld in een aantal vakgroepen, waarvan ik bij de vakgroep Fundamentele Werktuigbouwkunde werkzaam was.
Ik heb me bezig gehouden met het ontwerpen van een algemeen meetprogramma voor een door een P.C. gestuurd meetsysteem. De basisroutines voor h e t direct aansturen van de hardware zijn door voormalige afstudeerders gemaakt. In overleg met een aantal toekomstige gebruikers van het meetsysteem is het uiteindelijke programma geconstrueerd.
Ik wil Ir. A . Dortmans bedanken voor de begeleiding tijdens mijn
stageperiode. Ook wil ik Julius IJzermans en Karel Koekkoek bedanken voor het geven van informatie over de hardware van de meetkast.
- 5 - INHOUDSOPGAVE SAMENVATTING 2 VOORWOORD 4 HOOFDSTUK 1 INLEIDING 7 HOOFDSTUK 2 HARDWARE PCM2
a
HOOFDSTUK 3 OPZET HEETPR0GRAI"W 11
HûOFDSTUK 4 BIBLIOTHEKEN 4 . 1 ZZ.LIB 4.2 YY.LrB 4.3 XX.LIB 4.4 ww.LIB HOOFDSTUK 5 COIN 5 . 1 Waarom coin ? 5.2 De info-file
HOOFDSTUK 6 SET SPECIFICATIONS 6.1 De specificaties 6.2 Specifications-menu 13 13 13 13 14 15 15 18 19 HOOFDSTUK 7 êíEASUREMENT 7.1 Plot 23 7.2 Disk 23
7.2.1 Automatic positioning control 23 7 . 2 . 2 Manual positioning 23 7.2.3 Measurement number change 24 7.2.4 Start measurement 24
7.2.5 Quit disk 25
HOOFDSTUK 8 7 . 3 . 1 Intern 7.3.2 Extern LITERATUURLIJST APPENDIX A APPENDIX B 25 27 DATA MANIPULATION 8.1 Verklaring commando
8.2 Load spec. and block with periods
from old file 30
8.3 Averaging periods in a l l blocks from old file
8.4 Plot all periods in memory 8.5 Asci1 file of data file
8.6 Convert binary file to prime compatible file
8.7 Directory
8.8 Quit data manipulation
30 30 31 31 31 32 32
OPBOUW VAN DATAFILES GEGENEREERT M.B.V PCM2
BEREKENING MECHANICAL UNITS IN ASCII-FILE
3 3
34
- 7 -
HOOFDSTUK
1
INLEIDINGHet analyseren van het (dynamisch) gedrag van een systeem vereist in vele gevallen een complex data-acquisitie systeem. Vaak is een eerste eis dat zo'n systeem in staat is een aantal analoge signalen simultaan te meten, de gemeten waarden om te zetten naar digitale vorm en op te slaan.
Daarnaast moet het systeem ook enige vorm van on-line postprocessing toelaten, hetgeen duidelijke eisen stelt aan de intelligentie van het systeem.
Het hier gehanteerde data-acquisitiesysteem i s ontwikkeld met het doel een vrij flexibel meet- en verwerkingssysteem te krijgen tegen een redelijke prijs. Uitgangspunten hierbij zijn:
-
het systeem moet een flexibel, software gecontroleerd, meetpraces mogelijk maken.-
het systeem moet voorzien in een aantal mogelijkheden wat betreft signaal conditionering (filteren, versterken etc.)-
het systeem moet het aansturen van externe apparatuur (bijv. stappen- motoren) mogelijk maken.Op basis van de gestelde eisen is gekozen voor een systeem bestaande uit een standaard Personal Computer en een separate 4 kanaals meeteenheid. De hardware i s uitgebreid met een hoeveelheid software (bibliotheken), die de elementaire aansturing van de meeteenheid verzorgt.
In deze stage is een algemeen meet- en verwerkingsprogramma ontwikkeld dat toekomstige gebruikers in staat stelt een groot aantal metingen te verrichten, hetgeen ook de opzet van deze stageoparacht was.
Dit verslag is als volgt opgebouwd. Eerst wordt een indruk gegeven van de hardware van de meetkast (hoofdstuk 1 ) . Daarna wordt de opzet (hoofdstuk
3 ) en de gebruikte bibliotheken (hoofdstuk 4+5) besproken. Vervolgens
worden de drie blokken waaruit het programma is opgebouwd behandeld (hoofstuk 6+7+8).
IBM interface HOOFDSTUK 2 HARDWARE PCM2
-
4 kanaais meeteen heid -Om een globaal idee van het meetsysteem te geven wordt in het volgende in het kort de opzet van de hardware besproken ([I]). Globaal kunnen we de hardware indelen in drie onderdelen nl.: -Personal Computer
-1BM interface
-vier kanaals meeteenheid In figuur 2.1 zijn deze drie onderdelen geschetst.
P e r s o n a l Corn p u t er
-
d -
fig. 2 . 1
De PC dient hierbij als centraal stuurmiddel, als opslagmedium voor de gemeten waarden en voor eventuele postprocessing. Om communicatie met de feitelijke meeteenheid mogelijk te maken wordt gebruik gemaakt van een standaard IBM uitbreidingskaart.
Het PCM2 meetsysteem heeft vier analoge ingangen die identiek uitgevoerd zijn. Elke ingang omvat ( zie fig. 2.2 1
-
een omschakelbare AC/DC ingang-
met meerslagenpotentiometers in te stellen gain en offset om het in- gangssignaal optimaal aan te passen aan de range van de A/D converter-
een analoog, low-pass, anti-aliasing filter met een variable kantelfre- quentie die ingesteld word met behulp van de programmeerbare timerchip. Deze anti-aliasing filters zijn meestal nodig om de frequentieinhoud van het analoge signaal te beperken, omdat we immers moeten voldoen aankanaal O
-
kanaal i-
It l
gain & I I I . off set kanaal 2-
kanaal 3-
S/H rAC/DC gain I camr
ie-holds filter freq. I I e Ih
S/ Hal
offset mu it i pl I ex er AD-converter 1 I I I I gain offset I I I I I I I I S/H gain &.
~ offset I I In
n
timerU
fig. 2.2het bemonsteringstheorema van Shannon. Dit theorema zegt dat de maxi- male frequentie in een signaal, dat met een gegeven samplefrequentie
wordt bemonsterd, hoogstens de helft van deze samplefrequentie mag
7- 2 -- _ _ i I - : ..i= :i,.
'
2) *1
Fsamp freq.
-
[Hz]-
een Sample-and-Hold schakeling die gestuurd word door middel van deparallelle poorten. Deze S/H schakelingen zijn ingebouwd om het si- multaan meten van de vier kanalen mogelijk te maken, door bij de start van het meetproces alle S/H gelijktijdig te activeren.
De parallelle poorten dienen enerzijds ter sturing van andere compo- nenten van de meeteenheid, anderzijds verschaffen zij een aantal digi- tale in- ez Uitgangen. Zo is een triggeringang aanwezig waarmee net
starten van een meetproces mogelijk gemaakt kan worden. Tevens zijn digi- tale uitgangen aanwezig die het nogelijk maken een drietal stappen-
motoren te sturen. Voor het aansturen van externe apparatuur (bijv. een electromechanische shaker) is een Digitaal Analoog Converter (DAC) aan- wezig, waarmee iedere gewenste analoge spanning in de range van -10 tot
+ I O Volt gegenereerd kan worden. De timer chip dient behalve voor het controleren van de kantelfrequentie van de anti-aliasing filters ook als klok voor het controleren van de sample-snelheid.
- 11 -
HOOFDSTUK 3 OPZET PIEETPROGRAMMA
Om het PCM2 meetsysteem universeel te maken moet het meetprogramma een aantal eisen voldoen:
-
het programma moet gebruikersvriendelijk zijn.-
het programma moet een duidelijke structuur hebben.- de met het programma gegenereerde datafiles moeten een dusdanige structuur hebben dat zij compatible zijn met files gegeneerd m.v
bestaand zestien kanaals meetsysteem (L-23).
-
het geheel van hardware en software moet in staat zijn met een redelijke snelheid een hoeveelheid data in te nemen.aan
b. een
Bij het ontwerpen van het meetprogramma is gebruik gemaakt van een aantal. bibliotheken die bij de aanvang van de stage al gedefinieerd waren. De gebruikte bibliotheken zijn: ZZ.LIB
YY. LIB
xx
* LI%%ij het programmeren is gekozen voor de programmeertaal Fortran. Deze taal heeft als voordeel dat er gemakkelijk met grote files gemanipuleerd kan worden.
Het meetprogramma is opgebouwd uit drie blokken: instellen specificaties meten
datamanipulatie
Deze drie blokken worden in de hoofdstukken zes, zeven en acht besproken.
Om het meetprogramma van een duidelijke structuur te voorzien, en gebruikersvriendelijk te maken is gebruik gemaakt van een Commando interpreter (Coinj(i3jj. Deze stelt de gebruiker vragen, doet een
suggestie voor de invoer en controleert de invoer. Hoe coin werkt en wat er in de noodzakelijke coin info-file moet staan, wordt in hoofdstuk vijf besproken.
Omdat de files geproduceerd door het PCM2 meetsysteem compatible moeten zijn met de files van het zestien kanaals meetsysteem, ligt de stuctuur van deze files vast. De datafiles zijn ongeformatteerde binaire files. Ten opzichte van ASCII-files hebben deze binaire files de volgende voordelen:
-
snel in te lezen en te genereren-
snel over te zenden naar de Prime computer.De binaire datafiles bestaan uit twee gedeelten (zie fig. 3 . 1 ) . De kop
(zie appendix A ) , hierin staan de bij de meting ingestelde parameters, en de gemeten data.De data bestaat uit êén of meer datablocks. Elk datablock bestaat uit C&n of meerdere perioden. Alle in de file voorkomende
datablocks hebben hetzelfde aantal periodes. Elke periode representeert een aantal gemeten waarden van een analoog signaal.
block 1 block 2 ..
..
block M fig. 3 . 1- 13 -
HOOFDSTUK 4 BIBLIOTHEKEN
Het meetprogramma is voor een groot deel opgebouwd uit routines. Deze routines zijn verdeeld over een aantal bibliotheken. Elke bibliotheek geeft een ander niveau aan. Opgesomt van laag naar hoog niveau zijn dit de bibliotheken:
-
ZZ.LIB-
YY.LIB-
XX.LIB en WW.LIBIn de volgende paragrafen zullen deze bibliotheken besproken worden.
4.1 ZZ.LIB
De macro-bibliotheek ZZ.LIB bestaat uit z.g.n. macros. Dit zijn elementaire stukjes assembler die tijdens het assembleren van YY.LIB ingevoegt worden, daar waar in een routine uit YY.LIB verwezen wordt naar zo'n macro. ZZ.LIB kan niet afzonderlijk geassembleerd worden. We kunnen ZZ.LIB verdelen in drie gedeelten:
-
macros voor de feitelijke aansturing van de meeteenheid.-
macros voor de interface Fortran-assembler.-
macros voor het initialiseren, afhandelen en beëeindigen van interrupts van counter O (IRQ21, die gebruikt worden bij het feitelijke meetproces.4.2 YY.LIB
De routine-bibliotheek YY.LIB bestaat uit assembler routines. Bij de
opbouw hierïzr, is gebruik yemakt vätl de iììâcïvs gedefinieerd in ZZ.LTii.
De routines uit YY.LIB zijn direct vanuit Fortran aan te roepen.
4.3 XX.LIB
Met de routines uit YY.LIB zou men in principe een meetprogramma kunnen construeren. Dit heeft echter wel het nadeel dat er nauwelijks controle bestaat voor in- en uitgevoerde parameters. Dit probleem is opgelost door de bibliotheek XX.LIB te maken.
XX.LIB is een bibliotheek geschreven in Fortran, en maakt gebruik van de routines uit YY.LIB. Om de gebruiker in staat te stellen data op het scherm te plotten, zijn aan XX.LIB een tweetal plotroutines toegevoegd. Deze plotroutines zijn opgebouwd uit routines uit de grafische
bibliotheek HALO.
4.4 WW.LIB
Met de tot nu toe beschreven bibliotheken kan een programmeur een
meekprogramma maken voor elke toepassing. WW.LIB bestaat uit een aantal subroutines die gebruikt worden in het ontwikkelde universele
meetprogramma (PCP(I2.FORi behorende bij het PCM2 meetsysteem. Deze routines kunnen bij een eventueel specifiek verwerkingsprogramma ook gebruikt worden.
- 15
-
HOOFDSTUK 5 COIN
5 . 1 WAAROM COIN ?
Een probleem bij interactieve programma's is steeds de begeleiding van de gebruiker. Dit probleem is tweeledig. In de eerste plaats is er de
dosering van de hoeveelheid te bieden hulp, een beginnende gebruiker heeft meer behoefte aan begeleiding, terwijl een ervaren gebruiker zich mateloos irriteert aan overbodige teksten en vragen. In de tweede plaats moet de programmmeerinspanning, nodig voor het verstrekken van de hulp en voor het detecteren van onbruikbare gebruikersinvoer niet onderschat worden.
Coin (Commando Interpreter) biedt een oplossing voor beide problemen. Coin is een routine bibliotheek geschreven in standaard Fortran, en ontwikkeld op de Technische Universiteit Eindhoven.
5.2 DE INFO FILE
Met coin is het mogelijk de menustructuur vooraf vast te leggen in de coin infofile, d.m.v. unieke commando's die verdeeld kunnen worden in bepaalde hoofd- en subcommando's. Deze commando's komen samen met de vragen en een eventuele hulptekst in 4th file te staan. Deze Pile heet de info-file.
De info file bestaat uit vier secties; controle-, commando-, vragen en een helpsectie. De vier secties zullen in de loop van dit hoofdstuk aan de hand van file 5 . 1 (de file behorende bij het PCM2 meetprogrammaf besproken worden.
Controle sectie:
De controle sectie bestaat uit de eerste twee regels van de info-file. deze twee regels moeten altijd aanwezig zijn. Op de eerste regel staat een dubbele punt, dit is het teken voor de gebruiker om hulp te vragen. De twee regel bevat een tekst die op het scherm verschijnt wanneer er interne fout in coin optreedt.
Commando sectie:
De menustructuur wordt bepaald in de commando sectie. De hoogte van het cornmando niveau wordt aangegeven door het aantal spaties voor het
commando. Een commando met meer spaties voor zich is een subcommando van een bovenstaand commando met minder spaties voor zich. Met coin is het dus mogelijk de menustructuur vast te leggen zonder dat er ook maar &n letter van het programma geschreven is.
Vragen sectie:
De vraagsectie bevat alle informatie over de bij de invoer horende
vragen. Het eerste cijfer van een regel geeft aan of er een hulptekst bij de vraag is ( O betekent geen hulptekst I . Het volgende cijfer is het vraagnummer. De letter direct achter dit nummer geeft het type van de verwachte invoer aan. I voor integer, R voor real, B voor boolean en T
voor een tekststring. Het oproepen van een vraag die een integer als input verwacht kan zijn: CALL IQBCO (12,X,1,3O). Hier wordt de vraag met vraagnummer 12 gesteld. De ingevoearde waarde wordt aan de variable X
toegekent. De invoer moet liggen tussen de
1
en de 30. Als suggestie voor het antwoord wordt de actuele waarde van X gebruikt.Help sectie:
De help sectie kan de helpteksten bevatten. Omdat de teksten niet altijd nodig zijn kan deze sectie ook leeg zijn. De helptekst voor een vraag begint met
<
'vraagnummer', de helptekst voor een commando met<
HOOFDSTUK 6 Set specifications
6.1 DE SPECIFICATIES
In dit hoofdstuk worden de mogelijkheden en beperkingen van het PCM2 meetsysteem besproken. Als inleiding op de volgende paragrafen volgt hieronder een overzicht van de specificaties.
-
aantal kanalen- aantal meetperioden
-
aantal in te nemen samples per periode-
triggertypes - triggerniveau(externe trigger)-
DC-filter-
calibratieschakelaar-
file-soort-
twee DC-uitgangen (DACO, DACI)- analoge uitgang tijdens meting
: 1-4
: 1-1000
: 32766 / aantal gebruikte kanalen
: free run, extern, keyboard
: O en 5 Volt
: klein f l datablock), groot (meerdere datablocks)
(DACI gestuurd)
Bovenstaande gegevens zijn onafhankelijk van de klokfrequentie van de PC. Deze is meestal 4.77 Mhz, maar kan in sommige gevallen omgeschakeld
worden naar 8 Mhz. Onderstaande gegevens zijn wel afhankelijk van de klokfrequentie. 4.77 Mhz 1 kanaal meten 6750 2 kanalen 4200 3 kanalen 3050 4 kanalen 2500 6450 4150 3000 2440
-
19 --
filter frequentie : 1-5000 HZ-
maximale sample- DACI niet DACI welfrequentie [Hz] gestuurd gestuurd
...
9 kanaal gemeten 10800 10300 2 kanalen 6700 6 600 3 kanalen 4850 4800 4 kanalen 4000 3900 6.1 SPECIFICATIONS-MENU-
I : inform specificationser wordt een overzicht gegeven van de op dat moment ingestelde parameters.
-
DEF : defaultalle instellingen worden veranderd, en worden zoals ze waren bij het opstarten van het programma.
-
L : load specifications from old filenadat de filenaam van een datafile is opgegeven worden uit die file de specificaties gelezen. Alle eerder ingestelde specifi- caties zijn vervangen door die van de ingelezen file.
-
CH : channels for measurements Hoeveel kanalen en welke-
SF : sampling frequency Samplefrequentie-
FF : filter frequencyFilterfrequentie. Als men een nieuwe filterfrequentie intikt, wordt die frequentie direct ingesteld.
-
NS : number of samplesAantal samples per kanaal
-
NP : number of measurementperiodsAantal periodes; BBn periode bestaat uit het bij 'NS' gekozen aantal samples.
-
U : usercodeGebruikerscode; het is mogelijk bij elk kanaal een codering op te geven. Dit is een tekst van maximaal twintig karacters. In die tekst mogen geen spaties voorkomen.
- C : gain & offset transducer
Als gain en/of offset van de opnemer bekend zijn, kan men die bij dit commando opgeven. Deze gegevens worden dan in de kop van de datafile gezet.
-
T : triggertypeEr zijn drie manieren om te triggeren: free run external keyboard
Heeft men external gekozen dan kan men nog kiezen uit twee accept levels: 0 en 5 Volt.
-
DC : DC filterVoor het wegfilteren van de DC-component in het ingangssignaal is
irirjirpáss f i l t e r ikanteffreqüentie 0.03 ;;xi aiinweziq, dat E e t U i t
commando geactiveerd kan worden
- CA : calibration switch
Net dit commando is het mogelijk het meetsysteem in de cali- bratiemode te zetten. Het extern (te meten) signaal wordt afge- koppeld. Het is nu mogelijk met behulp van DACQ te calibreren (
zie commando DN).
-
21-
A l s bij een meting stappenmotoren gebruikt worden, dan bestaat de mogelijkheid om die automatisch na een meting te laten draaien. De afstand die het object, dat door de motoren bestuurd word, af-
legt, wordt bij dit comando opgegeven.
-
FT : file typeHet systeem kan twee soorten files maken; small en large files. €en small file bestaat uit &n datablock. Na een meting wordt deze file direct gesloten. Een large file bestaat uit meerdere datablocks. Een large file staat gedurende de meting open, en wordt bij het commando Quit Measurement pas gesloten.
- FP : file psefix
De file prefix mag Hiaximaal zes karakters lang zijn. Afhankelijk van het soort file wordt de prefix aangevuld met '-S'(smafl file)
'-L'(1arge file) of '-A'(ascii file). Dit totaal maakt de uit- eindelijke prefix. De extensie van de filenaam bestaat uit drie cijfers. De eerste twee vertegenwoordigen het metingnummer, de derde het kanaal.
-
DN : constant DACO outputA l s het meetsysteem in de calibratiemode staat (extern te meten signaal is afgekoppeld) kan men met behulp van dit comraando een constante spanning opgeven voor DACO. Deze spanning word clan in- tern op de ingang van het meetsysteem gezet. A l s men twee ver- schillende spanningen (geproduceerd door DACO) op de ingang zet kan met behulp van de uitgangsspanningen de gain en offset van de meetkast berekenen.
-
DE : constant DACI outputDACI is bedoelt voor het generenen van stuurspanningen voox ex- terne apparaten. Met behulp van dit commando geeft DACI een con- stante uitgangsspanning. De uitgangsspanning kan met de uitwendig aanwezige Potentiometer versterkt worden (versterking O-2x).
Indien het gewenst is, kan men tijdens de meting een analoog sig- naal genereren. De vorm en de grootte van dit signaal vooraf in een file gezet worden. Deze binaire file mag maximaal 32766 be- vatten, die tussen de O ( O V) en 255 (5 V) moeten liggen. De
waardes in de file worden tijdens het meten met de samplefrequen- tie naar de output gestuurd.
Q : quit
terug naar het hoofdmenu
-
23-
HOOFDSTUK 7 MEASUREMENT
7 . 1 PLOT
Om te controleren of gain en offset van de meetkast goed zijn aangepast aan het te meten signaal kan men een testmeting doen. Na deze testmeting wordt het resultaat meteen op het scherm getekend. Hierbij worden de eerder ingestelde specificaties niet veranderd. Men kan wel het aantal samples opnieuw instellen. Maar bij de uiteindelijke meting wordt het aantal bij Set Specifications ingestelde aantal samples genomen. Men kan slechts CCn kanaal tegelijkertijd meten en plotten. Dit kan wel een aantal keer achter elkaar gebeuren.
7 . 2 DISK
A l s alle specificaties juist zijn ingesteld, de echte meting kan dus beginnen, kiest men het commando disk.
~ 7.2.1 Automatic Positionins Control
A l s men bij een bepaalde meting stappenmotoren gebruikt kan men die automatisch na de voltooiing van een datablock laten draaien. Men kan deze instelling na ieder gemeten datablock veranderen.
7 . 2 . 2 Manual Positioninq
His men het o b j e c t dat door de stappenmotoren b e s t u u r d word i n de roede
positie wil brengen, kan men de motoren vanuit het programma laten draaien. De afstand die het object t.o.v. een vast assenstelsel aflegd moet bij manual positioning control ingetypt worden. Men kan het x-y vlak rotoren t.0.v de z-as. Hierdoor ontstaat een nieuw assenstelsel n.1. x i -
Y'-z. Phi is de hoek tussen x en x' (zie fig. 7 . 1 ) . Nadat men de hoek heeft ingetikt beginnen de motoren te draaien.
Z
Y'
fig. 7 . 1
7.2.3 Measurement Number Chanse
Het programma nummert zelf de files. De nummering begint bij O en wordt maximaal 99. Met dit commando kan men de nummering bij elk gewenst nummer
iaten beginnen.
7.2.4 Start Measurement
Na dit commando wordt het bij NP ingegeven aantal perioden gemeten en weggeschreven naar disk. Dit aantal perioden wordt een datablock genoemd. Er kunnen twee soorten files gemaakt worden; small en large files. In het volgende wordt de opbouw van beide files besproken.
- 25
-
De filenaam xxxxxx-S.00~ wordt geconstrueerd (als metingnr.=O, kanaal=y en prefix=xxxxxx). Deze file word geopend en de gemeten data wordt per periode weggeschreven op disk. Als er een data-
wordt de file gesloten. Als dit gebeurd is wordt het metingnummer opgehoogd. Drukt men nu weer ' S i in dan wordt de file xxxxxx-S.0ly geopend en het beschreven proces begint opnieuw.
large files:
De filenaam xxxxxx-T.00y wordt geconstrueerd. Deze file word geopend en de gemeten data wordt per periode op disk weggeschreven. Als het totale datablock op disk staat gaat het programa terug naar het niveau Disk. Als
' S ' wordt ingedrukt wordt weer een datablock gemeten en weggeschreven,
Pas wanneer op ' 9 ' gedrukt wordt wordt de '-Ti (temporary) file gesloten (zie par. 7.2.5).
block op disk staat
7.2.5 Quit disk
Als er small files gemaakt zijn gaat het programma direct terug naar het measurementniveau. Zijn er echter large files gegenereerd, dan gebeurt er het volgende; de temporary file word gesloten. De file xxxxxx-L.0Oy
wordtgeopend. De specificaties uit de temporary file worden gecopieerd en aangepasd, zodat het juiste aantal datablocks in de specificaties staat. De aangepaste specificaties worden in de '-L' file geschreven. Daarna wordt steeds een periode uit de '-Ti file gelezen en weggeschreven naar de '-Li file. Dit gaat door tot het einde van de '-Ti file bereikt is. Dan worden beide files weer gesloten. De '-TI file is nu overbodig geworden, en kan verwijderd worden van de disk. Vervolgens wordt terug- gegaan naar het Measurement niveau.
7.3 CALIBRATION
Omdat meetkast en opnemer een gain en offset kunnen hebben is het noodzakelijk die te kennen. Als de gain en/of offset van de opnemer bekend zijn kan men die invoeren bij set specifications. Het extern calibreren is dan overbodig. Omdat de meetkast een regelbare gain en offset heeft is intern calibreren (v/d meetkast) altijd noodzakelijk.
7.3.1 Intern
De calibratieswitch word automatisch ingeschakeld (externe signalen af-
ge koppeld). Door DACO wordt een calibratiespanning van -5 Volt op de ingang gezet. Er worden nsamp samples genomen. Indien hierbij overflow van Analoog Digitaal Converter opgetreden is, dan wordt de calibratie- spanning met 0.096 Volt verhoogd. Indien geen overflow optreedt dan is de dan ingestelde calibratiespanning de laagst mogelijke calibratiespanning
x1.
Dit wordt ook gedaan door te beginnen met een calibratiespanning van +5 Volt (en deze bij overflow te verminderen met 0.096 Volt) tot de grootst mogelijke calibratiespanning Xh bepaald is. Het traject X1-Xh wordt inge- deeld in ncal-’i gelijke stukken z.d.d. we ncal calibratiepunten krijgen. Bij ieder calibratiepunt hoort een calibratiespanning Yj. Voor iedere Xj
worden nsamp samples genomen en gemiddeld tot een waarde Yj.
Op basis van de gemeten Yj en de ingestelde Xj wordt met behulp van een lineaire regressie de gain en offset bepaald uit Yj=offset+gain*Xj. in figuur 7.2 en 7 . 3 is een grafisch beschrijving van dit proces te zien.
- 27
-
-
7 . 3 . 2 ExternSoms kan het voorkomen dat de gain
/
f
offsetX
fig. 7 . 3
en offset van de opnemer, en in het ergste geval beide, niet bekend zijn. Om deze gain en offset gemakkelijk te kunnen bepalen is in het programma de mogelijkheid van extern
calibreren opgenomen. We kunnen drie gevallen onderscheiden: alleen offset bekend
alleen gain bekend gain en offset onbekend
in het onderstaande zal aan de hand van Eiguur 7 . 4 elk geval apart be- sproken worden.
opnemer meet kast
Alleen offset bekend:
Om de gain van de opnemer te kunnen bepalen is het noodzakelijk dat de meetkast gecalibreerd is. Na het instellen van de juiste input voor de opnemer, worden van dit ingangssignaal nsamp samples genomen. Daarna worden deze samples gemiddeld.Deze procedure kan, indien gewenst, enkele malen (stel NCAL verschillende inputs) herhaald worden (bin keer is het minimum
1
Uit deze gegevens kan de gain van de opnemer d.m.v. een lineaire regressie berekend worden. Dit gebeurt met formule 7.3.2.1.
G = 7.3.2.1
alleen gain bekend:
Ook hierbij is het noodzakelijk dat de meetkast al gecalibreerd is. Hetzelfde proces als bij "alleen offset bekent" wordt herhaald. Net die verzamelde gegevens kan men de offset van de opnemer berekenen met formule 7.3.2.2.
E Yi- Go. E Xi
-
O0
-
7.3.2.2-
29-
Gain en offset beide onbekend:Omdat gain en offset beide onbekend zijn is het noodzakelijk minimaal twee verschillende calibratiewaarden in te voeren. Is de juiste input ingesteld dan worden nsamp samples genomen, en daarna gemiddeld. Met formule 7.3.2.3 en 7.3.2.4 kan dan de gain en offset van de opnemer berekend worden. I: Yi*I:
xi
2-
1 Xi.t Yx
i' io,
= 2 2 uNCAL.):
xi -
(I: Xi)G a =
2
NCAL.1
xi-
(I:xi12
O
7.3.2.3
HOOFDSTUK 8 DATA MANIPULATIE
8 . 1 VERKLARING COMMANDO
Bij de meeste metingen kan men met alleen de datafiles weinig beginnen. Om inzicht te krijgen in wat er precies gemeten is moet de data bewerkt worden. Een klein deel van dit bewerken kan binnen het meetprogramma ge-
beuren. Voor specifieke verwerkingen is dit programma niet geschikt. Daarvoor zal de gebruiker zelf een programma moeten schrijven.
8.2 LOAD SPEC. AND BLOCK WITB PERIODS FROM OLD FILE.
Om een datafile te kunnen plotten, moet de data eerst in het geheugen van de computer gezet worden. Omdat dit geheugen beperkt is, kan slechts een datablock (naar keuze) in het geheugen gezet worden. Als men uit het totale aantal datablocks er een heeft uitgekozen, kan men beslissen welke periodes uit dit datablock in het geheugen gezet worden. Het geheugen voor de data is 64 K. De getallen die in de datafiles staan zijn twee
bytes lang. Wanneer het geheugen te klein is voor de in te laden data gaat het programma terug naar het Data Manipulation nivau. Men zal dus het aantal periodes moeten verminderen.
8 . 3 AVERAGING PERIODS IN ALL BLOCKS FROM OLD FILE
Als men van een periodiek signaal meerdere perioden meet (wel steeds op hetzelfde punt beginnen), en daarna middeld, dan word de meting
naU-wkeuriger.
Na de keuze AV word de prefix van een binaire datafile gevraagd. Dit is de prefix die bij Set Specifications is ingevoerd, dus zonder '-S'of ' -
L'. Intern wordt dan de totale prefix gecontrueerd. Vervolgens wordt de prefix voor de gemiddelde file gevraagd. Deze prefix mag evenals de vorige maximaal zes karakters lang zijn. Intern word dan weer de totale prefix geconstrueerd. Deze bestaat uit de ingevoerde prefix met '-A' eraan toegevoegd. Nu de prefix van de input- en outputfiles bekent zijn kan het eigenlijke middelen gaan beginnen. Het programma zoekt alle filenamen die met de geconstrueerde inputprefix beginnen en waarvan het
- 32
-
metingnummer tussen de ingevoerde grenzen ligt. Wanneer een datafile gevonden wordt die aan deze eis voldoet word deze in het geheugen geladen en gemiddeld.
De gemiddelde file heeft na het rekenproces hetzelde aantal blokken als de oorspronkelijke datafile. Het enigste verschil is dat per datablock slechts een periode aanwezig is, n.1. de gemiddelde periode.
8.4 PLOT ALL PERIODS IN MEMORY
Om een globaal idee te krijgen van de getallen in een datafile, kan men deze data op het scherm laten plotten. Om te voorkomen dat oude, nog in het geheugen aanwezige data geplot wordt, moet men eerst de gewenste data uit een datafile laden.
Het aantal periodes dat uit de datafile gehaald wordt, wordt op het scherm geplot. Door het aantal te plotten samples te varieeren kan men een periode in meerdere stukken opsplitsen, en daarna plotten. Onder het geplotte plaatje staat nog enige nuttige informatie zoals het aantal samples dat op het scherm geplot is, kanaalnummer en het periodenummer.
8.5 ASCII FILE OF DATA FILE
Als men met behulp van een editor of printer een datafile wil bekijken komt men erachter dat deze niet te lezen is. Het is immers een binaire file. Om toch, voor de verdere verwerking plaatsvind, de file te kunnen lezen, kan men de datafile omzetten naar een ASCII-file. Deze file
bestaat uit een kop met daaronder de data. Deze data vertegenwoordigd de gemeten Mechanical ünits. Dit komt doordat de gain en offset van zowel opnemer als meetkast geelimineerd zijn (zie appendix B).
8.6 CONVERT BINARY FILE TO PRIWE COMPATIBLE FILE
Als men de datafiles op de prime wil verwerken, moeten we voor
oversturing de file eerst converteren. Dit is nodig omdat in de datafiles real*4 getallen staan. Bij directe oversturing naar de Prime worden deze getallen verandert in onherkenbare getallen. Als men voor oversturing de
real*4 getallen omzet naar rea1*8 getallen heeft men van de vervosming geen last.
8 . 7 DIRECTORY
Om te kijken welke files aanwezig zijn in de directory waar de gemeten datafiles terecht komen is in het meetprogramma het commando directory aanwezig. Nen kan de hele directory listen door
*.*
in te voeren. Men kan ook alle files met een bepaalde prefix, of een deel van die prefixlisten. Dit listen kan ook met alle files die een bepaalde suffix, o f een deel van die suffix hebben.
8 . 7 O U I T DATA ~ ~ r ~ U L A T ~ 0 ~
Bij dit commando word het data manipulation niveau verlaten, het
programma keert terug naar het hoofdniveau. Al de in het geheugen geladen data is niet meer geldig.
-
3 3-
LITERATUURLIJST
[I] Hardware van en software voor het meetsysteem PCM2. A . Dortmans, K. Koekkoek, G. Teurlinx, WFW 86.032, Technische Universiteit Eindhoven, juni 1986
[ 2 ] Een P.C. gestuurd meerkanaals meetsysteem voor dynamische netingen: opbouw, werking en gebruik. A. Dortmans, K. Koekkoek, WFW 85.030, Technische Universiteit Eindhoven, mei 1985
APPENDIX A OPBOUW VAN DATAFILES GEGENEREERT M.B.V. PCM2
Om een datafile te maken die compatible is met de files geproduceerd door het zestien kanaals meetsysteem moeten we een file maken die e r als volgt uitziet:
-
25 integer"2 ( 50 bytes ( stel XXISP(1). . .
XXISP(25) 1-320 character*l ( 320 bytes 1 ( s t e l XXCSP(1)
...
XXCSP(320) )-
64 real*$ ( 256 bytes 1 ( stel XXRSP(1) ,.
, XXRSP(Q4)1
-224 character*l ( 224 bytes 1 ( stel XXDSP(1)
...
XXDSP(224)1
-
meetwaarden in integer"2 formaat f tussen -2048 en i2047 )De kop van de file tot aan de meetwaarden bevat specificaties van de meting en moet 1074 bytes lang zijn. De variable in de kop hebben de volgende betekenis:
-XXISP :
XXISP(1)- I
.
32766 : aantal datablocksXXISP(2)=
o
: geen DA-output naar DACI tijdens de meting XXISP(3)= I : aantal kanalen aanwezig in datafileXXISP(4)= 1
..
4 : kanaalnummerXXISP(89=
o
: start meting free-run1 : wel DA-output naar DACI tijdens meting
1 : start meting m.b.v. externe trigger 2 : start meting m.b.v. keyboard
XXISP(9)=
o
: indien externe trigger gewenst dan start meting: als externe trigger hoog ( +5 volt )
128 : indien externe trigger gewenst dan start meting : als externe trigger laag ( O volt )
XXISP(10)=
o
: DC-filter uit1 : DC-filter aan
XXISP (20) : mantissa en exponent van tijdsinterval tussen 2 XXISP (2 1 : samples in microseconden
: ( f = (kiokfreq./4)/(XXISP~20~*10**XXISP(21~~ Nz
XXISP (22
1
: mangissa en exponent van tijdsinterval tussenXXISP ( 23 ) : pulsen voor anti-aliasing filters in micro-
: seconden
: f = (klokfreq./4)/(XXISP(22)*lO**XXISP(23)) XxISPi%4j= i
.
32766 : ahtal perioden per datablockXXISP(25)= 1
.
32766 : aantal in te nemen samples per periodeAlle niet genoemde arrayelementen zijn nog vrij in te kleden, of zijn na een meting niet relevant meer.
-XXCSP :
XXCSP bevat character*l variable die kunnen dienen voor het opslaan van een "usercode". Vanuit het meetprogramma PCM2.FOR kan voor elk kanaal een usercode worden ingevoerd. Dit is een tekst bestaande uit twintig
karakters. -XXRSP :
XXRSP(l+kanaal) bevat offset van de opnemer aangesloten op dit kanaal XXRSP(l7tkanaal) bevat gain van de opnemer aangesloten op dit kanaal XXRSP(33tkanaal) bevat offset van de filterunit van kanaal
- 35
-
XXRSP(49+kanaal) bevat gain van de filterunit van kanaal (kanaal= û . . 3 )
Alle niet gebruikte arrayelementen zijn nog niet gebruikt. -XXDSP :
XXDSP is nog niet gebruikt en kan derhalva vrij ingekleed worden.
APPENDIX B BEREKENING VAN MECHANICAL UNITS IN ASCII-FILE SUBROUTINE WWSAVA
$INCLUDE:'XX.CMN' $INCLUDE: 'WW.CMN'
C
C SUBROUTINE TO WRITE MEASURED DATA IN ASCII FILE
C C C C
c
C C C C C C C C C C C C C C C c C PARAMETERS --- METHOD---
WWSAVA CREATES AN SIGNALS AS STOREDASCII FILE CONTAINING VALUES FOR MEASURED IN PREVIOUSLY MADE BINARY FILE
RAW ADC DATA IN THIS FILE IS CONVERTED TO MECHANICAL UNITS USING SPECIFICATIONS IN FILE
WWPSPC {FROM WW.LIB) TQ1CO,IQSCO (FROM COIN)
CHARACTER"1 ~~E(l2~rFILPRE(6) CHARACTER"12 S1NN~'ASCNAM
INTEGER*2 CHAN,MEASNR,DUMSPC(25) LOGICAL FEXIST, FILSRT
REAL*4 OFFFIL,AMPFIL~OFFTRA~AMPTRA~OFFcORrAMPCOR INTEGER"2 IBLOCK,EBLOCK,SBLOCK,IPERIO C C C
c
DO 100 I=lr6 FILPRE(I)=' ' 100 CONTINUE READ('ASCI1 ','(6AI)')FILPRE FILSRT=. TRUE. MEASNR=OASK NAPIE OF EXISTING BINARY DATA FILE AND CHECK FOR EX1 STENCE
200
READ('B1NARY FILE ','(12AI)')NAME CALL TQ1C0(43,NAMEr12)
WRI~E(~IN~AMr'(12A1)')~NAME(I),I=l,12) INQUIRE(FILE=BINNAM,EXIST=FEXIST)
IF (.NOT. FEXISTITHEN WRITE(XXOUTP,200)
FORMAT(' FILE DOES NOT EXIST ! ! ! ' I RETURN
-
37 - END IF C C C 300 350 C C C C 400 C C C CASK NAME FOR ASCII FILE AND CHECK FOR EXISTENCE READ('ASCI1 FILNAM','(12AI)')NAME CALL TQ1C0(62,NAMEr12) WRITE(ASCNAM,'~12Al)')JNAME(I~~I=l~l2~ IF (FEXIST) THEN INQUIRE(FILE=ASCNAM,EXIST=FEXIST) WRITEfXXOUTPf300)ASCNAM
FORMAT(/,' ASCII FILE',lX,A,IX,'ALREADY EXISTS ! ! ! ' I RETURN
ENDIF
OPEN FILES AND READ SPECIFICATIONS FROM BINARY FILE
WRITE SPECIFICATIONS TO ASCII FILE AS MENU NORMALLY GIVEN WHEN ENTERING SPECIFICATIONS
O P E N ( S , F I L E = B I N N A M , S T A T U ~ = ' O ~ ~ ' ~ F O R M = ' ~ I N A R ~ ' ~ OPEN(I,FILE=ASCNAM,STATUS='NEW') READ(S)XXICPfXXCSP,XXRSP,XXDSP CALL WWPSPC(l,FILSRT,FILPXE,MEASNR) WRITE(I,'(IX)') WRITE(Ir350)
FORMAT(I5Xr 'CHANNEL (MECHANICAL UNITS I ' , / ) WRITE(1, '(IX)')
INITIALIZE SOME PARAMETERS NECESSARY FURTHER ON DUMSPC CONTAINS COPY OF SPECIFICATIONS
CHAN=CHANNEL NUMBER THIS BINARY FILE CAME FROM OFFFIL= OFFSET OF FILTER UNIT FOR THIS CHANNEL AMPFIL= AMPLIF OF FILTER UNIT FOR THIS CHANNEL OFFTRA= OFFSET OF TRANSDUCER FOR THIS CHANNEL AMPTRA- AMPLIF OF TRANSDUCER FOR THIS CHANNEL
A~PCOR=CORRECTION FACTOR TO CONVERT ADC VALUES TO MECHANICAL OFFCOR=CORRECTION FACTOR TO CONVERT ADC VALUES TO MECHANICAL
UNITS ( TOTAL AMPLIFICATION )
UNITS ( TOTAL OFFSET
1
DO 400 I=1,25 CONTINUE CHAN=DUMSPC(4) OFFFIL=XXRSP(33+CHAN) AMPFIL=XXRSP(49+CHAN) OFFTRA=XXRSP(I+CHAN) AMPTRA=XXRSP(17+CHAE) OFFCOR=OFFFIL+AMPFIL*OFFTRA AMPCOR=AMPFIL*AMPTRA DUMSPC(I)=XXISP(I)ASK WHICH PART OF BINARY FILE MUST BE CONVERTED TO ASCII
500 FORMAT(/, i THERE ARE',I4,1X, 'DATABLOCKS') SBLOCK= 1 CALL IQBCO(63,SBLOCK,l,DUMSPC(l~~ IF (DUMSPC(1) .EQ.I)THEN ELSE ENDIF CALL IQBC0(64,EBLOCK,SBLOCKfDUMSPC(1)) IF (SBLOCK.EQ.I)GOTO 1000 EBLOCK= 1 EBLûCK=SBLOCK+I C C C C
SKIP FIRST BLOCKS NOT NEEDED ( READ DUMSPC(24) PERIODS OF DUMSPC(25) SAMPLES ) 1100 1200 1300 1400 DO 900 IBLOCK=IfSBLOCK-I DO 800 IPERIO=I,DUMSPC(24) READ(2)(XXAD(J),J=lfDUMSPC(25I) 800 CONTINUE 900 CONTINUE 1000 CONTINUE C
C THEN READ ALL BLOCKS TO CONVERT TO MECHANICAL UNITS
C DO 5000 IBLOCK=SBLOCK,EBLOCK WRITE(1,lIOO) FORMAT(1Xf70('-')) WRITE(1,1200)IBLOCK FORMAT(' BLOCK:',I5) WRITE( 1