Utveckling av FPGA-baserad lösning för PROFINET

Relevanta dokument
Grundläggande datavetenskap, 4p

Tentamen i Datorkommunikation den 10 mars 2014

Föreläsning 5. Vägval. Vägval: önskvärda egenskaper. Mål:

KomSys Hela kursen på en föreläsning ;-) Jens A Andersson

Lokala nät Ethernet o 802.x. (Maria Kihl)

PROFINET. Technology and Application. System Description. Open Solutions for the World of Automation

Kihl & Andersson: Kapitel 6 (+ introduktioner från kap 7, men följ slides) Stallings: 9.5, 14.1, 14.2, Introduktion i 14.3, 16.1

Kapitel 5: Lokala nät Ethernet o 802.x. Lokala nät. Bryggan. Jens A Andersson (Maria Kihl)

Kommunikation inom automation. Kommunikation på olika nivåer

MAC-(sub)lagret. Nätlagret. Datalänklagret. Fysiska lagret LLC MAC. LLC = Logical Link Control-sublager MAC = Media Access Control-sublager

Datorbaserad mätteknik

Christer Scheja TAC AB

Beijer Electronics AB 2000, MA00336A,

DA HT2011: F18. Länklagret och uppkopplingstekniker Ann-Sofi Åhn

IT för personligt arbete F2

Föreläsning 5: ARP (hur hitta MAC-adress) IPv4, IPv6 Transportprotokoll (TCP) Jens A Andersson

PLC/DCS. Sensors. PROFIsafe

Föreläsning 5: Stora datanät Från användare till användare ARP

5 Internet, TCP/IP och Applikationer

DIG IN TO Nätverksteknologier

TCP/IP och Internetadressering

Övningar - Datorkommunikation

DIG IN TO Nätverksteknologier

DIG IN TO Nätverksteknologier

Instuderingsfrågor ETS052 Datorkommuniktion

Kapitel 5: Lokala nät Ethernet o 802.x. Felkorrektion. Att bekräfta paket. Jens A Andersson (Maria Kihl)

Föreläsning 5: ARP (hur hitta MAC-adress) Från applikation till applikation

Från användare till användare ARP. (Maria Kihl)

5 Internet, TCP/IP och Tillämpningar

Omtentamen i Datakommunikation för E2

Introduktion - LAN Design och switching concepts Basic Switch Concepts and Configuration Frågor? Referenser. Nätverksteknik 2

Denna genomgång behandlar följande:

Datakommunikation vad är det?

Modbus över Ethernet. WAGO Contact SA TSS STR

LTH, Institutionen för Elektro- och Informationsteknik (EIT)

Datasäkerhet och integritet

Tips och råd om trådlöst

3) Routern kontrollerar nu om destinationen återfinns i Routingtabellen av för att se om det finns en väg (route) till denna remote ost.

Lösningar till tentan i ETS052 Datorkommunikation

Quick start manual. Smart-House Rev 1.1

PNSPO! CP1W-CIF mars 2012 OMRON Corporation

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Grundläggande nätverksteknik. F3: Kapitel 4 och 5

Stora datanät Från användare till användare. Jens A Andersson

DIG IN TO Administration av nätverk- och serverutrustning

Detta dokument beskriver enbart konfigurering av FX3U-ENET för att programmera/monitorera via Ethernet.

Föreläsning 4. Multiplexering (1/2) Multiplexering (2/2) Multiplexering Närnät

Datakommunikation vad är det?

Kihl & Andersson: , 4.5 Stallings: , , (7.3)

Tillförlitlig dataöverföring Egenskaper hos en länk Accessmetoder. Jens A Andersson

OH Slides F: Wide Area Networks

Internetprotokollen. Maria Kihl

Grundläggande nätverksteknik. F2: Kapitel 2 och 3

Stora datanät. Maria Kihl

CAN ett kommunikationsprotokoll för realtidssystem MOP 12/13 1

Modbus. WAGO Contact SA TSS STR

Laborationer onsdag/fredag. Laborationer onsdag/fredag. Tillförlitlig dataöverföring Multiplexering Lokala nät (inledning) Labbmanual

att förstå PROFINET En vitbok av Geoff Hodgkinson GGH Marketing Communications Version: 0.951; Date: 18 th March 2004

DIG IN TO Administration av nätverk- och serverutrustning

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

Systemkrav och tekniska förutsättningar

Vad är en UART? Universal Asynchronous Receiver Transmitter parallella seriella parallell åttabitars signal mest signifikant bit

4 Paket- och kretskopplade nät

Quickstart manual. Rev SHTOOL Quickstart manual Smart-House

Kihl & Andersson: , Stallings: , 12.1, 12.2, 13.1, 13.3

Kapitel 6, 7, o 8: ARP Vägval Från användare till användare. Jens A Andersson (Maria Kihl)

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

Följande signaler har kodats med Manchester. Hur ser bitströmmen ut om den inleds med en 0:a?

Lokala nät (forts ) Ethernet o 802.x Stora nät och behovet av nätprotokoll IP. Felkorrektion. Att bekräfta paket. Jens A Andersson (Maria Kihl)

DA 2012: F13. Nätverk 2 Ann-Sofi Åhn

ETSF05 Repetition av KomSys

Tillförlitlig dataöverföring. Jens A Andersson

Mattias Wiggberg 1. Orientera på Internet. IP-adress. IP-adresserna räcker inte... Mer om IP-adresser

Modbus. Supportdokument. Lathund för att använda Modbus över RS XXX eller TCP/IP.

Introduktion till E-block och Flowcode

Föreläsning 4: Lokala nät (forts ) Ethernet o 802.x Stora nät och behovet av nätprotokoll Transportprotokoll. Emma Fitzgerald

LABORATION DATORKONSTRUKTION TSEA83 UART. Namn och personnummer. Version: (OS)

Datakommunika,on på Internet

Internetprotokollen. Maria Kihl

Styrsystem M580. Användare tips för Modicon M580. Skapad: Rev

LTH, Institutionen för Elektro- och Informationsteknik (EIT) ETS052 Datorkommunikation Sluttentamen: , 14-19

Profibus. Altivar/Altistart. Kom-igång med Profibus till ATS48/ATV28 (via Modbusgateway)

4 Paket- och kretskopplade nät

Nätverk och Java, grunder Föreläsning 0: 0: Introduktion till Internet

Nätverksteknik A - Introduktion till VLAN

Paketförstörare Implementerad på XESS XSV800 labbkort

Denna genomgång behandlar följande: IP (v4) Nätmasken ARP Adresstilldelning och DHCP

CanCom Bluetooth BLUETOOTH V5.6. Specifikation Specification LED. transceiver

WAGO IO System Service Seminar. Diagnostik

Ethernet kommunikation med hjälp av optionskortet OPT-CI

5. Internet, TCP/IP tillämpningar och säkerhet

Fjärruppkoppling med MRD Industriell 3G-Router KI00282A

8SSJLIW.RPELQHUDEHJUHSSPHGGHILQLWLRQHUS

Distribuerade affärssystem

LTH, Institutionen för Elektro- och Informationsteknik (EIT)

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

Datakommunikation. Nätskiktet. Routers & routing

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

Transportnivån. Kommunikation mellan processer. Kommunikation mellan processer. Sockets och TCP. UDP (User Datagram Protocol) Checksumman

Datorsystem. Tentamen

Transkript:

