03 KG, 04 KG, 06 CCG, 09 KG, 10KRS TTK4175 Instrumenteringssystemer ABB Control IT og Control Builder Rectangle Tutorial NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR TEKNISK KYBERNETIKK THE NORWEGIAN UNIVERSITY OF SCIENCE AND TECHNOLOGY DIVISION OF ENGINEERING CYBERNETICS TRONDHEIM Versjon 5
Generelt Denne tutorialen tar for seg opprettelse av prosjekter, datatyper, kontrollmodultyper, interaksjonsvinduer og dynamisk grafikk. Tips til tutorial For enkelhets skyld innføres en enkel syntaks for ofte brukte musoperasjoner: VK = VensteKlikk med musen HK = HøyreKlikk med musen DK = DobbelKlikk med venstre museknapp VKH = VenstreKlikk og Hold museknapp nede HKH = HøyreKlikk og Hold museknapp nede Husk å lagre prosjektet underveis: File Save OK (OK to ganger hvis det er gjort endringer) Husk å lagre endringer i kontrollmodul typer og funksjonsblokk typer: I Editor: Editor Save Hvis dere ikke utfører Save operasjonen vil dere få inkonsistens i prosjektet. Emner sorter etter sidenummer Nytt Prosjekt 3 Nytt Bibliotek 3 Ny Datatype 4 Ny Control Module Type 4,10 Legg til parameter og variabler 4,8,10,11 Litt om CMD Editor og grafiske objekter 5 Dynamiske grafiske objekter 6 Tegning av grafiske objekter 7,10,11 Dynamiske oppførsel 8 Definering av bevegelsesområdet til interaksjonspunkter 8,9 Lage et interaksjonsvindu 10 Koble grafiske objekter til parameter (eller variabler) 11 Koble en instans av en kontrollmodultype til en kontrollmodultype 12 Simulering 13 side 2 av 14
Del 1: Opprettelse av prosjekt og bibliotek Det er her valgt å bruke dynamisk grafikk (endring av farge, form, tilstand, synlighet) til å synliggjøre hvordan kontrollmodul parameter og variabler kobles sammen internt mot grafikk, programlogikk og mot andre kontrollmoduler. Control IT følger programmeringsstandarden IEC 61131. Vi benytter programmeringsspråket ST (Structured Text). Nytt prosjekt Dere skal først lage et nytt Control IT prosjekt. Start opp Control IT fra Programmer under Start på Windows oppgavelinje 1. Start Programs ABB Industrial IT 800xA Engineering Control Builder M 2. File New Project AC800M name = <velg navn> Nytt bibliotek Dette biblioteket skal inneholde alle kontrollmodul typene i denne tutorialen. 3. HK Libraries Velg New Library navn = RectangleXX, der XX er deres gruppenummer. Dere finner nå RectangleXX under <Libraries> side 3 av 14
Del 2: Dynamisk grafikk Et grafisk objekt med følgende online dynamikk skal implementeres Rektangel som kan endre høyde og bredde ihht oppgitte parameter Høyde og bredde skal endre seg likt rundt origo i det lokale koordinatsystemet til kontrollmodultypen som implementerer dynamikken. {min,max} bredde og høyde skal være {0,20} Høyde og bredde skal kunne endres ved hjelp av Input Field objekter Diagonalen til rektangelet skal beregnes og presenteres ved hjelp av et Text objekt og i samme modul som rektangelet. Ny Data type Grafiske objekters posisjon og størrelse bestemmes av posisjonen til to punkter på objektet (fra nå av kalt interaksjonspunkter). Det er derfor praktisk å opprette en ny datatype for punkter (x,y) i det horisontale planet. 1. HK RectangleXX velg New: Data Type, Name = Point OK 2. HK Point Velg Editor ELLER Merk (klikk) Point Trykk Enter 3. Opprett komponentene x og y av type real Figur 1: Komponenter til Point datatype Ny Control Module Type Det skal nå lages en ny kontrollmodultype som implementerer den dynamiske oppførselsen til rektangelet. 4. HK Rektangel biblioteket Velg New: Control Module Type navn = DynRectangle_ST_1 Legg til parameter og variabler Parameter kan kobles mot parameter til andre kontrollmoduler mens variabler er kun tilgjengelig internt i kontrollmodulen. Vi trenger parameter for høyde, bredde og diagonal. Vi skal nå legge disse parametrene til DynRectangle_ST_1 5. HK DynRectangle_ST_1 Velg Editor side 4 av 14
6. Velg arket Parameters Opprett parameter ihht til Figur 2. Figur 2: Opprette DynRectangle_ST_1 parameters Interaksjonspunktene til rektangelet som vi skal lage litt senere er plassert i hjørnet øverst til venstre og nederst til høyre (se Figur 4). Det betyr at vi trenger to Point variabler (vi skal lage en mapping mellom høyde og bredde parametrene og Point variablene i kode). 7. Velg arket Variables Opprett variabler ihht til Figur 3. Figur 3: Opprette DynRectangle_ST_1 variables Litt om CMD Editor og grafiske objekter Det grafiske grensesnittet til kontrollmodultyper (den del som operatør vil se) implementeres i Control Module Diagram (CMD) Editor. 8. HK DynRectangle_ST_1 Velg CMD Editor ELLER i Editor vinduet til DynRectangle_ST_1: velg Tool CMD Editor Kontrollmodultyper: Alle kontrollmodultyper (og instanser av disse) har sitt lokale koordinatsystem. Den visuelle delen av modulen er bestemt av en Clipping border. Det faktiske størrelsen på modulen er større. Grafiske elementer som ligger på utsiden av denne grensen bli ikke vist, men er likefullt en del av modulen. Den visuelle grensen kan dermed brukes til å skjule interne elementer i modulen for operatøren. Default størrelse er 2 enheter i høyde og 2 enheter i bredde. Origo ligger i midten av denne firkanten (den ytterste firkanten i Figur 6 er clipping border for modulen). Koordinatene til de fire hjørnene blir da med klokken fra hjørne øverst til venstre; (-1,1), (1,1), (1,-1) og (-1,-1). Som dere ser ut i fra Figur 6 er oppløsningen til rutenettet 0.1 enheter. Denne oppløsningen kan endres (ikke anbefalt i denne oppgaven). side 5 av 14
Objekter: Et statisk objekts posisjon og størrelse kan settes ved å VK på objektet. Det vil da dukke opp to firkanter (interaksjonspunktene), en i hvert hjørne (se Figur 4). VK på objekt VKH på objekt Endre med muspeker Figur 4: Endring av grafiske opbjekters form VKH på det hjørnet du ønsker å benytte (firkanten i hjørnet endrer seg til en runding) til å endre objektets størrelse. Flytt musepekeren inn du har oppnådd den ønskede form og posisjon. Slipp knappen. Man kan flytte et objekt ved å VKH på en av objektets linjer. Dra objektet til ønsket posisjon. Dynamiske grafiske objekter Statiske grafiske objekter kan gjøres dynamiske ved å kontrollere interaksjonspunktenes posisjon, objektets farge osv. Dette gjøres ved hjelp av variabler eller parameter av typen real. Posisjonsbestemmelse og forming av objekter er ikke numerisk knyttet til det lokale koordinatsystemet. Det betyr at (x,y)-verdien til interaksjonspunktenes posisjon ikke er oppgitt i lokale koordinater. Mapping mellom lokalt koordinatsystem og interaksjonspunktets (x,y)- verdi gjøres automatisk. For at dette skal fungere må man under konfigureringen definere minimal og maksimal verdi til de variablene som er koblet til x og y verdiene (en skalering) og grafisk definere det området som interaksjonspunktet skal bevege seg innenfor (se Figur 5). 1 2 Figur 5: Område hvor interaksjonspunktet skal bevege seg i side 6 av 14
Legg merket til følgende (se Figur 5) Når interaksjonspunktets posisjon er (xmax,ymax) vil punktet ligge i rundingen med et + tegn (ved 1 i Figur 5) Når interaksjonspunktets posisjon er (xmin,ymin) vil punktet ligge i rundingen med et - tegn (ved 2 i Figur 5) Hverken fortegnet eller tallverdien til posisjonskoordinatene er i henhold til lokalt koordinatsystem. Selv bevegelse i negativ retning i det lokale koordinatsystemet vil bli angitt med positivt stigene tallverdi (se Figur 5). Tegning av objekter i DynRectangle_ST_1 Vi skal nå tegne et rektangel sentrert i kontrollmodulens origo. 9. Gå til CMD Editor vinduet for DynRectangle_ST_1 10. Velg Rectangle verktøyet fra verktøysmenyen ute til venstre (knapp med bilde av et rektangel) 11. Tegn et rektangel ihht Figur 6 Figur 6: CMD Editor for DynRectangle_ST_1 side 7 av 14
Dynamiske oppførsel til rektangelet Vi konfigurerer først interaksjonspunktet øverst til venstre ( Upper ) 12. Klikk på en linje til rektangelet midt i DynRectangle_ST_1 DK på øvre venstre hjørne. I dialogvinduet Position skal dere fylle ut feltene i henhold til Figur 7. Dere kan velge parameter Upper.x og Upper.y ved å klikke på? tegnet som åpner dialogvinduet Available varables in DynRectangle_ST_1. Dere kan også skrive dem inn direkte. Siden parameteret Upper er en sammensatt datatype med to underparameter x og y vises dette med Upper i dialogvinduet Available varables in DynRectangle_ST_1. For å kunne velge Upper.x eller Upper.y må dere DK på Upper eller klikke på knappen Expand etter dere har merket Upper. Figur 7: Posisjonsdialog for øvre hjørne 13. Når dere er ferdige Trykk OK Rundingen i det øvre venstre hjørnet ha nå endret farge fra grønn til gul. Definering av bevegelsesområdet til interaksjonspunktet Upper Den gule rundingen er egentlig tre gule rundinger oppe på hverandre. Den øverste er den gule rundingen med - tegn (min posisjon), den midterste er den med + tegn (max posisjon) og den nederste er interaksjonspunktet. 14. VKH på den første gule rundingen og flytt den til posisjon (0.0,0.0) i det lokale koordinatsystemet. 15. VKH nå på den gule rundingen i øvre venstre hjørne og flytt den til maksimal posisjon (-0.9,0.9) i det lokale koordinatsystemet. side 8 av 14
Vi må nå gjenta dette for interaksjonspunktet nederst til høyre ( Lower ) 16. DK på interaksjonspunktet nederst til høyre. Feltene skal ha samme verdier som i Figur 7 unntatt for posisjonsvariablene som skal nå hete Lower.x eller Lower.y Trykk OK 17. Plasser rundingen for minimum i (0.0,-0.0) og rundingen for maksimum i (0.9,-0.9) i det lokale koordinatsystemet. Legg her merke til at vi har i begge tilfeller valgt å la x og y posisjonen vandre halvparten av den bredden og høyden som rektangelet i denne oppgaven skal ha. Sammen med plasseringen av bevegelsesområdene (øvre maximum i øvre hjørne av modulen og nedre maximum i nedre hjørne av modulen) har vi nå sørget for at: Rektangelets minimale og maksimale høyde og bredde er {0,20} Rektangelets endring i størrelse skjer symmetrisk om lokalt origo Sette rektangelets farge til grå 18. HK på en av rektangelets linjer Velg Color Klikk på området til høyre for teksten Area Color Velg en passende gråfarge OK Programmering av DynRectangle_ST_1 Vi er nå ferdig med å konfigurere grafikk og dynamisk oppførsel. Neste steg er å programmere mapping mellom høyde og bredde og posisjonene til interaksjonspunktene og beregningen av diagonalen. Det er her valgt å benytte Structured Text (ST). Se online hjelp for mer om ST. 19. Gå til Editor vinduet til DynRectangle_ST_1 (Ikke CMD Editor) 20. Skriv inn koden som er oppgitt i Figur 8. (Insert Codeblock). Figur 8: Kode i DynRectangle_ST_1 side 9 av 14
Lage et interaksjonsvindu Muligheten til å få opp kontrollmenyer og vising av forskjellig informasjon om enheter i operatørbildene ved kun å klikke på dem er viktig for brukervennligheten. Dette løser enkelt ved hjelp av Control Builder. Interaksjonsvinduet skal inneholde to Input Field interaksjonsobjekter for høyde og bredde og et Text objekt for visning av diagonalverdien. I tillegg til dette skal dere selv legge til Text objekter med navn på interaksjonsobjektene. Vi må definere inn og ut parameter i den nye kontrollmodulen som skal kobles mot høyde og bredde parameterne til DynRectangle_ST_1. Til slutt må vi lage et usynlig interaksjonsobjekt som ligger over grafikken i DynRectangle_ST_1. Når operatøren klikker på grafikken i DynRectangle_ST_1 skal interaksjonsvinduet lastes. Ny Control Module Type 21. Utvid Rektangel biblioteket HK Control Module Types Velg New Control Module Type navn = DynRectangle_Ctrl Legg til parameter Siden interaksjonsvinduet skal styre parametrene til DynRectangle_ST_1 må Dyn Rectangle_Ctrl ha de samme parametrene. 22. HK DynRectangle_Ctrl Velg Editor 23. Velg arket Parameters Opprett parameter ihht til Figur 9. Figur 9: Opprette DynRectangle_Ctrl parameters Åpne deretter CMD editor for Dyn Rectangle_Ctrl. Lage Input og Text 24. Tegn Input Field objektene og Text objektene (dere finner også disse på verktøysmenyen ute til venstre) ihht til Figur 10. 25. Tegn tekstfelter for høyde, bredde og diagonal Figur 10. side 10 av 14
Figur 10: CMD til DynRectangle_Ctrl Koble Input objekter til høyde og bredde parameter 26. HK på linjen rundt Input objektet height Velg Interaction Attributes Velg datatype REAL Velg parameter height ved hjelp av? tegnet ELLER skriv det inn manuelt OK 27. Gjenta for width Koble variabel for beregnet diagonal til Text objektet for diagonal Vising av parameter eller variabelverdi gjøres med et Text objekt. Navnet på variabelen eller parameteret skrives inn direkte i tekstfeltet. Deretter må objektet fortelles at det skal vise denne variabelen. 28. Skriv inn diag i Text objektet HK linjen rundt objektet og velg Text Properties Under Mode, merk av for Variable Koble en instans av DynRectangle_Ctrl og DynRectangle_ST_1 Vi må nå koble en instans av DynRectangle_Ctrl og DynRectangle_ST_1 sammen. I tillegg til dette må vi opprette en Interaction Object (Non Graphical) som kan åpne og lukke interkasjonsvinduet nå operatøren klikker på DynRectangle_ST_1. 29. HK DynRectangle_ST_1 Velg CMD Editor 30. Create Velg Control Module Klikk på DynRectangle_Ctrl Gi navn Ctrl (feltet Instance name ) side 11 av 14
31. Plasser den nye kontrollmodulen ved å VK på CMD Editor vinduet. Utvid den nye instansen til ønsket størrelse Connections dialog dukker opp Connections dialog benyttes til å koble sammen parameterne til DynRectangle_ST_1 og DynRectangle_Ctrl 32. Angi Actual Parameter for DynRectangle_Ctrl ihht Figur 11 Figur 11: Kobling mellom parameter til DynRectangle_Ctrl og foreldremodulen DynRectangle_ST_1 Dere kan gjøre dette på flere måter: HK på ønsket parameterfelt Velg Insert osv. Skriv inn parameter direkte (systemet kommer med forslag) 33. Velg Save and Close Gå tilbake til CMD Editor til DynRectangle_ST_1 34. Avslutt plasseringen av kontrollmodulen Ctrl. 35. Velg Create Velg Interaction Object (Non-graphical) objekt, valget window i dialogen VKH og plasser objektet slik at det dekker hele clipping border (se Figur 12). 36. DK på en av de diagonale linjene til det nye objektet Velg create a new window, og i feltet <path> skriver dere.ctrl (enkel appostrof før og etter må være med) Sett feltene <X position> = 0 og <Y position> = 0 OK side 12 av 14
Figur 12: Interaction Object (Non Graphical) dekker hele Clipping området til DynRectangle_ST_1 Test av dynamikk og kode Siden vi her ikke har en kobling til fysisk utstyr må vi simulere DynRectangle_ST_1. Før vi kan gjøre dette må vi opprette en instans av DynRectangle_ST_1 under Application noden. 37. Gå til Project Explorer Utvid Applications og HK Application_1 HK Application_1 HK Connected Libraries Velg Connect library Velg RectangleXX, der XX er gruppenummeret. 38. HK Application_1 Velg CMD Editor I CMD Editor vinduet, velg Create New Control Module Velg DynRectangle_ST_1 i listen gi det instansen navnet ST_1 i feltet <instance name> OK 39. Plasser musepeker midt i clipping området (innenfor det grønne kvadratet) Klikk og dra ut til passende størrelse. Brukergrensenittet er ikke det aller beste her. Dere må derfor kanskje utføre steg 38 og 39 flere ganger før dere får det til. Connections vinduet til instansen av DynRectangle_ST_1 dukker nå opp. Lukk dette (der er ingen variabler å koble til parametrene til instansen DynRectangle_ST_1_1). 40. Gå til Project Explorer Velg Tools Test Mode Continue Hvis noen warning kommer opp; ignorer disse (Next Analysis Continue) 41. HK Application_1 Velg CMD Editor side 13 av 14
Dere har nå fått opp (rot) kontrollmodul diagrammet for Application_1. Endre verdier for høyde og bredde. Dere har gjort rett hvis rektangelet ikke blir større når høyde og bredde >20 og hvis diagrammet forsvinner for høyde og bredde <0. Beregnet diagonal skal også vises for alle høyder og bredder. Tips Det er mulig å få opp interaksjonsvinduer for kontrollmoduler uten å måtte gå via CMD Editor. HK på f.eksempel DynRectangle_ST_1 og velg Interaction Window. Det vil nå dukke opp et lite vindu med det samme innholdet som vi hadde i sted. side 14 av 14