MAS 113 – Digital Styring Boolsk algebra

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