Sekvensstyrningsproblem

Relevanta dokument
Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Digital- och datorteknik

IE1205 Digital Design: F9: Synkrona tillståndsautomater

DIGITALTEKNIK I. Laboration DE2. Sekvensnät och sekvenskretsar

SEKVENSKRETSAR. Innehåll

Asynkrona sekvensmaskiner

Digital- och datorteknik

IE1204 Digital Design

Tentamen i Digitalteknik, EITF65

IE1205 Digital Design: F10: Synkrona tillståndsautomater del 2

Repetition och sammanfattning av syntes och analys av sekvensnät

IE1204/IE1205 Digital Design

Sekvensnät Som Du kommer ihåg

Sekvensstyrning Grafcet och IEC

ÅBO AKADEMI LOGIKSTYRNING. Hannu Toivonen Jari Böling. Augusti Biskopsgatan 8 FIN Åbo Finland

Tentamen i Digital Design

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

F5 Introduktion till digitalteknik

Institutionen för systemteknik, ISY, LiTH. Tentamen i. Tid: kl

TSEA22 Digitalteknik 2019!

D2 och E3. EDA321 Digitalteknik-syntes. Fredag den 13 januari 2012, fm i M-salarna

Grundläggande Datorteknik Digital- och datorteknik

Programmerbar logik. Kapitel 4

Quine McCluskys algoritm

2.1 Disjunktiv och konjunktiv normalform

Tentamen. TSEA22 Digitalteknik 5 juni, 2015, kl

Repetition TSIU05 Digitalteknik Di/EL. Michael Josefsson

+5V. start. Styrsystem. stopp. Tillståndsmaskiner

Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1

Försättsblad till skriftlig tentamen vid Linköpings universitet

Omtentamen IE Digital Design Måndag 14/

Digital Design IE1204

1 Minkostnadsflödesproblem i nätverk

Inledning. Kapitel 0. Det finns tre typer av regler- och styrproblem

Tenta i Digitalteknik

Laboration D181. ELEKTRONIK Digitalteknik. Kombinatoriska kretsar, HCMOS v 2.1

Repetition delay-element

Tentamen i IE1204/5 Digital Design måndagen den 15/

Tentamen med lösningar för IE1204/5 Digital Design Torsdag 15/

TSIU05 Digitalteknik. LAB1 Kombinatorik LAB2 Sekvensnät LAB3 System

Tentamen i EDA320 Digitalteknik för D2

Diskreta Linjära System och Skiftregister

EDA451 - Digital och Datorteknik 2010/2011. EDA Digital och Datorteknik 2010/2011

Grundläggande digitalteknik

Digital Design IE1204

Styrteknik: SFC Introduktion

IE1204 Digital Design

Tentamen i Digitalteknik, EIT020

Digital Design IE1204

1. Inledning. 1. Inledning

Digital Design IE1204

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tentamen i Digitalteknik TSEA22

Tentamen i IE1204/5 Digital Design onsdagen den 5/

Tentamen EDAA05 Datorer i system

Tenta i Digitalteknik

Ladderprogrammering steg för steg

Mintermer. SP-form med tre mintermer. William Sandqvist

Laboration D151. Kombinatoriska kretsar, HCMOS. Namn: Datum: Epostadr: Kurs:

Lektion 8: Konstruktion av semantiska tablåer för PTL-formler

DIGITALTEKNIK I. Laboration DE1. Kombinatoriska nät och kretsar

IE1205 Digital Design: F13: Asynkrona Sekvensnät (Del 2)

Digital elektronik CL0090

de var svåra att implementera och var väldigt ineffektiva.

Definition av kombinatorisk logik Olika sätt att representera kombinatorisk logik Minimering av logiska uttryck

Lösningsförslag till tentamen i Digitalteknik, TSEA22

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

TSEA22 Digitalteknik 2019!

Ett minneselements egenskaper. F10: Minneselement. Latch. SR-latch. Innehåll:

Implementering av digitala filter

Algoritmer, datastrukturer och komplexitet

LOGIKSTYRNING/18/2: Laboration. 1 Uppgiften. Figur 1: Tågbanan

REPETITION (OCH LITE NYTT) AV REGLERTEKNIKEN

Digitalteknik F9. Automater Minneselement. Digitalteknik F9 bild 1

Fö relä sning 2, Kö system 2015

Vektorgeometri för gymnasister

SMD033 Digitalteknik. Digitalteknik F1 bild 1

Digital- och datorteknik

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Följddiagram för händelsestyrda rörelser

LABORATIONSINSTRUKTION

IE1205 Digital Design: F4 : Karnaugh-diagrammet, två- och fler-nivå minimering

Välkomna till TSRT19 Reglerteknik M Föreläsning 9

IE1204/5 Digital Design typtenta

Digitala system EDI610 Elektro- och informationsteknik

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Lösningförslag till Exempel på tentamensfrågor Digitalteknik I.

Konstruktionsmetodik för sekvenskretsar

Maurice Karnaugh. Karnaugh-diagrammet gör det enkelt att minimera Boolska uttryck! William Sandqvist

M0043M Integralkalkyl och Linjär Algebra, H14, Linjär Algebra, Föreläsning 11

Exempel på tentamensfrågor Digitalteknik

Föreläsning 9: NP-fullständighet

DIGITALTEKNIK. Laboration D161. Kombinatoriska kretsar och nät

IE1205 Digital Design. F2 : Logiska Grindar och Kretsar, Boolesk Algebra. Fredrik Jonsson KTH/ICT/ES

2. Reglertekniska grunder

-c wc. Pre- Next state Out- Vi ser att tillstånden är redan sorterade i grupper med olika utsignaler,