Utveckling av FPGA-baserad lösning för PROFINET SANNA ESKELINEN TRITA-ICT-EX-2012:5 Företag: Motion Control i Västerås AB Handledare: Andreas Forsberg Handledare: Christian Menne Examinator: Ingo Sander

Sammanfattning PROFINET är en öppen standard för industriellt Ethernet, som uppfyller alla behov inom automation. PROFINET gör det möjligt att koppla in det befintliga fältbussystemet, till exempel PROFIBUS utan att det behöver ändras, genom ett så kallat proxy. PROFINET finns i två utförande PROFINET IO och PROFINET CBA, där IO är en decentral lösning och CBA är en komponentbaserad lösning. PROFINET använder sig av tre olika kommunikationskanaler för att skicka och ta emot data. Detta gör att företag successivt kan gå över till PROFINET utan större omkostnader som det skulle innebära om hela anläggningen skulle behöva byggas om. De flesta moduler som används för PROFINET-kommunikation har utöver grundfunktionaliteten även andra funktioner såsom FTP och webbserver. Företaget Motion Control använder sig i dag av en färdig modul som inte uppfyller de krav som krävs och vad den använda modulen lovar, den har även flera funktioner som inte används i dagsläget. Därför har det funnits önskemål om att ta fram mjukvara till en egen modul som kan implementeras i en FPGA eller DSP. Detta för att få djupare kunskaper om hur PROFINET fungerar, samt vad som krävs för att ta fram en egen modul. Detta dokument beskriver de olika undersökningar som utfördes för att få en grund för själva utvecklingsarbetet. Därefter beskrivs de krav och den grundläggande designspecifikationen som togs fram inför själva konstruktionen av mjukvaran. Även beskrivning av den slutgiltiga konstruktionen tas upp, allt avslutas med resultat och sammanfattning. i

Abstract PROFINET is an open standard for indrustial Ethernet that meets all needs in automation. PROFINET can be used together with existing fieldbus systems like PROFIBUS without changes by using a proxy. PROFINET is available in two versions: PROFINET IO and PROFINET CBA. IO is a decentralized solution and the CBA is component based. They use three different communication channels for sending and receving data. The advantage with PROFINET is that companies gradually can transfer to PROFINET without extra costs as it would be if the entire facility was upgrated at once. A majority of the modules used for PROFINET-communication include functions such as FTP and Webserver. Today the company Motion Control uses a module that does not meet the necessary requirements which the module promises, it also has several features that are not used today. Therefore, there is a desire to develop software for a custom module that can be implemented in an FPGA or DSP. That to gain a deeper understanding of how PROFINET works, and what it takes to develop a custom module. This document describes the various studies that were performed to get a basis for the development. Then it describes the requirements and the basic design specification that was drawn up before the actual construction of the software. Also the description of the final design is covered and everything ends with results and summary. ii

Förord Först vill jag tacka Christer Gerdtman för att han har gett mig möjligheten att genomföra mitt examensarbete hos Motion Control i Västerås AB. Jag vill tacka även alla anställda vid Motion Control som har delat med sig av sina kunskaper och erfarenheter. Ett stort tack går till min handledare Andreas Forsberg som alltid funnits tillhands under projektets gång och kommit med bra synpunkter och tips. Till sist vill jag även tacka Christian Selander som varit till stor hjälp när det gäller programmering. Västerås 2012 Sanna Eskelinen iii

Innehåll 1 Inledning 1 1.1 Bakgrund................................. 1 1.2 Syfte.................................... 2 1.3 Metod................................... 2 1.4 Förutsättningar och avgränsningar................... 3 1.5 Struktur.................................. 3 I Förstudier 5 2 Ethernet 6 2.1 Standard Ethernet............................ 6 2.2 Switched Ethernet - Fast Ethernet................... 8 2.3 Nätverkstopologi............................. 9 2.4 Adresser.................................. 10 2.5 Protokoll.................................. 11 2.6 Sammanfattning............................. 14 3 PROFINET 16 3.1 Realtidskommunikation.......................... 17 3.2 PROFINET IO.............................. 21 3.3 Integration av fältbussystem....................... 32 3.4 Webbintegrering.............................. 34 3.5 PROFIsafe................................. 35 3.6 Implementering av PROFINET IO................... 37 3.7 Sammanfattning............................. 38 4 Seriell kommunikation 39 4.1 Synkron överföring............................ 39 4.2 Asynkron överföring........................... 40 4.3 UART................................... 40 iv

Innehåll Innehåll 4.4 SPI..................................... 43 4.5 I 2 C..................................... 45 4.6 Sammanfattning............................. 50 5 Marknadsundersökning 51 5.1 Förutsättningar och avgränsningar................... 51 5.2 Viktiga parametrar............................ 52 5.3 Beskrivning av parametrar........................ 52 5.4 Sammanställning............................. 54 5.5 Slutsats.................................. 57 5.6 Rekommendation............................. 57 6 Kravspecifikation 60 6.1 Funktionskrav............................... 60 6.2 Mjukvarukrav............................... 61 6.3 Kapacitetskrav.............................. 62 6.4 Miljöförhållanden............................. 62 6.5 Testning.................................. 62 II Design och Implementering 63 7 Designspecifikation 64 7.1 Funktionalitet............................... 65 7.2 Hårdvara.................................. 66 7.3 Mjukvara................................. 68 7.4 Initialisering................................ 69 7.5 Huvudflödet................................ 70 7.6 MicroC/OS-II............................... 71 7.7 NicheStack TCP/IP stack........................ 72 7.8 Interrrupt................................. 73 7.9 Felhantering................................ 74 7.10 Saker att tänka på vid programmering................. 74 8 Konstruktionsbeskrivning 75 8.1 Systemöversikt.............................. 75 8.2 Hårdvara.................................. 76 8.3 Mjukvara................................. 80 8.4 Resultat.................................. 86 9 Diskussion 88 9.1 Slutsats.................................. 88 v

Innehåll Innehåll 9.2 Framtida förbättringar.......................... 90 A Aktivitetslista 95 vi

Figurer 2.1 Övre: Original standarden av DIX gruppen, Nedre: Standarden enligt IEEE 802.3................................ 7 2.2 Stjärn- och ringtopologi......................... 9 2.3 Utseende på MAC-adress......................... 10 2.4 Överföring via TCP............................ 13 3.1 Uppdelning av bandbredd........................ 19 3.2 PROFINET IO anläggning........................ 22 3.3 Relationer i PROFINET......................... 26 3.4 LLDP används för granndetektion i PROFINET IO.......... 27 3.5 Redundans i PROFINET......................... 31 3.6 Integration av fältbussystem i PROFINET............... 33 4.1 UART paket................................ 41 4.2 SPI med en master och slav....................... 43 4.3 Överföring av data med SPI....................... 44 4.4 START och STOPP........................... 46 7.1 Hårdvara kort............................... 66 7.2 Mjukvara................................. 68 7.3 Huvudflöde................................ 70 8.1 Slutgiltiga kommunikationen....................... 76 8.2 Översikt hårdvara............................. 77 8.3 Översikt mjukvara............................ 80 vii

Tabeller 2.1 Subnet mask................................ 11 3.1 Typiska värden på fördröjning i överföringslänken........... 20 4.1 Reserverade adresser vid 7-bitars adressering.............. 45 5.1 Sammanställning av PROFINET-moduler............... 54 5.2 Sammanställning kretsar för PROFINET................ 55 5.3 Sammanställning PROFINET-moduler med FPGA.......... 56 5.4 Sammanställning FPGA-kretsar..................... 56 8.1 Sammanställning av kraven....................... 87 viii

