1 Typisk modul-opbygget PLC system (Allan Bradley) 5 6 Prrammøren nødt til at define hvilke modul systemet består af i hvilke slots de placet. Et typisk system vil have såvel anale som digitale ind- udgange (Slot 3, 4 5) Man vil ofte bruge feltbuss (Fieldbus) i forbindelse med input/output signal. (Slot 2) Endelig kan PLC udveksle data via netværk Som f.eks. Controlnet (Slot 1)
2 Typisk prramstruktur for en PLC (Allan Bradley) H lægges alle Tags (variable m.m) som skal være fælles for alle Task i controllen D kan kun være et Continut Task i en controll dette task kør når d ikke andet at lave. H lægges alle Tags (variable m.m) som kun skal bruges i dette prram Et Event Task kør kun når d brug for det. F.eks når et input skift. Et Piodic Task kør fast med et bestemt intval (1.. 50000 msek) Hardware opbygningen fremgår af denne struktur
3 Et prram indehold rutin, hvoraf én hovedrutinen I dette tilfælde hovedrutinen skrevet i Strukturet Tekst Funktions blokke Multipleks Funktionsblokke komponent som kan udføre alt lige fra simpel AND / OR lik til hele PID regulator. A B D1 D0 Y Y=D0 når C=0 Y=D1 når C=1 F0
Ladd diagram 4 Ladd diagramm afledt de gamle relæstyring den klassiske prrammingsform. Sieforbindelse svar til AND parallel svar til OR Strukturet tekst SFC - Sekventiel Function Chart Stukturet tekst svar til de prrammingsspr d anvendes inden for ITbranchen (C#, Java) SFC egentligt begnet til sekvensstyring, men kan for eksemplets skyld så lave en multipleks.
Sekvensstyring med Ladd diagram Set-Reset metoden beskrevet i Heilmann Kap 6 Running Running skal skal sikre sikre mod mod genstart genstart af af styringen. styringen. H H startes startes Fase1 Fase1 running running sættes sættes Skiftebetingels Når Når Cylind Cylind 1 1 ude ude skiftes skiftes d d til til Fase2 Fase2 Fase1 Fase1 forlades forlades Faseskift med Unlatch Latch Når Når Fase1 Fase1 ( ( Fase5) Fase5) aktivet aktivet ønskes ønskes Cylind Cylind 2 2 sendt sendt ind ind Cylind Cylind 1 1 skal skal sendes sendes ud. ud. Unlatch Latch I forbindelse med en maskinstyring d behov for følgende: D skal ventes på at start aktives man må ikke kunne genstarte styringen mens den arbejd. Cylind 1 skal køre ud blive ude i 3 sekund. Deft skal Cylind 1 køre ind Cylind 2 skal køre ud blive ude i 4 sekund. Denne sekvens skal gentages 4 gange hvoreft Cylind 2 skal køre ind styringen skal afvente start igen. Nej F1 F2 F3 F4 F5 F6 Start=1 Running=0 Sæt Running = 1, Send cylind 1ud Og send Cylind 2 ind Cylind 1 ude Start Tim 1 (med 3 sekunds delay) Tim1.dn Send Cylind 1 ind Og send Cylind 2 ud Cylind 1 inde Cylind 2 ude Ja Start Tim 2 (med 4 sekunds delay) Tim2.dn Send Cylind 1 ud Og send Cylind 2 ind Er tællen = 4? Send Cylind 1ind Fasediagram metoden beskrevet i Heilmann Kap 11 5
Prram Tags til Sekvensstyring 6 En En typisk typisk sekvensstyring sekvensstyring vil vil have have behov behov for for et et antal antal Fas Fas Fase1, Fase1, Fase2 Fase2 osv. osv. Desuden Desuden vil vil d d være være brug brug for for time time til til at at gene gene tidsforsinkels: tidsforsinkels: -Tim1 -Tim1 Tim2 Tim2 Endvide Endvide d d brug brug for for en en tæll: tæll: -Count1 -Count1 Time Time Tæll Tæll aktives aktives når når de de respektive respektive fas fas aktive. aktive.
Løsningsforslag (til orienting) 7 Rung #1.. #6 H alle faseskift samlet #1 Sørg for at d kun kan startes én gang. #2 Vent på at Cylind 1 kommet ud. #3 Vent på at d gået 3000 millisekund. #4 Vent på at Cyl 1 inde Cylind 2 ude. #5 Vent 4000 msek. #6 Afvent Cyl1 2 Hvis styringen har kørt 4 gange stoppes ells gentages (Fase 2) Rung #7.. #12 H alle aktion samlet #7 Send begge Cylindre ind. #8 Cyl 1 ud Cyl2 ind #9 Cyl 1 ind Cyl 2 ud #10 Tim1 lav tidsforsinkels på 3000 msek. #11 Tim2 lav tidsforsinkels på 4000 msek. #12 Count1 tæll antallet af genløb i sekvensstyringen (Done sættes ved 4 gange) #13 Sørg for genstart initialising af sekvenstyringen
Sekvensstyring med SFC (Grafcet) 8 Læs me Heilmann Kap 12 SFC styring baset på 4 forskellige element: Step Angiv en fase hvor styringen kan opholde sig (evt fle aktive samtidigt) Transition Er betingels d skal være opfyldt for at man kan forlade et step. Aktion Er handling som ønskes udført i forbindelse med et step. Forgrening Vis sammenhængen mellem de enkelte steps.
9 Sekvensstyring med SFC D startes h (dobbelt streg) Action - Propties
10 Sekvensstyring med SFC.. Fortsat 1 P1 Action - Propties N P0 En SFC styring består af et antal Step (Tilstande, Fas ell hvad nu har lyst til at kalde det). For hvt Step kan d defines et antal aktion som kan udføres i forbindelse med steppet. P1 Aktion udføres når man ankomm til steppet (det bliv aktivet igen / første gang) P0 - Aktion udføres når man forlad steppet (Skiftebetingelsen opfyldt) S - En Stored aktion vil blive udført hele tiden så når Steppet forlades. N - En Non-Stored aktion udføres kun sålænge at Steppet aktivt. Læs me om R, L, D P Aktion i dokumentationen. Afvent_Start: S Aktionen sørg for at Devicenet kør P1 Aktionen send Cylind 1 2 ind (så d klar til næste start) P0 Aktionen send Cylind 1 ud initialis divse tælle. Afvent_Start forlades når d trykkes på start knappen Dette medfør at Tran_000 bliv sand samtidig med at Steppet forlades udføres P0 Aktionen. Step_000 kun indført af praktiske årsag d ingen aktion knyttet til dette. P0 Betingelsen for at forlade Step_000 at enten: Cylind 1 ude (Tilfældet den første gang) ell at Cylind 2 ude (Tilfældet den anden gang) Ovvej: Hvad vil d ske hvis begge Cylindre var ude samtidig? Svar: Det muligt at sætte prioritet på en transition men default at dem længst til venstre har højest prioritet.
Sekvensstyring med SFC.. Fortsat 2 11 Step_001 vil blive aktivt lige eft at Cylind 1 ude. Samtidig med at Step_001 bliv aktiv startes d en intn tim (Step_001.T) som fortæll hvor lang det pågældende step har været aktivt. N N Aktionen udføres sålænge Step_001 aktivt som det fremgår bliv timen brugt til at lave en tidsforsinkelse på 3000 msek (3 sekund) Når de 3 sekund gået sendes Cylind 1 ind Cylind 2 sendes ud. Tran_003 vent på Cylind 1 komm ind igen Til hvt Step knyttet en tæll som fortæll hvor mange gange det pågældende Step har været aktivet. Step_003 vil blive aktivet når enten Cylind 1 ell Cylind 2 kommet ind. N - Aktionen i Step_003 bruges til at afgøre om Step_003 har været aktivet mindre end 8 gange Hvis Step_003 har været aktivet mindre end 8 gange Igen sand ells Igen falsk. (Det vil Trans_006 vælges p.gr.a. not Igen )
Sekvensstyring med SFC.. Fortsat 3 P1 Når sekvens styringen har gentaget sig selv 4 gange bruges P1 til at slukke lukke. Hvis ikke Cylind 2 nået helt ud vil man i Tran_002 vente på at det sk. Deft ventes d 4 sekund med Cylind 2 ude. Når de 4 sek gået sendes Cylind 2 ind Cylind_1 ud. Tran_004 vent på at cylind 2 komm ind igen. Konklusion: Dette eksempel vis ikke alle mulighed ved SFC. For eksempel det muligt at starte fle parallele forløb (med en dobbelt streg vandret) alle disse forløb skal så være færdige før d kan fortsættes. SFC giv altså mulighed for at lave ret advancede sekvens på et højt niveau har desuden den fordel at man relativt let kan læse forstå diagrammet samtidig bruge dette ved fejlfinding. 12