Digitalteknik F2. Digitalteknik F2 bild 1

1 LP-problem på standardform och Simplexmetoden

Tentamensskrivning 11 januari 2016

Laboration D159. Sekvensnät beskrivna med VHDL och realiserade med PLD. Namn: Datum: Epostadr: Kurs:

Transkript:

Kapitel 3 Sekvensstyrningsproblem Vid kombinatoriska styrproblem av den typ som betraktades i avsnitt 2.3, och i Ex. 2.1, bestämdes utsignalerna från styrsystemet som booleska funktioner av insignalerna. För att förverkliga mera generella sekvensstyrningsproblem bör systemet också hålla reda på tillståndet som processen befinner sig i vid en given tidpunkt. Detta sker i praktiken genom att införa tillståndsvariabler {x i }, vilkas värden definierar systemets olika tillstånd. Styrsystemet kan schematiskt beskrivas med följande figur. Insignaler (från process) Utsignaler(till process) u 1 y 1 u 2 Logisk. y 2. funktion. u. n y m.... Nytt 1 tillstånd Tillstånd.x x p x + 1,..., x+ p. Minne. Figur 3.1: Styrsystem med minne Här är utsignalerna y 1,..., y m till processen och tillståndsvariablernas nya värden x + 1,..., x+ p (det nya tillståndet) booleska funktioner av insignalerna u 1,..., u n från processen samt tillståndsvariablerna x 1,..., x p (det tidigare tillståndet). De booleska funktionerna kan behandlas med de metoder som diskuterades i avsnitt 2. Det nya problemet som tillkommer vid sekvensstyrningsproblem är att definiera tillstånd och tillståndsvariabler samt att bestämma hur de nya värdena x + 1,..., x+ p skall bestämmas. Sekvensstyrningsproblem kan ytterligare indelas i deterministiska sekvensstyrningsproblem, där processen skall genomgå en på förhand bestämd sekvens (t.ex. fyllning och tömning av reaktor), och stokastista sekvensstyrningsproblem, där systemet skall funktionera rationellt för godtyckliga insignalsekvenser (jmf. Ex. 1.1). De stokastiska sekvensstyringsproblemen är i allmänhet besvärligare att behandla än de deterministiska. 41

42 KAPITEL 3. SEKVENSSTYRNINGSPROBLEM Vippor Medan kombinatoriska styrproblem kan realiseras enbart med hjälp av logiska grindar, fordrar sekventiella styrproblem dessutom element som håller reda på tillståndet, dvs. fungerar som minne. I elektroniken realiseras minnesfunktioner med hjälp av vippor (flip-flops). Den viktigaste typen av vippa är RS-vippan (Reset-Set) (även SR-vippa), vars symbol och sanningstabell ges i Fig. 3.2 S R S R S R x + 0 0 x 0 1 0 1 0 1 1 1 x x Figur 3.2: SR-vippa Vippan fungerar alltså så, att för S = 1 (Set) blir x = 1, för R = 1 (Reset) blir x = 0, och för R = S = 0 förblir x vid sitt tidigare värde. Vippan fungerar alltså som en minnesfunktion, där värdet hos variabeln x anger vilkendera av signalerna S och R senast haft värdet 1. För insignalkombinationen R = S = 1 är x ej definierad. Funktionen hos en RS-vippa kan beskrivas av ekvationen x + = (x + S) R (3.1) Uppgift 3.1 Verifiera ekvation 3.1 på basen av sanningstabellen i Fig. 3.2. En RS-vippa kan realiseras i form av två återkopplade NOR-grindar (jmf. föreläsningarna i elektronik). Förutom RS-vippan används andra typer av vippor: JK-vippan, D-vippan och T-vippan är de vanligaste. Dessa skall dock ej behandlas här. 3.1 Syntes av sekventiella system Det existerar flera syntesmetoder med vilka styrsystem för sekventiella processer kan planeras. Den klassiska metoden i detta sammanhang är en syntesmetod först presenterad av Huffman år 1954, och senare vidareutvecklad av andra. Huffmans metod är ursprungligen utvecklad för den situation då systemet skall realiseras med hjälp av logiska grindar och vippor. Proceduren ägnar därför stor uppmärksamhet vid att systemet skall kunna realiseras med så få vippor som möjligt, och vid att undvika sådana oönskade funktioner som beror på att de olika elementen reagerar olika snabbt, såsom (dynamisk) hasard och sk. kapplöpningar. Då man i praktiken nuförtiden vanligen implementerar sekvensstyrning med hjälp av datorer så är ovan nämnda aspekter av underordnad betydelse. Detta leder till en avsevärd förenkling av syntesproceduren. Vi skall här beskriva en förenklad version av Huffmans metod, som är lämpad för styrsystem som implementeras med dator.

