quick start frågor? kontakta oss! - phoenix contact · när projektet är nedladdat, välj då...

20
Quick Start Projekt exempel - Vattentank © PHOENIX CONTACT - 12/2016 PHOENIX CONTACT AB • Linvägen 2 • 141 44 Huddinge • Sverige • www.phoenixcontact.com 1 Frågor? Kontakta oss! Telefon: 08 6086400 e-mail: [email protected] Detta projektexempel är anpassat till ett ILC 131 Starterkit. Vi kommer att programmera med funktionsblock och i strukturerad text. Detta kommer att utföras under övningen: Knyta variabler till digitala/analoga signaler Använda de vanligaste funktionsblocken Skapa egna funktionsblock Omvandling mellan olika datatyper Stränghantering Problemet Antag att vi har en vattentank och vi vill kunna reglera nivån. Vi vill ha 2 st larm, för hög resp. låg nivå. Utflödet är konstant. Inflödet kan regleras.

Upload: others

Post on 04-Nov-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Quick StartProjekt exempel - Vattentank

© PHOENIX CONTACT - 12/2016

PHOENIX CONTACT AB • Linvägen 2 • 141 44 Huddinge • Sverige • www.phoenixcontact.com 1

Frågor? Kontakta oss!

Telefon: 08 6086400e-mail: [email protected]

Detta projektexempel är anpassat till ett ILC 131 Starterkit.Vi kommer att programmera med funktionsblock och i strukturerad text.Detta kommer att utföras under övningen:

· Knyta variabler till digitala/analoga signaler· Använda de vanligaste funktionsblocken· Skapa egna funktionsblock· Omvandling mellan olika datatyper· Stränghantering

ProblemetAntag att vi har en vattentank och vi vill kunna reglera nivån.

· Vi vill ha 2 st larm, för hög resp. låg nivå.· Utflödet är konstant.· Inflödet kan regleras.

Page 2: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 2

Öppna PC WORX och välj: File -> New Project. I dialogrutan väljer man vilken kontroller som manhar, t.ex. ILC 131 ETH Rev. > 00/4.40

På vänster sida visas nu projektträdet enl. nedan

Page 3: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 3

På höger sida visas ”Edit Wizard” som innehåller funktioner och funktionsblock enl. nedan

Ovan arbetsytan så finns det 3 st knappar som ger åtkomst till funktioner enl. nedan.

Page 4: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 4

Det här är programmet vi vill skapa.

Rosa funktionsblock ingår som standard i PC Worx. De gröna är egenskapade block. Blå färgbetyder att de är skapade av vår utvecklingsavdelning i Tyskland och ingår i ett funktionsbibliotek.

Page 5: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 5

Välj global_variables -> Insert group och lägg till Gruppen ”Vattentank”.

Skapa två OR block genom att klicka på valfri plats i arbetsytan och skriva ”OR” eller dra in två”OR-block” från edit wizard och knyt dessa mot följande in-och utgångar.

WPN_BTN_*** är en signal som kommer att sättas från panelen. ONBOARD_INPUT_BIT* är denfysiska ingången på PLCn och är en lokal öppning av ventil.

Att lägga till variabler kan göras på två sätt.

Alternativ 1: Dubbelklicka på ingången eller utgången på ett funktionsblock, följande fönster visas.

Page 6: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 6

Skriv i ett namn (1). Markera Global (2) och välj variabelgrupp (3). Tryck därefter på OK (4).

Alternativ 2: Öppna Global Variables. Högerklicka på variabelgruppen och välj Insert variable.

Ange namn, type och eventuell Description.När variabeln ska länkas till funktionsblocket så pekas den nytillagda variabeln ut i fönstretVariables Properties (dubbelklicka för att få upp denna).

Följande variabeltyper för tal kan användas som standard i PC Worx. (egna definitioner ochdatatyper kan skapas, t.ex. Arrayer). Strängar hanteras också som Strings.

1 2

3

4

Page 7: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 7

Lägg till AnalogmodulenÖppna Bus Configuration Workplace och lägg till en analogmodul av rätt typ, t.ex IB IL AI 2/SFgenom att dra den och släppa den till höger om INTERBUS 0.0

Page 8: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 8

Knyt den fysiska ingången på Analogmodulen mot en variabel.För att knyta en fysisk ingång på internbussen så går vi till vyn Process Data Workplace.

