MAS113 Digital Control Day 2 Flowcharts and State-Machines MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 1 IEC 61131-3 Ladder Logic Statement Lists Function Block Diagrams G. Hovland - 2009/10
IEC 61131-3 n The IEC 61131-3 standard defines four PLC languages MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 2 Ladder Logic Statement Lists (STL) Function Block Diagrams (FBD) Sequential Flow Charts (SFC) n Many PLC's allow all four programming languages. Some allow only a subset. n The easiest for humans to read is the SFC (graphical). Is there a systematic way to convert SFC to the other languages?
Why Flowchart or State-Machine? n PLC programs can become difficult for others to read without documentation n Flowchart or state-machine is a standard approach to document a logic program flow n Documentation required by ISO 9001 n PXXXX-DS011 Design Specification MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 3 n PXXXX-DS021 Functional Description n PXXXX-DS024 Program Description n PXXXX-DS025 Definition of Variables
Example Flow Chart MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 4
Ladder Logic for the Transitions (First Scan, OB100) MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 5
Ladder Logic Functions MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 6
Ladder Logic Functions and Outputs MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 7
Pedestrian Crossing: Exercise Inputs: S1, S2 (walk button) Outputs: L1, L2,, L6 (2 sets of red, yellow, green lights) Green NS ST1 Yellow NS ST2 Green EW ST3 Yellow EW - ST4 4 seconds delay from yellow to green MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 8
State based design approach n A State based system can be described with system states, and the transitions between those states. n If the system is in state 1 and A happens the system will then go into state 2, otherwise it will remain in State 1. n if the system is in state 2, and B happens the system will return to state 1. MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 9
Pedestrian Crossing Example: State-Machine Inputs: S1, S2 (walk button) Outputs: L1, L2,, L6 (2 sets of red, yellow, green lights) MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 1 0 Green NS ST1 Yellow NS ST2 Green EW ST3 Yellow EW - ST4 4 seconds delay from yellow to green
MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 1 1 Pedestrian Crossing: State-Machine 1. Obtain the states 2. Draw the state transition diagram 3. Derive state equations and transient equations 4. Convert to ladder logic ST3 Transients: T1,T2,T3,T4,T5 e.g. T1: transient from ST1 to ST2 ST2 Delay 4 s T2 System State: L1,L2,.., L6 State description: ST1,ST2,ST3,ST4 and First Scan: FS T1 S1 pressed ST1 FS T5 S2 Pressed T3 ST4 T4 Delay 4 s
Pedestrian Crossing: State-Machine Inputs: S1, S2 (walk button) Outputs: L1, L2,, L6 Delay 4 s T2 ST3 S2 Pressed T3 3. Derive state equations and transient equations ST2 T1 S1 pressed ST1 FS T5 ST4 T4 Delay 4 s MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 1 2
Convert to Ladder Logic MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 1 3
State Equations MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 1 4
Outputs MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 1 5
Alternative Implementation with SR Block Equivalent T4 S Q ST1 T5 T1 R MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 1 6
Statement List: Example 1 Equivalent A( O ST1 O T4 O T5 ) AN T1 = ST1 MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 1 7
Functional Block Diagram Equivalent ST1 >=1 T4 >=1 T5 T1 & ST1 MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 1 8
Oppgave: Sorteringsmaskin MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 1 9
Oppgave: Sorteringsmaskin MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 2 0
Sorteringsmaskin: IO Liste Lag en IO-liste og tegn flytskjema for systemet MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 2 1 IO-Liste: Inngang I1=Første metalldetektor (upstream). True=Metall. Inngang I2=Andre metalldetektor (downstream). True=Metall Inngang I3=Første plastikkdetektor (upstream). True=Plastikk Inngang I4=Andre platikkdetektor (downstream). True=Plastikk. Inngang I5=RESET Utgang O1=Styrearm (True=Slipper metall forbi, False=slipper plastikk forbi) Utgang O2=Transportbånd (True=På, False=Stoppet). Felles for begge båndene Utgang O3=Alarmlys. True=Alarm
Flytskjema: (Det kan lages andre løsninger) Antagelse: Kun ett objekt på båndet RESET O1=TRUE O2=TRUE O3=FALSE TELLER METALL=0 TELLER PLASTIKK=0 INITIALVERDIER MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 2 2 METALL NEI TELLER METALL +1 JA I1? JA O1=TRUE VENT X SEK I2? I3? NEI O2=FALSE NEI JA I4? O3=TRUE ALARM JA O1=FALSE VENT X SEK NEI TELLER PLASTIKK +1 PLASTIKK
Praktisk Øving: Sorteringsmaskin n Implementer flytskjemaet på PLS basert på metodikken som er innført: Steg 1: Transisjoner T Steg 2: Funksjoner F Steg 3: Utganger MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 2 3
Sorteringsmaskin: Tilstandsdiagram n Neste Oppgave: Implementer sorteringsmaskinen som en tilstandsmaskin n Implementer tilstandsmaskinen på PLS basert på metodikken som er innført: MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 2 4 Steg 1: Transisjoner T Steg 2: Tilstander S Steg 3: Utganger
Tilstandsmaskin: (Det kan lages andre løsninger) Teller Plastikk=0 Teller Metall=-1 RESET I1 I2 Metall har passert Teller Metall +1 I3 Metall på båndet Plastikk på båndet MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 2 5 Etter x sek I1 Plastikk har passert Teller plastikk + 1 Alarm- Tilstand I4 I3 Etter x sek
Oppgave: Heis n En heis har tre etasjer n Utenfor heisen i hver etasje er det en «Hit» knapp n Inne i heisen er det en knapp for hver etasje (1-2-3) MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 2 6 n Heisen bruker 5 sekunder for å bevege seg mellom to etasjer n Hver etasje har en tilsvarende lampe som skal tennes når heisen befinner seg i den etasjen. n Lag IO-liste og tegn flytskjema for heisen n Tegn tilstandsdiagram for heisen n Implementer en av løsningene på PLS
Eksempel: Pumpesystem for gruve MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 2 7
Eksempel: Pumpesystem for gruve Funksjonsbeskrivelse: Operatøren kan velge enten AUTO eller MANUELL ved hjelp av en bryter på operatørpanelet. MANUELL: Når systemet er i manuell modus startes pumpe 1 og 2 av sine respektive trykkknapper. Når stopp-knappen trykkes inn, stoppes begge pumpene. MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 2 8 AUTO: Når nivået er lavere enn B, skal begge pumpene de-aktiveres og duty-pumpen skal byttes. Ved vann-nivå B skal kun duty-pumpen aktiveres. Ved vann-nivå D skal pumpene stoppes og alarm-lampen tennes. I Auto-modus skal det indikeres med en lampe hvilken pumpe som er duty. Når nivået går fra B til A, skal det være 10 sekunder tidsforsinkelse før duty pumpen stoppes. Dette for å hindre at nivået skal svitsje mellom A og B. Først etter at duty pumpen er stoppet, skal duty byttes.
Flytskjema: Gruve Modus Valg Tr1 Tr2 MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 2 9 Auto Modus Tr3 Tr1: (MODUSVELGER = TRUE) AND (HOVEDBRYTER = TRUE) Tr2: (MODUSVELGER = FALSE) AND (HOVEDBRYTER = TRUE) Tr3: HOVEDBRYTER = FALSE Tr4: HOVEDBRYTER = FALSE Manuell Modus Tr4
MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 3 0 Sjekk Tr3 Nivå A Del 1 Nivå A Del 2 Auto Modus Tr5 Tr6 Tr7 Tr8 Tr9 Tr10 Tr11 Nivå B Nivå C Nivå D Sensor- Feil Tr12 Tr13 Tr14 Tr15 Tr5: (SENSOR1 = FALSE) AND (SENSOR2 = FALSE) AND (SENSOR3 = FALSE) Tr6: (SENSOR1 = TRUE) AND (SENSOR2 = FALSE) AND (SENSOR3 = FALSE) Tr7: (SENSOR1 = TRUE) AND (SENSOR2 = TRUE) AND (SENSOR3 = FALSE) Tr8: (SENSOR1 = TRUE) AND (SENSOR2 = TRUE) AND (SENSOR3 = TRUE) Tr9: ((SENSOR1 = FALSE) AND (SENSOR2 = TRUE)) OR ((SENSOR1 = FALSE) AND (SENSOR3 = TRUE) OR ((SENSOR2 = FALSE) AND (SENSOR3 = TRUE)) Tr10: (Tid i Nivå-A-Del-1 > 10 sekunder) Tr11: (SENSOR1 = TRUE) Tr12: (SENSOR1 = FALSE) OR (SENSOR2 = TRUE) Tr13: (SENSOR2 = FALSE) OR (SENSOR3 = TRUE) Tr14: (SENSOR3 = FALSE) OR RESET Tr15: TRUE Nivå A Del 1: (Ingen forandring) Nivå A Del 2: Alle lys og pumper av Bytt duty pumpe IF duty=0 THEN duty=1 ELSE duty=0 Nivå B: IF duty=0 THEN start pumpe 1 duty lys pumpe 1 ELSE start pumpe 2 duty lys pumpe 2 END Nivå C: Start duty og standby pumpe IF duty=0 THEN duty lys pumpe 1 ELSE duty lys pumpe 2 END Nivå D: Stopp pumper Nødlys på Alle andre lys av En minne-variabel er nødvendig for å lagre duty pumpe
Manuell Modus Sjekk Tr4 Tr15 Tr16 Tr17 Start Pumpe 1 Start Pumpe 2 Stopp Pumpene MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 3 1 Tr15: (I1.3 = TRUE) AND NOT (I1.5 = FALSE) Tr16: I1.4 = TRUE AND NOT (I1.5 = FALSE) Tr17: I1.5 = TRUE Denne løsningen gjør det mulig å starte begge pumpene samtidig, samt man trenger ikke å holde knappene inne for at pumpene skal virke.
Duty Swapping for Pumper To Minnebit: DutyPump (0 or 1) DutySwapped (0 or 1) Low Level MAS1 1 3 Dig it al Con t rol, Sem est er 1, 2 0 0 9. Pag e: 3 2 Logic: IF (Low) AND (DutySwapped=0) AND (DutyPump=0) THEN (DutyPump=1) + (DutySwapped=1) IF (Low) AND (DutySwapped=0) AND (DutyPump=1) THEN (DutyPump=0) + (DutySwapped=1) IF (Not Low) THEN DutySwapped=0 Illustrer dette med et flytskjema!!