3.1. SYNTES AV SEKVENTIELLA SYSTEM 43 Exempel 3.1 Alarmsystem Alarmsignal Kvitteringsknapp u 1 u 2 Styrsystem y 1 y 2 Siren Alarmlampa För att illustrera syntesproceduren skall vi betrakta alarmsystemet enligt figuren. Systemet skall fungera på följande sätt. Då u 1 = 1, vilket representerar en alarmsignal från processen, skall y 1 = 1, vilket slår på alarmsiren. Operatören kan kvittera signalen med en kvitteringsknapp (u 2 ), så att en (momentan) signal u 2 = 1 slår av sirenen (y 1 = 0), som ersätts av en blinkande alarmlampa (y 2 = 1). Lampan bör fortsätta att blinka så länge u 1 = 1. Då u 1 0, skall y 2 = 0. Dessutom skall i det fall då den farliga situationen (u 1 = 1) försvinner av sig själv (u 1 = 0), innan kvittering getts, sirenen fortsättningsvis vara på. Detta för att operatören skall tvingas observera att en farosituation förekommit. Vid kvittering i detta fall skall emellertid alarmlampan inte börja blinka. Tillståndsgraf Ur de verbalt givna systemspecifikationerna bör i nästa skede en kvantitativ modell för systemets funktion konstrueras. Systemets funktion kan åskådliggöras grafiskt med en tillståndsgraf (flödesdiagram, övergångsdiagram). I denna representeras systemets tillstånd av noder, och de möjliga tillståndsövergångarna anges av riktade länkar mellan noderna. För alarmsystemet i Ex. 3.1 fås tillståndsgrafen i Fig. 3.3. 00/00 10/10 11/01 10/01 1 2 3 4 01/00 5 6 00/10 u 1 u 2 /y 1 y 2 Figur 3.3: Tillståndsgraf I det normala händelseförloppet med inkommande alarmsignal och kvittering av denna genomgår systemet tillstånden 1,2,3,4,1. Övergångarna från tillstånd 2 till 6 resp. 3 till 5 representerar situationen då alarmsignalen försvinner av sig själv (observera dubbelriktningen). Övergångarna från tillstånd 1 till 5 resp. 4 till 3 representerar de fall då kvitteringsknappen trycks vid ifrågavarande tillstånd hos systemet. Tillståndstabell Informationen i tillståndsgrafen representeras i följande skede i form av en tillståndstabell (flödestabell, primitiv tillståndstabell, primitiv flödestabell). I denna representeras varje tillstånd av en rad, de olika insignalkombinationerna utsätts kolumnvis, och längst till höger anges systemets utsignaler vid ifrågavarande tillstånd.

44 KAPITEL 3. SEKVENSSTYRNINGSPROBLEM I tabellen anges systemets nya tillstånd för varje kombination av tillstånd och insignaler. Ett tillstånd sägs vara stabilt för en given uppställning insignaler, om systemet förblir i tillståndet i fråga (tillstånd och insignaler konsistenta med varandra). Ett tillstånd sägs vara instabilt för en given uppsättning insignaler, om systemet övergår till ett annat tillstånd (tillstånd och insignaler inkonsistenta med varandra). I detta fall är det nya tillståndet stabilt. I tillståndstabellen anges de stabila tillstånden genom inrigning, t.ex. 1. Tabell 3.1: Tillståndstabell u 1 0 1 1 0 u 2 0 0 1 1 y 1 y 2 1 1 2-5 0 0 2 6 2 3-1 0 3-4 3 5 0 1 4 1 4 3-0 1 5 1-3 5 0 0 6 6 2-5 1 0 Tabell 3.1 visar en tillståndstabell för systemet som beskrivs av tillståndsgrafen i Fig. 3.3. Observera att det antagits att det för de olika systemtillstånden finns vissa insignalkombinationer som ej kan förekomma. Detta motsvarar ett don t care tillstånd i tillståndstabellen och anges där med ett streck -. (I detta fall har det antagits att två insignaler ej kan ändras (exakt) samtidigt; ett antagande vars giltighet kan diskuteras.) I praktiken är konstruktionen av tillståndsgraf och tillståndstabell ofta det svåraste, och samtidigt det viktigaste, skedet av syntesproceduren. I detta skede bör systemets funktion definieras exakt, vilket kräver en genomgående analys av problemställningen. I motsats till detta skede är de senare faserna av syntesproceduren mera rutinmässiga. Observera att tillståndsgrafen och tillståndstabellen innehåller samma information, och det är möjligt (åtminstone med lite rutin) att konstruera tillståndstabellen direkt på basen av systemspecifikationerna. Det brukar dock rekommenderas att också tillstådsgrafen uppställs, ty tack vare sin åskådlighet är det enklare att med hjälp av denna hitta eventuella felaktiga funktionssätt. Uppgift 3.2 Systemet i Fig. 3.4 skall upptäcka passagen av ett föremål vars längd överstiger L. Härvid skall utsignalen y få värdet 1, efter att föremålet fullständigt passerat sensorn u 2. (Signalen y kan t.ex. ange för en efterföljande del av processen, att föremålet skall skjutas åt sidan). Signalen y tillåts förbli vid värdet 1 tills ett nytt föremål ger signal. Endast föremål som rör sig från vänster till höger skall ge y = 1, men systemet skall reagera förnuftigt också i en situation då ett föremål rör sig från höger till vänster. Konstruera tillståndsgraf och tillståndstabell för systemet. y u 1 u 2 L Figur 3.4: Sensorsystem

