MAS113 – Digital Control Day 2 MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 1 Flowcharts and State-Machines IEC 61131-3 Ladder Logic Statement Lists Function Block Diagrams G. Hovland - 2009/10 IEC 61131-3 MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 2 n The IEC 61131-3 standard defines four PLC languages – 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? MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 3 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 n PXXXX-DS021 Functional Description n PXXXX-DS024 Program Description n PXXXX-DS025 Definition of Variables MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 4 Example Flow Chart MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 5 Ladder Logic for the Transitions (First Scan, OB100) MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 6 Ladder Logic Functions MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 7 Ladder Logic Functions and Outputs Pedestrian Crossing: Exercise Inputs: S1, S2 (walk button) Outputs: L1, L2, …, L6 (2 sets of red, yellow, green lights) MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 8 Green NS – ST1 Yellow NS – ST2 Green EW – ST3 Yellow EW - ST4 4 seconds delay from yellow to green MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 9 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. Pedestrian Crossing Example: State-Machine MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 1 0 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 Pedestrian Crossing: State-Machine System State: L1,L2, .., L6 State description: 1. Obtain the states ST1,ST2,ST3,ST4 and First Scan: FS 2. Draw the state transition diagram MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 1 1 3. Derive state equations and transient equations S2 Pressed Delay 4 s 4. Convert to ladder logic T2 ST3 ST2 ST4 T1 ST1 S1 pressed Transients: T1,T2,T3,T4,T5 e.g. T1: transient from ST1 to ST2 T3 T5 FS T4 Delay 4 s Pedestrian Crossing: State-Machine Inputs: S1, S2 (walk button) Outputs: L1, L2, …, L6 Delay 4 s T2 S2 Pressed ST3 ST2 3. Derive state equations and transient equations ST4 T1 ST1 S1 pressed MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 1 2 T3 T5 FS T4 Delay 4 s MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 1 3 Convert to Ladder Logic MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 1 4 State Equations MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 1 5 Outputs MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 1 6 Alternative Implementation with SR Block Equivalent T4 ST1 S T5 T1 R Q MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 1 7 Statement List: Example 1 Equivalent A( O ST1 O T4 O T5 ) AN T1 = ST1 MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 1 8 Functional Block Diagram Equivalent ST1 >=1 T4 >=1 T5 & T1 ST1 MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 1 9 Oppgave: Sorteringsmaskin MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 2 0 Oppgave: Sorteringsmaskin Sorteringsmaskin: IO Liste MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 2 1 Lag en IO-liste og tegn flytskjema for systemet 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 INITIALVERDIER NEI NEI I1 ? I3 ? TELLER METALL +1 O1=TRUE O1=FALSE VENT X SEK VENT X SEK JA NEI I2 ? O2=FALSE O3=TRUE ALARM NEI TELLER PLASTIKK +1 JA I4 ? PLASTIKK JA JA METALL MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 2 2 O1=TRUE O2=TRUE O3=FALSE TELLER METALL=0 TELLER PLASTIKK=0 Praktisk Øving: Sorteringsmaskin MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 2 3 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 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 2 4 Sorteringsmaskin: Tilstandsdiagram n Neste Oppgave: Implementer sorteringsmaskinen som en tilstandsmaskin n Implementer tilstandsmaskinen på PLS basert på metodikken som er innført: – Steg 1: Transisjoner T – Steg 2: Tilstander S – Steg 3: Utganger Tilstandsmaskin: (Det kan lages andre løsninger) RESET Teller Plastikk=0 Teller Metall=-1 Metall har passert I1 Teller Metall +1 I2 I3 MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 2 5 Metall på båndet Plastikk på båndet I1 I4 Plastikk har passert I3 Teller plastikk + 1 Etter x sek Etter x sek AlarmTilstand MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 2 6 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) 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 MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 2 7 Eksempel: Pumpesystem for gruve Eksempel: Pumpesystem for gruve Funksjonsbeskrivelse: Operatøren kan velge enten AUTO eller MANUELL ved hjelp av en bryter på operatørpanelet. MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 2 8 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. 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 MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 2 9 Tr1 Tr1: Tr2: Tr3: Tr4: Tr2 Auto Modus Manuell Modus Tr3 Tr4 (MODUSVELGER = TRUE) AND (HOVEDBRYTER = TRUE) (MODUSVELGER = FALSE) AND (HOVEDBRYTER = TRUE) HOVEDBRYTER = FALSE HOVEDBRYTER = FALSE Auto Modus Sjekk Tr3 Tr5 Nivå A Del 1 Tr10 MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 3 0 Nivå A Del 1: (Ingen forandring) Tr6 Nivå B Tr12 Nivå A Del 2: Alle lys og pumper av Bytt duty pumpe IF duty=0 THEN duty=1 ELSE duty=0 Tr7 Nivå C Tr13 Tr8 Nivå D Tr9 SensorFeil Tr14 Nivå A Del 2 Tr15 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 Tr11 Tr5: Tr6: Tr7: Tr8: Tr9: (SENSOR1 = FALSE) AND (SENSOR2 = FALSE) AND (SENSOR3 = FALSE) (SENSOR1 = TRUE) AND (SENSOR2 = FALSE) AND (SENSOR3 = FALSE) (SENSOR1 = TRUE) AND (SENSOR2 = TRUE) AND (SENSOR3 = FALSE) (SENSOR1 = TRUE) AND (SENSOR2 = TRUE) AND (SENSOR3 = TRUE) ((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å 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 MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 3 1 Start Pumpe 1 Tr16 Start Pumpe 2 Tr17 Stopp Pumpene 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) MAS1 1 3 D ig it al Con t r ol, Se m e st e r 1 , 2 0 0 9 . Pag e : 3 2 Low Level 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!!