styrteknik : funktioner och funktionsblock plc2b:1

28
Styrteknik : Funktioner och funktionsblock PLC2B:1 Variabler och datatyper Variabler och datatyper Allmänt om funktioner och Allmänt om funktioner och funktionsblock funktionsblock Programmering av funktioner Programmering av funktioner Programmering av funktionsblock Programmering av funktionsblock

Upload: khuong

Post on 19-Jan-2016

92 views

Category:

Documents


0 download

DESCRIPTION

Styrteknik : Funktioner och funktionsblock PLC2B:1. Variabler och datatyper Allmänt om funktioner och funktionsblock Programmering av funktioner Programmering av funktionsblock. Styrteknik : Funktioner och funktionsblock PLC2B:2. Variabler i GX IEC Developer. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:1

• Variabler och datatyperVariabler och datatyper• Allmänt om funktioner och funktionsblockAllmänt om funktioner och funktionsblock• Programmering av funktionerProgrammering av funktioner• Programmering av funktionsblockProgrammering av funktionsblock

Page 2: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:2

Global and Local VariablesVariables contain the values of inputs, outputs or internal memory locations in the PLC. There are two types of variables: Global Variables Local Variables

Global VariablesGlobal variables are defined for the entire project. They are accessible from any POU body, action or transition, and they make it possible to exchange data between all the sub-programs that go to make up the project.

Local VariablesLocal variables (VAR) are only accessible within the one specific program organisation unit (POU) in which they are declared. Thus, they cannot be used for exchanging data between POUs.

Variabler i GX IEC Developer

Page 3: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:3

Globala och lokala variabler

OBS adressen är inte definierad i den lokala variabellistan.

Page 4: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:4

Variable declarationsEach variable declaration has the following elements:• Class,• Identifier,• Data type,• Initial value (automatically),• Comment (optional),• Remark (optional).

Page 5: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:5

Varje variabel har en Class och en Type.Type visar vilken typ av data som variabeln innehåller.Class indikerar vad man göra med variabeln.

Observera det finns tre olika typer av POU:er• PRG = PROGRAM• FUN = FUNCTION• FB = FUNCTION BLOCK

Page 6: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:6

Identifiers and Absolute AddressesEach variable is given a symbolic address, i.e. a name. This is referred to as the identifier; it consists of a string of alphanumeric characters and underline characters. The identifier must always begin with a letter or an underline character. Spaces and mathematical operatorcharacters (e.g. +, -, *) are not permitted.

Examples of identifiers: FAULTZEROSIGLIM_SW_5

Variabelnamn och adresser

When global variables are declared absolute addresses can be assigned that reference the memory location of the variable in the CPU or a physical input or output.

When local variables are declared in the header of the POU they are automatically assigned a suitable memory location in the CPU.

Page 7: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:7

When you define global variables you must specify the hardware addresses for each individual variable.The address declarations are shown in the table below.

X Bit deviceW Word deviceD Double word device

Andra typer av device i FX-serien: labels (P), Step flags (S)

Page 8: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:8

Absoluta adresser för:• räknare, Counter• tidskretsar ,Timer

Exempel räknaren C20:CC20 = Räknarens ”identitet”, räknaren som ska används, 1 BitCS20 = Status på utgången, 1 BitCN20 = Aktuellt räknarvärde, 1 Word eller Double Word?

Motsvarande beteckningar för tidskretsarna.Exempel kommer på senare föreläsning.

Se kap 6.10Ref manual

Page 9: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:9

Från menykommadot: Extras/Options

Page 10: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:10

Datatyperna INT och DINT använder 2-komplement-representation

Page 11: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:11

Allmänt om funktioner och funktionsblockAllmänt om funktioner och funktionsblock

Genom att använda funktioner och funktionsblock förenklas programmeringen och det blir enklare att få ett strukturerat och lättförståeligt PLC-program.

• Skriv egna funktioner (FUN) och egna funktionsblock (FB) för att strukturera programmet. Använd editor IL, LD, ST eller FBD för att skriva programkoden. • Använd färdiga funktioner och funktionsblock för Timer, Counter etc.

• Funktioner och Funktionsblock är enklast att använda med någon av de grafiska editorerna LD eller FBD.

Page 12: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:12

Exempel 1: Funktion för att styra ljuset i ett rum med hjälp av 3 strömbrytare. Se PLC 1B:22.

Lösning med LD:

Gränssnitt medPLC:n FX1S

Page 13: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:13

Skapa en ny POU som består av en funktion

Definition av POU:ns namn.

POU:n är en FUN (Function).

Funktionen ska beskrivas med editorn Function Block Diagram (FBD).

Funktionen ska ge ett resultat av datatypen BOOL.

Page 14: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:14

Skriv funktionen Definiera insignalerna lokalt

Definition av Insignalen A

Den lokala headern med def för A,B och C

Page 15: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:15

Funktionen testas med en program POU

Under Function Block finns den nya symbolen för three_sw

Signalerna ansluts till laborationsplattan

Page 16: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:16

Task my_main anropar POU:n test_three_sw

