MAS 113 – Digital Styring Boolsk algebra Brukes for å beskrive funksjoner i digitale kretser Tre grunnleggende funksjoner : AND, OR og NOT Andre funksjoner som NAND, NOR, XOR og XNOR avledes fra AND, OR og NOT En Boolsk funksjon kan beskrives enten vha. •Funksjonsuttrykk eller •Sannhetstabell To funksjoner er ekvivalente hvis de for alle input kombinasjoner gir samme output Boolsk algebra - En boolsk operasjon kan kun ha to mulige utfall : 1(på) eller 0(av) - Nedenfor vises eksempler på ulike inngangskombinasjoner for en ”or/eller” krets. Legg spesielt merke til at ”1+1=1” Boolsk algebra - Nedenfor vises eksempler på ulike inngangskombinasjoner for en ”and/og” krets. Sannhetstabell for AND/OG A B F=A*B 0 0 0 0 1 0 1 0 0 1 1 1 Boolsk algebra - Digitale kretser bygges ofte med logiske porter - Logiske porter er også en grafisk fremstilling av en boolsk operasjon - Til høyre en oversikt over logiske porter med tilhørende sannhetstabell. - For å angi komplementet til en boolsk variabel, tegnes enten en strek over variabelen, eller ved å sette en appostrof etter den. komplement: det motsatte av dens verdi. F.eks hvis variabelen “A” har verdien 0, da har komplementet til “A” verdien 1. A=0 <-> A’=1 Boolsk algebra Boolske regneregler : A + A’ = 1 A+A=A A+0=A A+1=1 A * A’ = 0 A*A=A A*0=0 A*1=A (A’)’ = A A+B=B+A A + (B + C) = (A + B) + C A ( B + C ) = AB + AC AB = BA A(BC)=(AB)C A + BC = (A + B)(A + C) A + A’B = A + B (A + B)’ = A’B’ (AB)’ = A’ + B’ (A+B)’ = A’B’ (A*B)’ = A’ + B’ (Dobbel negasjon) (Kommutativ) (Assosiativ) (Distributiv) De Morgan’s De Morgan’s Boolsk algebra De Morgan’s teorem : (A*B)’ = A’+B ^ (A+B)’ = A’B’ Sannhetstabell A B (A*B)’ A’+B’ 0 0 1 1 0 1 0 0 1 0 0 0 1 1 0 0 Boolsk algebra - En elektronisk terning skal konstrueres av 7 lysdioder i et mønster som vist i figur 1, og et dekodingsnettverk, som skal styre terningmønsteret. L1 = L7, skal lyse for tallene 4,5 og 6 L2 = L6, skal lyse for tallet 6 L3 = L5, skal lyse for tallene 2,3,4,5 og 6 L4 skal lyse for tallene 1,3 og 5 Sannhetstabell for elektronisk terning A B C L1/L7 L2/L6 L3/L5 L4 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 2 0 1 0 0 0 1 1 3 0 1 1 1 0 1 0 4 1 0 0 1 0 1 1 5 1 0 1 1 1 1 0 6 1 1 0 X X X X 7 1 1 1 X X X X Boolsk algebra • Finner av sannhetstabellen uttrykk for L1, L2, L3 og L4 L1 = A’BC + AB’C’ + AB’C L2 = AB’C L3 = (A’B’C’)’ L4 = A’B’C’ + AB’C’ + A’BC’ … og det neste man må gjøre er å forenkle uttrykkene.. Boolsk algebra ..begynner med L1 L1 = A’BC + AB’C’ + AB’C = AB’(C’ + C) + A’BC = AB’+ A’BC + AB <- Ugyldige kombinasjoner = A(B’+B) + A’BC = A + A’BC = A + BC L2 = AB’C = AB’C + ABC <- Ugyldige kombinasjoner = AC(B’ + B) = AC L3 = (A’B’C’)’ = A’’+B’’+C’’ = A + B + C L4 = A’B’C’ + AB’C’ + A’BC’ = B’C’(A’+A) + A’BC’ = B’C’ + A’BC’ = C’(B’ + A’B) = C’B’ + C’A’ + ABC’ = C’(B’ + A’ + AB) = C’(B’ + A + A’) = C’(B’ + 1) = C’ <- Ugyldige kombinasjoner Boolsk algebra Boolsk algebra Nedenfor ser vi oppbygningen av en NAND-krets, denne er byggesteinen i alle logiske kretser. = Boolsk algebra Konstruksjon av logiske porter ved bruk av NAND ! NOT : F = A’ AND : F = AB = (AB)’’ OR : F = A + B = (A + B)’’ = (A’B’)’ NOR : F = (A + B)’ = A’B’ = (A’B’)’’ XOR : F = A’B + AB’ = (A’B + AB’)’’ = ((A’B)’(AB’)’)’ Boolsk algebra = NOT = AND = OR = NOR = XOR Ekvivalente NAND kretser - Erstatter de “originale” portene med ekvialente NAND kretser, deretter forenkles systemet ved å slette “to-og to” påfølgende NOT porter (X), siden X’’ = X. Boolsk algebra Minimalisering ved bruk av Karnaugh diagram ! • Karnaugh diagram benyttes for å forenkle logiske uttrykk og fungerer for opptil seks variabler. For å kunne lage et Karnaugh diagram må vi ha en sannhetstabell. • Vi lager en tabell med en celle for hver mulige kombinasjon av uttrykket. Denne tabellen må arrangeres slik at når vi beveger oss en celle horisontalt eller vertikalt så er det kun en verdi som endres. • Mintermene fylles så inn i cellene, og grupperes ved å sirkle inn grupper i rektangler på 2^n elementer. (”Store grupper gir enklere uttrykk !”) • Innenfor rektanglene finner man de variabler som ikke endres (dvs. at det ikke er en kombinasjon av en variabel og dens komplement innenfor et og samme rektangel). Denne eller disse variablene danner da det forenklede uttrykket for den valgte gruppens elementer. • Den forenklede maxtermen er den boolske summen av alle slike rektanglers forenklede mintermer pluss de uttrykkene som står igjen alene • PUH!! …eksempler ?? Boolsk algebra ..prøver å benytte karnaugh diagram til å minimalisere uttrykkene for den elektronisk terningen. Sannhetstabell for elektronisk terning A B C L1/L7 L2/L6 L3/L5 L4 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 2 0 1 0 0 0 1 1 3 0 1 1 1 0 1 0 4 1 0 0 1 0 1 1 5 1 0 1 1 1 1 0 6 1 1 0 X X X X 7 1 1 1 X X X X Boolsk algebra Karnaug diagram for L1/L7 A’B’ A’B C’ C 1 AB AB’ X 1 X 1 ..cellene merket med X er ugyldige tilstander, og kan benyttes fritt for å øke størrelsen på grupperingene…(NB ! Større grupper gir enklere uttrykk). .. den forenklede mintermen for den valgte gruppen blir bare A ettersom både B og B’ finnes i samme rektangel, samtidig som C og C’ også finnes i samme rektangel. Boolsk algebra Karnaug diagram for L1/L7 A’B’ A’B C’ C 1 AB AB’ X 1 X 1 ..finner så neste rektangel … uttrykket for denne blir BC ettersom A og A’ finnes innenfor samme gruppering. ..den forenklede maxtermen for L1/L7 blir da summen av de forenklede mintermene. L1 blir dermed = A + BC…. Boolsk algebra Karnaugh diagram for L2/L6 A’B’ A’B AB C’ X C X AB’ 1 L2 = AC Karnaugh diagram for L3/L5 A’B’ A’B AB AB’ C’ 0 1 X 1 C 1 1 X 1 ..her blir det lettere å velge cellene med ”0”, som gir L3’ = A’B’C’ L3’ er den inverterte av L3, så dermed vil L3 = (L3’)’ -> L3 = (A’B’C’)’ = A + B + C Boolsk algebra Karnaugh diagram for L4 C’ C A’B’ A’B AB AB’ 1 1 X 1 X Her ser vi at vi kan forenkle uttrykket og ende opp med en minterm. L4 = C’ Boolsk algebra • Konstruksjon av binærteller, for elektronisk terningen. I motsetning til tidligere har en rekke systemer den egenskapen at de er avhengige av hvilke innsignalverdier systemet hadde på et tidligere tidspunkt, i tillegg til innsignalverdiene i øyeblikket… så hvordan kan vi få et system til å huske hva det har gjort tidligere ? Enhver digital krets som er tilbakekoblet kalles en MULTIVIBRATOR. En meget enkel astabil MULTIVIBRATOR er en inverter med utgangen direkte tilbakekoblet til inngangen. Sekvens Logikk - Minne Her ser vi to NOR porter som er koplet sammen, slik at utgangsignalet fra den ene går inn som inngangsignal på den andre. Kretsen fungerer slik.. La oss anta at inngangsignalet S = 1 SR-Latch og R = 0; Da vil utgangssignalet Q’ bli 0 uavhengig av hva Q er. Andre ’latcher’ benytter SR-latchen som Q’ vil igjen være innsignal sammen byggekloss. Forskjellen på en ’latch’ og en med signalet R, da begge vil være 0 ’flip-flop’ er at en ’flip flop’ er flanke vil Q bli 1. Dersom vi nå lar S bli 0 trigget, dvs. at transisjoner bare så vil Q’ fortsatt være 0 siden Q er 1. forekommer ved enten stigende eller Derfor vil kretsen fortsett å huske at synkende klokke flanker. S en gang har vært 1, og dette vil systemet huske inntil R blir 1 Sekvens Logikk – Minne D - latch Q D Q(t+1) 0 0 0 0 1 1 1 0 0 1 1 1 Sekvens Logikk - Minne T - latch Q T Q(t+1) 0 0 0 0 1 1 1 0 1 1 1 0 Sekvens Logikk - Minne JK - latch Q J K Q(t+1) 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 Sekvens Logikk - Minne SR - latch Q S R Q(t+1) 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 Illegal 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 Illegal Sekvens Logikk - Minne X=1 X=0 X=1 X=0 X=1 X=0 X=1 X=0 SR0+ SR0+ JK0+ JK0+ Q1 Q0 Q1+ Q0+ Q1+ Q0+ T0+ T0+ 0 0 0 1 0 0 1 0 10 00 1x 0x 0 1 0 1 1 0 0 1 00 01 x0 x1 1 0 1 1 1 0 1 0 10 00 1x 0x 1 1 1 1 0 0 0 1 00 01 x0 x1 Sekvens Logikk - Minne Q0 realisert med fire ulike typer latcher, alle kretsene gir eksakt samme respons. T0+ = XQ0' + X'Q0 D0+ = Q0+ = X S0+ = XQ0' R0+ = X'Q0 J0+ = X K0+ = X' Synkron Sekvens Logikk Tilstands diagram for en tre-bits binær teller (Teller fom 0 tom 5 -> 6 tilstander) Synkron Sekvens Logikk Tilstands tabell for en tre-bits binær teller… (0-5) Nå tilstand Q2 Q1 Q0 A 0 0 0 B 0 0 C 0 D Neste tilstand Flip-flop Inputs Q2+ Q1+ Q0+ T2 T1 T0 B 0 0 1 0 0 1 1 C 0 1 0 0 1 1 1 0 D 0 1 1 0 0 1 0 1 1 E 1 0 0 1 1 1 E 1 0 0 F 1 0 1 0 0 1 F 1 0 1 A 0 0 0 1 0 1 1 1 0 X X X X X X 1 1 1 X X X X X X Synkron Sekvens Logikk T2 Q2’ Q1’ Q2’ Q1 Q2 Q1 Q2 Q1’ Q0’ 0 0 X 0 Q0 0 1 X 1 T1 Q2’ Q1’ Q2’ Q1 Q2 Q1 Q2 Q1’ Q0’ 0 0 X 0 Q0 1 1 X 0 T0 Q2’ Q1’ Q2’ Q1 Q2 Q1 Q2 Q1’ Q0’ 1 1 X 1 Q0 1 1 X 1 T2 = Q0 (Q2 + Q1) T1 = Q2’ Q0 T0 = 1 Synkron Sekvens Logikk Synkron Sekvens Logikk Relesymboler Ekvivalente ladder-diagram kretser Sekvens Diagram - Et eksempel Ved å gi en kort startpuls skal et plateemne spennes fast ved hjelp av sylinder C1. Deretter bøyes platen til en U-form ved hjelp av sylindrene C2 og C3. For å operere sylindrene brukes trykkluft. Alle sylindrene er enkeltvirkende med returfjær. Det betyr at stempelet beveges ut når en setter på trykk og står ute inntil trykk fjernes. Da vil returfjæren drive stempelet tilbake til inntrukket posisjon. Det finnes givere (betegnet a – f) som viser når stemplene er i h.h.v. fremre og bakre posisjon. Sekvens Diagram - Et eksempel 1. Tegner først et diagram med alle sensorene ( a -> f ), og aktuatorene (C1 -> C3). 2. Begynner med å beskrive sensorenes tilstand før oppstart av systemet. Dvs. at alle stemplene er i tilbaketrukket tilstand, og at sensorene a,c og e er ”på”. 3. Tenker oss så hva systemet skal begynne med å gjøre. I vårt tilfelle ønsker vi at stempelet C1 kjøres ut, og fastspenner emnet. For å utføre denne oppgaven må vi slå på aktuatoren C1. Neste tilstand(2) for sensorene beskriver så hva som skjer etter at vi har satt trykk på C1. 4. Sensorenes innstillinger er avgjørende for hvilken handlinger vi vil foreta oss, og våre handlinger resulterer i endringer på sensorene. Vi har dermed en vekselvirkning mellom aktuatorene og sensorene. Sekvens Diagram - Et eksempel -Etter at vi har beskrevet hele systemets sekvens, må vi finne å skille tilstander som er tvetydige, dvs. at kombinasjoner av sensor signaler som er like for ulike tilstander, må skilles fra hverandre. Og som hjelp til å skille disse tilstanden, innfører vi hjelpe variabler (tilstands minner). I figuren til høyre, er like tilstander markert med like farger. Sekvens Diagram - Et eksempel -Her har vi innført to hjelpe variabler (minner) som hjelper oss og skille tvetydige tilstander. -Eksempelvis skilles tilstand 4 og 6 ved at tilstand 4 ikke har minne, mens derimot tilstand 6 har. -Hjelpe variablene plasseres slik at de skiller de tvetydige tilstandene, og må alltid settes, og resettes av entydige tilstander. Minne H1 settes i tilstand 1, denne er unik ettersom det bare er i denne tilstanden at vi har signal på sensor ”a”, og minne H1 resettes i tilstand 9, som også er unik siden dette er eneste tilstanden at vi har signal på sensor ”f”. I dette eksempelet har vi vært nødt til å ta i bruk to minner, for å skille mellom alle tvetydighetene. -Minne H1 skiller tilstandene : -”4” fra ”6” -”7” fra ”3” og ”11” -”8” fra ”9”. -Minne H2 skiller tilstandene : -”2” fra ”12” -”3” fra ”11” Sekvens Diagram - Et eksempel -Dersom sekvens diagrammet inneholder mer enn 6 innganger, inklusiv hjelpe minner, er det svært vanskelig å minimalisere uttrykket ved hjelp av karnaugh-diagram. -Uttrykkene blir derfor ofte litt i overkant lange..…men vi prøver allikevel å gjøre dem minst mulig ved å studere sekvens diagrammet. Strukturert Programmering -Et hvert program, uansett omfang og kompleksitet, kan i prinsippet bygges opp ved hjelp bare to ulike typer ”byggeklosser”, såkalte primitiver. Et tilstrekkelig antall av disse kan settes sammen på et utall ulike måter for å realisere ønskede programstrukturer. I strukturert programmering begrenser man seg til bare å bruke et fåtall standardstrukturer å bygge opp programmene med. -En standardstruktur utgjør en programblokk, og det viktigste særtrekk er : Den har bare en inngang og en utgang. -Alle program kan bygges opp av slike blokker. En blokk kan ofte inneholde andre blokker, og kan selv være innhold i en utenforliggende blokk. En får altså et hierarki av ”blokker inni blokker”, hvor alle blokker har den felles egenskap som definert ovenfor. Strukturert Programmering - standardstrukturer - Enkel - Velg en sekvens eller ingen - Velg en av to - While løkke - Do…while Flytskjema - Et eksempel Ladder Diagram - Et eksempel System-Metode koblinger Kombinatoriske systemer Statiske sekvenssystemer Dynamiske sekvenssystemer -Systemer som ikke er -Systemer som er avhengig -Sekvenssystemer som endre avhengig av tidligere av tidligere innsignaler, men sekvens på bakgrunn av tilstander som alltid følger samme innsignalene sekvens. Boolsk algebra Sannhets tabeller Boolsk algebra Karnaugh diagram Karnaugh diagram Sannhets tabeller Tilstand diagram Boolsk algebra Tilstand tabell Karnaugh diagram Sekvens diagram Flytskjema Ladder diagram Logiske porter Små og enkle systemer Store og komplekse systemer Analog – Digital omformer ”flash” AD-omformer Kretsen viser en "flash" AD-omformer. Den består av ei komparatorrekke og en 8 til 3 koder. Når Vin øker, vil utgangene på komparatorene etterhvert gå lave. For hver ny komparator som går lav, vil det digitale tallet A0 , A1 , A2 telle oppover fra 000 til 111. Denne type AD-omformer er den raskeste som finnes, fordi det bare er tidsforsinkelsen i halvlederene som setter grenser. Hastigheter opp til 300 MSPS (megasamples per second) er mulig. Det finnes integrerte kretser som inneholder komplette "flash"-omformere. Analog – Digital omformer Puls-kode-modulasjon, PCM Puls-kode-modulasjon, PCM PCM gjør analoge signaler om til digitale. Et analogt signal er kontinuerlig med uendelig mange nivåer, mens et digitalt signal har et endelig antall nivåer som går i sprang. I et PCM-system blir signalamplituden målt ved bestemte tidspunkt og tilordnet en bestemt digital verdi. Det vil si at uendelig antall nivåer omgjøres til et endelig antall nivåer (eller tall). Dette tilsier at vi innfører en feil. Feilen bli minst når antall digitale verdier er størst. Målingen av det analoge signalet kaller vi sampling eller punktprøving. Analog – Digital omformer Puls-kode-modulasjon, PCM Et analogt signal samples (måles) ved tidspunktene t1 , t2 , t3 , t4 , t5 , osv. Avstanden mellom hver sampling er D t.1/ D t = fs = samplingsfrekvensen I eksemplet ovenfor får vi tallene: 101 111 110 101 000 010 osv. For signalet ovenfor er amplitudeområdet delt i åtte, dvs. vi trenger tre bit for å gjengi hvert område med et binært tall. Dette vil være en tre-bit koding. Ved å øke antall bit, øker vi antall digitale tall og dermed kvaliteten. I eksemplet ovenfor er det binære tallet delt i to funksjoner. De lavest signifikante bitene er et mål for amplitudeverdien, mens den mest signifikante biten står for signalets polaritet. I dette tilfellet er "0" minus og "1" er pluss. For å kunne foreta riktige amplitudemålinger i et praktisk system, må vi kvantisere signalet (se fig. nedenfor) før vi gjør signalet om til digitale tall. Hver sampling tar tid slik at det er nødvendig å holde et signalnivå så lenge signalet måles. Hver sampling har til rådighet tida D t. Analog – Digital omformer Puls-kode-modulasjon, PCM - Trappetrinnskurven er en kvantisering av signalet. Hvert "trappenivå" kaller vi et kvantiseringsnivå. Analog – Digital omformer Puls-kode-modulasjon, PCM Signalet sendes inn på en sample-and-hold krets (SH) som styres av et firkantsignal vs med frekvens fs . Dette signalet bestemmer tida mellom hver sampling. På utgangen av SH har vi et kvantisert signal (trappetrinn-signal). En analog-til-digital omformer (ADC) gjør det kvantiserte signalet om til digitale tall. Den koder med et bestemt antall bit, f.eks. 8 eller 16 bit. For å kunne skille mellom positivt og negativt signal, må signalet samples minst 2 ganger pr. periode. Det vil si at følgende sammenheng må være oppfylt: fs > 2 fm (max) , der f m (max) er høyeste frekvens i signalet som skal digitaliseres. I et PCM-system vil informasjonen være digitale tall i form av f.eks. spenningspulser. Selv om pulsene blir påvirket av støy, vil dette ikke påvirke informasjonen så lenge det digitale tallet kan gjenkjennes. I midlertidig vil det ved digitaliseringen innføres støy. Denne støyen kalles kvantiseringsstøy og skyldes feil når vi koder fordi et digitalt tall ikke tilsvarer nøyaktig den analoge verdien. Støyen oppgis som et signal-støy-forhold SNR og kan uttrykkes teoretisk som: S/N = 1,76 + n · 6 dB + 10 log (fs / 2fm) der n er antall bit i PCM-systemet. Analog – Digital omformer Kvantiseringsstøy - tilnærmet beregning Anta at kvantiseringsnivåene har avstand a. Den største feilmålingen det er mulig å gjøre, er a/2 (a/2 på hver side av f.eks. verdien 2a, vil bli representert med samme binære tall) En feilmåling gir ved dekoding, et uriktig signal. Dette kaller vi kvantiseringsstøy. Største feilmålte verdi vil være største amplitude på støynivået, som er a/2. Vi kan si at uansett signalnivå, vil maksimum støynivå være a/2. Dersom et system har 1 bit koding, vil maksimum signalamplitude være a. Dette gir: S/N = 20 log [a / (a/2)] = 20 log 2 = 6 dB. To bit gir maksimum amplitudeverdi 2a. Dette gir S/N = 20 log [2a / (a/2)] = 20 log 4 = 12 dB Tre bit gir maksimum amplitudeverdi 4a. Dette gir S/N = 20 log [4a / (a/2)] = 20 log 8 = 18 dB Vi ser på grunnlag av beregningene ovenfor at: S/N = N· 6 dB , der N = antall bit (dette er en tilnærmelse, men som er god nok til praktiske formål) Analog – Digital omformer Nødvendig samplingsfrekvens Med tidsintervaller på Dt samples signalet. Dette gir en samplingsfrekvens fs = 1/Dt Samplingsteoremet : fs > 2·fsignal fsignal er den høyeste frekvensen i signalet som digitaliseres. Båndbredden til systemet er B = fsignal. Frekvensbåndet som B utgjør, kaller vi basisbåndet. Strukturert Programmering - standardstrukturer PLS etter IEC1131 standarden. IEC1131 definerer både den fysiske strukturen av en PLS og programmeringsformatene. Begge deler defineres så generelt at de mest komplekse styringsoppgaver skal kunne dekkes. Derved blir også standarden så kompleks at bare deler som har betydning for logiske styringsoppgaver blir tatt med i dette kurset. Posisjons- og størrelsesprefiks. I – Innsignal Q – Utsignal M – Hukommelse B – Byte (8-bit) W – Word (16-bit) D – Double Word (32-bit) - Disse datatypene er av typen heltall. Dersom vi ønsker å operere med flyttall (desimal tall), må vi konvertere til datatypen ”real”. Det er derfor vanligvis god praksis å konvertere heltall til ”real” for å utføre matematiske operasjoner, for deretter og konvertere tilbake til heltall etter operasjonen er utført. PLS Posisjons- og størrelsesprefiks English Mnemonics Description Data Type Address Range I 0.0, Q 0.0 M0.0 Bit BOOL 0 to 65535.7 IB 1, QB 1, MB 1 Byte (8-bit) BYTE, CHAR 0 to 65535 IW 1, QW 1, MB 1 ID 1, QD 1, MD 1 Word (16-bit) WORD, INT, S5TIME, DATE Double Word DWORD, DINT, (32-bit) REAL, TOD, TIME 0 to 65534 0 to 65532 AD-omforming I siemens S7-313 er det innebygd en 16-bits AD-omformer. AD-omformeren kan kobles opp på ulike måter for å måle strøm, spenning og motstand. 0..20 mA -> 0..26478 100% 0...5 Volt -> 0..26478 100% 0...10 Volt -> 0..26478 100% 0...400 Ohm -> 0..26478 100% Som vi ser kan AD-omformerens måleområdet konfigureres til både 0-5 V, og 0-10 V. La oss anta at vi har konfigurert AD-omformeren til å måle signaler mellom 0-5 V, og at vi har et signal på 2 V. Denne spenningen vil da gis oss en verdi fra AD-omformeren inn til PLS’en på 27648*2/5 -> 11059. Denne verdien er noe feil ettersom vi egentlig burde hatt 11059.2 men dette skyldes kvantifiserings støy som nevnt tidligere. Maksimal kvantifiserings feil vil for da være på 5/27648 dvs 0.09mV. AD-omforming La oss si at vi har en vekt som gir oss et 0 – 10 V signal, når vekten varierer mellom 100 – 1000 kg. For å omgjøre verdien fra ADomformeren til kg i PLS’en må vi gjøre følgende beregning. Y = ( X / 27648 ) * 900 + 100 I praksis må vi da først lese den analoge verdien (16-bits heltall), Konvertere denne verdien fra et 16-bits heltall til et 32-bits heltall. Deretter konvertere fra 32-bits heltall til 32-bits flyttall (for matematiske beregninger), må så dele flyttallet på 27648, for så å gange med måleområde 900 (1000-100 kg) , og deretter legge til offset på 100 (initiell måle verdi for vekten). Program for vekten i programmerings språket STL : L PIW 752 ITD DTR L 2.7468e+4 /R L 9.000e+2 *R // AIN 0-10V -> 0-27468 L 1.000e+2 // 16-bit INT -> 32-bit INT +R // 32-bit INR -> 32-bir REAL T MD10 // // Division with real number 27648 // // Multiply with real number 900 (1000-100) // // Add with real number 100 // Normalized real value 100-1000 // in Memory adress 10-14 (32-bit) MX.X - Velg en - Enkel sekvens MX.X MX.X MX.X eller ingen - While løkke - Velg en av - Do…while to MX.X
© Copyright 2024