Presentation laddar. Vänta.

Presentation laddar. Vänta.

Styrteknik : Funktioner och funktionsblock PLC2B:1 Variabler och datatyper Variabler och datatyper Allmänt om funktioner och funktionsblock Allmänt om.

Liknande presentationer


En presentation över ämnet: "Styrteknik : Funktioner och funktionsblock PLC2B:1 Variabler och datatyper Variabler och datatyper Allmänt om funktioner och funktionsblock Allmänt om."— Presentationens avskrift:

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

2 Styrteknik : Funktioner och funktionsblock PLC2B:2 Global and Local Variables Variables contain the values of inputs, outputs or internal memory locations in the PLC. There are two types of variables: Global Variables Local Variables Global Variables Global 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 Variables Local 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

3 Styrteknik : Funktioner och funktionsblock PLC2B:3 Globala och lokala variabler OBS adressen är inte definierad i den lokala variabellistan.

4 Styrteknik : Funktioner och funktionsblock PLC2B:4 Variable declarations Each variable declaration has the following elements: Class, Identifier, Data type, Initial value (automatically), Comment (optional), Remark (optional).

5 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

6 Styrteknik : Funktioner och funktionsblock PLC2B:6 Identifiers and Absolute Addresses Each 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: FAULT ZEROSIG LIM_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.

7 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 device W Word device D Double word device Andra typer av device i FX-serien: labels (P), Step flags (S)

8 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 Bit CS20 = Status på utgången, 1 Bit CN20 = Aktuellt räknarvärde, 1 Word eller Double Word? Motsvarande beteckningar för tidskretsarna. Exempel kommer på senare föreläsning. Se kap 6.10 Ref manual

9 Styrteknik : Funktioner och funktionsblock PLC2B:9 Från menykommadot: Extras/Options

10 Styrteknik : Funktioner och funktionsblock PLC2B:10 Datatyperna INT och DINT använder 2-komplement-representation

11 Styrteknik : Funktioner och funktionsblock PLC2B:11 Allmä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.

12 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 med PLC:n FX1S

13 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.

14 Styrteknik : Funktioner och funktionsblock PLC2B:14 Skriv funktionenDefiniera insignalerna lokalt Definition av Insignalen A Den lokala headern med def för A,B och C

15 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

16 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)

17 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!

18 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

19 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_inBOOLEnableingång antal_inneINTPersoner inne i luftslussen antal_secINTAntal sekunder med personer i luftslussen maxvardeINTMaxvä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!

20 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: RSTBOOLNollställer antalpersonerräknaren CNT_DBOOLMinskar antalpersonerräknaren med 1 CNT_UBOOLÖkar antalpersonerräknaren med 1 MAX_NRINTMax 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 med Insignaler VAR_INPUT Interna variabler VAR Program som använder funktionen Kan exemplet lösas med en funktion?? Varför inte?

21 Styrteknik : Funktioner och funktionsblock PLC2B:21 Funktionen ROOM_FULL, förslag till lösning. Hela programmet kräver 53 programsteg.

22 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!

23 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!

24 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.

25 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.

26 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: RSTBOOLNollställer antalpersonerräknaren CNT_DBOOLMinskar antalpersonerräknaren med 1 CNT_UBOOLÖkar antalpersonerräknaren med 1 MAX_NRINTMax tillåtet antal personer i lokalen Funktionsblocket ska ha följande utgångar: ROOM_FULLBOOLHög nivå när lokalen är full CNT_VALUEINTAntal personer i lokalen

27 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.

28 Styrteknik : Funktioner och funktionsblock PLC2B:28 POU:n som använder funktionsblocket room_full_fb


Ladda ner ppt "Styrteknik : Funktioner och funktionsblock PLC2B:1 Variabler och datatyper Variabler och datatyper Allmänt om funktioner och funktionsblock Allmänt om."

Liknande presentationer


Google-annonser