Förklaringar Förkortning API AR ARP ASIC BSP CBA CC CM CPU CR CRC CSMA/CD DCP DCS DHCP DIL DSP Duplex ERTEC Ethernet Förklarande text Application Programming Interface, regler och specifikationer för mjukvaruprogram Application Relation, logisk applikationsrelation mellan två deltagare Address Resolution Protocol, är ett kommunikationsprotokoll som används för att koppla samman en IP-adress med en MAC-adress Application Specifik Integreted Circuit, krets för ett specifikt ändamål Board Support Package, särskilt stöd-kod som översstämmer med en given operativsystem Component Based Automation, anpassat för komponentbaserad kommunikation i PROFINET Conformance Classes, applikationsklasser som har definierad minumum prestanda Contex Management, upprättar kommunikations- och applikationsrelationer Central Processing Unit, central processor i enheten Communication Relations, specificerar den egentliga kommunikationen mellan en konsument och en producent Cyclic Redundance Check, används för att upptäcka korrupta databitar Carrier Sense Multiple Access/Collision Detection, process för access till Ethernet samt kollisiondetektering Discovery and basic Configuration Protocol, dynamisk tilldelning av IP-adresser Distributed Control System, samlingsbegrepp för överordnad styrsystem Dynamic Host Configuration Protocol, dynamisk tilldelning av IPadresser Dual In Line-package, typ av kapsel för hålmonterade mikrochip Digital Signal Processor, integrerad krets Kommunikation kan ske i två riktningar Enhanced Real Time Ethernet Controller, ASIC från Siemens Arkitektur för datakommunikation ix

FDX FIFO Firmware Flashminne FPGA Gateway GSD GSDML HDX I 2 C I/O IC IDE IEEE INTERBUS Interrupt IOCR IP IRT JTAG LAN LLDP MAC-adress MCU MISO MOSI MSB OUI PLC Full Duplex, kommunikation kan ske i två riktningar samtidigt First in First out, först in först Mjukvara som är inprogrammerad i hårdvara Transistorbaserad minne Field-programmable Gate Array, integrerad krets som består av ett antal logiska block som kan länkas ihop för att skapa önskade funktioner Utrustning som förmedlar data mellan nät med olika standarder eller utrustningar General Station Description, innehåller en XML-baserad beskrivning av I/O-enheter egenskaper som kommunikationsparametrar och data för modulerna General Station Desciption Markup Language, är det beskrivande språk som används för att skapa en GSD-fil för PROFINET IO-enheter Half Duplex, kan ta emot och skicka data men inte samtidigt Inter-IC, seriell buss med två aktiva ledare Input/Output, in- och utsignaler Integrated Circuit, integrerad krets Integrated Development Environment, C/C++ kompilator för Nios II processorer. Institute of Electrical and Electronics Engineers, standarder inom dataoch elektroteknik Fältbussystem En icke klockcykelberoende signal som avbryter processors pågående arbete Input Output Configuration Register, sätts upp för ingångar/utgångar vid uppstart inom det AR som skall etableras Internet Protocol, kommunikationsprotokoll för överföring Isochronous Real Time, isokron realtidskanal för speciellt krävande precisionsstyrning/reglering till exempel motion control Joint Test Action Group, för att kunna koppla sig till FPGAn för bland annat felsökning och programmering Local Area Netwok, lokal nätverk Link Layer Discovery Protocol, används för granndetekting Media Access Control, används för att identifiera en Ethernet-nod Micro Control Unit, komplett enhet med processor samt tillhörande minne, interface med mera. Master In Slave Out, signal från slaven till master Master Out Slave In, signal från mastern till slaven Most Significant Bit, mest signifikanta biten Organizationally Unique Identifier, företagsnummer i MAC-adressen Programmable Logic Controller, styrenhet x

PROFIBUS PROFINET PTCP R/W RPC RT SCL SCLK SDA SGDMA SOPC Builder SPI SRAM SS Subslot TCP UART UDP Watchdog WiFi XML Process Field Bus, standard för fältbusskommunikation Process Field Net, Ethernet-baserad nätverkslösning för automation Precision Transparent Clock Protocol, används vid klocksynkronisering Read/Write, läs/skriv operationer Remote Procedure Call, protokoll i applikationslagret Real Time, realtidskanal för överföring av tidskritiska processdata Seriel Clock Line, klocksignal inom I 2 C Seriel Clock, klocksignal Seriel Data, data kanal för I 2 C Scatter-Cather DMA, används för att flytta data till exempel från minne-till-minne Programvara från Altera som används för att generera systemfiler till FPGA Serial Peripheral Interface, synkroniserad seriell datalänk Static Read Access Memory, en typ av minne där data stannar tills det skrivs över Slave Select, signal för val av slavenhet Grupp av en eller flera kanaler. Subslots kan vara reella eller virtuella Transmission Control Protocol, vanligaste transportprotokoll Universal Asynchrous Receiver Transmitter, omvandlar parallell data till seriell User Datagram Protocol, förbindelselöst kommunikationsprotokoll Elektronisk funktion som räknar och måste återställas till sitt utgångsläge innan den har räknat ner Teknik för trådlösa nätverk Extensible Markup Language, universalt märkspråk för att definiera och struktuera data xi

Kapitel 1 Inledning 1.1 Bakgrund Företaget Motion Control i Västerås AB arbetar huvudsakligen med elektronikutveckling. Företaget utvecklar produkter för bland annat industrin där kommunikationen skall kunna ske mellan olika enheter i systemet. Detta för att kontrollera att enheterna fungerar som de ska men även för att upptäcka fel som inträffar i till exempel en tillverkning process. Idag används fältbussystem såsom PROFIBUS i stor utsträckning inom automation men användningen av PROFINET ökar och allt fler företag förväntas övergå till användning av PROFINET. Principen för PROFINET och PROFIBUS är den samma, en modul vars uppgift är att samla data kopplas till en enhet nära processen, modulen skickar sedan data till en styrenhet/masterenheten. Största skillnaden mellan PROFINET och PROFIBUS är sättet att kommunicera med masterenheten, där PROFIBUS använder sig av seriell kommunikation för datautbyte, medan PROFINET använder sig av Ethernet. I dag använder sig företaget Motion Control av en färdig modul för PROFINETkommunikation som inte uppfyller de krav som ställs på den och vad modulen lovar, den har även flera funktioner som inte används i dagsläget. Den har visat stora brister när det gäller framför allt överföringshastigheten via UART. Därför har det funnits önskemål om att mer utförligt undersöka egenskaperna hos PROFINET och vilka typer av kretsar som kan användas för att ta fram en egen modul för PROFINET-kommunikation som sedan skulle kunna användas i deras produkter. 1