3.1. SYNTES AV SEKVENTIELLA SYSTEM 45 Tillståndsminimering Den primitiva tillståndstabellen enligt ovan kan i princip som sådan utnyttjas för att konstruera det slutliga styrsystemet. I praktiken tenderar emellertid antalet tillstånd hos systemet härvid bli tämligen stort, vilket motiverar att man strävar till att förenkla systemet. En tillståndstabell kan förenklas genom kombination av tillstånd. Tillstånd kan kombineras genom att man även utnyttjar informationen hos insignalerna. På detta sätt kan två, eller flera, tillstånd kombineras förutsatt att de är konsistenta i den meningen att de tillståndsövergångar som fås för olika insignalkombinationer, och som kan avläsas i tillståndstabellen, inte är motstridiga. På detta sätt fås följande regler för kombinering av tillstånd (rader i tillståndstabellen): 1. Två eller flera rader (tillstånd) i tillståndstabellen kan kombineras om raderna har samma tal i de kolumner som anger nästa tillstånd. 2. Ett stabilt (inringat) och ett icke-stabilt tillstånd kombineras till stabilt (inringat) tillstånd. 3. Ett tillstånd (stabilt eller icke-stabilt) och ett don t care kombineras till ifrågavarande tillstånd (stabilt eller icke-stabilt). 4. Två don t care kombineras till don t care. 5. Två stabila tillstånd (dvs med olika nummer) kan kombineras om tillstånden har identiska utsignaler. 6. Två eller flera instabila tillstånd (dvs med olika nummer) kan kombineras om de tillståndsövergångar som slås ihop sker mellan de sammanslagna tillstånden, och om alla tillstånd har identiska utsignaler. Betrakta som exempel den primitiva tillståndstabellen 3.1. Enligt reglerna ovan fås följande kombinationer: (1,5), (2,6), (3,4,5). I allmänhet kan antalet tillstånd reduceras på flera olika sätt genom olika tillståndskombinationer. De olika kombinationsmöjligheterna brukar åskådliggöras i form av ett sammansmältningsdiagram (e. merger diagram ). I denna anges raderna (tillstånden) i den primitiva tillståndstabellen i form av noder i en graf, och noderna förenas med en länk om motsvarande rader kan kombineras. För tillståndstabellen 3.1 fås diagrammet i Fig. 3.5. Varje grupp av noder i diagrammet med den egen- 6 1 2 5 3 4 Figur 3.5: Sammansmältningsdiagram skapen att varje nod i gruppen är förenad med alla andra noder i gruppen kan kombineras till ett nytt tillstånd. I detta enkla exempel ger diagrammet direkt, att tillstånden kan reduceras antingen enligt eller (1), (2, 6), (3, 4, 5), (1, 5), (2, 6), (3, 4) Båda alternativen leder i detta fall till tre tillstånd hos det reducerade systemet. I praktiken kan antalet sätt att reducera tillstånden bli mycket stort, och det optimala valet blir nödvändigtvis en kompromiss mellan olika kriterier. Följande tumregler har visat sig vara nyttiga:

46 KAPITEL 3. SEKVENSSTYRNINGSPROBLEM 1. För att förenkla funktionerna för utsignalerna y i, är det fördelaktigt att kombinera rader (tillstånd) med liknande eller identiska utsignaler y i. 2. För att förenkla de booleska uttryck som behövs för att ange tillståndsövergångar, är det fördelaktigt att välja kombinationer som eliminerar möjligast många instabila tillstånd, och bevarar möjligast många don t care tillstånd. För exemplet i tabell 3.1 och 3.5 fås enligt regel 1 att kombination enligt (1,5), (2,6), (3,4) är att föredra, ty enligt denna kombination kombineras endast tillstånd med ekvivalenta utsignaler. Det reducerade systemet beskrivs med hjälp av en reducerad tillståndstabell. I denna intoduceras tillståndsvariabler x i för de nya tillstånd som skapats genom tillståndskombination. Dessa variabler brukar anges till höger i den reducerade tillståndstabellen. För det betraktade exemplet fås den reducerade tillståndstabellen 3.2. Tabell 3.2: Reducerad tillståndstabell u 1 0 1 1 0 u 2 0 0 1 1 1,5 1 2 3 5 x 1 2,6 6 2 3 5 x 2 3,4 1 4 3 5 x 3 I detta fall har det förenklade systemet tre tillstånd. Tillståndsvariablerna x i (i = 1, 2, 3) kommer att bestämmas så, att x i = 1 (i = 1, 2, 3), då systemet befinner sig i tillstånd i (i = 1, 2, 3), och x i = 0, annars. Uppgift 3.3 Bestäm en reducerad tillståndstabell för systemet i Uppgift 3.2. Bestämning av utsignalfunktionerna Vi skall nu bestämma utsignalfunktionerna y i för det reducerade systemet. Varje utsignal y i är då en boolesk funktion av tillstånden x 1, x 2,..., och insignalerna u 1, u 2,.... För dessa booleska funktioner kan ett minimalt funktionsuttryck bestämmas med hjälp av de metoder som behandlats i avsnitt 2.2. Betrakta åter exemplet med den primitiva tillståndstabellen 3.1 och den reducerade tillståndstabellen 3.2. I detta exempel blir utsignalfunktionerna triviala, eftersom endast tillstånd med identiska utsignaler kombinerats (enligt tumregel A). Enligt tabell 3.1 är y 1 = 1 i de stabila tillstånden 2 och 6 dvs. då x 2 = 1, och y 2 = 1 i de stabila tillstånden 3 och 4, dvs. då x 3 = 1, och vi får: y 1 = x 2, y 2 = x 3 (3.2) Mera allmänt kan stabila tillstånd som befinner sig på samma rad i den reducerade tillståndstabellen ha olika utsignaler. Utsignalfunktionerna bör då bestämmas genom att betrakta varje stabilt tillstånd i den

