Prestandatest utav olika styrsystem

Relevanta dokument
Automatiserad panoramasekvensdetektering på Narratives platform

Automatization of test rig for microwave ovens

ChiliChallenge. Utveckling av en användbar webbapplika on. ChiliChallenge Development of a web applica on with good usability

Institutionen för datavetenskap Department of Computer and Information Science

Master Thesis. Study on a second-order bandpass Σ -modulator for flexible AD-conversion Hanna Svensson. LiTH - ISY - EX -- 08/ SE

Ritning av industribyggnad med dokumentation av elcentraler

Utveckling av webbsida för lokala prisjämförelser med användbarhetsmetoder

Dokumentation av elritningar i en byggnad

Dokumentation av elinstallationer i en byggnad

Inkoppling av manöverdon för servicekörning av kran 481

Laddningsomkopplare för två batterier

Strategiska överväganden vid tillbyggnation - Ekonomiska och hållfasthetsmässiga konsekvenser utifrån snölastreglering

Arbetsprov för nyanställda inom el- och automationsteknik

Det här är inte en porslinssvan - Ett grafiskt kampanjkoncept för second hand-butiker med välgörenhetssyfte

Riktlinjer för kontrollutrustning

Självkalibrering av varvtalsregulator

Uppdatera produktkalkyler och verifiera elektriska komponenter i styrskåp till luftavfuktare

!"# " $"% & ' ( )* + 2' (

Analys av anslutningsresor till Arlanda

3D visualisering av Silverdal

Beijer Electronics AB 2000, MA00336A,

Arbete med behörighetsadministration och åtkomstkontroll i större företag

Styrteknik : Funktioner och funktionsblock

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

Styrteknik : Programmering med IEC Styrteknik

Elsäkerhetsanalys samt dokumentation av elinstallationer

HANTERING AV UPS CX

Vidareutveckling av arbetsprov för pumpstyrning

Kliniskt datainsamlingssystem med beslutsstöd - Användarutredning och gränssnitt för Sahlgrenskas akutintag

Application Note SW

2.1 Installation of driver using Internet Installation of driver from disk... 3

PROFINET MELLAN EL6631 OCH EK9300

Nätverksutbildning för bibliotekarier samt museioch arkivpersonal

Support Manual HoistLocatel Electronic Locks

Geo installationsguide

Modbus över Ethernet. WAGO Contact SA TSS STR

Styrteknik 7.5 hp distans: E-1000 och E-Designer

CoDeSys 2.3.x.x Svensk installationsguide

EDUCATE - ett europeiskt hypertextbaserat utbildningspaket

Surfaces for sports areas Determination of vertical deformation. Golvmaterial Sportbeläggningar Bestämning av vertikal deformation

Programmerbara styrsystem

Support for Artist Residencies

Styrteknik 4.5/7.5 hp distans: Programmering med IEC PLC1B:1. Styrteknik

Byggdokument Angivning av status. Construction documents Indication of status SWEDISH STANDARDS INSTITUTE

Questionnaire for visa applicants Appendix A

District Application for Partnership

SVENSK STANDARD SS :2010

Isolda Purchase - EDI

Högskolan Dalarna Sida 1 av 8 Elektroteknik Per Liljas

Utrymningshissar och utrymningsplatser utifrån de utrymmandes perspektiv. kristin andrée

Semantic and Physical Modeling and Simulation of Multi-Domain Energy Systems: Gas Turbines and Electrical Power Networks

Styrteknik: Binära tal, talsystem och koder D3:1

Byggritningar Ritsätt Fästelement. Construction drawings Representation of fasteners SWEDISH STANDARDS INSTITUTE

ISO general purpose metric screw threads Selected sizes for screws, bolts and nuts

1. Förpackningsmaskin / Packaging machine

LABORATIONSINSTRUKTION

SVENSK STANDARD SS-EN ISO 19108:2005/AC:2015

Programmering av ett industrikap med GRAPH 7 / Programming of an industrial cutting machine in GRAPH 7

Calculate check digits according to the modulus-11 method

Teknisk rapport SIS-TR 18:2007 Publicerad/Published: Utgåva/Edition: 1 Språk/Language: svenska/swedish ICS: ;

Installation av F13 Bråvalla

Modbus. WAGO Contact SA TSS STR

SVENSK STANDARD SS-EN ISO :2009/AC:2010

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

Hur försäkrar vi oss om att vår IT-användning utvecklar kvaliteten i våra utbildningar?

Arbetsplatsträff 5 april, 2017 Workplace meeting April 5, 2017

LABORATIONSINSTRUKTION

Skapandet av en databas, produktkatalog och hemsida

OMRON. PLC till PLC kommunikation (CP1L-E) Ethernet. 22 april 2014 OMRON Corporation

Att planera bort störningar

Examensarbete Introduk)on - Slutsatser Anne Håkansson annehak@kth.se Studierektor Examensarbeten ICT-skolan, KTH

Förändrade förväntningar

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

ISO general purpose screw threads Basic profile Part 1: Metric screw threads

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang)

KOM IGÅNG GUIDE e!cockpit Av Carsten Holm

RADIATION TEST REPORT. GAMMA: 30.45k, 59.05k, 118.8k/TM1019 Condition D

Institutionen för datavetenskap Department of Computer and Information Science

What Is Hyper-Threading and How Does It Improve Performance

Boiler with heatpump / Värmepumpsberedare

SkillGuide. Bruksanvisning. Svenska

STANDARD. UTM Ingegerd Annergren UTMS Lina Orbéus. UTMD Anders Johansson UTMS Jan Sandberg

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm

Välkommen in på min hemsida. Som företagsnamnet antyder så sysslar jag med teknisk design och konstruktion i 3D cad.

INTERAKTIVA UTBILDNINGAR. UPPDRAG: Trafikutbildning åt Örebro kommun. KUND: Agresso Unit4

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

WAGO IO System Service Seminar. Diagnostik

Datasäkerhet och integritet

Styrsystem. Quantum, M340 o Momentum. Kom-igång med konvertera Concept till Unity Rev

Item 6 - Resolution for preferential rights issue.

Lathund Autogiro NovaSecur

KOMMA IGÅNG GUIDE MODBUS Med WAGOs styrsystem

Sammanfattning hydraulik

Scalable Dynamic Analysis of Binary Code

Anvisning om ansvarsförsäkran för studenter

KTH MMK JH TENTAMEN I HYDRAULIK OCH PNEUMATIK allmän kurs kl


Transkript:

LiU-ITN-TEK-G--11/048--SE Prestandatest utav olika styrsystem Christoffer Aringstam Henrik Hägglund 2011-0-14 Department of Science and Technology Linköping University SE-01 4 Norrköping, Sweden Institutionen för teknik och naturvetenskap Linköpings universitet 01 4 Norrköping

LiU-ITN-TEK-G--11/048--SE Prestandatest utav olika styrsystem Examensarbete utfört i elektroteknik vid Tekniska högskolan vid Linköpings universitet Christoffer Aringstam Henrik Hägglund Examinator Kjell Karlsson Norrköping 2011-0-14

Upphovsrätt Detta dokument hålls tillgängligt på Internet eller dess framtida ersättare under en längre tid från publiceringsdatum under förutsättning att inga extraordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ Copyright The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances. The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: http://www.ep.liu.se/ Christoffer Aringstam, Henrik Hägglund

Prestandatest utav olika styrsystem Examensarbete vid Tekniska högskolan vid Linköpings universitet, Campus Norrköping Christoffer Aringstam Henrik Hägglund Handledare Mats Johansson Examinator Lars Backström 2011-0-1