POU test_three_sw anropar POU:n three_sw

POU three_sw

Programmet kräver 33 programsteg (program steps)

Page 17: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:17

Melsec-koden i PLC:n (28 programsteg ~33?)

M8000 Run-indikering

CALL P_30 Anrop av subrutinen P_30

Skriv ett FBD-diagram för subrutinen!

Page 18: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:18

Programmet använder funktionen three_sw 2 gånger.Samma subrutin används . Programmet kräver 45 programsteg, jfr föregående blad.Att använda funktioner innebär:• Programmet blir enklare att förstå, strukturerat. • Funktionen har ingen minnesfunktion => alltid samma utdata för ett visst indata.•Antalet programsteg ökar inte så snabbt .

Program med två funktioner

Page 19: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:19

Exempel 2: I en luftsluss finns en begränsad mängd syre som ska räcka till de personerna som vistas i luftslussen. Skriv en funktion MUL_MAX som ger en signal när syret är slut!

Funktionen ska ha följande ingångar:• en_in BOOL Enableingång• antal_inne INT Personer inne i luftslussen• antal_sec INT Antal sekunder med personer i luftslussen• maxvardeINT Maxvärde för produkten av antal_inne och antal_sec

Funktionen ska ge en utsignal av typen BOOL när syret är slut.

Tips: Test av funktionen, förslag

En lösning kommer att visas nästa vecka, prova innan!

Page 20: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:20

Exempel 3: Skriv en funktion ROOM_FULL som kontrollerar att det inte finns för många personer i maskinprogrammets källarkrypin på högskolan.

Funktionen ska ha följande ingångar:• RST BOOL Nollställer antalpersonerräknaren• CNT_D BOOL Minskar antalpersonerräknaren med 1• CNT_U BOOL Ökar antalpersonerräknaren med 1• MAX_NR INT Max tillåtet antal personer i lokalen

Funktionen ska ge en utsignal av typen BOOL när lokalen är full. Lokalen får inte innehålla negativa studenter.

Funktionens Header medInsignaler VAR_INPUTInterna variabler VAR

Program som använder funktionen Kan exemplet lösas med en funktion??Varför inte?

Page 21: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:21

Funktionen ROOM_FULL, förslag till lösning.Hela programmet kräver 53 programsteg.

Page 22: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:22

Program med funktionen ROOM_FULL. Programmet kräver 53 programsteg.

Subrutinen P_30 använder registret D129. Om programmet använder flera funktioner av typen ROOM_FULL kommer innehållet i D129 att förstöras!!!

Exemplet måste lösas med ett Function Block .

DEN HÄR LÖSNINGEN ÄR FEL!

Page 23: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:23

Ny lösning med ett funktionsblock.Program med Function Block ROOM_FULL_DEMO. Programmet kräver 53 programsteg, dvs exakt samma som i föregående bild.

Subrutinen P_30 använder registret D129. För varje ny ”instansiering” av funktions-blocket skapas en ny subrutin. I de nya instanserna används andra register.

Vilka skillnader finns för denna lösning jämfört med den föregående?

SANNOLIKT RIKTIG LÖSNING!

Page 24: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:24

Program med två funktionsblock av typen ROOM_FULL_DEMO. Programmet kräver 103 programsteg.

Varje instansiering ger ny programkod och ny subrutin.

Page 25: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:25

För ett FUNKTIONSBLOCK (FB) gäller:• Godtyckligt antal ingångar• Godtyckligt antal utgångar• Funktionsblocket måste instansieras med ett eget namn• Funktionsblock kan innehålla andra funktionsblock och funktioner.

För ett FUNKTIONER (FUN) gäller:• Godtyckligt antal ingångar• 1 utgång med samma namn som funktionen• Funktionsblock kan innehålla andra funktioner.

Page 26: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:26

Exempel 4: Skriv ett funktionsblock room_full_fb som kontrollerar att det inte finns för många personer i maskinprogrammets källarkrypin på högskolan. Funktionsblocket ska följa IEC-standarden.

Funktionsblocket ska ha följande ingångar:• RST BOOL Nollställer antalpersonerräknaren• CNT_D BOOL Minskar antalpersonerräknaren med 1• CNT_U BOOL Ökar antalpersonerräknaren med 1• MAX_NR INT Max tillåtet antal personer i lokalen

Funktionsblocket ska ha följande utgångar:ROOM_FULL BOOL Hög nivå när lokalen är fullCNT_VALUE INT Antal personer i lokalen

Page 27: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:27

I exemplet kan räknaren CTUD (FB) användas

M7 ettställs när räknarvärdet (CV) är >=3. M27 ettställs när räknarvärdet <=0. Räknaren räknar uppåt vid positiv flank på X0 Räknaren räknar nedåt på positiv flank på X1.X4 nollställer räknarvärdet. X5 läser in PV som räknarvärde.

Page 28: Styrteknik : Funktioner och funktionsblock   PLC2B:1

Styrteknik : Funktioner och funktionsblock PLC2B:28

POU:n som använder funktionsblocket room_full_fb