1.2. Syfte Kapitel 1. Inledning 1.2 Syfte Syftet med projektet är att göra en grundlig undersökning om PROFINETs funktioner och vilka typer av moduler och kretsar som finns tillgängliga på marknaden, för att på så sätt ta reda på vad som krävs för att ta fram en egen modul som kan användas för PROFINET-kommunikation. Följande frågor bör besvaras: Vad är PROFINET? Vilka typer av moduler och kretsar finns idag? Prestanda? Vilken typ av krets kan användas om en egen modul skall tas fram? 1.3 Metod Vid utförandet av examensarbetet används företagets projektmodell som används i utvecklingsprojekt. Projektet kan delas upp i följande delar: Projektplanering Instudering och undersökningar Krav och testspecificering Designspecificering Utförande Testning Konstruktionsbeskrivning I inledningen av projektet skapades projektplanering med tidsmål, denna planering finns dokumenterad i en aktivitetslista, se Bilaga A. När den inledande planeringen av projektet var klar påbörjades undersökningar angående nätverkskommunikation, då undersöktes bland annat TCP-, UDP- och IP-protokollen, därefter studerades även PROFINET. Även en undersökning om seriell kommunikation gjordes som omfattade UART, SPI samt I 2 C. En marknadsundersökning genomfördes i syfte att få reda på vilka typer av moduler och kretsar för PROFINET som finns tillgängliga, detta för att studera prestanda och funktionalitet. 2

Kapitel 1. Inledning 1.4. Förutsättningar och avgränsningar I samband med undersökningarna formades idéer om vilka funktioner som den planerade modulen skulle ha, dessa finns dokumenterade i kravspecifikationen. Utifrån kravspecifikation skrevs en testspecifikation och ett testprotokoll för att kunna testa om kraven som ställdes på modulen har uppfylls dessa finns dokumenterade i [PFB1-3111, PFB1-3131]. När kraven var fastställa påbörjades designarbetet med en designspecifikation. Slutligen gjordes en konstruktionsbeskrivning som förklarar den slutgiltiga implementationen. 1.4 Förutsättningar och avgränsningar Då tiden för examensarbete är begränsad till 20 arbetsveckor är det viktigt att momenten i projektet inte överskrider sin tidsbudget. PROFINET är ett omfattande protokoll, det använder sig bland annat av Ethernet för kommunikation, därför kommer tid i första hand läggas på att få grundkommunikationen bestående av TCP/UDP/IP att fungera och i mån av tid kommer övriga funktioner att implementeras. 1.5 Struktur Detta examensarbete har delats in i två delar, första delen består av en förstudie innehållande undersökningar och avslutas med en kravspecifikation, andra delen består av design och implementering samt diskussion. Del I - Förstudier: Kapitel 2 innehåller en undersökning om Ethernet, där vanligaste typerna av kommunikationsprotokoll tas upp, även begrepp som IP- och MAC-adress, nätverkstopologi och duplexitet behandlas. Kapitel 3 innehåller en undersökning om PROFINET, där dess användsområden beskrivs, realtidskommunikation, integrering av fältbusssystem, granndetektering och PROFIsafe. Även en närmare titt tas på PROFINET IO. Kapitlet avslutas med beskriving hur PROFINET kan implementeras. Kapitel 4 innehåller en undersökning om seriell kommunikation bestående av UART-, SPI- och I 2 C-överföring. 3

1.5. Struktur Kapitel 1. Inledning Kapitel 5 innehåller en marknadsundersökning där färdiga moduler och kretsar som kan används för PROFINET-kommunikation har undersökt när det gäller prestanda och funktioner. Kapitlet avslutas med rekommendation av kretsar som är lämpliga för denna typ av implementering. Kapitel 6 innehåller en kravspecifikation som tagits fram med hjälp av informationen som hämtats under förstudierna, här beskrivs bland annat krav på funktioner och prestanda. Del II - Design och Implementering: Kapitel 7 innehåller den designspecifikation som tagits fram genom studier av manualer till den valda kretsen, realtidsoperativsystemet och nätverkstacken. Här beskrivs den tänkta kommunikationen mellan olika delar i systemet, hur hårdvaran skall tas fram, interrupt hantering, och utformning av mjukvaran. Kapitel 8 innehåller konstruktionsbeskrivning som beskriver i detalj den implementering som gjordes under mjukvaruutvecklingen. Den omfattar beskrivning av den slutgiltiga kommunikationen, olika delarna i den framtagna hårdvaran och implementeringen av mjukvaran, kapitlet avslutas med resultat. Kapitel 9 innehåller slutsatser och framtida förbättringar. 4

Del I Förstudier 5

Kapitel 2 Ethernet PROFINET är baserat på Ethernet-teknologi och använder sig av standarder såsom TCP/IP-protokoll för kommunikation. För att underlätta förståelse för PROFINET beskrivs de vanligast förekommande begreppen inom Ethernet. Detta kapitel går i genom begrepp som normalt förekommer när det gäller nätverkskommunikation, här tas bland annat begrepp som duplexitet, IP- och MAC-adress och nätverkstopologi upp. Kapitlet avslutas med de vanligaste kommunikationsprotokoll som används vid datautbyte över Ethernet. Hela ursprungliga undersökningen finns beskriven i dokumentet [PFB1-2601]. 2.1 Standard Ethernet Standard Ethernet arbetar efter en icke-deterministisk princip, vilket ger alla enheter samma rättigheter till överföringskanalen. Alla enheter som är kopplade till nätverket kan skicka data till en annan enhet. Nätverket är designat som ett bussystem, detta gör att alla inkopplade enheter nås av den skickade informationen. Därför filtrerar enheterna de datapaket som skickas för att se om de är avsedda för dem, annars ignoreras de. Accessen till nätverket kontrolleras av CSMA/CD (Carrier Sense Multiple Access / Collision Detection) proceduren. Om en enhet vill använda sig av överföringskanalen för dataöverföring, kontrollerar enheten först om den är ledig innan överföringen börjar, annars väntar enheten tills den blir ledig. Ibland händer det att flera börjar sin sändning samtidigt vilket leder till kollision, då stoppas all överföring och en slumpmässig väntetid ges till enheterna, när tiden har passerat, kan enheten göra ett nytt försök att påbörja överföringen. 6

Kapitel 2. Ethernet 2.1. Standard Ethernet CSMA/CD är en accessmetod för att flera parter ska kunna sända information samtidigt på samma fysiska medium, till exempel en kanal. Om en kanal är ledig kan sändaren börja sända direkt, annars måste den vänta tills kanalen är ledig innan överföringen kan börja. Om någon enhet upptäcker kollision i nätverket skickas en felsignal till alla berörda enheter. När en kollision upptäckts stannar all överföring och alla enheter får en slumpmässigt utvald väntetid, därefter kan överföringen börja igen. Standard Ethernet-nätverk är olämpliga för användning till realtidskommunikation, eftersom denna typ av kommunikation kräver exakt körtid. 2.1.1 Standard Ethernet paket Data som skall överföras över nätverket delas upp i mindre delar, så kallade paket. Varje paket innehåller information om: mottagarens adress, sändarens adress, data och information för felkontroll. Paketen är mellan 64 och 1526 bytes långa. Det finns två olika typer av format på paket: Original standarden av DIX gruppen Standarden enligt IEEE 802.3 Skillnaderna mellan de två paketen är att DIX Ethernet använder typ block, medan IEEE 802.3 använder sig av längd block på samma position, som visas i Figur 2.1. Figur 2.1: Övre: Original standarden av DIX gruppen, Nedre: Standarden enligt IEEE 802.3 7