Sammanfattning Examensarbetet är utfört åt Automationcenter & Bråvalla Elteknik AB som är ett företag vilket erbjuder kvalificerade ingenjörstjänster inom el och automation till energi-, tillverkningsoch processindustriföretag. Rapporten inleds med en beskrivning utav företaget. Sedan beskrivs syftet med examensarbetet som är att ta fram en jämförelse mellan olika PLC-system, samt en komponentlista utöver de olika PLC:er respektive mjukvara som använts under examensarbetet. Efter detta redogörs en beskrivning utav de tester som utförts. Resultatet visar sedan att de billigare PLC:erna egentligen inte är mycket sämre än de dyrare. Utan att den stora skillnaden enbart är hur mycket arbetsminne som finns i PLC:n, där ABB AC800 har stora fördelar. Programkoden till alla PLC:er finns med i rapporten som bilagor, vilka även innehåller kortare kommentarer för lättare förståelse.

Abstract The thesis is performed at Automationcenter & Bråvalla Elteknik AB which is a company that provides advanced engineering services within electrical and automation to energy-, manufacturing- and process companies. The report begins with a description of the company. It then describes the purpose of the thesis that is to develop a comparison between the various PLC systems, and also a list of components in addition to the various PLC's and software that have been used in the thesis. After this presents a description of the tests that have been performed. The result then shows that the cheaper PLC's isn't that much worse than the more expensive ones. The big difference is really just how much working memory that is available in the PLC, where ABB AC800 has a big advantage. Program code for all PLC's are included in the report as appendices, which also contains short comments for easier understanding.

Förord Examensarbetet är utfört hos Automationscenter & Bråvalla Elteknik AB i Norrköping under vårterminen 2011. Arbetet omfattar 12 högskolepoäng och är utfört som del av högskoleprogrammet Elteknik och automation (120 hp) vid Linköpings universitet, Campus Norrköping. Ett stort tack till vår handledare Mats Johansson samt Rickard Haglund, Simon Arvestrand och Adam Gardelin på Automationscenter för den hjälp och stöd vi fått under arbetets gång. Linköpings universitet, Campus Norrköping, 2011-0-1 Christoffer Aringstam Henrik Hägglund

Innehållsförteckning 1. Inledning.. 1 1.1 Bakgrund.. 1 1.2 Syfte 1 1.3 Metod och källor.. 1 2. Genomförande 2 2.1 Test av snabbhet 2 2.2 Test av parallella operationer. 3 3. Resultat. 4 3.1 Test av snabbhet 4 3.2 Test av parallella operationer. 4. Slutsats och diskussion. Referenser.. 8 Bilaga 1 ABB AC00 eco Bilaga 2 ABB AC800M Bilaga 3 Mitsubishi FX3U Bilaga 4 Siemens S-31 Bilaga Siemens S-1200

1. Inledning 1.1 Bakgrund Automationcenter & Bråvalla Elteknik AB är ett företag som erbjuder kvalificerade ingenjörstjänster inom el och automation till energi-, tillverknings- och processindustriföretag. Företaget använder sig idag utav ett flertalet olika PLC-system, som är ett programmerbart styrsystem som används till styrning utav motorer och turbiner mm. På grund av att PLC:er kan användas till så många olika applikationer, kan det ibland vara svårt att välja rätt PLCsystem för rätt applikation. Då osäkerhet finns väljs gärna ett kraftfullare system för att vara säker på att det klarar av att utföra de krav som beställaren har. 1.2 Syfte Syftet med examensarbetet är att ta fram en jämförelse mellan de olika PLC-systemen. Hur bra är Siemens S-31 i jämförelse mot Siemens S-1200, och hur ställer sig de mot andra PLC-systemen, så som ABB AC00, ABB AC800 och Mitsubishi FX3U? Jämförelse utav PLC:ern ska görs för att man inte ska överdimensionera när det gäller val av PLC-system, vilket resulterar i att man använder rätt PLC för rätt uppgift. 1.3 Metod och källor Första steget är att komma fram till hur man ska prestandatesta en PLC och vad det är man ska mäta. Vi valde att skapa ett eget program för att kontrollera hur många varv den kan gå runt i en uträkning på 10 sekunder samt 1 sekund, där vi har använt oss av både flyt- och heltal. Vi skapade även ett program som kontrollerade hur många uträkningar den kan utföra samtidigt innan en viss cykeltid uppnåtts. Följande PLC-system och dess programvara fanns till vårt förfogande: ABB AC00-Eco (CPU PM4-T)Listpris: 22 kr Mjukvara: AC00 Control Builder based on CoDeSys by 3S Version 2.3.9.11 ABB AC800M (CPU PM8) Listpris: 2010 kr Mjukvara: Compact Controller Builder AC-800M Version.0.2/3 Mitsubishi FX3U (CPU FX3u-1M/ES) Listpris: 33kr Mjukvara: GX IEC Developer Version.04 Siemens S-31 (CPU31-2DP) Listpris:1124 kr Mjukvara: Simatic Manager Step Version.4+SP+HF1 Siemens S-1200 (CPU1212C) Listpris:2394 kr Mjukvara: Totally Integrated Automation Portal Version 10. SP1 De källor vi haft tillgång till är manualer för de olika mjukvaruprogrammen och uppgifter från anställda på Automationscenter & Bråvalla Elteknik AB. 1

2. Genomförande 2.1 Test av snabbhet För att se hur snabbt de olika PLC:erna arbetar utfördes ett test. Det fungerar på så sätt att PLC:n går igenom ett program, och för varje gång PLC:n går igenom programmet, ökar en variabel som gör att den hamnar i en loop i programmet som blir längre och längre, ju fler varv den kör. Exempel på detta kan ses i tabell nr 1, där X1 är antal varv genom hela programmet och X2 är antal varv genom loopen i programmet. När X1 och X2 är lika så ökas X1 med ett och X2 nollställs. Tabell nr 1 Exempel på snabbhetstest. Varv 1 Varv 2 Varv 3 Varv 4 Varv X1= 1 X1= 2 X1= 3 X1= 4 X1= X2= 1 X2= 1,2 X2= 1,2,3 X2= 1,2,3,4 X2= 1,2 X1= +1 X1= +1 X1= +1 X1= +1 X1= +1 Detta test utfördes i tre delar: Tomberäkning Här körde vi ett tomt program, för att se hur många varv den hinner med på 1 respektive 10 sekunder. Heltalsberäkning Samma som Tomberäkning, inklusive en heltalsberäkning, benämns integer i figurer. Flyttalsberäkning Samma som Tomberäkning, inklusive en flyttalsberäkning, benämns real i figurer. Skillnaden mellan hel- och flyttal, är att heltal använder sig enbart av heltal. Medan flyttal använder sig även utav decimaler, vilket innebär att flyttal är mer krävande att hantera för en PLC. Figur 1 Heltalsberäkning Figur 2 - Flyttalsberäkning 2

2.2 Test av parallella operationer För att se hur mycket de olika PLC:erna klarar av, utfördes ett test där man kör antingen flyttals- eller heltalsberäkningar parallellt. Testet går ut på att se hur många parallella beräkningar den klarar av att köra innan en viss cykeltid uppnåtts, vald cykeltid är max 10 ms. Exempel på det se figur 3. Figur 3 - Exempel på parallell beräkning 3