Följande fönster visas.

Markera den fysiska modulen till höger. Högerklicka på den fysiska kanalen och välj Createvariable.

Då föreslås ett namn som därefter kan editeras i Globala variabellistan. Editera namnet i denglobala variabellistan från I_0_1_AI_1_VOLTAGE till I_0_1_AI_1_FILL_SPEED

Page 9: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 9

Det går också att använda Drag and Drop till en redan skapad variabel.

Page 10: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 10

Gå tillbaka till IEC Programming Workplace

Nu ska vi skapa en tömning eller fyllningshastighet som är beroende av analogvärdet som vi får inpå analogmodulen. Variabeln som ska få värdet ska skalas mellan 0 och 100 (d.v.s. 100 %). Skapaen global variabel som döps till FILL_SPEED.

Ställ markören i programmeringsvyn och skriv med tangenterna word_to_int.

Tryck Enter. Flytta därefter med piltangenterna markören till höger sida av funktionsblocket ochskriv: DIV samt enter. Det ser nu ut så här:

Ange repsektive variabel vid in- och utgångarna. Som den andra parametern till divisionsblocketanges en konstant K300 som initieras till 300. Analogmodulerna från Phoenix Contact skalas somstandard mellan 0-30000, därav divisionen med 300 för att få 0-100%.

Page 11: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 11

Skapa ett eget funktionsblockFör att skapa ett eget funktionsblock, högerklickar man på Logical POUs i Project Tree Windowoch väljer Insert – Function Block.

Ange ett namn: Tank_Control och ange ST (Structured Text) som programmeringsspråk.Skriv nedanstående kod, notera att standard funktionsblock kan implementeras (Timer i exempletnedan).

IF E_FILLING = FALSE AND E_EMPTY = FALSE THEN (*Båda ventiler stängda – 0 flöde*)FILL := 0;

ELSIF E_FILLING = TRUE AND E_EMPTY = FALSE THEN (*Toppen öppen/Botten Stängd – flöde in*)FILL := FILL_IN;

ELSIF E_FILLING = FALSE AND E_EMPTY = TRUE THEN (*Toppen stängd/Botten öppen – flöde ut*)FILL := - EMPTY;

ELSE (*Båda ventiler öppna = flöde in – flöde ut*)FILL := FILL_IN - EMPTY;

END_IF;TON_1(IN:=start,PT:=UPDATE_RATE);start := TRUE;IF TON_1.Q = TRUE THEN

start := FALSE;temp_lvl := TANK_LEVEL + FILL;IF temp_lvl <= MAX_LEVEL_TANK AND temp_lvl >= MIN_LEVEL_TANK THEN

TANK_LEVEL := temp_lvl;ELSIF temp_lvl > MAX_LEVEL_TANK THEN

TANK_LEVEL := MAX_LEVEL;ELSIF temp_lvl < MIN_LEVEL_TANK THEN

TANK_LEVEL := MIN_LEVEL;END_IF;

END_IF;

Deklarera variablerna som nedan genom att högerklicka på dem i koden och välja: Variable ochgöra inställningarna.TON_1 TON VARE_FILLING BOOL VAR_INPUTE_EMPTY BOOL VAR_INPUTFILL INT VAR_OUTPUTFILL_IN INT VAR_INPUTEMPTY INT VAR_INPUTstart BOOL VARUPDATE_RATE TIME VAR_INPUTTANK_LEVEL INT VAR_OUTPUTtemp_lvl INT VARMAX_LEVEL_TANK INT VAR_INPUTMIN_LEVEL_TANK INT VAR_INPUT

Page 12: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 12

Kontrollera variablerna genom att gå till Tank_ControlV*.

Kompilera projektet (knappen F9 eller Build - Make) för att PC Worx ska skapa det nyafunktionsblocket. Nu kan det nya funktionsblocket väljas in i PC Worx. Det finns i Edit Wizard undermenyn – Projektnamn (vattentank).

Dubbleklicka på Tank_control och ange ett namn för det specifika funktionsblocket(Tank_Control_1). Länka alla in-och utgångar mot variabler enligt Tank_Control_1 nedan.

Skapa Globala Variabler för K50, K30000, K0, FILL_STATUS och TANK_LEVEL i variabelgruppenVattentank samt sätt Init Value för konstanterna (K50,K30000 och K0).