2.2. Switched Ethernet - Fast Ethernet Kapitel 2. Ethernet 2.2 Switched Ethernet - Fast Ethernet Fast Ethernet-standard är baserad på den klassiska Ethernet-standarden med en ökad hastighet från 10Mbit/s till 100Mbit/s. Fast Ethernet använder sig av full duplex (FDX) vid kommunikation, detta gör det möjligt att både ta emot och skicka data utan risk för kollision. Likheter mellan Standard och Fast Ethernet: Data format: paket längd mellan 64 till 1518 bytes Access procedur: CSMA/CD Samma kablar Adresseringen, access procedur, installation och paketformat är identiskt till den tidigare Ethernet-standarden. Den linjära topologin är utbytt till en stjärntopologi med switchar, vilket ger en punkt-till-punkt-koppling till en central nod. Fördelar: Det är möjligt att använda gamla investeringar utan begränsningar. 2.2.1 Full duplex Den optimala överförings proceduren för switched Ethernet är full duplex (FDX), en annan som används är halv duplex (HDX). Stjärntopologi använder sig endast av full duplex, varje komponent är kopplad till en annan via en punkt-till-punkt-koppling. Detta gör att varje enhet alltid är kopplad till en sändarlänk och en mottagarlänk, detta gör det möjligt att både skicka och ta emot information utan kollision. Fördelar med full duplex: Enkel procedur, stabil och kollisionsfri 100 % belastning är möjligt Genomströmningen ökar till det dubbla Gör det möjligt att öka nätverkens storlek 8

Kapitel 2. Ethernet 2.3. Nätverkstopologi 2.3 Nätverkstopologi Nätverkstopologin är mönster av sammankopplade enheter i ett nätverk, dessa kan vara både fysiska eller logiska, där den fysiska topologin omfattar enheter, placeringar och kabeldragningar. Topologin kan betraktas som en virtuell form eller struktur av ett nätverk. Nätverkstopologin måste anpassas till den anläggning eller maskin som den skall användas för. De vanligaste topologierna: Stjärna: Stjärnstruktur är en central signalfördelning med individuella förbindelser till alla terminaler i nätverket. Denna topologi lämpar sig bäst i områden med hög deltagartäthet och korta avstånd (se Figur 2.2). Träd: Trädstrukturen består av flera kombinerade stjärnnät som kopplats samman, ofta blandat fiberoptik med partvinnade kablar. Används när man delar upp ett komplext system i systemsegment. Linje: Linjestruktur kan åstadkommas med en switch i direkt anslutning till enheten eller med en i enheten inbyggd switch. Ring: Om början och slutet av en linjestruktur kopplas samman, får man en ringstruktur (redundans), se Figur 2.2. Den kan användas i system med höga krav på tillgänglighet, som skydd mot bland annat kabelbrott eller fel på en nätverkskomponent [1]. I praktiken är nätverken en blandning av dessa strukturer, de kan implementeras och användas med PROFINET antingen med fiberoptiska- eller kopparkablar. Figur 2.2: Stjärn- och ringtopologi 9

2.4. Adresser Kapitel 2. Ethernet 2.4 Adresser 2.4.1 MAC-adresser Varje enhet adresseras med en unik MAC-adress. MAC-adressen har en fast längd på 48 bitar (6 bytes), där de första 24 bitarna är ett OUI-nummer (Organizationally Unique Identifier) och resterande 24 bitar är en tillverkarspecifik del, enligt Figur 2.3. Detta gör att på samma OUI-nummer kan man ha upp till 16777214 enheter/produkter. För att garantera att det inte finns fler än en enhet med en specifik MAC-adress, ligger adressen kodad i hårdvaran. Figur 2.3: Utseende på MAC-adress 2.4.2 IP-adress IP-adressen är en fix komponent av IP-protokollet och är oberoende av hårdvaran som används. IP-adressen används som mottagarens adress och sändarens adress i varje paket som skickas med IP-protokoll. För att försäkra sig om att varje paket har endast en mottagare, måste alla enheter ha en egen unik adress. Format IP-adressen består av fyra bytes, och varje byte separeras från den föregående med en punkt. Detta ger följande struktur där ett nummer mellan 0 och 255 representerar XXX: XXX.XXX.XXX.XXX. (Till exempel 192.168.147.112) IP-adressen består av två dolda delar: en nätverks (network) ID och en värd (host) ID, vilka tillsammans bildar IP-adressen. Nätverks-ID används för att adressera nätverket och värd-id för att adressera till en enhet i nätverket. 10

Kapitel 2. Ethernet 2.5. Protokoll Subnet mask Subnet masken introducerades för att dela IP-adresser till nätverks komponenter och enhets komponenter. Den har samma struktur som en IP-adress, men markerar endast delen av IP-adress som representerar nätverksnumret. Tabell 2.1 visar de vanligaste varianterna av subnet masken. Viktigt att komma ihåg är att alla enheter som är kopplade via en switch ingår i samma subnet. Tabell 2.1: Subnet mask Nätverks klass IP-adress Nätverk/Värd ID Subnet mask A 0.0.0.0 127.255.255.255 1 byte / 3 byte 255.0.0.0 B 128.0.0.0 191.255.255.255 2 byte / 2 byte 255.255.0.0 C 192.0.0.0 223.255.255.255 3 byte / 1 byte 255.255.255.0 DHCP dynamiska IP-adresser De flesta problem som uppstår i IP-baserad nätverk, är när enheter läggs till, tas bort eller ändras. För att minska problemen används DHCP-protokollet (Dynamic Host Configuration Protocol). Den delar ut dynamiska IP-adresser till enheterna, vilket gör att inga manuella konfigureringar behöver göras när enheter flyttas från ett nätverk till ett annat. 2.5 Protokoll Ethernet använder sig av protokoll i olika nivåer för att kommunicera. Alla protokoll har sina egna huvuduppgifter. Protokollen delas in i lager, där tanken är att varje lager tillhandahåller en specifik tjänst, som är oberoende av de tekniker som används i lagret ovanför eller nedanför. 2.5.1 Internetprotokoll Internetprotokollet som oftast kortas till IP, är ett kommunikationsprotokoll som används för dataöverföring över nätverk. Internetprotokollet garanterar inte att informationen når mottagaren, utan ansvaret för detta överlåts till de aktuella protokollen i transport- eller applikationslagret. 11

2.5. Protokoll Kapitel 2. Ethernet Varje enhet som vill kommunicera med en annan, identifieras med hjälp av deras IP-adress. IP-protokollet definierar sina egna paket vilka är minst 20 bytes långa. Data kan gå förlorad på grund av olika anledningar till exempel via störningar i överföringskanalen eller för att nätet är överbelastat, den kan tas emot flera gånger, eller den kan komma i en annan ordning än den skickades. Genom en 32 bitars checksummekontroll kan Ethernetpaketet upptäcka eventuella fel, mottagaren kan då utgå från att information som tas emot är korrekt. 2.5.2 Transmission Control Protocol Dataöverföring över nätverk med IP är en mycket opålitlig metod, data kan gå förlorad på grund av fel eller överbelastning. TCP-protokollet är ett förbindelseorienterat dataöverföringsprotokoll som används för huvuddelen av all kommunikation över Internet. Protokollet kan garantera en felfri och komplett överföring av data mellan sändare och mottagare. Detta genom att etablera en förbindelselänk mellan sändare och mottagare innan överföringen börjar, när överföringen är slutförd stängs länken ner. Överföring via TCP TCP består av tre olika delar, anslutning, dataöverföring och nedkoppling. Under anslutningsfasen skickar klienten ett SYN-segment till mottagaren. Om mottagaren accepterar överföringen skickas ett ACKSYN-segment tillbaka till sändaren. När sändaren får ACKSYN-segment skickar han tillbaka ACK-segment och anslutningsfasen går över till dataöverföring. Om mottagaren inte accepterar skickas ett RST-segment, vilket avbryter överföringen. Under dataöverföringsfasen skickas data i IP-paket, när mottagaren har mottagit ett paket skickar den ACK-segment för att visa att den har fått informationen. Om inte sändaren får ACK-segment inom en viss tid antar sändaren att paketet har försvunnit, och skickar det igen. När en av ändpunkterna inte har något mer att skicka markerar den detta med att skicka ett FIN-segment. Mottagaren bekräftar detta med en ACK-segment och då stänger normalt mottagaren sin del av förbindelsen med ett FIN-segment men detta är inget krav. Figur 2.4 visar hur överföringen via TCP fungerar. 12