Antalet beräkningar Antalet beräkningar 3. Resultat 3.1 Test av snabbhet Vid testet kontrollerades snabbheten på varje PLC, genom att se hur många varv den klarade av på 1 och 10 sekunder. Resultat går att beskåda i figur 4 och. Detta test visade att det var Mitsubishi som var snabbast både på 1 och 10 sekunder när det gäller tomberäkning, heltalsberäkning och flyttalsberäkning. Den lyckades med 2,4 respektive 12,varv på tomberäkning, 4 respektive 14 varv på heltalsberäkning och 44,4 respektive 14, varv på flyttalsberäkningen. För hela programkoden se bilaga 1-. 0 En sekund 0 40 30 20 10 Siemens S-31 31-2DP Siemens S-1200 1212C ABB AC00 PM4 (Eco) ABB AC800M PM8 Mitsubishi FX3U-1MES 0 Tom Integer Real Figur 4 De olika testerna på en sekund. Tio sekunder 200 180 10 140 120 100 80 0 40 20 0 Tom Integer Real Siemens S-31 31-2DP Siemens S-1200 1212C ABB AC00 PM4 (Eco) ABB AC800M PM8 Mitsubishi FX3U-1MES Figur De olika testerna på tio sekunder 4

1 10 20 30 40 0 100 10 200 300 30 400 00 0 1000 120 1400 Cykeltid (ms) 3.2 Test av parallella operationer När det kommer till test av parallella operationer, kontrollerades hur många beräkningar en PLC kunde köra parallellt innan en cykeltid på 10 ms uppnåtts. Resultatet visar att ABB AC800M var den PLC som var kraftfullast, vilket även kan ses i figur och. Vid flyttalsberäkningen var det endast två PLC:er som lyckades uppnå den angivna cykeltiden. Det var Siemens S-31 och ABB AC800M, där Siemens S-31 lyckades med 300 beräkningar parallellt och ABB AC800 lyckades med 1400 beräkningar parallellt. När det gäller de andra PLC:erna, var det minnet som tog slut innan cykeltiden uppnåtts. Vid heltalsberäkningen var ABB AC800M den enda som skulle kunna klara testet. Testet utfördes dock inte ända ut. Efter 2000 beräkningar parallellt uppnåddes en cykeltid på endast 4 ms, vilket gjorde det onödigt att fortsätta då de övriga PLC:erna inte ens var i närheten av att uppnå 2000 beräkningar. Även här var det minnet som tog slut på de övriga PLC:erna innan cykeltiden uppnåtts. För hela programkoden se bilaga 1-. 10 Flyttalsberäkning 140 120 100 80 0 40 20 0 Siemens S-31 31-2DP Siemens S-1200 1212C ABB AC00 PM4 (Eco) ABB AC800M PM8 Mitsubishi FX3U-1MES Antal parallella opertioner Figur Vilken cykeltid de olika PLC:erna visade vid olika många parallella operationer

Cykel tid (ms) 120 Heltalsberäkning 100 80 0 40 20 Siemens S-31 31-2DP Siemens S-1200 1212C ABB AC00 PM4 (Eco) ABB AC800M PM8 Mitsubishi FX3U-1MES 0 1 10 30 0 10 300 40 0 120 100 100 2000 Antal parallella operationer Figur - Vilken cykeltid de olika PLC:erna visade vid olika många parallella operationer Testerna säger egentligen att de billiga PLC:erna inte är så mycket sämre än de dyra, utan den stora skillnaden är egentligen bara hur mycket arbetsminne som finns i PLC:n. Vilket innebär att ABB AC800M som har det största arbetsminnet är helt klart den bästa PLC:n, men även det dyraste. Värt att nämna är även: Att ABB AC800M gick det inte att ställa ner cykeltiden till mindre än 1 ms, vilket innebär att den enbart kallar på programkoden en gång varje ms. Den skulle troligen kunna klara av att arbeta ännu snabbare. ABB AC00-programmet inte är identiskt med de andra programmen. Detta på grund av att det blev problem med in- och utgångar. Detta innebar att programmet fick göras om lite, som kan ses i bilaga 1.

4. Slutsats och diskussion Problem som fanns var att jämföra PLC:er utav olika tillverkare med varandra. Där t.ex. en del PLC:er använder sig utav så kallade Networks 1 medans andra gör det inte. Men de olika testerna, har dock försökts att göras så identiska som möjligt. Daniel Jernberg från Siemens, har även givit lite feedback som ansåg att de utförda testen inte är något man normalt brukar jämföra. Det som brukar testas är användarvänligheten hos PLC:erna, även det som utförts i detta examensarbete var lite intressant. Vi är nöjda med det resultat vi kommit fram till, det har varit ett roligt och väldigt givande examensarbete. Detta med tanke på att vi har fått arbeta med ett flertalet olika PLC:er och dess mjukvara. Visserligen har vi antagligen bara skrapat lite på ytan men det är fortfarande en bra merit, i sökande utav jobb. Vi hoppas att även Automationscenter är nöjda med vårt arbete och det resultat vi har kommit fram till. 1 Networks används för programkoden ska veta vilken ordning de olika programdelarna kommer i.

Referenser Elektroniska källor Manualer AC00 System Technology http://www0.abb.com/global/scot/scot209.nsf/veritydisplay/d2f2fd2aa441c1239f002 b032c/$file/2cdc12022m0202.pdf (besökt från och med 2011-03-29) AC 800M Systemhårdvara Hårdvara och drift Version 1.1 http://www.abbsatt.com/pk/pdf/3bse019193.pdf (besökt från och med 2011-03-29) Melsec FX FamilyProgrammableLogic Controllers Beginner s Manual https://my.mitsubishi-automation.com/downloads_manager.php?id=2340 (besökt från och med 2011-03-29) SIMATIC S-300 CPU 31xC and CPU 31x: Specifications https://support.automation.siemens.com/ww/llisapi.dll?func=cslib.cssearch&siteid=csius&la ng=en&aktprim=100&content=adsearch%22fadsearch%22easpx%23fsearcharea%23d hb%22hitpos%23d0%22defopt%23dfalse%22cookie%23dfalse%22u%23 D%22DateFrom%23D%22DateTo%23D%22F1Preview%23Dtrue%22F3ProdS upport%23dtrue%22f31hb%23dtrue%22branchid%23d%22branch%23d%22 D%22query%23D%22HitsPerSite%23D10%22objaction%23Dcssearch%22sho woptions%23dfalse%22firstload%23dno (besökt från och med 2011-03-29) SIMATIC S-1200 Programmable controller https://support.automation.siemens.com/ww/llisapi.dll?func=cslib.cssearch&siteid=csius&la ng=en&aktprim=100&content=adsearch%22fadsearch%22easpx%23fsearcharea%23d hb%22hitpos%23d0%22defopt%23dfalse%22cookie%23dfalse%22u%23 D%22DateFrom%23D%22DateTo%23D%22F1Preview%23Dtrue%22F3ProdS upport%23dtrue%22f31hb%23dtrue%22branchid%23d%22branch%23d%22 D%22query%23D%22HitsPerSite%23D10%22objaction%23Dcssearch%22sho woptions%23dfalse%22firstload%23dno (besökt från och med 2011-03-29) 8

