Högskolan Dalarna Elektroteknik LABORATION LABORATIONSINSTRUKTION PLC-styrning av ett minimalt parkeringsgarage KURS El- och styrteknik för tekniker ET 1015 INNEHÅLL LAB NR 4 Ver 1.0 1. Inledning 2. Laborationskortet i styrteknik 3. Laborationsuppgifter med GX IEC Developer Uppgift 1 Larmhantering med en IEC function Uppgift 2 Upp/ned-räknare med ett IEC function block Uppgift 3 PLC-program för ett parkeringsgarage NAMN KOMMENTARER PROGRAM/KURS UTFÖRD GODKÄND SIGN
Laboration PLC 2 PLC-styrning av ett minimalt parkeringsgarage 1. Inledning Syftet med laborationen är praktiskt få studera programmering av ett styrsystem och att få kunskap om strukturella metoder för att beskriva PLC-program. Vid laborationen används de strukturerade begreppen funktion och funktionsblock enligt standarden IEC 61131-3. Laborationen består av tre uppgifter: En beskrivning av en programdel för en enkel larmhantering med en funktion. En beskrivning av en programdel med en upp/ned-räknare med ett funktionsblock Ett program som använder funktioner och funktionsblock för att styra en modell av ett minimalt parkeringsgarage. Vid laborationen används laborationskortet enligt beskrivningen nedan. Kortet ska vara byglat för hiss. 2. Laborationskortet i styrteknik Laborationsutrustningen består av en PLC, MELSEC FX1S-14MT-DSS, och ett laborationskort som är monterat på en platta. Till laborationskortet ansluts matningsspänningen 24 V DC via en batterieliminator. Laborationskortet är uppdelat två delar, trafik och hiss. Vilken av delarna som ska användas väljs med byglingar på LIST1 och LIST2 på kretskortet, se figuren nedan. Figur 4: Laborationskortet med PLC-systemet Lab PLC 2-1 - pls 2011-11-08
I manualerna till styrsystemet MELSEC FX1S betecknas in- och utgångarna med: X0 till X7 8 stycken ingångar Y0 till Y5 6 stycken utgångar Normalt är det bättre att använda symboliska namn och tabellerna nedan visar förslag till namn för ingångarna respektive utgångarna. INGÅNGAR: Kortet byglat för hiss Kortet byglat för trafik Ingång Symb. namn Ingång Symb. namn X0 BTN_VAN1 X0 SW_DGV X1 BTN_VAN2 X1 SW_DGO X2 BTN_VAN3 X2 SW_KGS X3 BTN_NOD X3 SW_KGN X4 SENS_VAN1 X4 BTN_DGOG X5 SENS_VAN2 X5 BTN_DGVG X6 SENS_VAN3 X6 BTN_KGSG X7 RUN X7 BTN_KGNG UTGÅNGAR: Kortet byglat för hiss Kortet byglat för trafik Utgång Symb. namn Ingång Symb. namn Y0 LED1_GUL Y0 LEDKG_RED Y1 LED2_GUL Y1 LEDKG_GUL Y2 LED3_GUL Y2 LEDKG_GREEN Y3 LEDV3_GREEN Y3 LEDDG_RED Y4 LEDV2_GREEN Y4 LEDDG_GUL Y5 LEDNOD_RED Y5 LEDDG_GREEN Utöver in och utgångar finns det i alla PLC-system ett antal interna register som man måste känna till. De vanligaste är minnesceller (M), timerfunktioner (T), räknarfunktioner (C) och dataregister (D). Tabellen nedan visar vad som finns i MELSEC FX1S: M M0 till M383 384 minnesceller, matade med normal DC M M384 till M511 128 minnesceller, permanenta (retentiva) T T0 till T62 100 ms timer, utsignal efter 0.1 till 3276.7 sek T T32 till T62 10 ms timer, om spec. minne M8028 = 1 T T63 1 ms timer, utsignal efter 0.001 till 32.767 sek C C0 till C15 16 bitars räknare C C16 till C31 16 bitars räknare, retentiva C C235 till C255 32 bitars high speed counter D D0 till D127 Nollställs när PLC stoppas/spänning från D D128 till D255 Behåller informationen (latch) Mer data om in- och utgångar och olika typer av register finns i kapitel 4 i manualen MELSEC FX Family. När man skriver program kan man ange vilket register som ska användas och för en del maskinnära instruktioner är det praktiskt att göra så. Vanligtvis använder man registren i olika funktioner eller funktionsblock och då får programvaran styra vilka register som används. Vilka register som får användas av användaren respektive programvaran bestäms med menyalternativet Extras/Options/System Variables, i programvaran GX IEC Developer. Lab PLC 2-2 - pls 2011-11-08
3. Laborationsuppgifter med GX IEC Developer Uppgift 1: Larmhantering med en IEC function En funktion i IEC 61131-3 kan ha flera inparametrar men bara en utparameter. Utparametern har samma namn som funktionen. En funktion kan inte innehålla funktionsblock men däremot funktioner och operatorer. Den kan inte heller spara värden. Du skall skapa en funktion för larmet i parkeringsgaraget. Funktionen skall se ut som bilden nedan. Det finns tre brandlarm i garaget ( larm1, larm2, larm3 ). För att undvika falsklarm måste minst två av dem vara aktiverade samtidigt för att larmet skall gå. Funktionsbeskrivning: Inparametrar (BOOL): larm1, larm2, larm3 Utparameter (BOOL): larm Funktionsutgången larm ska få värdet 1 om minst två av inparametrarna har värdet 1 När din funktion är klar gör du en POU av typen program där du testar din funktion. I exemplet nedan är inparametrarna och utparametrarna globala variabler definierade i den globala variabellistan. Lab PLC 2-3 - pls 2011-11-08
Uppgift 2: Upp/ned-räknare med ett IEC function block Ett funktionsblock IEC 61131-3 kan ha flera inparametrar och flera utparametrar. Funktionsblock kan lagra värden och kan innehålla andra funktionsblock. Funktionsblock måste därför ges egna namn, instansieras, när de används. Ett exempel på ett funktionsblock är ett block med en upp/nedräknare enligt beskrivningen nedan. Funktionsblocket ska användas för att räkna antalet bilar som är inne i garaget. Beskrivning av funktionsblocket: Grafiskt gränssnitt: Inparametrar, utparametrar: Parametrarna är definierade i local Header. Funktion: start: Hög nivå aktiverar räknaren, positiv flank ger reset av den interna räknaren. Parametern start måste vara aktiverad innan räknaren kan användas. max_antal: Maximalt värde på räknaren. Räkneområde från noll till max_antal. Räkneområdet får inte överskridas. inpassering/utpassering: Positiv flank ökar/minskar räknarens värde med 1. antal: Visar aktuellt räknarvärde. fullt: Ger hög nivå vid maximalt räknarvärde. ledigt: Ger hög nivå när räknarvärdet är mindre än max. Testa ditt funktionsblock enligt figuren nedan. Vid parametern antal står det K1Y0. Det betyder att värdet på parametern antal läggs ut med fyra binära bitar på utgångarna med start vid Y0. Man kan då se antalet bilar som är inne i garaget i binär form på de gula lysdioderna samt den gröna Y3. Lab PLC 2-4 - pls 2011-11-08
Uppgift 3: PLC-program för ett parkeringsgarage Med hjälp av funktionen larm och funktionsblocket antal_inne ska du nu göra ett program för parkeringsgaraget. Programmet har två uppgifter: att aktivera ett brandlarm att övervaka garaget i normala fall Brandlarm Aktivering av brandlarmet styrs av tre brandsensorer BTN_NOD, BTN_VAN3 och BTN_VAN2. För att aktivera en brandsensor måste den vara till under minst 5 sekunder. Minst två brandsensorer måste vara till samtidigt för att brandlarmet ska utlösas. Vid brandlarm ska den röda lysdioden LEDNOD_RED blinka med frekvensen 1 Hz. Brandlarmet avbryts om BTN_VAN1 ettställs. Övervakning av garaget Maximalt antal platser i garaget sätts till 6. Antalet bilar i garaget visas i binär form på de 3 gula lysdioderna LED3_GUL, LED2_GUL och LED1_GUL. Fullt garage indikeras av fast sken på LEDNOD_RED. Ledigt platser i garaget indikeras av fast sken på LEDV2_GREEN. Inpassering av en bil indikeras av positiv flank på SENS_VAN1 Utpassering av en bil indikeras av positiv flank på SENS_VAN3 Garaget startar (öppnar) genom att BTN_VAN1 ettställs. Några tips: För att få en blinkande lysdiod kan man använda minne M8013 som ger en fyrkantpuls med frekvensen 1 Hz. För att göra lösningen mer generell bör egen blinksignal genereras med hjälp av en eller två tidskretsar (timer). Den röda lysdioden LEDNOD_RED används både för att indikera brandlarm och för att indikera att garaget är fullt. Om båda villkoren inträffar samtidig skall brandlarmet ges! En enkel lösning med grindar: Redovisning Laborationen skall redovisas dels som en demonstration av en fungerande lösning av laborationsuppgiften och dels som en rapport enligt anvisningarna i den föregående laborationen. Vid redovisningen ska lösningen kunna förklaras på ett tillfredsställande sätt. Laborationen kan redovisas vid något av laborationstillfällena, kurssammandragen eller vid annan tid efter överenskommelse med lärarna. Lab PLC 2-5 - pls 2011-11-08