Kapitel 2. Ethernet 2.5. Protokoll Figur 2.4: Överföring via TCP För- och nackdelar Fördelar med TCP är att den kan garantera felfri och komplett överföring, dock saktar detta ner hanteringen av data, vilket gör att TCP inte tillämpar sig för användning i tidkritiska applikationer, då det är viktigt att informationen når mottagaren snabbt. 2.5.3 User Datagram Protocol UDP är ett förbindelselöst transportprotokoll som skickar data över IP-nätverk, vilket gör att alla datapaket behandlas som individuella överföringar och det sker ingen transportkonfirmering. Den förbindelselösa överföringen betyder att ingen session upprättas mellan sändaren och mottagaren av protokollet. Detta gör att sändaren inte kan garantera att mottagaren får paketet. Mottagaren kan inte heller veta att den fått alla paket, eller att de paket den mottagit har kommit i rätt ordning. Då UDP utesluter time-out övervakning och etableringen samt stängningen av förbindelsen blir UDP snabbare, detta gör att den lämpar sig bättre för tidskritiska applikationer än vad TCP gör. Förbindelseövervakningen och datablockeringen som ingår i TCP kan utföras i UDP på applikationsnivån, till exempel genom RPC (Remote Procedure Call). UDP bidrar inte i någon större utsträckning med några funktioner mellan nätverksskiktet och applikationsskiktet förutom portnummer och enklare undersökning på mottagarsidan av eventuella fel på segment. Undersökningen 13

2.6. Sammanfattning Kapitel 2. Ethernet görs normalt genom att beräkna en kontrollsumma. Om mottagaren upptäckt ett trasigt UDP-segment kastas den vanligtvis bort eller skickas vidare med en varning till applikationsskiktet. Mottagaren begär alltså inte sändaren att återsända segmentet såsom TCP, detta överlåts till applikationsskiktet som använder sig av UDP. 2.5.4 TCP/IP TCP/IP är en samling av flera olika protokoll och varje dator som använder sig av TCP/IP-protokollet kommer att ha en IP-adress. Detta gör att alla datorer runt om i världen kan skicka paket mellan sig. TCP/IP är det mest använda transportlagerprotokollet både när det gäller användning i kontorsmiljöer som industriella sammanhang, den kan även hantera de fyra mest inträffade felen. Paket kan dubbleras, ankomma i fel ordning, försvinna eller vara korrupta. Detta gör att nästan all kommunikation på Internet använder sig av TCP/IP. 2.5.5 UDP/IP UDP/IP kan inte garantera en felfri överföring mellan två enheter som TCP kan. Detta kan användas när nätverket i sig är säkert, till exempel i lokala nätverk (LAN), då kan transportprotokollet konfigureras lite enklare. UDP är ett minimaliskt transportprotokoll som innehåller bara de nödvändiga funktionerna för dataöverföring. Protokollet använder sig av enkel förbindelselös överföring, till skillnad från IP använder sig UDP endast av portnummer och checksumma. Checksumman används för att kontrollera dataöverföringen och även detta är valbart, alla andra felaktiga hanteringsmekanismer som finns i TCP finns inte i UDP utan dessa måste tas om hand av andra protokoll i applikationslagret. Största fördelen med UDP är dess hastighet, som är nästan tre gånger högre än hastigheten hos TCP. 2.6 Sammanfattning Standard Ethernet arbetar efter en icke-deterministisk princip, vilket ger alla enheter samma rättigheter till överföringskanalen. Alla inkopplade enheter kan skicka data till en annan enhet. Vanligaste topologierna är stjärnstruktur, trädstruktur och linjestruktur. I praktiken är nätverken en blandning av dessa strukturer, de kan implementeras och användas med PROFINET antingen med fiberoptiska- eller kopparkablar. 14

Kapitel 2. Ethernet 2.6. Sammanfattning Varje enhet adresseras med en unik MAC-adress som har en fast längd på 48 bitar (6 bytes), där de första 24 bitarna är ett OUI-nummer och resten är ett tillverkarspecifik del. För att garantera att det inte finns fler än en enhet med ett specifik MAC-adress, ligger den kodad i hårdvaran. Internetprotokollet används för dataöverföring över nätverk, den kan inte garantera att informationen når mottagaren utan ansvaret lämnas till de aktuella protokollen i transport- och applikationslagret. TCP-protokollet är ett förbindelseorienterat dataöverföringsprotokoll som kan garantera en felfri och komplett överföring av data mellan sändare och mottagare. Detta tack vare överföring som består av tre delar, där en anslutning först skapas mellan mottagaren och sändaren därefter görs dataöverföringen, och när överföringen är klar stängs anslutningen mellan mottagaren och sändaren. UDP-protokollet är ett förbindelselöst protokoll som behandlar alla datapaket som inviduella överföringar, ingen anslutning skapas mellan mottagaren och sändaren. 15

Kapitel 3 PROFINET Inom automation kan varje aktiv process innebära en risk som kan skada människor och miljön. Normalt är detta lätt att undvika, men det finns applikationer där risken är större, såsom vid kemiska processer, verkstadsmaskiner eller gashantering. Ett sätt att lösa detta är att koppla in enheter nära processen vars uppgift är att samla in processdata och skicka den periodisk till en styrenhet i systemet. Styrenheten tar emot processdata och larm och bearbetar dem. Genom att skicka data periodisk kan bortfall av en enhet upptäckas snabbt. Det finns flera lösningar för denna typ av kommunikation, ett exempel är PROFINET som är en öppen standard för industriellt Ethernet och uppfyller alla behov inom automation. PROFINET finns i två utföranden PROFINET IO och PROFINET CBA (Component Based Automation), där IO är en decentral lösning och CBA är en komponentbaserad lösning. PROFINET IO och PROFINET CBA kan arbeta var och en för sig eller tillsammans. PROFINET är en automationsstandard som är Ethernet-kompatibel till hundra procent enligt IEEE-standarder [1]. Detta kapitel beskriver PROFINETs användningsområden, och hur realtidkommunikation fungerar. Stor vikt läggs på PROFINET IO där bland annat cykliskt och acykliskt datautbyte tas upp, men även begrepp som granndetektering och larm. Kapitlet avslutas med en beskrivning om PROFIsafe och hur PROFINET kan implementeras. Hela den ursprungliga undersökningen finns beskriven i dokumentet [PFB1-2601]. 16