3.1. SYNTES AV SEKVENTIELLA SYSTEM 47 reducerade tillståndstabellen. För exemplet i fråga fås att y 1 = 1 för de stabila tillstånden 2 och 6 varvid tabell 3.2 ger: y 1 = u 1 u 2 x 2 + u 1 u 2 x 2 Detta uttryck kan förenklas genom att observera att utsignalernas värden är likgiltiga för instabila tillstånd. Vi kan beskriva y 1 med hjälp av Karnaugh-diagrammet nedan. x 2 0 1 u 1 u 2 00 01 11 10 1 - - 1 y 1 = u 1 u 2 x 2 + u 1 u 2 x 2 y 1 = x 2 Bestämning av tillståndsövergångar Den reducerade tillståndstabellen (3.2) anger systemets tillståndsövergångar. I ett stabilt tillstånd sker ingen tillståndsövergång. I ett instabilt tillstånd anger tabellen det nya stabila tillståndet till vilket övergången sker. För att beskriva tillståndsövergångarna definieras för varje tillståndsvariabel x i en funktion av typen (3.1): x i = (x i + S i ) R i där (Set) funktionen S i = 1 ger en övergång till tillståndet i, x i = 1. Och (Reset) funktionen R i = 1 ger en övergång från tillståndet i, x i = 0. Samt att S i = R i = 0 förorsakar ingen förändring, x i förblir vid sitt tidigare värde. Situationen S i = R i = 1 är sådan att den ej kan förekomma. För systemet i tabell 3.2 har vi att övergång till det stabila tillståndet x 1 fås om systemet befinner sig i tillståndet x 3 och u 1 = u 2 = 0 eller u 1 = 0, u 2 = 1, eller om systemet befinner sig i tillståndet x 2 och u 1 = 0, u 2 = 1. Således fås S 1 = u 1 u 2 x 3 + u 1 u 2 x 3 + u 1 u 2 x 2 = u 1 x 3 + u 1 u 2 (3.3) (Här har utnyttjats, att värdet för S 1 är likgiltig för u 1 = 0, u 2 = 1, x 1 = 1) Analogt har vi, att övergång från tillståndet x 1 sker, om systemet befinner sig i x 1 och u 1 = 1, u 2 = 0 eller u 1 = 1, u 2 = 1. Således fås R 1 = u 1 u 2 + u 1 u 2 = u 1 (3.4) (x 1 kan bortlämnas, ty R 1 = 1 gör ingen skada, fastän systemet skulle befinna sig i något annat tillstånd.) På samma sätt fås för de övriga tillstånden och för tillståndsvariablerna fås slutligen uttrycken S 2 = u 1 u 2 x 1, R 2 = u 1 u 2 + u 1 u 2 = u 2 S 3 = u 1 u 2, R 3 = u 1 u 2 + u 1 u 2 = u 1 (3.5) x i = (x i + S i ) R i (3.6) De booleska funktionerna 3.2-3.6 beskriver fullständigt det i Ex. 3.1 sökta styrsystemet. Observera, att konstruktionen av funktionerna gjorts så, att S i och R i är funktioner av de nya insignalerna och

48 KAPITEL 3. SEKVENSSTYRNINGSPROBLEM de gamla tillståndsvariablerna, medan utsignalerna y i är funktioner av de nya insignalerna och de nya tillståndsvariablerna. Detta är viktigt att beakta vid implementering (programmering) av funktionerna. T.ex. i ladder-diagram som används i laborationsuppgiften så utförs de fördefinerade set- och resetfunktionerna genast. Detta är typiskt inte ett problem, då reset-funktioner i allmänhet är oberoende av tillstånd (undantag förekommer t.ex. på sidan 52). Uppgift 3.4 Slutför syntesen av styrsystemet i Uppgift 3.2 och 3.3 Uppgift 3.5 Planera styrsystemet för Ex. 3.1 i det fall då tillstånden i den primitiva tillståndstabellen 3.1 kombineras enligt (1), (2, 6), (3, 4, 5). Något om implementering med logiska grindar och vippor Styrsystemet kan implementeras med hjälp av logiska grindar och vippor. Härvid representeras tillståndsvariablerna som utsignaler från vippor. För att minimera antalet vippor utnyttjas det faktum att man med n st. logiska variabler kan beskriva 2 n st. tillstånd. För att t.ex. beskriva 4 tillstånd räcker det med 2 vippor, varvid de 4 tillstånden representeras av (00), (01), (11), (10). Liksom tidigare bör den kombinatoriska delen av nätet planeras så att det är hasardfritt (jmf. avsnitt 2.3). I sekventiella nät av den typ som visas i Fig. 3.1 tillkommer dessutom problemet som uppstår p.g.a. att vippornas reaktionstider inte är exakt desamma. Detta leder till att systemets beteende vid en tillståndsförändring kommer att bestämmas av den vippa vars utsignal reagerar först. Resultatet är en s.k. kapplöpning (eng. race), vid vilken systemet genomgår ett antal tillståndsförändringar till ett nytt stabilt tillstånd, som kan vara det korrekta nya tillståndet eller inte, beroende på vilken vippa som reagerar snabbast. Systemet kan också börja oscillera mellan ett antal tillstånd, utan att hitta ett nytt stabilt tillstånd. Kapplöpningar och oscillationer undviks i princip på liknande sätt som hasard: konstruera systemet så att två vippor ej ändrar tillstånd samtidigt.