Siemens, Service and Support http://support.automation.siemens.com/ww/llisapi.dll?func=cslib.csinfo&objid=198049& nodeid0=343280&load=content&lang=en&siteid=cseus&aktprim=0&objaction=csview&extran et=standard&viewreg=ww (besökt från och med 2011-03-29) http://support.automation.siemens.com/ww/llisapi.dll?func=cslib.csinfo&objid=334298& nodeid0=108019&load=content&lang=en&siteid=cseus&aktprim=0&objaction=csview&extran et=standard&viewreg=ww (besökt från och med 2011-03-29) http://www.ad.siemens.com.cn/products/as/simaticplc/s- 300/download/s300_cpu_31xc_and_cpu_31x_manual_en-US_en-US.pdf (besökt från och med 2011-03-29) Personlig kommunikation Arvestrand, Simon, automationsingenjör på Automationscenter & Bråvalla Elteknik AB, Norrköping. 2011-03-29 Haglund, Rickard, automationsingenjör på Automationscenter & Bråvalla Elteknik AB, Norrköping. 2011-03-29 Johansson, Mats, företagsledare på Automationscenter & Bråvalla Elteknik AB, Norrköping. 2011-03-29 Gardelin, Adam, automationsingenjör på Automationscenter & Bråvalla Elteknik AB, Norrköping. 2011-03-29 Jernberg, Daniel, försäljningsingenjör på Siemens AB Industry Automation and Derive Technologies, Upplands Väsby. 2011-0-19 9

Bilaga 1 ABB AC00 eco

(FB-CFC) AC00 eco 0001 FUNCTION_BLOCK 0002 VAR_INPUT 0003 :BOOL; 0004 : INT; 000 : INT; 000 : INT; 000 D_VAR 0008 VAR_OUTPUT 0009 D_VAR 0010 VAR 0011 Sum: INT; 0012 D_VAR En beräkning av integer tal där summan varierar. Sum + O 0 * O 1 / O 2 * O 3 4 * O 4 - O 8 + O 12 13.0.2011 AC00 eco 1-1

(FB-CFC) AC00 eco * O 3 4 / O 8 Sum 9 13.0.2011 AC00 eco 1-2