Kapitel 3. PROFINET 3.1. Realtidskommunikation 3.1 Realtidskommunikation PROFINET använder sig av Ethernet och TCP/UDP med IP, som bas för all kommunikation. TCP/UDP/IP är bara grunden i kommunikation via Ethernet därför behövs ytterligare protokoll och specifikation, så kallade applikationsprotokoll. De olika applikationsområdena inom industrin kräver olika mycket av kommunikationen, inom PROFINET används tre olika kommunikationskanaler, som var och en har olika egenskaper. PROFINET använder sig av TCP/IP samt UDP/IP för icke tidskritiska processer. Då datautbytet kräver högre prestanda används realtidskommunikation (RT) och då processen kräver synkronisering används Isokron realtid (IRT). System måste uppfylla följande fyra kriterier: Körtid, cykeltid, svarstid: det högsta tillåtna värdet får aldrig överskridas. Jitter: då hastighet och precision ökar måste tidvariationerna bli mindre. Synkronisering: den högsta möjliga noggrannheten är ett krav. Genomströmning: måste kunna garanteras att data skall kunna skickas inom en bestämd tid. Generella krav för realtidskommunikation är deterministisk och definierad svarstid, normalt 5ms för standard applikationer [1]. 3.1.1 Realtidskommunikation RT Vid dataöverföring över TCP/IP och UDP/IP skickas en viss mängd administrativoch styrinformation för adressering bland annat, detta slöar ner datatrafiken[2] Detta gör att TCP/IP och UDP/IP inte kan användas vid realtidskommunikation, för att åstadkomma möjligheten för realtidskommunikation väljer man bort delar av IP-adresseringen och flödeskontroll med TCP och UDP för realtidskommunikation. Realtidskommunikation kan alltid löpa parallellt med icke tidskritisk kommunikation. Olika typer av realtidskommunikation: Inom nätverket då behövs ingen adressinformation om mottagarnätverket. Genom användning av RT-kanalen kan man nå en busscykeltid på några få millisekunder[1]. Mellan nätverk då behövs adressinformation till mottagarens nätverk då används RT över UDP Multicast dataöverföring med RT då används RT över UDP 17

3.1. Realtidskommunikation Kapitel 3. PROFINET Realtidsöverföring i PROFINET använder sig av Producent/Konsument - modellen. Cyklisk data såsom processvärden överförs i ett fixt intervall från sändaren till mottagaren oskyddat och utan bekräftelse. Följande gäller för kommunikation mellan mottagare och sändare: Cykliskt utbyte av data som är utförs anslutningsorienterat. Etableringen och anslutningen görs med högnivå protokoll Endast data som tillsammans med protokollhuvud inte överskrider längden av ett Ethernetpaket, kan överföras mellan mottagare och sändare. Realtid tillåter inte segmentering av datapaket Mottagaren sänder ingen bekräftelse att den har mottagit datapaket Konsumenten använder en intern timer för att övervaka sändarens överföringscykel 3.1.2 Isokron Realtidskommunikation IRT Förutom realtidskapacitet kräver vissa processer isokron I/O-överföring med maximal exakthet. Vid isokron kommunikation måste busscykeln klockas exakt, med en bestämd maximal avvikelse och konstant klocksynkronisering. Endast på detta sätt kan tidsintervallen för överföringen av I/O-data säkras med högsta möjliga precision. På så sätt uppnås IRT busscykeltider på under 1ms och med maximal avvikelse på 1µs. För att IRT-kommunikation skall fungera måste alla fältenheter som ingår i IRTkommunikationen, synkroniseras från samma klockmaster. Krav för IRT-styrning: På grund av realtidskravet sker kommunikationen endast inom ett subnät, eftersom det inte finns några adresser tillgängliga via TCP/IP. Adressmetoden är begränsad så att det räcker med endast MAC-adresser. Busscykeln delas in i en IRT-fas och en icke isokron fas, enligt Figur 3.1. Under IRT-fasen sker en synkronisering, till detta används PTCP-protokoll (Precision Transparent Clock Protocol). Noggrannheten i synkroniseringen beror på applikationen men är i de flesta fall under 1µs IRT-kommunikation behöver ett speciellt hårdvarustöd i form av en ASIC med integrerad switch-funktionalitet och cykelsynkronisering [2]. Uppgiften är att övervaka övergångarna mellan de olika faserna. I övergången mellan en IRT-fas och en icke 18

Kapitel 3. PROFINET 3.1. Realtidskommunikation Figur 3.1: Uppdelning av bandbredd isokron fas skall ASICen avgöra om man hinner skicka ett icke isokron telegram utan att IRT-fasen fördröjs [1]. Om IRT-kommunikation används i en installation måste man redan vid konfigureringen dela upp bandbredden i en del för IRT och en del som inkluderar TCP/IP, UDP/IP och RT. Endast tidskritisk I/O-data sänds i det reserverade intervallet, medan resterande data sänds inom den öppna fasen [3]. 3.1.3 Synkronisering I ett nätverk med applikationer med hög precision måste alla noder, med en konfigurerad IRT-port vara synkroniserade med yttersta precision. För att synkronisera noderna till en gemensam klocka måste kabelfördröjningen mellan närliggande noder och den aktuella synkroniseringen bestämmas. PROFINET använder en automatisk funktion för att exakt beräkna alla tidsparametrar från överföringslänken. Till detta används PTCP som är en basfunktion i PROFINET ASICs. PTCP-protokollet används för att synkronisera tiden mellan klockmaster och klockslavarna. Noggrannheten för detta beror till viss mån på applikationen men är i allmänhet under 1µs, om de befinner sig i samma subdomän. PTCP stödjer en mastermodell med upp till 32 olika klockor [2]. De viktigaste fördelarna med PTCP: Noggrannhet på <1µs Låg användning av resurser Inga krav på prestanda hos minne och CPU Minimal användning av bandbredd Låga administrationskrav 19

3.1. Realtidskommunikation Kapitel 3. PROFINET Tidsynkronisering Vanligast är att använda sig av nätverksnoden som har den mest exakta klockan, även kallad klockmaster. Används för att synkronisera de lokala klockorna i de andra nätverksnoderna (klockslavar). Synkroniseringen görs genom att cykliskt byta sekvenser av synkroniseringsmeddelanden mellan två nätverksnoder. Alla meddelanden har ett sekvensnummer som ökar för varje meddelande. Synkroniseringsproceduren är delad i två delar, mätning av fördröjningen i överföringslänken mellan enheterna, och synkronisering av klockorna, genomförd av klockmaster och klockslaven. Tidssynkroniseringen med PTCP börjar med att klockmasten skickar synkroniseringsmeddelande till definierade multicast-adresser. Meddelandet innehåller värdet på klockmasterns klocka och lokala fördröjningen hos klockmastern [2]. Med hjälp av denna information kan slavarna synkronisera sina lokala klockor. Varje PTCP nätverksnod i överföringslänken (för typiska värden se Tabell 3.1) mellan klockmaster och klockslav genererar ytterligare en fördröjning, detta måste tas hänsyn till vid synkroniseringen [2]. Tabell 3.1: Typiska värden på fördröjning i överföringslänken Komponent Fördröjning Kabel 5ns/m Sändare/mottagare 100-300ns Switch 10µs 20