3.2. DETERMINISTISKA SEKVENSSTYRNINGSPROBLEM 49 3.2 Deterministiska sekvensstyrningsproblem I avsnitt 3.1 behandlades närmast sk. stokastiska sekvensstyrningsproblem, där systemet bör fungera på ett specificerat sätt för en mängd olika insignalsekvenser. Deterministiska sekvensstyrningsproblem kan uppfattas som ett specialfall av de mera generella stokastiska sekvensstyrningsproblemen, med en på förhand given insignalsekvens. Metodiken i avsnitt 3.1 kan därför också tillämpas för deterministiska sekvensstyrningsproblem. P.g.a. sin enklare struktur existerar emellertid också andra procedurer som i praktiken tillämpas för problem av denna typ. FUP FUP (ty. Funktionsplan), funktionsdiagram, är en tysk standard (DIN 40718) för beskriving av sekventiella styrproblem. I denna anges processens olika steg grafiskt i form av numrerade rutor. Vid dessa anges villkor som bör gälla för att processen skall övergå till ifrågavarande steg, en beskrivning av funktionerna hos processen vid skedet i fråga, samt villkor för senare steg i processen. Stegnummer Ev. beskrivning av steget 4 & Aktion 1 Aktion 2 Aktion 3 a b c u 3 u 2 u 1 Konjunktiva villkor för steg 4 a c b Konjunktiva villkor för steg 5 (alternativ beteckning) Följd av framgånsrikt utförd aktion 5 Aktion 4 Aktion 5 Aktion 6 d g h 6 1 d g h Disjunktiva villkor för steg 6 Figur 3.6: Funktionsplan Exempel 3.2 Betrakta processen i Fig. 3.7. Den önskade funktionen är följande. Processen skall kunna startas med en START-signal, varvid ventilerna V A och V B öppnas (V A = 1, V B = 1) förutsatt att behållarna A resp. B är fulla (H A = 1 resp. H B = 1) och reaktorn är tom (L R = 0). Efter tömning av behållarna (L A = 0 resp. L B = 0) skall ventilerna V A resp. V B stängas (V A = 0, V B = 0), och omrörning och uppvärmning slås på (y 1 = 1, y 2 = 1). Reaktorinnehållet skall omröras och uppvärmas i t = 10 min,

50 KAPITEL 3. SEKVENSSTYRNINGSPROBLEM H A H B L A A B L B V A y 1 V B L R y 2 V R Figur 3.7: Reaktor varefter reaktorn töms (V R = 1). Efter genomförd sekvens skall processen åter kunna startas med en START-signal, förutsatt att ovan angivna villkor är uppfyllda. En funktionsplan för processen ses i figur 3.8. 1 Starta & Stäng V R START L R V R H A H B 2 Töm A Öppna V A V A 3 Öppna V B V B Töm B & 4 Omrör och uppvärm 5 Töm reaktor & x T MR (10min) L A L B Stäng V A V A Stäng V B V B Omrörning på y 1 Uppvärmning på y 1 Sätt timer x T MR Omrörning från y 1 Uppvärmning från y 2 Öppna V R V R Figur 3.8: Funktionsplan för reaktor

3.2. DETERMINISTISKA SEKVENSSTYRNINGSPROBLEM 51 På basen av funktionsplanen kan en primitiv tillståndstabell uppställas, och systemets logik kan planeras på basen av denna på samma sätt som i avsnitt 3.1, genom lämpligt beaktande av parallella processteg. Detta förfarande rekommenderas för processer med långa sekvenser, då det kan vara viktigt att förenkla logiken genom kombination av tillstånd. Deterministiska sekventiella processer innehåller emellertid i allmänhet mycket färre tillstånd än stokastiska sekventiella processer. Därför planeras logiken ofta direkt på basen av funktionsplanen. För att illustrera proceduren skall vi i detta exempel välja detta förfarande. Det är dock viktigt att komma ihåg att logiken kan förenklas enligt metoderna i avsnitt 3.1. För att realisera tidsfördröjningen i processteg 4 behövs någon typ av tidsfördröjningsfunktion. I praktiska realiseringar, t.ex. med en programmerbar logik, finns vanligen olika typer av tidsfördröjningsfunktioner. Vi skall här använda oss av en vanligt förekommande funktion av denna typ. Vi introducerar en logisk timer -funktion TMR med insignalen x T MR och utsignalen x T MR [ t]: Här är x T MR TMR t x T MR [ t] Figur 3.9: Timer t( 0) ett argument som kan väljas fritt. TMR-funktionen har följande funktionssätt: En förändring av insignalen (x T MR ) från 0 till 1 får utsignalen (x T MR [ t]) att övergå från 0 till 1 en tid t senare. Däremot övergår utsignalen till 0 utan tidsfördröjning då x T MR = 0. En dylik timer kallas för Timer On Delay (TON), finns även andra typer av timers, t.ex. Timer Off Delay (TOFF), som fördröjer förändringen från 1 till 0 men inte andra vägen. Funktionen för en TON illustreras i följande figur. x T MR t t x T MR [ t] Figur 3.10: Timerns funktion För processen i Fig. 3.7 och 3.8 har vi Insignaler: H A, L A H B, L B L R, START Utsignaler: V A, V B y 1, y 2 V R Enligt funktionsplanen i Fig. 3.8 har processen fem st. steg, för vilka fordras motsvarande tillståndsvariabler: x 1 x 5. Dessutom definieras en variabel x T MR och motsvarande utsignal x T MR [t] från en TMRfunktion. Logiken kan nu konstrueras på basen av Fig. 3.8. För varje tillståndsvariabel definieras Set- och Resetfunktioner enligt Ur Fig. 3.8 fås: x i = (x i + S i ) R i, i = 1, 2, 3, 4, 5

52 KAPITEL 3. SEKVENSSTYRNINGSPROBLEM S 1 = START L R R 1 = H A + H B S 2 = H A (x 1 + x 3 ) R 2 = L A L B (x 2 x 3 + x 4 ) S 3 = H B (x 1 + x 2 ) R 3 = L A L B (x 2 x 3 + x 4 ) S 4 = L A L B x 2 x 3 R 4 = x T MR [10min] S 5 = x T MR [10min] R 5 = START L R Vi behöver här en speciell konstriktion av R 2 och R 3, därför att vi kommer att vara vid tillstånden 2 och 3 samtidigt. Och man kan inte lita på vid programmering att vi kommer att vara vid det gamla tillståndet då vi beräknar reset-funtktionerna. T.ex. i ett ladder-diagram så utförs set och reset genast, men det kan man heller inte lita på i alla tillämpningar. x T MR [10min] är utsignalen från en TMR-funktion, vars insignal är x T MR = x 4. Utsignalernas värden blir: Grafcet V A = x 2 y 1 = x 4 V B = x 3 y 2 = x 4 V R = x 5 GRAFCET (Graphe de Commande Etape-Transision) är en grafisk procedur för beskrivning av sekventiella processer. Proceduren, som ursprungligen utvecklats i Frankrike, har standardiserats i flera länder. Metoden har stora likheter med FUP, se Figur 3.11, som visar såväl en GRAFCET som en FUP-beskrivning av ett automatiskt blandningssystem. (a) (b) Figur 3.11: (a) GRAFCET och (b) FUP beskrivningar av ett automatiskt blandningssystem