_1 (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK _1 0002 VAR_INPUT 0003 D_VAR 0004 VAR_OUTPUT 000 D_VAR 000 VAR 000 Hog: BOOL:=TRUE; 0008 Int1: ; 0009 D_VAR Integer beräkning * 1. Hog AND 0 Int1 1 13.0.2011 AC00 eco 2-1

_10 (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK _10 0002 VAR_INPUT 0003 D_VAR 0004 VAR_OUTPUT 000 D_VAR 000 VAR 000 Hog:BOOL:=TRUE; 0008 Int1: ; 0009 Int2: ; 0010 Int3: ; 0011 Int4: ; 0012 Int: ; 0013 Int: ; 0014 Int: ; 001 Int8: ; 001 Int9: ; 001 Int10: ; 0018 D_VAR Integer beräkning * 10. Hog AND 0 Int1 1 Int2 2 Int3 3 Int4 4 Int Int 13.0.2011 AC00 eco 3-1

_10 (FB-CFC) AC00 eco Int Int8 Int9 Int10 8 9 10 13.0.2011 AC00 eco 3-2

_20 (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK _20 0002 VAR_INPUT 0003 D_VAR 0004 VAR_OUTPUT 000 D_VAR 000 VAR 000 Hog: BOOL:=TRUE; 0008 Int1: ; 0009 Int2: ; 0010 Int3: ; 0011 Int4: ; 0012 Int: ; 0013 Int: ; 0014 Int: ; 001 Int8: ; 001 Int9: ; 001 Int10: ; 0018 Int11: ; 0019 Int12: ; 0020 Int13: ; 0021 Int14: ; 0022 Int1: ; 0023 Int1: ; 0024 Int1: ; 002 Int18: ; 002 Int19: ; 002 Int20: ; 0028 D_VAR Integer beräkning * 20. Hog AND 0 Int1 1 Int2 2 Int3 3 Int4 4 Int 13.0.2011 AC00 eco 4-1

AC00 eco 13.0.2011 AC00 eco 4-2 _20 (FB-CFC) Int Int 8 Int8 9 Int9 10 Int10 11 Int11 12 Int12 13 Int13 14 Int14 1 Int1

AC00 eco 13.0.2011 AC00 eco 4-3 _20 (FB-CFC) 1 Int1 1 Int1 18 Int18 19 Int19 20 Int20

_ (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK _ 0002 VAR_INPUT 0003 D_VAR 0004 VAR_OUTPUT 000 D_VAR 000 VAR 000 Hog: BOOL:=TRUE; 0008 Int1: ; 0009 Int2: ; 0010 Int3: ; 0011 Int4: ; 0012 Int: ; 0013 D_VAR Integer beräkning *. Hog AND 0 Int1 1 Int2 2 Int3 3 Int4 4 Int 13.0.2011 AC00 eco -1

_0 (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK _0 0002 VAR_INPUT 0003 D_VAR 0004 VAR_OUTPUT 000 D_VAR 000 VAR 000 Hog: BOOL:=TRUE; 0008 Int1: ; 0009 Int2: ; 0010 Int3: ; 0011 Int4: ; 0012 Int: ; 0013 Int: ; 0014 Int: ; 001 Int8: ; 001 Int9: ; 001 Int10: ; 0018 Int11: ; 0019 Int12: ; 0020 Int13: ; 0021 Int14: ; 0022 Int1: ; 0023 Int1: ; 0024 Int1: ; 002 Int18: ; 002 Int19: ; 002 Int20: ; 0028 Int21: ; 0029 Int22: ; 0030 Int23: ; 0031 Int24: ; 0032 Int2: ; 0033 Int2: ; 0034 Int2: ; 003 Int28: ; 003 Int29: ; 003 Int30: ; 0038 Int31: ; 0039 Int32: ; 0040 Int33: ; 0041 Int34: ; 0042 Int3: ; 0043 Int3: ; 0044 Int3: ; 004 Int38: ; 004 Int39: ; 004 Int40: ; 0048 Int41: ; 0049 Int42: ; 000 Int43: ; 001 Int44: ; 002 Int4: ; 003 Int4: ; 004 Int4: ; 00 Int48: ; 00 Int49: ; 00 Int0: ; 008 D_VAR Integer beräkning * 0. AND Hog 13.0.2011 0 Int1 1 AC00 eco -1

AC00 eco 13.0.2011 AC00 eco -2 _0 (FB-CFC) Hog 2 Int2 3 Int3 4 Int4 Int Int Int 8 Int8 9 Int9 10 Int10 11 Int11 12 Int12 13 Int13

AC00 eco 13.0.2011 AC00 eco -3 _0 (FB-CFC) 14 Int14 1 Int1 1 Int1 1 Int1 18 Int18 19 Int19 20 Int20 21 Int21 22 Int22 23 Int23 24 Int24 2 Int2

AC00 eco 13.0.2011 AC00 eco -4 _0 (FB-CFC) 2 Int2 2 Int2 28 Int28 29 Int29 30 Int30 31 Int31 32 Int32 33 Int33 34 Int34 3 Int3 3 Int3 3 Int3

AC00 eco 13.0.2011 AC00 eco - _0 (FB-CFC) 38 Int38 39 Int39 40 Int40 41 Int41 42 Int42 43 Int43 44 Int44 4 Int4 4 Int4 4 Int4 48 Int48 49 Int49

_0 (FB-CFC) AC00 eco Int0 0 13.0.2011 AC00 eco -

Integer_10s (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK Integer_10s 0002 VAR_INPUT 0003 : INT; 0004 : INT; 000 : INT; 000 D_VAR 000 VAR 0008 Timer: TP; 0009 Tmr: BOOL; 0010 Tmp: BOOL; 0011 Tmp2: BOOL; 0012 Varv: BOOL; 0013 Hog:BOOL:= TRUE; 0014 IB: ; 001 Tid: TIME:= T#10S; 001 D_VAR 001 VAR_OUTPUT 0018 C1:REAL; 0019 C2:REAL; 0020 D_VAR Hog Tid IN PT Timer TP 0 Q ET Tmr 1 Här aktiverar vi en timer, som skickar en aktiverings signal i antingen 1 eller 10 sekunder. Tmr C1 1 + O 2 Tmp 4 C1 3 Adderar räknare1 (C1) med 1. tmp IB Aktivering av beräkning. Tmp C2 C1 > O Tmp2 Jämför räknare2 (C2) med räknare1 (C1). Tmp2 C2 1 + O 8 C2 9 Om räknare2 (C2) inte är större än räknare1 (C1), kommer räknare2 (C2) adderas med 1. * 10 13.0.2011 AC00 eco -1

Integer_10s (FB-CFC) AC00 eco Tmp2 C1 0 O C1 11 Om räknare2 (C2) inte är större än räknare1 (C1), kommer räknare1 (C1) multipliceras med 0 (Nollställning). Tmp Tmr AND 12 Varv 13 Här kollar man om programmet ska fortsättas att köra eller inte. 13.0.2011 AC00 eco -2

PLC_PRG (PRG-FBD) AC00 eco 0001 PROGRAM PLC_PRG 0002 VAR 0003 D_VAR 0004 VAR CONSTANT 000 D_VAR 0001??? 13.0.2011 AC00 eco 8-1

Real_10s (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK Real_10s 0002 VAR_INPUT 0003 : REAL; 0004 : REAL; 000 : REAL; 000 D_VAR 000 VAR 0008 Timer: TP; 0009 Tmr: BOOL; 0010 Tmp: BOOL; 0011 Tmp2: BOOL; 0012 Varv: BOOL; 0013 Hog:BOOL:= TRUE; 0014 RB: ; 001 Tid: TIME:= T#1S; 001 D_VAR 001 VAR_OUTPUT 0018 C1:REAL; 0019 C2:REAL; 0020 D_VAR Hog Tid IN PT Timer TP 0 Q ET Tmr 1 Här aktiverar vi en timer, som skickar en aktiverings signal i antingen 1 eller 10 sekunder. 2 + Tmr O Tmp 3 C1 C1 4 1 Adderar räknare1 (C1) med 1. Tmp RB Aktivering av beräkning. > Tmp O C2 Tmp2 C1 Jämför räknare2 (C2) med räknare1 (C1). 8 + Tmp2 O C2 C2 9 1 Om räknare2 (C2) inte är större än räknare1 (C1), kommer räknare2 (C2) adderas med 1. Tmp2 13.0.2011 * O 10 11 Om räknare2 (C2) inte är större än räknare1 (C1), kommer räknare1 (C1) multipliceras med 0 (Nollställning). AC00 eco 9-1

Real_10s (FB-CFC) C1 C1 11 0 AC00 eco (C1), kommer räknare1 (C1) multipliceras med 0 (Nollställning). Tmp Tmr AND 12 Varv 13 Här kollar man om programmet ska fortsättas att köra eller inte. 13.0.2011 AC00 eco 9-2

(FB-CFC) AC00 eco 0001 FUNCTION_BLOCK 0002 VAR_INPUT 0003 : BOOL; 0004 : REAL; 000 : REAL; 000 : REAL; 000 D_VAR 0008 VAR_OUTPUT 0009 D_VAR 0010 VAR 0011 Sum: REAL; 0012 D_VAR En beräkning av real tal där summan varierar. Sum + O 0 * O 1 / O 2.28 SQRT O 3 * O 4 Sum 13.0.2011 AC00 eco 10-1

_1 (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK _1 0002 VAR_INPUT 0003 D_VAR 0004 VAR_OUTPUT 000 D_VAR 000 VAR 000 Hog: BOOL:=TRUE; 0008 Rea1: ; 0009 D_VAR Real beräkning * 1. Hog AND 0 Rea1 1.9.3. 13.0.2011 AC00 eco 11-1

_10 (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK _10 0002 VAR_INPUT 0003 D_VAR 0004 VAR_OUTPUT 000 D_VAR 000 VAR 000 Hog: BOOL:=TRUE; 0008 Rea1: ; 0009 Rea2: ; 0010 Rea3: ; 0011 Rea4: ; 0012 Rea: ; 0013 Rea: ; 0014 Rea: ; 001 Rea8: ; 001 Rea9: ; 001 Rea10: ; 0018 D_VAR Real beräkning * 10. AND 0 Rea1 1 Hog.9.3. Rea2 2.9.3. Rea3 3.9.3. Rea4 4.9.3. Rea.9.3. Rea.9.3. Rea.9.3. Rea8 8.9.3. Rea9 9 13.0.2011 AC00 eco 12-1

_10 (FB-CFC).9.3..9.3. AC00 eco Rea10 9 10 13.0.2011 AC00 eco 12-2

_20 (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK _20 0002 VAR_INPUT 0003 D_VAR 0004 VAR_OUTPUT 000 D_VAR 000 VAR 000 Hog: BOOL:=TRUE; 0008 Rea1: ; 0009 Rea2: ; 0010 Rea3: ; 0011 Rea4: ; 0012 Rea: ; 0013 Rea: ; 0014 Rea: ; 001 Rea8: ; 001 Rea9: ; 001 Rea10: ; 0018 Rea11: ; 0019 Rea12: ; 0020 Rea13: ; 0021 Rea14: ; 0022 Rea1: ; 0023 Rea1: ; 0024 Rea1: ; 002 Rea18: ; 002 Rea19: ; 002 Rea20: ; 0028 D_VAR Real beräkning * 20. Hog 13.0.2011 AND 0.9.3..9.3..9.3..9.3..9.3. Rea1 Rea2 Rea3 Rea4 Rea Rea.9.3. Rea AC00 eco 1 2 3 4 13-1

AC00 eco 13.0.2011 AC00 eco 13-2 _20 (FB-CFC)..9 Rea.3..9 8 Rea8.3..9 9 Rea9.3..9 10 Rea10.3..9 11 Rea11.3..9 12 Rea12.3..9 13 Rea13.3..9 14 Rea14.3..9 1 Rea1.3..9 1 Rea1.3..9 1 Rea1.3..9 18 Rea18.3. 19 Rea19

_20 (FB-CFC).9.3..9.3. AC00 eco Rea20 19 20 13.0.2011 AC00 eco 13-3

_ (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK _ 0002 VAR_INPUT 0003 D_VAR 0004 VAR_OUTPUT 000 D_VAR 000 VAR 000 Hog: BOOL:=TRUE; 0008 Rea1: ; 0009 Rea2: ; 0010 Rea3: ; 0011 Rea4: ; 0012 Rea: ; 0013 D_VAR Real beräkning *. AND 0 Rea1 1 Hog.9.3. Rea2 2.9.3. Rea3 3.9.3. Rea4 4.9.3. Rea.9.3. 13.0.2011 AC00 eco 14-1

_0 (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK _0 0002 VAR_INPUT 0003 D_VAR 0004 VAR_OUTPUT 000 D_VAR 000 VAR 000 Hog: BOOL:=TRUE; 0008 Rea1: ; 0009 Rea2: ; 0010 Rea3: ; 0011 Rea4: ; 0012 Rea: ; 0013 Rea: ; 0014 Rea: ; 001 Rea8: ; 001 Rea9: ; 001 Rea10: ; 0018 Rea11: ; 0019 Rea12: ; 0020 Rea13: ; 0021 Rea14: ; 0022 Rea1: ; 0023 Rea1: ; 0024 Rea1: ; 002 Rea18: ; 002 Rea19: ; 002 Rea20: ; 0028 Rea21: ; 0029 Rea22: ; 0030 Rea23: ; 0031 Rea24: ; 0032 Rea2: ; 0033 Rea2: ; 0034 Rea2: ; 003 Rea28: ; 003 Rea29: ; 003 Rea30: ; 0038 Rea31: ; 0039 Rea32: ; 0040 Rea33: ; 0041 Rea34: ; 0042 Rea3: ; 0043 Rea3: ; 0044 Rea3: ; 004 Rea38: ; 004 Rea39: ; 004 Rea40: ; 0048 Rea41: ; 0049 Rea42: ; 000 Rea43: ; 001 Rea44: ; 002 Rea4: ; 003 Rea4: ; 004 Rea4: ; 00 Rea48: ; 00 Rea49: ; 00 Rea0: ; 008 D_VAR Real beräkning * 0. Hog 13.0.2011 AND 0 Rea1 AC00 eco 1 1-1

AC00 eco 13.0.2011 AC00 eco 1-2 _0 (FB-CFC).9 Hog.3..9 2 Rea2.3..9 3 Rea3.3..9 4 Rea4.3..9 Rea.3..9 Rea.3..9 Rea.3..9 8 Rea8.3..9 9 Rea9.3..9 10 Rea10.3..9 11 Rea11.3..9 12 Rea12.3. 13 Rea13

AC00 eco 13.0.2011 AC00 eco 1-3 _0 (FB-CFC).9.3..9 14 Rea14.3..9 1 Rea1.3..9 1 Rea1.3..9 1 Rea1.3..9 18 Rea18.3..9 19 Rea19.3..9 20 Rea20.3..9 21 Rea21.3..9 22 Rea22.3..9 23 Rea23.3..9 24 Rea24.3. 2 Rea2

AC00 eco 13.0.2011 AC00 eco 1-4 _0 (FB-CFC).9.3..9 2 Rea2.3..9 2 Rea2.3..9 28 Rea28.3..9 29 Rea29.3..9 30 Rea30.3..9 31 Rea31.3..9 32 Rea32.3..9 33 Rea33.3..9 34 Rea34.3..9 3 Rea3.3..9 3 Rea3.3..9 3 Rea3

AC00 eco 13.0.2011 AC00 eco 1- _0 (FB-CFC).9.3..9 38 Rea38.3..9 39 Rea39.3..9 40 Rea40.3..9 41 Rea41.3..9 42 Rea42.3..9 43 Rea43.3..9 44 Rea44.3..9 4 Rea4.3..9 4 Rea4.3..9 4 Rea4.3..9 48 Rea48.3..9 49 Rea49

_0 (FB-CFC) AC00 eco.3..9.3. Rea0 0 13.0.2011 AC00 eco 1-

Tom_10s (FB-CFC) AC00 eco 0001 FUNCTION_BLOCK Tom_10s 0002 VAR_INPUT 0003 D_VAR 0004 VAR 000 Timer: TP; 000 Tmr: BOOL; 000 Tmp: BOOL; 0008 Tmp2: BOOL; 0009 Varv: BOOL; 0010 Hog:BOOL:= TRUE; 0011 Tid: TIME:= T#10S; 0012 D_VAR 0013 VAR_OUTPUT 0014 C1:REAL; 001 C2:REAL; 001 D_VAR Hog Tid IN PT Timer TP 0 Q ET Tmr 1 Här aktiverar vi en timer, som skickar en aktiverings signal i antingen 1 eller 10 sekunder. Tmr C1 1 + O 2 Tmp 4 C1 3 Adderar räknare1 (C1) med 1. Tmp C2 C1 > O Tmp2 Jämför räknare2 (C2) med räknare1 (C1). Tmp2 C2 1 + O C2 8 Om räknare2 (C2) inte är större än räknare1 (C1), kommer räknare2 (C2) adderas med 1. Tmp2 C1 0 * O 9 C1 10 Om räknare2 (C2) inte är större än räknare1 (C1), kommer räknare1 (C1) multipliceras med 0 (Nollställning). Tmp Tmr AND 11 Varv 12 Här kollar man om programmet ska fortsättas att köra eller inte. 13.0.2011 AC00 eco 1-1

Bilaga 2 ABB AC800M

1 COMPILER SWITCHES. 2 2 FUNCTION BLOCK TYPES 2 2.1 INTEGER_10S. 2 2.1.1 Code. 3 2.1.2 Code2.. 4 2.1.3 code3 2.1.4 code4 2.1. Code.. 2.1. Code.. 8 2.1. code 9 2.2 INTEGER_BERAKNING. 10 2.2.1 Code.. 11 2.3 INTEGER_BERAKNING_1 12 2.3.1 Code.. 13 2.4 INTEGER_BERAKNING_10. 14 2.4.1 Code.. 1 2. INTEGER_BERAKNING_20. 1 2..1 Code.. 1 2. INTEGER_BERAKNING_ 19 2..1 Code.. 20 2. INTEGER_BERAKNING_0. 21 2..1 Code.. 22 2.8 REAL_10S 31 2.8.1 Code.. 32 2.8.2 Code2 33 2.8.3 code3. 34 2.8.4 code4. 3 2.8. Code 3 2.8. Code 3 2.8. Code 38 2.9 REAL_BERAKNING.. 39 2.9.1 Code.. 40 2.10 REAL_BERAKNING_1. 41 2.10.1 Code. 42 2.11 REAL_BERAKNING_10.. 43 2.11.1 Code. 44 2.12 REAL_BERAKNING_20.. 4 2.12.1 Code. 4 2.13 REAL_BERAKNING_. 48 2.13.1 Code. 49 2.14 REAL_BERAKNING_0.. 0 2.14.1 Code. 1 2.1 TOM_10S 9 2.1.1 Code. 0 2.1.2 Code2.. 1 2.1.3 Code3.. 2 2.1.4 Code4.. 3 2.1. Code.. 4 2.1. Code.. Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 1 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

1 Compiler switches Switch Simultaneous Execution in SFC Loops In ST Nested IF or CASE Implicit Cast Instruction List language Ladder Diagram language SFC language Loops in Control Modules Force I/O from code Multiple calls to the same Function Block None or multiple calls to ExecuteControlModules Global Allowed Allowed Allowed Allowed Allowed Allowed Allowed Error Allowed Warning Warning Table 1. Compiler switches 2 Function Block Types 2.1 Integer_10s Properties and Settings: Alarm Owner Name Data Type Attributes Direction Initial value Description 1 C1 real retain out Räknare 1 som räknar antal "interna" varv. 2 C2 real retain out Räknare 2 som räknar antal "externa" varv. 3 int retain in Tal 1 är bara en ingång för att ställa in olika tal. 4 int retain in Tal 2 är bara en ingång för att ställa in olika tal. int retain in Tal 3 är bara en ingång för att ställa in olika tal. Table 2. Function Block Type - Application_1.Integer_10s (Parameters) Name Data Type Attributes Initial value Description 1 Tmr bool retain Timer. 2 Tmp bool retain Temporär variabel. 3 Tmp2 bool retain Temporär variabel. 4 Varv bool retain Anger om programmet ska fortsättas köra eller inte. Hog bool retain true Används för att aktivera programmet. Tid time retain 10s Tid som timerna ska köra. Table 3. Function Block Type - Application_1.Integer_10s (Variables) Name Function Block Type Task Connection Description 1 TP_1 TP 2 Integer_berakning_2 Integer_berakning Table 4. Function Block Type - Application_1.Integer_10s (Function blocks) Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 2 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.1.1 Code Här aktiverar vi en timer, som skickar en aktiverings signal i antingen 1 eller 10 sekunder. TP_1 Hog Tid TP In PT Q ET Tmr Figure 1. Code - Function Block Type - Application_1.Integer_10s 1 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 3 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.1.2 Code2 Adderar räknare1 (C1) med 1. Varv 1.0 + Tmp C1 Figure 2. Code2 - Function Block Type - Application_1.Integer_10s 1 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 4 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.1.3 code3 Aktivering av beräkning. Integer_berakning_2 Tmp Integer_berakning Figure 3. code3 - Function Block Type - Application_1.Integer_10s 1 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.1.4 code4 Jämför räknare2 (C2) med räknare1 (C1). Tmp C2 C1 > Tmp2 Figure 4. code4 - Function Block Type - Application_1.Integer_10s 1 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.1. Code Om räknare2 (C2) inte är större än räknare1 (C1), kommer räknare2 (C2) adderas med 1. Tmp2 1.0 + C2 Figure. Code - Function Block Type - Application_1.Integer_10s 1 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.1. Code Om räknare2 (C2) inte är större än räknare1 (C1), kommer räknare1 (C1) multipliceras med 0 (Nollställning). Tmp2 0.0 * C1 Figure. Code - Function Block Type - Application_1.Integer_10s 1 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 8 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.1. code Här kollar man om programmet ska fortsättas att köras eller inte. Tmp & Tmr Varv Figure. code - Function Block Type - Application_1.Integer_10s 1 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 9 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.2 Integer_berakning Properties and Settings: Alarm Owner Name Data Type Attributes Direction Initial value Description 1 bool retain in Matas in för att starta detta program. 2 int retain in Variabel tal som matas in. 3 int retain in Variabel tal som matas in. 4 int retain in Variabel tal som matas in. Table. Function Block Type - Application_1.Integer_berakning (Parameters) Name Data Type Attributes Initial value Description 1 Sum int retain Ett tal som tar olika värden hela tiden. Table. Function Block Type - Application_1.Integer_berakning (Variables) Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 10 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.2.1 Code En beräkning av integer tal där summan varierar. + * / * * 4 - + * / 8 12 3 4 Sum Figure 8. Code - Function Block Type - Application_1.Integer_berakning 1 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 11 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.3 Integer_berakning_1 Properties and Settings: Alarm Owner Name Data Type Attributes Initial value Description 1 Hog bool retain true En konstant för att starta programmet. Table. Function Block Type - Application_1.Integer_berakning_1 (Variables) Name Function Block Type Task Connection Description 1 Integer_berakning_1 Integer_berakning Table 8. Function Block Type - Application_1.Integer_berakning_1 (Function blocks) Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 12 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.3.1 Code Integer beräkning * 1. Hog & Integer_berakning_1 Integer_berakning 1 Figure 9. Code - Function Block Type - Application_1.Integer_berakning_1 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 13 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.4 Integer_berakning_10 Properties and Settings: Alarm Owner Name Data Type Attributes Initial value Description 1 Hog bool retain true En konstant för att starta programmet. Table 9. Function Block Type - Application_1.Integer_berakning_10 (Variables) Name Function Block Type Task Connection Description 1 Integer_berakning_1 Integer_berakning 2 Integer_berakning_2 Integer_berakning 3 Integer_berakning_3 Integer_berakning 4 Integer_berakning_4 Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning 8 Integer_berakning_8 Integer_berakning 9 Integer_berakning_9 Integer_berakning 10 Integer_berakning_10 Integer_berakning Table 10. Function Block Type - Application_1.Integer_berakning_10 (Function blocks) Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 14 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.4.1 Code Integer beräkning * 10. Hog & Integer_berakning_1 Integer_berakning Integer_berakning_2 Integer_berakning Integer_berakning_3 Integer_berakning Integer_berakning_4 Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_8 Integer_berakning Integer_berakning_9 Integer_berakning Integer_berakning_10 Integer_berakning 1 Figure 10. Code - Function Block Type - Application_1.Integer_berakning_10 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 1 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2. Integer_berakning_20 Properties and Settings: Alarm Owner Name Data Type Attributes Initial value Description 1 Hog bool retain true En konstant för att starta programmet. Table 11. Function Block Type - Application_1.Integer_berakning_20 (Variables) Name Function Block Type Task Connection Description 1 Integer_berakning_1 Integer_berakning 2 Integer_berakning_2 Integer_berakning 3 Integer_berakning_3 Integer_berakning 4 Integer_berakning_4 Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning 8 Integer_berakning_8 Integer_berakning 9 Integer_berakning_9 Integer_berakning 10 Integer_berakning_10 Integer_berakning 11 Integer_berakning_11 Integer_berakning 12 Integer_berakning_12 Integer_berakning 13 Integer_berakning_13 Integer_berakning 14 Integer_berakning_14 Integer_berakning 1 Integer_berakning_1 Integer_berakning 1 Integer_berakning_1 Integer_berakning 1 Integer_berakning_1 Integer_berakning 18 Integer_berakning_18 Integer_berakning 19 Integer_berakning_19 Integer_berakning 20 Integer_berakning_20 Integer_berakning Table 12. Function Block Type - Application_1.Integer_berakning_20 (Function blocks) Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 1 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2..1 Code Integer beräkning * 20. Hog & Integer_berakning_1 28>>2 Integer_berakning Integer_berakning_2 Integer_berakning Integer_berakning_3 Integer_berakning Integer_berakning_4 Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_8 Integer_berakning Integer_berakning_9 Integer_berakning Integer_berakning_10 Integer_berakning Integer_berakning_11 Integer_berakning 1 Figure 11. Code - Function Block Type - Application_1.Integer_berakning_20 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 1 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

Integer beräkning * 20. Integer_berakning_12 1<< 28 Integer_berakning Integer_berakning_13 Integer_berakning Integer_berakning_14 Integer_berakning Integer_berakning_1 Integer_berakning Integer_berakning_1 Integer_berakning Integer_berakning_1 Integer_berakning Integer_berakning_18 Integer_berakning Integer_berakning_19 Integer_berakning Integer_berakning_20 Integer_berakning Figure 12. Code - Function Block Type - Application_1.Integer_berakning_20 2 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 18 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2. Integer_berakning_ Properties and Settings: Alarm Owner Name Data Type Attributes Initial value Description 1 Hog bool retain true En konstant för att starta programmet. Table 13. Function Block Type - Application_1.Integer_berakning_ (Variables) Name Function Block Type Task Connection Description 1 Integer_berakning_1 Integer_berakning 2 Integer_berakning_2 Integer_berakning 3 Integer_berakning_3 Integer_berakning 4 Integer_berakning_4 Integer_berakning Integer_berakning_ Integer_berakning Table 14. Function Block Type - Application_1.Integer_berakning_ (Function blocks) Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 19 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2..1 Code Integer beräkning *. Hog & Integer_berakning_1 Integer_berakning Integer_berakning_2 Integer_berakning Integer_berakning_3 Integer_berakning Integer_berakning_4 Integer_berakning Integer_berakning_ Integer_berakning 1 Figure 13. Code - Function Block Type - Application_1.Integer_berakning_ Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 20 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2. Integer_berakning_0 Properties and Settings: Alarm Owner Name Data Type Attributes Initial value Description 1 Hog bool retain true En konstant för att starta programmet. Table 1. Function Block Type - Application_1.Integer_berakning_0 (Variables) Name Function Block Type Task Connection Description 1 Integer_berakning_1 Integer_berakning 2 Integer_berakning_2 Integer_berakning 3 Integer_berakning_3 Integer_berakning 4 Integer_berakning_4 Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning 8 Integer_berakning_8 Integer_berakning 9 Integer_berakning_9 Integer_berakning 10 Integer_berakning_10 Integer_berakning 11 Integer_berakning_11 Integer_berakning 12 Integer_berakning_12 Integer_berakning 13 Integer_berakning_13 Integer_berakning 14 Integer_berakning_14 Integer_berakning 1 Integer_berakning_1 Integer_berakning 1 Integer_berakning_1 Integer_berakning 1 Integer_berakning_1 Integer_berakning 18 Integer_berakning_18 Integer_berakning 19 Integer_berakning_19 Integer_berakning 20 Integer_berakning_20 Integer_berakning 21 Integer_berakning_21 Integer_berakning 22 Integer_berakning_22 Integer_berakning 23 Integer_berakning_23 Integer_berakning 24 Integer_berakning_24 Integer_berakning 2 Integer_berakning_2 Integer_berakning 2 Integer_berakning_2 Integer_berakning 2 Integer_berakning_2 Integer_berakning 28 Integer_berakning_28 Integer_berakning 29 Integer_berakning_29 Integer_berakning 30 Integer_berakning_30 Integer_berakning 31 Integer_berakning_31 Integer_berakning 32 Integer_berakning_32 Integer_berakning 33 Integer_berakning_33 Integer_berakning 34 Integer_berakning_34 Integer_berakning 3 Integer_berakning_3 Integer_berakning 3 Integer_berakning_3 Integer_berakning 3 Integer_berakning_3 Integer_berakning 38 Integer_berakning_38 Integer_berakning 39 Integer_berakning_39 Integer_berakning 40 Integer_berakning_40 Integer_berakning 41 Integer_berakning_41 Integer_berakning 42 Integer_berakning_42 Integer_berakning 43 Integer_berakning_43 Integer_berakning 44 Integer_berakning_44 Integer_berakning 4 Integer_berakning_4 Integer_berakning 4 Integer_berakning_4 Integer_berakning 4 Integer_berakning_4 Integer_berakning 48 Integer_berakning_48 Integer_berakning 49 Integer_berakning_49 Integer_berakning 0 Integer_berakning_0 Integer_berakning Table 1. Function Block Type - Application_1.Integer_berakning_0 (Function blocks) Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 21 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2..1 Code Integer beräkning * 0. Hog & Integer_berakning_1 28>>2 3 4 8 Integer_berakning Integer_berakning_2 Integer_berakning Integer_berakning_3 Integer_berakning Integer_berakning_4 Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_ Integer_berakning Integer_berakning_8 Integer_berakning Integer_berakning_9 Integer_berakning Integer_berakning_10 Integer_berakning Integer_berakning_11 Integer_berakning 1 Figure 14. Code - Function Block Type - Application_1.Integer_berakning_0 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 22 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

Integer beräkning * 0. Integer_berakning_12 1<< 28 Integer_berakning Integer_berakning_13 Integer_berakning Integer_berakning_14 Integer_berakning Integer_berakning_1 Integer_berakning Integer_berakning_1 Integer_berakning Integer_berakning_1 Integer_berakning Integer_berakning_18 Integer_berakning Integer_berakning_19 Integer_berakning Integer_berakning_20 Integer_berakning Integer_berakning_21 Integer_berakning Integer_berakning_22 Integer_berakning Figure 1. Code - Function Block Type - Application_1.Integer_berakning_0 2 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 23 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

Integer beräkning * 0. Integer_berakning_23 1<< 28 Integer_berakning Figure 1. Code - Function Block Type - Application_1.Integer_berakning_0 3 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 24 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

Integer beräkning * 0. Integer_berakning_24 1<< 28 Integer_berakning Integer_berakning_2 Integer_berakning Integer_berakning_2 Integer_berakning Integer_berakning_2 Integer_berakning Integer_berakning_28 Integer_berakning Integer_berakning_29 Integer_berakning Integer_berakning_30 Integer_berakning Integer_berakning_31 Integer_berakning Integer_berakning_32 Integer_berakning Integer_berakning_33 Integer_berakning Integer_berakning_34 Integer_berakning Figure 1. Code - Function Block Type - Application_1.Integer_berakning_0 4 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 2 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

Integer beräkning * 0. Integer_berakning_3 1<< 28 Integer_berakning Figure 18. Code - Function Block Type - Application_1.Integer_berakning_0 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 2 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

Integer beräkning * 0. Integer_berakning_3 1<< 28 Integer_berakning Integer_berakning_3 Integer_berakning Integer_berakning_38 Integer_berakning Integer_berakning_39 Integer_berakning Integer_berakning_40 Integer_berakning Integer_berakning_41 Integer_berakning Integer_berakning_42 Integer_berakning Integer_berakning_43 Integer_berakning Integer_berakning_44 Integer_berakning Integer_berakning_4 Integer_berakning Integer_berakning_4 Integer_berakning Figure 19. Code - Function Block Type - Application_1.Integer_berakning_0 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 2 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

Integer beräkning * 0. Integer_berakning_4 1<< 28 Integer_berakning Figure 20. Code - Function Block Type - Application_1.Integer_berakning_0 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 28 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

Integer beräkning * 0. Integer_berakning_48 1<< 28 Integer_berakning Integer_berakning_49 Integer_berakning Integer_berakning_0 Integer_berakning Figure 21. Code - Function Block Type - Application_1.Integer_berakning_0 8 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 29 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 30 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.8 Real_10s Properties and Settings: Alarm Owner Name Data Type Attributes Direction Initial value Description 1 C1 real retain out Räknare 1 som räknar antal "interna" varv. 2 C2 real retain out Räknare 2 som räknar antal "externa" varv. 3 real retain in Tal 1 är bara en ingång för att ställa in olika tal. 4 real retain in Tal 2 är bara en ingång för att ställa in olika tal. real retain in Tal 3 är bara en ingång för att ställa in olika tal. Table 1. Function Block Type - Application_1.Real_10s (Parameters) Name Data Type Attributes Initial value Description 1 Tmr bool retain Timer. 2 Tmp bool retain Temporär variabel. 3 Tmp2 bool retain Temporär variabel. 4 Varv bool retain Anger om programmet ska fortsättas köra eller inte. Hog bool retain true Används för att aktivera programmet. Tid time retain 10s Tid som timerna ska köra. Table 18. Function Block Type - Application_1.Real_10s (Variables) Name Function Block Type Task Connection Description 1 TP_1 TP 2 _1 Table 19. Function Block Type - Application_1.Real_10s (Function blocks) Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 31 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.8.1 Code Här aktiverar vi en timer, som skickar en aktiverings signal i antingen 1 eller 10 sekunder. TP_1 Hog Tid TP In PT Q ET Tmr Figure 22. Code - Function Block Type - Application_1.Real_10s 1 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 32 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41

2.8.2 Code2 Adderar räknare1 (C1) med 1. Varv 1.0 + Tmp C1 Figure 23. Code2 - Function Block Type - Application_1.Real_10s 1 Rev: Date: Name: Issue: Comments (Drawing Description): Title (Document No): Sheet: 33 Check: 1 2011-0-24 ABB Rel: ABB AB - - Industrial IT/Control IT/Control Builder Lang: FILAME: ABB AC800M; CREATEDATE: 2011-0-24 11:41