Kapitel 3. PROFINET 3.2. PROFINET IO 3.2 PROFINET IO PROFINET IO-fältenheter ansluts alltid via switchar, detta skapar en stjärntopologi eller en linjetopologi. PROFINET IO adresseras med sin enhets MAC-adress då den kopplas in i ett nätverk. Vissa telegram skickas via MAC-adresserna för respektive port och inte till enhetens MAC-adress(till exempel vid synkronisering). Detta gör att en switch med 2-portar har 3 MAC- adresser, en för varje port och en för själva enheten. Port MAC-adresserna är dock inte synliga för användaren. Eftersom fältenheterna är anslutna med switchar ser PROFINET bara punkt-till-punkt-förbindelser, detta leder till att om en förbindelse mellan två fältenheter bryts, så är enheterna inte tillgängliga efter avbrottet. PROFINET IO:s viktigaste delar: Kapacitet, automation i realtid Felsäkerhet, felsäker med PROFIsafe Diagnostik, snabb driftsättning och effektiv felsökning Successiv integration av fältbussystem PROFINET IO enheter delas in i tre olika typer: IO Styrenhet (Controller) styr en process fördelad på en eller flera fältenheter. Den samlar processdata och larm och bearbetar dem i ett användarprogram. I automationsinstallationer är en IO-styrenhet normalt en PLC (Programmable Logic Controller), ett DCS-system (Distributed Control System) eller en PC. Den ansvarar för etableringen av kommunikationskanalerna under uppstart. IO Övervakning (Supervisor) kan vara en ingenjörsstation i en anläggning, som har tillfällig access till fältenheterna under konfigureringsfasen. IO Enhet (Device) är en decentralt ansluten fältenhet nära processen. Den konfigureras av en IO-Supervisor eller en IO-styrenhet och skickar processdata periodiskt till IO-styrenheten. En IO-enhet kan ha kommunikationsförbindelser till multipla IO-styrenheter och IO-övervakare samtidigt. PROFINET IO tillämpar Producent/Konsument modellen under datautbytet. Producenten tillhandahåller data och konsumenten bearbetar detta. En anläggning har minst en IO-styrenhet och en eller flera IO-enheter. IO-enheten kan utbyta data med flera IO-styrenheter. IO-övervakaren är normalt bara tillfälligt ansluten under felsökning och drifttagning. (enligt Figur 3.2) 21

3.2. PROFINET IO Kapitel 3. PROFINET 3.2.1 Styrenhet Figur 3.2: PROFINET IO anläggning Styrenheten innehåller styrprogrammet för ett automationssystem. Den begär processdata från IO-enheterna som konfigurerades under uppstart, därefter kör den sitt styrprogram och skickar data till IO-enheten. Följande data definieras under systemkonfigurationen: IO-enhetens utbyggnadsgrad Specifika parametrar Överföringsfrekvensen Utbyggnadsgraden för automationssystemet Information om larm och diagnostik I ett PROFINET-system är det möjligt att använda flera styrenheter, om de ska ha tillgång till samma data i en IO-enhet måste detta specificeras vid konfigureringen. IO-styrenheten får konfigurationsdata för automationssystemet och etablerar på egen hand applikation- och kommunikationsrelationer med IO-enheterna. IO-styrenheter kan etablera en AR (Application Relation) vardera till multipla IOenheter. AR tillåter användning av flera IOCR (Input Output Configuration Register) och API (Application Programming Interface) vid datautbyte, detta är användbart om flera användarprofiler är inblandade i kommunikationen och olika subslots behövs. 22

Kapitel 3. PROFINET 3.2. PROFINET IO En IO-styrenhet måste stödja: Larmhantering Processdatautbyte Acykliska tjänster Parametrisering Diagnostik av konfigurerade IO-enheter Adresstilldelning med DCP-protokoll (Discovery and basic Configuration Protocol) API Initiera context uppbyggnad för en IO-enhet Parameterserverfunktion Parameterserverfunktionen finns för att backa upp och ladda ner dynamiska parametrar för en fältenhet. Parametriseringen av en fältenhet görs med hjälp av parametrarna i GSD-filen (General Station Description). Dessa lagras som statiska parametrar och kan laddas ner från IO-styrenhet till en IO-enhet under systemuppstart. Det är för många fältenheter antingen omöjligt eller olämpligt att initiera parametrar med hjälp av GSD-filen på grund av dess storlek. 3.2.2 Fältenheter Deras uppgift är att samla in och skicka processignalerna i ett automationssystem. För att detta ska vara möjligt behövs det en viss form av funktionalitet integrerad i antingen fastställd form eller så att det kan konfigureras. Fältenheter kan delas in i kompakta enheter som har fast och icke ändringsbar kapacitet för utbyte av processdata, och modulära enheter vars egenskaper kan anpassas till applikationen. Applikationslagret i PROFINET beskriver både kompakta och modulära enheter. Modulerna representerar fysiska platser, så kallade slots. En slot kan innehålla minst en, ibland flera subslots, som är ett extra adresseringslager. Subslots kan i sin tur ha 1 till n kanaler, detta gör det möjligt att gruppera kanaler som hör ihop. Index används för att koppla ihop data med en specifik subslot, index anger även de data som kan läsas eller skrivas acykliskt. 23

3.2. PROFINET IO Kapitel 3. PROFINET För att kunna utbyta cyklisk och acyklisk data mellan en IO-enhet och IO-styrenhet/IOövervakare, måste de kommunikationskanaler som behövs skapas vid systemets uppstart av IO-styrenhet. AR som hör till de olika förbindelser innehåller all data som behövs för datautbyten. AR kan innehålla multipla kommunikationsrelationer, CR (Communication Relations), därför är CR möjlig för varje AR. Context Management CM En IO-enhet levererar ingångsdata från en automationsprocess till en IO-styrenhet, och får utgångsdata för att kontrollera processen. En IO-övervakare kan också kommunicera på samma sätt med en IO-enhet. För att kunna göra detta datautbyte måste applikations- och kommunikationsrelationen finnas. För detta används context management, vars uppgift är att hantera applikations- och kommunikationsrelationer. CM gör bland annat detta: Initialisera applikationsrelationer och kommunikationsrelationer Sätter relevanta kommunikationsparametrar för kommunikationsrelationen, till exempel time-out och operations läge. 24

Kapitel 3. PROFINET 3.2. PROFINET IO Applikationsrelationer AR För att starta kommunikationen mellan överordnade styrsystem och en IO-enhet måste kommunikationsvägarna etableras. Detta görs under systemuppstart av IOstyrenheten, baserat på den konfigurationsdata den har fått från ingenjörsverktyget, denna specificerar otvetydigt hur datautbytet skall ske. Varje datautbyte har en inbyggd applikationsrelation, som etablerar en klar specificerad förbindelse, exempelvis en AR mellan överordnat styrsystem och IO-enheten. En IO-enhet kan ha multipla applikationsrelationer etablerat med olika IO-styrenheter. Följande applikationsrelationer finns i PROFINET IO: IO AR Cyklisk datautbyte av I/O-data mellan två enheter eller mellan en sändare och flera mottagare Acyklisk datautbyte genom läs/skriv funktion Skicka larm Supervisor Datautbyte mellan IO-övervakare och IO-enhet Ta kontroll över en eller flera submoduler av IO-enheten Implicit AR Läsning av cyklisk eller acyklisk data av IO-övervakare från IO-enhet eller IO-styrenhet Applikationsrelationer är logiska, virtuella element som möjliggör datautbyte mellan två enheter i en kommunikationskanal. IO-enheten har en passiv roll, vilket gör att det alltid är antingen IO-styrenheten eller IO-övervakaren som etablerar kommunikationen i PROFINET IO system. Redan vid uppstart etableras den första kommunikationsrelationen mellan IO-styrenhet/IO-övervakare och IO-enhet. Under etableringen överförs följande information till IO-enheten. Generella kommunikationsparametrar av AR Modelering av enheten IO Data CR för etablering samt dess parametrar Event CR för etablering samt dess parametrar Överförd information kontrolleras av enheten och de begärda kommunikationsrelationerna initialiseras. Om något inte stämmer skickas en felsignal tillbaka till styrenheten som begärde relationen. 25