PLS PC-øving nr. 3 Global Label og Local Label, flagg og CJ Utgave: 1.02 Utarbeidet av: AH Dato: 10.10.12 Revidert av: AH Dato: 270114 Tema i oppgaven Oppgaven går ut på å lære seg å ta i bruk listene «Global_Label» og «Local Label» der en kan definere globale og lokale variable og å skrive inn kommentarer i programmet. Fordelen med å bruke disse listene er at en kan programmere i symbolske navn i stedet for adresser. Dette vil gjøre det enklere å dokumentere programmet godt. Det skal benyttes «Flagg» i programmeringen. Begrepet systemvariable blir berørt. Studenten skal bli kjent med instruksjonene CJ, SET, RST og SFTR/SFTL. Læringsmål Etter å ha kjørt denne oppgaven skal studenten kunne bruke både globale og lokale variable i programmeringen og forstå hvilke adresser i PLS som brukes for de lokale variable. Studenten skal kunne ta i bruk «Flagg» i programmeringen der dette er hensiktsmessig. Student skal kunne ta i bruk hoppet CJ og forstå hvordan programbiter som blir hoppet over vil fungere. Tips: Dobbeltklikk på kontakten hvis den skal inverteres
PC-øving nr.3 i PLS 2 av 9 Oppgavetekst del 1 Det skal skrives et lite program for start og stopp av to motorer med motorvern. Lista «Global_Label» skal benyttes for å kunne programmere i symbolske navn (Label Name) i stedet for å programmere med adresser. a) Dobbeltklikk på «Global_Label» under «Project», se figur 1. Fyll ut kolonnene «Label Name» og «Device» som vist i figur. 2 og kompiler listen. Globale variable Lokale variable Figur 1 «Project»-vinduet som blant annet inneholder vinduet for globale variable, «Global Label» Mellomrom er ikke tillatt Figur 2 Global Label, globale variable
PC-øving nr.3 i PLS 3 av 9 b) Skriv inn programmet vist i figur 3, programmet skal skrives i FBD og ikke i LD som i figur 3. Skriv inn overskrift/kommentar som vist i figur 3. Kompiler, overfør til PLS og kjør programmet i monitor. Hvilken type kontakt (hvilekontakt, NC eller arbeidskontakt, NO) må vi tenke oss at stoppbryter og motorvern har for å kunne simulere riktig? Knapp for kommentarredigering Trykk F2 for å hente «Global Label Name» fra Global Label når du programmerer. OBS! Marker adressefeltet først. Figur 3 Programmet er vist i LD, men husk at du skal skrive det i FBD Tips: Bruk musepekeren og dra hvis du ønsker flere innganger på en port OBS! Editormodusen «Auto Connect» må slåes av for at dette skal fungere
PC-øving nr.3 i PLS 4 av 9 Oppgavetekst del 2 Vi skal skrive et lite program i LD der lista Global Label (globale variable) ikke benyttes. Men vi skal heller teste ut lista «Local Label» (lokale variable) og se hvordan den fungerer. I «Local Label» kan en ikke selv definere hvilke adresser som tilordnes de valgte variable, det gjør GX Works2 for oss. GX Works velger adresser som er tilgjengelige i PLS og som er reservert til dette av GX Works2. Når det gjelder Data Type «bit» benyttes minneceller, og minnecellene M512 opp til og med M1535 er avsatt til dette, se figur 4.For å komme til denne lista må en gå på «Tool» og «Device/Label Automatic Assign Setting», se figur 4. Adresse M512 kan endres til f. eks. M600 slik at den som programmerer får tilgang til flere batterimatede minneceller. Samtidig innføres bruken av «Flagg» i programmeringen. Dette er hensiktsmessig når programmet begynner å bli uoversiktlig. Her skal vi innføre et flagg som vi kaller «Startflagg» og et flagg som vi kaller «UforutsetteStopp» for å styre en motor. «Startflagg» ligger høyt nå startknappen er aktivert og vi verken har aktivert stoppknappen eller det er feil i anlegget. Flagget «UforutsetteStopp» skal ligge høyt hvis det har vært en feil i anlegget og feilen ikke er kvittert ut ( i denne oppgaven ved å aktivere startknappen), se figur 6. Dette tallet kan endres til f. eks. 600 Figur 4 Liste over default systemvariable adresser a) Definer en ny POU, for eksempel Oppg3_Del2 der du velger språket Structured Ladder/FBD. Skriv inn som vist i figur 5 i Local Label.
PC-øving nr.3 i PLS 5 av 9 Figur 5 Local Label med to lokale variable b) Skriv inn programmet som vist i figur 6. Figur 6 Programmet som skal skrives i LD Gjennomfør alt som er nødvendig for å overføre programmet til PLS og test programmet i monitor. c) Det er finnes flere muligheter til å få se hvilke adresser som tilordnes de symbolske adressene «Startflagg» og «UforutsetteStopp». En av metodene er å markere det ønskede nettverket og gå på «View» og «Display/Compile Result» i menyen. I figur 7 er nettverk 3 aktivert og i viduet «Compile Result» vises programmet i nettverk 3 i IL.
PC-øving nr.3 i PLS 6 av 9 Figur 7 Aktuelt nettverk må aktiveres Se på programkoden du fikk generert i GX Works2, får du samme resultat som vist i figur 7? Legg merke til at variabelen Startflagg er blitt tilordnet adressen M1535. Variabelen UforutsetteStopp er tilordnet adressen M1534 av GX Works2, se figur 7. Figur 8 Koden til nettverk 1 Figur 9 Koden til nettverk 2
PC-øving nr.3 i PLS 7 av 9 d) Vi innfører tre nye komponenter i programmet i forhold til del c). Adresse X3 er en sensor som gir signal om høyt nivå i en tank, X3 (NC) er høy ved normale tilstander og går lav ved for høyt nivå. Motoren skal stoppe umiddelbart hvis det blir høyt nivå i tanken. I tillegg er en trykknappbryter koblet til X4 (NO) som skal benyttes til kvittering ved feil i anlegget. Det skal nå fungere slik at hvis det oppstår feil, skal motoren stoppe. For å kunne starte motoren etter at feilen er rettet, må det først kvitteres og deretter kan det startes ved hjelp av startknappen. Det skal ikke være mulig å starte ved å kvittere og så trykke startknappen hvis det fortsatt er feil i anlegget. Til slutt har vi en alarmlampe som er koblet til utgang Y1. Den skal blinke når det er feil i anlegget. Hvis det blir kvittert før feilen er borte, skal lampa gå over til fast lys og bli mørk så fort feilen er borte. Hvis det ikke blir kvittert før feilen er borte, skal lampa gå direkte fra blinking til å bli mørk. Benytt spesialminnecelle M8013 for å oppnå blink.
PC-øving nr.3 i PLS 8 av 9 Oppgavetekst del 3 Instruksjonen CJ skal programmeres og uttestes. For å gjøre det enkelt benytter vi ikke «Global Label» og «Local Label». Hensikten med denne oppgaven er å forstå hvordan hoppet CJ virker og hvordan det påvirker de adressene som hoppes over. a) Opprett en ny POU i GX Works2 og skriv inn programmet i figur 10 i LD. Figur 10 Programmet som skal skrives inn
PC-øving nr.3 i PLS 9 av 9 b) Overfør programmet til PLS og test ut hvordan timer, teller og utgang fungerer ved aktivert og ikke aktivert hopp. Gå på «Online» og «Watch» for å kunne se på adressene, se figur 10. Fyll ut tabellene under. Kryss av hva som skjer ved hopp: Timere Fryses Nullstilles Fortsetter å gå Tellere Kryss av hva som skjer ved hopp: Elementer styrt med instruksjonen OUT Ligger fortsatt høy Nullstilles Kryss av hva som skjer ved hopp: Elementer styrt med instruksjonen SET/RST Ligger fortsatt høy Nullstilles