3.3. PETRI NÄT 53 3.3 Petri nät Tillståndsautomatbeskrivningen i avsnitt 3.1 (tillståndsgraf, tillståndstabell) har en del begränsningar, vilka gör beskrivningen obekväm för vissa exempel. Detta har motiverat alternativa formalismer för att beskriva sekventiella system. Av dessa är Petri-nätet det viktigaste. Petri-nätet har varit som förebild vid utvecklandet av Grafcet-beskrivningen, se avsnitt 3.2. Vi skall först illustrera begränsningarna för tillståndsautomater med ett par exempel. Exempel 3.3 Betrakta ett system med där inkommande jobb betjänas av en server S (Fig. 3.12). Inkommande jobb som ej kan betjänas direkt sätts i en kö. Servern kan betjäna endast ett jobb åt gången. Ink. jobb Kö Server S Figur 3.12: Serverproblemet Låt den logiska signalen A = 1 ange att ett jobb anländer, och låt S = 1 ange att ett jobb betjänats och att följande jobb kan betjänas av servern. En tillståndsautomatbeskrivning av systemet visas i Figur 3.13, där nod nummer i (i=0,1,2,... ) motsvarar ett tillstånd med i st. jobb i kön. Systemet har alltså ett A A A A A 0 1 2 3 4 S S S S S Figur 3.13: Tillståndsautomat för serverproblemet oändligt antal tillstånd. Exempel 3.4 Betrakta påfyllningen av en reaktor från två behållare (Fig. 3.7), där tömning av behållarna A och B kan ske samtidigt. Figur 3.14 visar en tillståndsautomatbeskrivning av processen, där noderna motsvarar följande tillstånd. 1. Klar för start 2. A och B töms 3. A töms, B fylls 4. B töms, A fylls 5. A tömd, B töms 6. B tömd, A töms 7. Reaktorn fylld

54 KAPITEL 3. SEKVENSSTYRNINGSPROBLEM Figur 3.14: Tillståndsautomat för blandningsprocess Det behövs ett tillstånd för varje kombination av de två delprocessernas tillstånd. Detta illustrerar en inherent svaghet hos tillståndsautomatbeskrivningen: Antalet tillstånd ökar kombinatoriskt med antalet delsystem. Dessutom leder en utvidgning av systemet med nya delsystem (t.ex. en tredje behållare C) till besvärliga modifieringar av tillståndsautomatbeskrivningen. För att kunna beskriva sekventiella, händelse-drivna system på ett bekvämt sätt har man utvecklat alternativ till tillståndsautomatbeskrivningen. Det (sannolikt) mest utbredda av dessa är Petri-nätet (C.A. Petri 1964). Ett Petri-nät har två typer av noder: Cirklar representerar platser (places), som beskriver tillstånd eller aktiviteter hos ett system, och tvärstreck som representerar transitioner. Noderna kan förbindas med flera riktade länkar (Fig. 3.15). p 1 t 1 p 2 Figur 3.15: Petri-nät med två platser p 1, p 2, och en transition t 1 En transition kan exekveras, vilket kan användas för att representera tillståndsövergångar. För att ange när en transition kan exekveras förses platserna med tecken (token), jmf. Fig. 3.16. Antalet tecken i de olika platserna definierar Petri-nätets tillstånd x, dvs där x(p i ) = antalet tecken i plats p i. x = [x(p 1 ) x(p 2 )... x(p m )]

3.3. PETRI NÄT 55 p 1 t 1 p 2 Figur 3.16: Petri-nät med tecken, tillstånd x = [1 0] För att en transition skall kunna exekvera bör det finnas ett tecken för varje riktad länk till transitionen. Transitionen i Figur 3.16 kan således ej exekveras. Däremot exekveras transitionen t 1 i Figur 3.17(a). Observera att antalet tecken i ett Petri-nät i allmänhet ej behöver vara konstant; antalet kan såväl öka p 1 t 1 p 2 (a) x = [2 0] p 1 t 1 p 2 (b) x = [0 1] Figur 3.17: (a) Petri-nät med transition som kan exekveras (b) Tillstånd efter transition som minska beroende på antalet länkar till och från de transitioner som exekveras. Transitionerna kan vara förbundna med flera platser och vice versa. Notera även att en plats kan vara förbunden med en transition i båda riktningarna, jmf. Fig. 3.18. p 1 t 1 p 2 Figur 3.18: Petri-nät med länkar med olika riktning Ett exempel på dynamiken i ett Petri-nät illustreras i Fig. 3.19-3.21 Observera att det i Fig. 3.21 antagits att t 2 exekverats i x 1. Lika väl kunde emellertid t 1 eller t 3 ha exekverats i x 1, vilket leder till andra tillstånd hos nätet. För att beteendet hos ett Petri-nät skall vara entydigt definierat bör ordningsföljden av de exekverbara transitionerna specifieras på något sätt. Det viktigaste sättet ur ingenjörsmässig synvinkel är att binda transitionerna till externa händelser, varvid Petri-nätet beskriver det som är möjligt. Mera om detta under Exempel 3.5 och 3.6.