Page 13: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 13

Man kan här även ange 50 som parameter istället för att göra en variabel K50, en variabel kandock visas på en webpanel eller liknande.

I fall ändringar görs i ett funktionsblock så går det bra att kompilera om funktionsblocket ochdärefter högerklicka på det i programmet och välja Update FB/FU

Page 14: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 14

LARMGRÄNSER SAMT SKAPANDE AV DYNAMISKA LARMTEXTER

För att jämföra analoga värden mot varandra finns det jämförelsefunktionsblock. I exeplet såanvänds Greater Than samt Lower Than.

Skapa funktionsblock och länka mot variablerna nedan:

Skapa nya globala variabler för ALARM_HIGH_LEVEL, ALARM_LOW_LEVEL samt HIGH_LEVELoch LOW_LEVEL HIGH_LEVEL och LOW_LEVEL initieras till 28000 resp. 200. Värdet ska i ettsenare skede kunna justeras från webpanelen.

Nu har vi skapat dynamik för att skapa digitala larm som kan presenteras i överordnade HMI-system och i webinterfacet.

Page 15: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 15

Vi vill även att en dynamisk larmtext skapas direkt i PLCn. Skapa ett nytt funktionsblock som viskriver i ST (Structured Text). Benämn detta DYN_ALARM_TEXT.

Ange programkoden nedan.

tmp_str := '';IF ALARM_HIGH = TRUE THEN

tmp_str := CONCAT('Hög nivå i tank ',STR_NAME);ELSIF ALARM_LOW = TRUE THEN

tmp_str := CONCAT('Låg nivå i tank ',STR_NAME);ELSE

tmp_str := CONCAT('Nivå I tank ',STR_NAME);END_IF;tmp_str := CONCAT(tmp_str, ' (');tmp_str := CONCAT(tmp_str, INT_TO_STRING(LEVEL,'%02d'));tmp_str := CONCAT(tmp_str,' l)');ALARM_STR := tmp_str;

Samt deklarera de lokala variablerna enligt följande:

tmp_str STRING VARALARM_HIGH BOOL VAR_INPUTALARM_LOW BOOL VAR_INPUTALARM_STR STRING VAR_OUTPUTLEVEL INT VAR_INPUTSTR_NAME STRING VAR_INPUT

Skapa nya globala sträng-variabler för STR_TANK och TANK_STATUS_TEXT

Kompilera projektet och lägg in ett Funktionsblock av typen DYN_ALARM_TEXT i Main-projektetoch anslut enl. nedan.

Page 16: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 16

Man kan även exportera och importera funktionsblock.

För att exportera ett funktionsblock så markerar man funktionsblocket i project tree window enl.nedan och väljer File -> Export -> Extended IEC 61131-3 Export.

Sedan väljer man ett ställa att spara funktionsblocket på.

Page 17: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 17

Funktionsblocket sparas med filändelsen *.ST och kan öppnas med notepad om man vill se koden idet.

Vid import av ett funktionsblock så markerar man Logical POUs och väljer man File -> Import ochpekar på *.ST filen.

Page 18: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 18

Nu är logiken klar. Återstår att knyta variabler mot webbprojektet.Öppna den globala variabellistan. Markera PDD på samtliga variabler som vi har lagt till i projektet.

Denna markering gör att WebVisit erhåller namn och knytning mot dessa variabler.

Lägg till kommentarer i programmet. Klicka först i programmeringsfönstret för att positionera vartdu vill ha texten. Klicka sedan på ’Comment’ (se nedan)

Skriv i en text och tryck på OK.

Page 19: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 19

12. Kompilera projektet och ladda ner till PLC’n. Klicka på ’Project Control Dialog’Och välj sedan ’Download’

När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skallbehålla de värden som man har markerat som Retain enl. ovan

13. Debug, klicka på knappen eller tryck på F10 för se aktuella variabelvärden.

Page 20: Quick Start Frågor? Kontakta oss! - PHOENIX CONTACT · När projektet är nedladdat, välj då ’Cold’ start, ”Warm” start används när man vill att PLC:n skall behålla

Projektexempel - Vattentank Quick Reference Guide

QuickStart - Projektexempel_Vattentank_Rev2.2.docx PHOENIX CONTACT 20