56 KAPITEL 3. SEKVENSSTYRNINGSPROBLEM p 2 t 2 p 1 t 1 p 3 t 3 p 4 Figur 3.19: x 0 = [2, 0, 0, 1], endast transition t 1 kan exekveras p 1 t 1 p 2 p 3 t 2 t 3 p 4 Figur 3.20: Nytt tillstånd x 1 = [1, 1, 1, 1] efter exekvering av t 1 i x 0 p 1 t 1 p 2 p 3 t 2 t 3 p 4 Figur 3.21: Nytt tillstånd x 2 = [1, 1, 0, 2] efter exekvering av t 2 i x 1

3.3. PETRI NÄT 57 En variant av Petri-nät där transitionernas ordningsföljd kan specificeras genom att införa tider τ i 0 för de olika transitionerna t i, som anger tiden efter vilken transitionen exekveras, då villkoren för exekvering blivit uppfyllda (sk. timed Petri net). Sådana fördöjda transitioner anges med en rektangel, se Fig. 3.22. Transitionen t 1 i Fig. 3.22 exekveras efter τ 1 tidsenheter efter att villkoren för exekvering (två tecken i plats p 1 ) blivit uppfyllda. p 1 τ 1 t 1 Figur 3.22: Timed Petri net p 2 Teorin för Petri-nät analyserar olika egenskaper hos näten, såsom - Om det dynamiska beteendet fortsätter med nya transitioner i all oändlighet ( liveliness ), eller upphör vid något skede. - Om systemet hakar upp sig utan att komma vidare ( deadlock ). - Vilka tillstånd som kan nås från ett givet starttillstånd. - Om tillståndet (totala antalet tecken) förblir begränsat. Till slut skall vi illustrera hur systemen i exemplen 3.3 och 3.4 kan beskrivas med Petri-nät. Exempel 3.5 Betrakta systemet i Ex. 3.3. Ett sätt att beskriva nätet med Petri-nät visas i Fig. 3.23. Vi utnyttjar oss av tre stycken transitioner: a: representerar att ett inkommande jobb anländer s: representerar start av betjäning i servern c: representerar att servern fullbordat ett jobb. Jobben antas ta τ c tidsenheter. Dessutom behövs tre platser Q: antalet tecken i Q anger antalet jobb i kön B: ett tecken i B anger att servern utför jobb (Busy) I: ett tecken i I anger att servern kan ta emot jobb (Idle) a a Q s I Q s I B B c τ c c τ c (a) Initialtillstånd med tom kö och ledig server Figur 3.23: Petri-nät för server-problemet (b) Servern upptagen och två jobb i kön

58 KAPITEL 3. SEKVENSSTYRNINGSPROBLEM Här är ankomsten av jobb a en transition som specificeras utifrån. Observera att i motsats till tillståndsautomatbeskrivningen i Ex. 3.3 har Petrinätbeskrivningen ändligt antal noder. Antalet jobb i kön karakteriseras entydigt av nätets tillstånd, dvs antalet tecken i platserna (och i det här fallet antalet tecken i Q). Uppgift 3.6 Modifiera Petri-nätet i Ex. 3.5 enligt följande: (a) Inkommande jobb kommer med en viss tid emellan (b) Jobben (kunderna) blir och prata i väntrummet efter att ha blivit betjänade av servern. (c) Servern kan gå sönder eller annars tas ur bruk för service. a Q s B I c τ c

3.3. PETRI NÄT 59 Exempel 3.6 Betrakta systemet Fig. 3.7 och Ex. 3.2 med påfyllning av en reaktor från två behållare A och B. Ett Petri-nät som beskriver detta system ses i Fig. 3.24. Externa signaler för start och påfyllning av A och B har även införts. A fylld Start ok Start ok B fylld H A A töms (V A = 1) B töms (V B = 1) H B LA L B Fyll A A tömd (V A = 0) B tömd (V B = 0) Fyll B Omrör&Uppvärm Start 10 min Töm reaktor (V R = 1) L R Tömd reaktor (V R = 0) Figur 3.24: Petri-nät för blandningsprocess Observera att i motsats till tillståndsautomat beskrivningen i Fig. 3.14 kan de parallella processerna beskrivas oberoende av varandra i Petri-nät beskrivningen. Detta gör beskrivningen mera strukturerad, och det är enkelt att sätta till eller avlägsna delprocesser. Defacto så har vi mycket mera detaljer med i Petrinätet i figure 3.24 än i tillståndsautomaten i figur 3.14. En nackdel med Petri-nät är att den grafiska representationen av ett realistiskt system nog kan bli relativt komplicerad, med många platser och transitioner. Vidare så ses i ovanstående exempel att platser är ofta sammankopplade med utsignaler (inom parentes), och transitioner är ofta sammankopplade med insignaler. Transitionerna som är kopplade med insignaler så har som tillägssvillkor att den externa signalen måste ha rätt värde. Dylika transitioner brukar kallas icke styrbara, eftersom de är beroende av omgivningen.

60 KAPITEL 3. SEKVENSSTYRNINGSPROBLEM Uppgift 3.7 Bestäm ett Petri-nät som modellerar alarmsystemet i Ex. 3.1. Alarmsignal Kvitteringsknapp u 1 u 2 Styrsystem y 1 y 2 Siren Alarmlampa Uppgift 3.8 Bestäm ett Petri-nät som modellerar systemet beskrivet i Uppgift 3.2. y u 1 u 2 L