Dataingenjör 180 HP EXAMENS Virtual Training Tool ARBETE Mjukvarubaserat utbildningsverktyg Victor Alveflo Examensarbete 15 HP Halmstad den

Relevanta dokument
The Intelligent Timer

Projekt EITA15. Väckarklocka. LTH Ingenjörshögskolan vid Campus Helsingborg Datateknik

PlantPuppy Räddaren för den som inte kan hålla växterna vid liv

Undervisningen i ämnet mobila applikationer ska ge eleverna förutsättningar att utveckla följande:

Pulsmätare med varningsindikatorer

Digitala projekt, EDI021 Rapport Handledare: Bertil Lindvall

Minnesisolering för virtuella maskiner en hypervisorstudie

Systemskiss. LiTH AMASE Accurate Multipoint Acquisition from Stereovision Equipment. Jon Månsson Version 1.0

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Temperaturmätare med lagringsfunktion DIGITALA PROJEKT EITF11 GRUPP 14, ERIK ENFORS, LUDWIG ROSENDAL, CARL MIKAEL WIDMAN

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

Titel Mall för Examensarbeten (Arial 28/30 point size, bold)

DIGITALA PROJEKT Väderstation

1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till?

Simulering av brand i Virtual Reality

Frekvenstabell över tärningskast med C#

Projektplan, Cykelgarage

Modbus över Ethernet. WAGO Contact SA TSS STR

Metoder och verktyg för funktionssäkerhet

Kort om simulering och simulatorer

Laboration i datateknik

PACOM UNISON SECURITY MANAGEMENT MADE EASY

Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet...

Cargolog Impact Recorder System

Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson

Filhanterare med AngularJS

Objektorienterad programmering Föreläsning 2

Detta är en liten ordlista med förklaringar på begrepp och aktiviteter relaterade till. elvisualiseringsverktyg

Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall

FÖRELÄSNING 8 INTRODUKTION TILL DESIGN AV DIGITALA ELEKTRONIKSYSTEM

Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems

Produktutvecklingsprocessen. (e)lvis

Introduktion till E-block och Flowcode

Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,

Tjoho. Applikationsutvecklarens handledning. Maj 2003

KONSTFACK Institutionen för design, inredningsarkitektur och visuell kommunikation KURSPLAN

Testplan. Flygande Autonomt Spaningsplan. Version 1.0. Dokumentansvarig: Henrik Abrahamsson Datum: 14 mars Status.

Projekt Fake för Virtutech

Universe Engine Rapport

Modbus. WAGO Contact SA TSS STR

M7005 och IBR Användarhandbok

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

TETRIS. LTH, Campus Helsingborg EITA15 Digitala System

Publicera och registrera uppsats (examensarbete) i DiVA

Beijer Electronics AB 2000, MA00336A,

Slutrapport Get it going contracts

Digitala Projekt VT13. PING-Pong

RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk

campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Innovation för system integration

Exempel på verklig kravspecifikation

Temperaturregleringssystem

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Thomas Pettersson. Sammanfattning. Född: Telefon: Kristinagatan 23B Norrköping.

Optimering och simulering: Hur fungerar det och vad är skillnaden?

ABOUT US LIABILITY - SAFETY - QUALITY. Participates in the following Technical Committees SIS/TK 282

Exempel ode45 parametrar Miniprojekt 1 Rapport. Problemlösning. Anastasia Kruchinina. Uppsala Universitet. Januari 2016

729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Skriv ditt idnummer på varje blad (så att vi inte slarvar bort dem).

Webbserverprogrammering

Locum AB. Anders Gidrup säkerhetschef Locum AB

Intelligenta kranar för utomhusbruk

Hydrauliskt styrd kran

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

Azure Designer. Version 1.0 Mats Persson

Testning av applikationer

SKOLFS. beslutade den XXX 2017.

SIMULERING. Vad är simulering?

Testdokumentation av simulatorprototyp, steg 1

PROGRAMMERING I NXC. Sammanfattning KUNGLIGA TEKNISKA HÖGSKOLAN

Systemskiss. Michael Andersson Version 1.0: Status. Platooning Granskad DOK, PL Godkänd Erik Frisk

Kravspecifikation för hårdvaruprojekt i kursen Datorsystemteknik, HT2005. Temperaturvakt med loggningsfunktion

Testplan Autonom truck

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Kravspecifikation TOPSim, steg 2

Modellering av en Tankprocess

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Kursplan Webbutveckling 2, 100p Läsår

PROGRAMMERING AV LEGO-ROBOT VIA NXC

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Systemkonstruktion LABORATION REALTIDSPROGRAMMERING

Digitala Projekt (EITF11)

WEBBSERVERPROGRAMMERING

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

krävs för att kunna utföra arbete. Den finns i många former men kan inte förstöras, bara omvandlas från en form till en annan.

Carl-Fredrik Lindberg, ABB Corporate Research. Automation Scandinavia, Trådlös kommunikation i industrin - ett PiiA-projekt

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

QC i en organisation SAST

Opponenter: Erik Hansen Mats Almgren Respondent: Martin Landälv ioftpd-verktyg

Systemskiss. LiTH Autonom bandvagn med stereokamera Gustav Hanning Version 1.0. Status. TSRT10 8Yare LIPs. Granskad

KUNGLIGA TEKNISKA HÖGSKOLAN. Laboration II1310. Programmera Lego Mindstorm robot i NXC


LIPs Daniel Axehill ChrKr Projektdirektiv_Saab_v3 CKr

Vanliga frågor för VoiceXpress

Växtviskaren EITF11 Digitala projekt VT15, I12

Björn Åstrand

Lunds Tekniska Högskola Avdelningen för industriell elektroteknik och automation

Transkript:

EXAMENSARBETE

Virtual Training Tool Ingenjörsuppsats 2014 Januari Författare: Victor Alveflo Handledare: Erik Hertz Examinator: Kenneth Nilsson Sektionen för informationsvetenskap, data- och elektroteknik Högskolan i Halmstad Box 823, 301 18 HALMSTAD

Copyright Victor Alveflo, 2014. All rights reserved Ingenjörsuppsats Sektionen för informationsvetenskap, data- och elektroteknik Högskolan i Halmstad I

Förord Detta är ett högskoleingenjörsarbete och har genomförts på sektionen för Informations-vetenskap, Data- och Elektroteknik (IDE) på Högskolan i Halmstad och omfattade 15 hp. Jag skulle vilja tacka min handledare Erik Hertz, doktorand på Högskolan i Halmstad, för vägledning och rådgivning under projektets gång. II

Sammanfattning En viktig del hos företag som tillverkar diverse industrimaskiner är att utbilda den personal som förväntas använda och underhålla maskinerna. Detta är för att ge användaren en god förståelse för hur maskinen i fråga fungerar och är uppbyggd. Vid sådana utbildningar är det viktigt att tillhandahålla användarvänligt utbildningsmaterial. Målet med detta examensarbete är att förbättra användarvänligheten för utbildningsmaterialet hos en viss utbildning för projektets uppdragsgivare. Den utbildning som skall förbättras går i dagsläget ut på att manuellt simulera processer hos en specifik maskin via en hårdvarubaserad simuleringsmiljö. Resultatet blev en lösning i form av en mjukvarubaserad simulator med tillhörande grafiskt användargränssnitt. Användaren kan därigenom på ett säkert sätt simulera maskinens beteende genom ett PC-program och då t.ex. skapa nödsituationer utan att användarens säkerhet sätts i fara. III

Abstract An important part at companies that s manufacturing industrial machines is to provide training for the machines end-users such as daily machine operators and technicians, in order to give them a good understanding about how the concerned machine works. At these kinds of trainings it s very important that the training material used to train the users provides a high user-friendliness. The goal with this thesis is to improve the user-friendliness of an existing training tool for a specific training course from the projects client. The training course that s going to be improved is currently using a hardware-based simulator that s used to manually simulate processes at a certain machine. The result was a solution in shape of a software-based simulator with associated graphical user interface. The user can thus within safe circumstances simulate the concerned machines behavior through a PC-program and e.g. create emergency situations without putting the users safety in danger. IV

V

Innehåll 1 Inledning... 2 1.1 Problemformulering... 2 1.2 Syfte... 3 1.3 Mål... 3 1.4 Krav... 3 1.5 Avgränsningar... 3 2 Bakgrund... 4 2.1 Beskrivning av befintligt PLC-system... 4 2.2 B&R Automation Runtime... 5 2.2.1 Realtidsoperativsystem... 5 2.2.2 Uppbyggnad... 6 2.3 Simulering... 6 2.3.1 Simulatordesign... 6 2.4 HMI... 8 2.4.1 HMI design... 8 3 Metod... 11 3.1 Instudering... 11 3.2 Verktyg... 12 3.2.1 B&R Automation Studio... 12 3.2.2 Paint.NET... 12 3.3 Simulering... 12 3.4 Mjukvarudesign... 14 3.5 HMI... 14 3.6 Test... 16 3.6.1 Löpande testning... 16 3.6.2 Sluttest... 16 4 Resultat... 17 4.1 Simulering... 17 4.2 HMI... 19 4.3 Mjukvarudesign... 21 4.4 Test... 25 4.4.1 Sluttest... 25 5 Slutsatser... 27 5.1 Resultat... 27 5.2 Vidareutveckling... 27 5.3 Erfarenheter... 27 6 Diskussion... 28 7 Referenser... 29 VI

Figurförteckning Figur 1: Hårdvarubaserat simuleringsverktyg... 2 Figur 2: Systemöverblick över befintligt PLC-system... 4 Figur 3: Exempel på HMI på en TFT-touchpanel från B&R (1)... 8 Figur 4: Exempel på dålig HMI design (6)... 9 Figur 5: Exempel på effektiv HMI design (6)... 9 Figur 6: Designprocess simulator... 12 Figur 7: Exempel på en process... 13 Figur 8: Exempel på fasindelning av process... 14 Figur 9: Designprocess HMI... 15 Figur 10: Processdata från maskin... 18 Figur 11: Processdata från simulering... 18 Figur 12: HMI: Startsida... 19 Figur 13: HMI: Manuell simulering... 20 Figur 14: HMI: Automatisk simulering... 21 Figur 15: Tillståndsmaskin mjukvara... 22 Figur 16: Flödesschema automatisk simulering... 23 Figur 17: Flödesschema manuell simulering... 24 Tabellförteckning Tabell 1: B&R Automation Runtime cykelindelning... 6 Tabell 2: Karakteristik dålig samt effektiv HMI design... 9 Tabell 3: Testresultat simulator... 25 Tabell 4: Testresultat HMI... 25 Tabell 5: Testresultat sluttest... 26 VII

Akronymförteckning PLC HMI RTOS Programmable Logic Unit Human-Machine Interface Real-Time Operating System VIII

1

1 Inledning 1.1 Problemformulering Uppdragsgivaren för detta projekt är ett företag som tillverkar medicinteknisk utrustning. Företaget har även en speciell avdelning som har hand om utbildning för de personer som skall komma att använda företagets produkter. De personer som använder produkterna kan då exempelvis vara sjukhuspersonal som dagligen använder utrustningen eller servicetekniker vars uppgift är att felsöka och åtgärda fel hos utrustningen. Syftet med utbildningarna skiljer sig därför åt beroende på vem det är som utbildas: syftet för den dagliga användaren av utrustningen är att förbereda personen i fråga på olika typer av nödsituationer som kan uppstå (felmeddelanden, alarm etc.) under användning och hur man går tillväga då de inträffar. Syftet med utbildningen för serviceteknikern däremot är, förutom samma sak som föregående, att ge teknikern en god förståelse för hur maskinen i fråga fungerar rent tekniskt. För att uppfylla de syften som utbildningarna innehar används i dagsläget ett utbildningsverktyg i form av en simuleringsmiljö. Anledningen till att en simuleringsmiljö används istället för en riktig maskin är för att användaren på ett säkert sätt skall kunna skapa nödsituationer och dylikt utan att användarens säkerhet sätts i fara. Den simuleringsmiljö som används i dagsläget är uppbyggd kring en hårdvarubaserad lösning, se figur 1. Figur 1: Hårdvarubaserat simuleringsverktyg Som visas i figur 1 består dagens utbildningsverktyg av diverse hårdvarukomponenter: PLC-modul, digitala brytare, potentiometrar etc. Dessa har utbildaren använt för att manuellt styra maskinens I/O-system (reglera tryck- och temperaturgivare t.ex.) och på så sätt manuellt simulera processer hos maskinen. 2

Det stora problemet med det ovan nämnda verktyget är att det är väldigt komplicerat att använda. Verktyget kräver att användaren har en god teknisk kompetens vilket i många fall användaren inte innehar. Ett annat problem är att det finns begränsade möjligheter till att visualisera I/O-signaler på ett pedagogiskt sätt. 1.2 Syfte Syftet med detta projekt är att förbättra utbildningsverktyget genom att ta fram en lösning som erbjuder högre användarvänlighet än vad det befintliga systemet har. Syftet är även att underlätta transport av utbildningsverktyget. 1.3 Mål Målet med projektet är att utveckla ett helt PC-baserat utbildningsverktyg med tillhörande grafiskt användargränssnitt. 1.4 Krav Kravspecifikationen för projektet utvecklades i samarbete med uppdragsgivaren: Simulatormjukvaran skall skrivas som en applikation på det befintliga mjukvarusystemet, dvs. PLC-mjukvara för maskinen. Simulatormjukvaran skall skrivas helt separat från det befintliga mjukvarusystem, dvs. inte ändra någon befintlig kod. Mjukvarudesignen skall utvecklas på ett sätt som bjuder in till vidareutveckling, dvs. följa riktlinjer för kodstandard och arkitektur. Simulatorn skall kunna simulera ett I/O-system. Simulatorn skall kunna köras i två lägen o Automatisk simulering o Manuell simulering 1.5 Avgränsningar Projektet kommer endast att utveckla en simulator som kan simulera beteendet hos en viss typ av maskin. Simulatorn kommer endast att kunna simulera ett förbestämt antal I/Osignaler i manuellt läge. Simulatorn kommer endast att kunna simulera en typ av process i automatiskt läge. 3

2 Bakgrund För att genomföra detta projekt krävdes instudering kring de områden som detta projekt huvudsakligen täcker: Uppbyggnad av det PLC-system och mjukvaruarkitektur som används på maskin Simulering och simulatorer HMI-design 2.1 Beskrivning av befintligt PLC-system Det befintliga PLC-systemet är uppbyggt med PLC-moduler från B&R (Bernecker + Rainer Industrie-Elektronik) (1). Systemet är uppbyggt med hjälp av tre lager, se figur 2. 1. Plattform Figur 2: Systemöverblick över befintligt PLC-system Plattformslagret är det lager som ligger längst ner i systemkedjan. Detta lager innehåller all gemensam funktionalitet för olika typer av maskiner. Exempel på sådan funktionalitet är initiering och kommunikation med hårdvara, dvs. drivrutiner till exempelvis PLC-modul, sensorer och brytare. Man kan säga att plattformslagret utgör ett komplement till det operativsystem (se kapitel 2.4) som används på de PLCmoduler som systemet använder sig av. Således kan plattformslagret jämföras med ett operativsystem. 2. Applikationsramverk 4

Applikationsramverket är ett lager som fungerar som ett interface mellan applikation och plattform. Det innehåller de funktioner som finns tillgängliga för användaren att anropa för att på ett säkert sätt kommunicera med plattformen för att eliminera risken att t.ex. användaren råkar ändra värden av misstag som kan få dramatiska konsekvenser. Applikationsramverket tillhandahåller därför endast den funktionalitet som användaren behöver känna till för att kunna skriva applikationer, allt annat sköts autonomt av plattformen. 3. Applikation Applikationslagret är det lager som innehåller själva applikationen, dvs. maskinspecifik kod. För att ge ett exempel på vad applikationen skulle kunna innehålla kan man tänka sig att maskinen i fråga är ett kylskåp för enkelhetens skull. Applikationen innehåller då beskrivning av kylskåpets funktionalitet uttryckt i mjukvara. Exempel på detta är beskrivning av I/O-systemet och dess uppbyggnad av logik dvs. vad som ska hända om en knapp är nedtryckt. I kylskåpsexemplet skulle applikationen vidare kunna innehålla beskrivning av de reglersystem som används för att hålla en jämn temperatur osv. 2.2 B&R Automation Runtime B&R Automation Runtime (2) är det realtidsoperativsystem som körs på de produkter som B&R tillverkar, t.ex. PLC-moduler. Det är alltså mot detta operativsystem som användaren av produkterna programmerar sina program emot. 2.2.1 Realtidsoperativsystem Ett RealTidsOperativSystem (RTOS) (3) är en typ av operativsystem där den huvudsakliga egenskapen är att händelserna i operativsystemet skall vara förutsägbart, dvs. eventuella schemalagda uppgifter skall utföras eller vara utförda vid den tidpunkt som uppgiftens deadline talar om. Ett realtidsoperativsystem blir således förutsägbart ur ett tidsmässigt perspektiv. Anledningen till att detta är användbart är för att man vid många olika tillämpningsområden måste kunna förlita sig på att saker och ting händer exakt när de ska hända och att uppgifter inte bli försenade. Ett operativsystem som inte är ett realtidsoperativsystem har inte de kraven, det spelar t.ex. inte så stor roll om ett dokument blir utskrivet från en PC med några minuters fördröjning. Däremot om en dator i ett flygplan lägger på några minuters fördröjning vid utfällning av landningshjulen kan detta få dramatiska konsekvenser man behöver därför kunna förlita sig på att operativsystemet är förutsägbart och därmed använda sig av ett realtidsoperativsystem! 5

2.2.2 Uppbyggnad B&R Automation Runtime är uppbyggt på det sätt att man som användare delar in sina mjukvarukomponenter i olika cykler med angivna cykeltider. Detta tillåter då att användarens mjukvarukomponenter kan exekveras cykliskt, se tabell 1. Cykel #1 Cykeltid: 10 ms Mjukvarukomponent 1 Mjukvarukomponent 2 Cykel #2 Cykeltid: 50 ms Mjukvarukomponent 3 Tabell 1: B&R Automation Runtime cykelindelning Detta gör att man som användare kan försäkra sig om att rätt mjukvarukomponenter exekveras med rätt frekvens. Anledningen till att operativsystemet är uppbyggt runt cyklisk exekvering är för att operativsystemet används på PLC-moduler och det ligger i PLC-modulens natur att exekvera program cykliskt. 2.3 Simulering Simulering (4) betyder att man, oftast i studie- eller utbildningssyfte, återskapar eller efterhärmar en verklighet utifrån ett känt system i en såpass stor utsträckning som sammanhanget kräver. Komplexiteten hos en simulator beror därför på hur verklighetstrogen simuleringen behöver vara. Ett exempel här är en flygplanssimulator vars syfte är att utbilda piloter och besättning. Vid sådana utbildningar tränas piloterna att flyga och manövrera ett flygplan och även hur de ska handskas med olika typer av nödsituationer som kan uppstå under flygningar. För att en sådan utbildning ska vara värdefull kräver uppgiften därför att simulatorn ska vara otroligt verklighetstrogen. 2.3.1 Simulatordesign När man designar en simulator finns det ett antal huvudsakliga riktlinjer som man bör följa (5): Problemspecifikation 6

Vid problemspecifikationen gäller det att inhämta information om vad syftet med simulatorn är och vilka krav som simulatorn skall uppfylla. Detta resulterar i en systemavgränsning där man bestämmer vilka delar av den studerade verkligheten som skall ingå i simuleringen samt hur verklighetstrogen simuleringen behöver vara för att uppfylla kraven. Detta kommer att avgöra komplexiteten hos simulatorn. Exempel på problemspecifikationer som tas fram här kan vara följande egenskaper för simulatorn: Deterministisk eller stokastisk simulering En viktig del i problemspecifikationen är att bestämma om simuleringen skall vara deterministisk eller stokastisk: o Deterministisk simulering Att en simulering är deterministisk betyder att simuleringen inte innehåller några slumpelement. På så vis blir simuleringen helt och hållet förutsägbar med avseende på de parametrar som matar den framtagna modellen med! o Stokastisk simulering Att en simulering är stokastisk betyder att simuleringen innehåller slumpelement. Ett exempel på en simulering som är stokastiskt skulle kunna vara en simulering över hur förseningar i flygtrafiken påverkas av väderförhållanden. Tidskontinuerlig eller händelsestyrd simulering En annan viktig del av problemspecifikationen är att bestämma om simuleringen skall vara tidsstyrd eller händelsestyrd: o Tidsstyrd simulering En tidsstyrd simulering innebär att den framtagna simuleringsmodellen helt enkelt kan beskrivas som en funktion av tiden. Ett exempel på detta kan vara en simulering av en kropps hastighet som faller mot marken. o Händelsestyrd simulering En händelsestyrd simulering innebär att den framtagna simuleringsmodellen består av olika händelser och dess relation till varandra. Ett exempel på detta kan vara en flervåningshiss som styrs genom att hissen åker till den våning där det finns en beställning. Modellkonstruktion 7

Utifrån det avgränsade systemet som beskrivs i problemspecifikationen gäller det att ta fram en simuleringsmodell, vanligtvis av matematisk karaktär, som beskriver det studerade systemet. En viktig sak att tänka på här är att den modell som skall tas fram inte behöver vara en helt korrekt avbildning av verkligheten det viktiga är att modellen är så pass bra att den uppfyller de krav som sammanhanget ställer på simulatorn. Validering När modellen är konstruerad utförs en validering av modellen i jämförelse mot det verkliga systemet för att se om resultaten stämmer överens med de krav som simuleringen skall uppfylla. Det är även viktigt här att jämföra de simulerade resultaten med det verkliga systemet för att se om de stämmer överens så pass bra att modellen kan godkännas. 2.4 HMI HMI (6) är en engelsk förkortning av Human-Machine Interface och är ett användargränssnitt mellan maskin och användare som ofta i industrimiljöer finns tillgängliga via en monterad grafisk panel på den vederbörande maskinen (se figur 3). Detta används för att användaren med hjälp av ett grafiskt användargränssnitt ska kunna skapa sig en övergripande bild över maskinens tillstånd (sensorvärden, alarm etc.) och även kunna kommunicera med maskinen (mata in värden, starta/stoppa program etc.). 2.4.1 HMI design Figur 3: Exempel på HMI på en TFT-touchpanel från B&R (1) När man designar ett HMI är det viktigt att tänka på att hålla designen så välstrukturerad som möjligt för att uppnå en hög grad av användarvänlighet. Ett vanligt problem med grafiska användargränssnitt är att de ofta designas av programmerare och därför inte riktar sig mot användare med låg teknisk kompetens 8

i alla lägen de innehåller ofta för mycket information och/eller information representerade på ett opedagogiskt sätt. Se figur 4 och 5 för exempel på dålig samt effektiv HMI design. Karakteristiskt för dålig respektive effektiv design, se tabell 2. Dålig design Numerisk presentation av rådata Användning av många olika färger Presentation av mycket data Utformning efter systemets ritningar (elritningar, rörledningar etc.) Effektiv design Grafisk presentation av rådata (t.ex. grafer) Användning av ett färgschema baserat på ett fåtal grundfärger Endast presentation av relevant data Utformning efter vad användaren behöver veta om systemet Tabell 2: Karakteristik dålig samt effektiv HMI design Figur 4: Exempel på dålig HMI design (6) Figur 5: Exempel på effektiv HMI design (6) För att uppnå en god design kan följande riktlinjer (6) användas vid designfasen: 1. Kontrast Saker som är annorlunda ska se väldigt annorlunda ut, t.ex. nödstoppknapp skall urskilja sig från mängden på ett tydligt sätt. 2. Upprepning Upprepa visuella element, t.ex. samma typ av knappar för digitala brytare. 3. Visuell anslutning Alla element ska ha någon typ av visuell anslutning med varandra, t.ex. samma färger för hög/låg-indikering hos digitala signaler. 4. Gruppering 9

Visuella element som hör ihop skall placeras tillsammans saker som inte hör ihop skall inte placeras tillsammans. Om ovan nämnda riktlinjer appliceras i designfasen får personen som skapar HMIdesignen goda förutsättningar till att uppnå en god användarvänlighet. 10

3 Metod Projektet har delats in i olika faser för att strukturera upp arbetet samt för att skapa en god översikt över vad som ska ingå i projektet. Faserna genomfördes i tur och ordning med kriteriet för fasskifte att föregående fas var godkänd och klar. De faser som ingick i projektet var följande: 1. Förstudie Undersökning om behov hos intressenter Framtagning av kravspecifikation 2. Design och planering Instudering Framtagning av lösningsförslag för: o Simulator o HMI-design o Mjukvaruarkitektur 3. Genomförande Implementering av mjukvara 4. Test och verifiering Test och verifiering av funktionalitet 3.1 Instudering Befintligt mjukvarusystem och kodstandarder Metoden som användes för att studera det befintliga mjukvarusystem och kodstandarder gick ut på att noggrant studera den befintliga applikationskod som fanns tillgänglig från den maskin som skulle simuleras i detta projekt. På så sätt kunde en god förståelse uppnås för hur mjukvaruarkitekturen var uppbyggd och vilka kodstandarder som hade använts för att bygga upp mjukvaran. Genom att studera mjukvarusystemet kunde även en god förståelse uppnås för hur den process som skulle simuleras fungerar, då dess övergripliga beteende beskrivs i form av mjukvara. Simulatorer och HMI-design Instudering kring hur simulatorer och HMI brukar konstrueras och designas krävdes för att genomföra projektet. Information om hur simulatorer konstrueras inhämtades i from av kursmaterial från universitet och information om HMI-design inhämtades i form av artiklar från industrin. 11

3.2 Verktyg Nedan följer beskrivning av de utvecklingsverktyg som användes för att genomföra detta projekt. 3.2.1 B&R Automation Studio B&R Automation Studio (7) är ett utvecklingsverktyg som används för att utveckla mjukvara till produkter som är tillverkat av B&R. Eftersom att syftet med detta projekt är att simulera en process som bygger på en PLC-modul från B&R faller sig därför naturligt att använda detta verktyg. 3.2.2 Paint.NET Paint.NET (8) är ett gratis bildredigeringsprogram som användes för att ta fram design av grafiska komponenter (knappar t.ex.) till HMI-designen. 3.3 Simulering Konstruktionen av simulatorn skapades genom att följa nedan beskrivna steg i en iterativ process, se figur 6. Figur 6: Designprocess simulator Anledningen till att en iterativ process är att föredra här är för att man efter testsimulering kan utvärdera resultatet från den framtagna simuleringsmodellen och justera dess parametrar därefter fram tills modellen uppfyller kraven. 12

1. Problemspecifikation Första fasen vid design av simulatorn gällde det att ta fram en problemspecifikation, dvs. specificera vilket syfte simulatorn skulle uppfylla. Här bestämdes i samarbete med uppdragsgivaren vilken typ av process hos maskinen simulatorn skulle simulera och hur väl den simulerade processen skulle stämma överens med verkligheten. 2. Modellkonstruktion Efter färdigställning av problemspecifikationen gällde det först och främst att skapa sig en god förståelse för hur den process som skulle simuleras fungerade. Detta gjordes genom att studera utdata från tidigare genomförda processer hos maskinen. Metoden för att ta fram själva simuleringsmodellen gick ut på att dela in processen i olika delfaser beroende på var processen befinner sig i tiden. Utifrån delfaserna togs en matematisk funktion fram för att beskriva varje del-fas. Fördelen med denna metod är att man genom att kombinera en mängd olika delfaser, utspridda över tiden, kan beskriva en komplicerad process som kan vara besvärligt att beskriva med endast ett matematiskt uttryck. För ett exempel på en sådan process, se figur 7. Figur 7: Exempel på en process Som visas i figur 7 kan det bli relativt besvärligt att beskriva den process som visas med ett matematiskt uttryck. Det man kan göra istället är att dela in processen i olika faser, eller tidsintervall, och därefter ta fram en matematisk funktion för att beskriva var och en av dessa separat. Genom att sedan kombinera alla faser kan då processen beskrivas på ett enklare sätt, se figur 8. 13

Figur 8: Exempel på fasindelning av process Som visas i figur 8 delas processen in i 4 st. olika faser över tiden. Härifrån kan man tilldela varje fas ett eget matematiskt uttryck. Därefter kan man kombinera alla fasers matematiska funktioner för att utgöra en helhetsbeskrivning utav processen! 3. Validering Med hjälp av den modell som togs fram vid modellkonstruktionen genomfördes testsimuleringar för att se hur väl det avbildade systemet levde upp till de krav som ställdes på simulatorn från problemspecifikationen. Därefter har resultatet utvärderats. Om resultatet uppfyllt de förväntningar som ställts på simuleringen har simuleringsmodellen godkänts. Om inte resultatet godkänts har simuleringsmodellens parametrar justerats och nya testsimuleringar har genomförts. 3.4 Mjukvarudesign Principen för att ta fram en mjukvarudesign för simuleringsverktyget gick ut på att försöka följa de kodstandarder som applicerades på det befintliga PLC-systemet i största möjliga utsträckning. Detta gjordes för att underlätta en framtida vidareutveckling hos uppdragsgivaren av simuleringsverktyget. 3.5 HMI Utformningen av HMI-designen togs fram genom att följa nedan beskrivna huvudprinciper: En bild förklarar bättre än en text En färg symboliserar på/av-indikering bättre än text 14

Dessa principer säger alltså att text skall undvikas i största möjliga utsträckning och bytas ut mot bilder eller färger. Metoden för att ta fram designförslag skedde genom en iterativ process, se figur 9. Figur 9: Designprocess HMI Som visas i figur 9 utvecklades simulatorn i följande steg: 1. Framtagning av designförslag Första steget i designprocessen innefattade att ta fram ett förslag till HMIdesign i form av en skiss rent utseendemässigt. 2. Presentation för beställare I det andra steget av designprocessen presenterades designförslaget som utvecklats i steg 1 för beställaren. Här diskuterades designens utformning och upplägg. 3. Förslag godkänt? Det tredje steget i designprocessen gick ut på att, i samband med steg 2, tillsammans med beställaren avgöra om designförslaget blev godkänt eller inte. Om förslaget godkändes stegades designprocessen vidare till steg 4 (se nedan). Om förslaget inte godkändes påbörjades en ny framtagning av designförslag och därmed gick designprocessen tillbaks till steg 1. 4. Design OK 15

3.6 Test Det fjärde steget i designprocessen är det sista i processen. Här hade HMIdesignen blivit helt godkänd från beställare och därmed var designen färdigställd. För att säkerställa att all funktionalitet fungerar som de ska genomfördes två typer av testning löpande testning under utveckling samt ett sluttest. 3.6.1 Löpande testning Vid implementering av mjukvara skedde funktionalitetstester kontinuerligt. Detta gjordes för att hela tiden säkerställa att all implementerad funktionalitet fungerade på rätt sätt. Simulator Simulatorn testades genom att utföra serier av testsimuleringar samt utvärdering av resultaten. Genom att studera utdata från resultaten kunde bl.a. oförutsedda implementeringsfel av simulatorn detekteras som exempelvis storleksfel i datatyper och oändliga loopar. HMI Det grafiska användargränssnittet testades genom att testa de grafiska kontrollelement (t.ex. knappar) som finns tillgängliga. Genom att kontrollera att rätt sak hände om t.ex. en knapp blev nedtryckt kunde därför knappens funktionalitet verifieras. 3.6.2 Sluttest Metoden för att genomföra ett sluttest riktade sig mot att säkerställa att all funktionalitet från kravspecifikationen fungerade som de skulle. 16

4 Resultat 4.1 Simulering 1. Problemspecifikation Vid problemspecifikationen togs följande specifikationer för simulatorn fram: Simulatorn skall kunna simulera ett beteende som går att relatera till verkligheten. Modellen behöver inte vara helt korrekt. Dödtider, insvängningstider, fysikaliska fenomen och övrig information som inte är relevant för en icketekniker ska elimineras. Systemet som skall simuleras är ett deterministiskt system, dvs. inte innehålla brus. Systemet som skall simuleras är ett tidskontinuerligt system. 2. Modellkonstruktion Simuleringsmodellen konstruerades på ett mycket enkelt sätt baserat på räta linjens ekvation: f(t) = k t + m Där k = riktningskoefficient t = tid m = förskjutningskonstant Vidare är simuleringsmodellen konstruerad i form av en tillståndsmaskin som dynamiskt ändrar värdena på riktningskoefficient och förskjutningskonstant beroende på var processen befinner sig i tiden. För vidare information om tillståndsmaskinen, se kapitel 4.3 (implementering av tillståndsmaskinens mjukvara). Anledningen till att simulatorn konstruerades på detta simpla sätt (räta linjer) är för att resultatet från simuleringen tydligt beskriver för en icke-tekniker vad som händer i processen. Att beskriva övrig information om hur t.ex. det avbildade systemet påverkas av fysikaliska fenomen samt systemets regulatorer är för en person med låg teknisk kompetens inte relevant. För processutdata från maskin, se figur 10. För processutdata från simuleringen, se figur 11. 17

Figur 10: Processdata från maskin Figur 11: Processdata från simulering I figur 10 samt 11 visas processdata från maskin respektive simulering. Den typ av process som beskrivs i figurerna är beroende av tryck vilket representeras genom den 18

blå kurvan. Därmed är det beteendet hos den blå kurvan som är relevant för användaren av simuleringsverktyget att studera för att förstå hur processen fungerar. 3. Validering Vid jämförelse av processdata från maskin och simulering (figur 10 samt figur 11) ser man en viss likhet beteendemässigt där störst vikt ligger hos trycksensor (blå kurva). På grund av den likhet som finns uppfyller simuleringen de krav som ställts på simulatorn alltså är simuleringsmodellen godkänd! 4.2 HMI HMI-designen resulterade i tre olika sektioner: Startsida Sida för manuell simulering Sida för automatisk simulering Startsida Den första sidan som användaren kommer till när denne använder simuleringsverktyget är en startsida, se figur 12, där användaren i fråga väljer vilket läge simulatorn ska köras i. Här kan användaren välja att köra simulatorn i manuellt eller automatiskt läge, se figur 12. Manuell simulering Figur 12: HMI: Startsida Vid manuellt simuleringsläge kommer användaren att komma till en speciell sida, se figur 13. Denna sida består av digitala brytare som användaren kan påverka digitala 19

signaler med. För att kontrollera värdet på analoga signaler finns det så kallade sliders som användaren kan använda för att ställa in önskat värde på de signaler som finns tillgängliga (diverse temperatur- och tryckgivare). Figur 13: HMI: Manuell simulering Med hjälp av sidan som visas i figur 13 kan användaren således manuellt simulera en process genom att styra de signaler som finns att tillgå genom användargränssnittet. Användaren kan även härigenom skapa nödsituationer genom att påverka signaler som utlöser dessa (t.ex. öppna dörr under körning av process). Fördelen med den manuella sidan (figur 13) är att användaren ser vilka signaler som finns tillgängliga och kan skapa sig en god förståelse för hur processen fungerar. Automatisk simulering Vid automatiskt simuleringsläge kommer användaren att komma till en speciell sida som är anpassad för automatisk simulering. Här behöver användaren inte styra någonting manuellt bortsett från att trigga igång olika typer av alarm, se figur 14. 20

Figur 14: HMI: Automatisk simulering Fördelen med sidan som visas i figur 14 är att användaren inte behöver veta i förväg hur processen som ska simuleras fungerar processen simuleras helt autonomt. Det enda användaren kan göra är att trycka på de knappar som triggar igång ett alarm. 4.3 Mjukvarudesign All mjukvara är implementerad i programspråket Structured Text (9) med B&R Automation Runtime (2) som RTOS. Mjukvaruarkitekturen är uppbyggd kring en tillståndsmaskin, se figur 15, som styrs med avseende på vilken sida som är aktiv på HMI. 21

Figur 15: Tillståndsmaskin mjukvara Som visas i figur 15 består tillståndsmaskinen av fyra olika tillstånd: INIT STAND BY AUTO SIM MAN SIM INIT INIT är systemets initieringstillstånd. Här initieras variabler till sina standardvärden, t.ex. ska kanske en variabel som representerar temperatur initieras till 25 grader Celsius. STAND BY STAND BY är läget då systemet är i vänteläge. Detta är tillståndet då det grafiska användargränssnittet befinner sig i menyläge, dvs. att systemet väntar på att användaren gör sitt val om denne vill köra simulatorn i automatiskt eller manuellt läge. AUTO SIM 22

AUTO SIM är tillståndet då systemet använder sig av automatisk simulering av processen. Denna del av systemet är designad som en tillståndsmaskin och har till uppgift att styra simuleringsmodellen (Se kapitel 4.1). I figur 16 visas flödesschema för denna tillståndsmaskin, med ett exempel där tillståndsmaskinen befinner sig i tillstånd S2. Figur 16: Flödesschema automatisk simulering Som visas i figur 16 består tillståndsmaskinen av totalt elva tillstånd. Dessa tillstånd styrs genom ett fas-nummer. Eftersom att den process som skall simuleras är indelad i olika faser, med tillhörande tidsintervall, berättar fas-numret för tillståndsmaskinen var processen befinner sig i tiden. Fas-numret fungerar då som input till tillståndsmaskinen som byter tillstånd därefter. I varje tillstånd ändras riktningskoefficienten k och förskjutningskonstanten m för tryck och temperatur beroende på hur trycket och temperaturen i processen skall hanteras (t.ex. om trycket/temperaturen skall ökas eller minskas). MAN SIM MAN SIM är tillståndet då systemet använder sig av manuell simulering av processen. Här är systemets enda roll att konvertera indata från användaren (input 23

via HMI) till I/O-signal. I/O-signalen tolkas i sin tur av plattformen som att värdet kom från en sensor eller givare. För flödesschema över MAN SIM, se figur 17. Beskrivning av flödesschemat i figur 17: Figur 17: Flödesschema manuell simulering 1. Avläsning av HMI-komponenter Det första steget i flödesschemat utspelar sig i systemets HMI-del. Här läses alla HMI-komponenters värden av, t.ex. om en knapp är intryckt eller inte. Dessa värden skickas sedan vidare till en global variabelcontainer. 2. Global variabelcontainer En variabelcontainer finns tillgänglig för att tillhandahålla en oberoende koppling mellan HMI och simulator. Detta för att upprätthålla en separering av simulatorkod och HMI-kod. 3. Konvertera till I/O-signaler Det sista steget i flödesschemat utspelar sig i systemets simulatordel. Här läses alla variabler av i den globala variabelcontainern, såsom en knapps tillstånd (på/av), och skickas sedan vidare till systemets plattformslager i form av I/Osignaler. 24

4.4 Test 4.4.1 Sluttest Simulator För att säkerställa att systemets simulatordel fungerade som den skulle genomfördes en serie tester, se tabell 3. Test utfört Testa att simulera en process upprepade gånger och kontrollera att alla resultat stämmer överens med varandra Testa att simulera en process med extremvärden hos temperatur och/eller tryck och kontrollera att alarm triggas Resultat OK OK Tabell 3: Testresultat simulator HMI För att säkerställa att systemets HMI-del fungerade som det skulle genomfördes en serie tester, se tabell 4. Test utfört Testa manuellt att alla digitala komponenter (knappar) fungerar som de ska Testa att alla analoga komponenter (sliders) fungerar som de ska Resultat OK OK Tabell 4: Testresultat HMI Test mot kravspecifikation För att säkerställa att hela systemet fungerade som det skulle utfördes ett en serie tester, se tabell 5, som gick ut på att testa hur väl det utvecklade simuleringsverktyget levde upp till de krav som togs fram i kravspecifikationen. 25

Krav Test utfört Resultat Simulatorn skall kunna simulera ett I/O-system Simulatorn skall kunna köras i automatiskt läge Simulatorn skall kunna köras i manuellt läge Testa om plattformen reagerar på samtliga simulerade I/O-signaler Testa starta simulatorn i automatiskt läge och köra en process Testa att simulera en hel process manuellt OK OK OK Tabell 5: Testresultat sluttest 26

5 Slutsatser 5.1 Resultat Simuleringsverktyget som utvecklades i detta projekt levde mycket väl upp till de krav som specificerades i kravspecifikationen vid projektstart. Därmed visades att den lösningsmetodik som användes i detta projekt fungerar som en bra grund att bygga vidare simuleringsverktyget på. Eftersom att det utvecklade simuleringsverktyget är helt mjukvarubaserat har även transport av verktyget underlättats enormt. Tidigare, med det hårdvarubaserade simuleringsverktyget, behövde man packa ner verktyget i väskor för att kunna transportera det till olika utbildningar. Nu, med det mjukvarubaserade simuleringsverktyget, räcker det att bara ladda in verktyget på ett USB-minne istället. 5.2 Vidareutveckling I detta projekt utvecklades endast en prototyp av ett simuleringsverktyg. Därför går det endast att simulera en av alla de olika processer som finns tillgängliga hos den maskin som detta projekt handlar om. För att vidareutveckla detta projekt till färdig produkt behövs det därför läggas in stöd för att simulera samtliga processer. Den simuleringsmodell som utvecklades i detta projekt togs endast fram för att användas vid utbildning utav personer med låg teknisk kompetens. Det betyder att den simulerar en förenklad bild av verkligheten. Detta innebär att fysikaliska fenomen och maskinens reglersystem inte har avbildats på ett sanningsenligt sätt. Det betyder i sin tur att simuleringsverktyget inte är värdefullt att använda i andra sammanhang än utbildning. Om simuleringsmodellen hade avbildat maskinen på ett mer sanningsenligt sätt hade det kunnat vara relevant att använda simuleringsverktyget som ett testverktyg vid utveckling av nya applikationer exempelvis. Vad som behöver göras för att vidareutveckla simuleringsverktyget till ett mer robust och verklighetstroget verktyg är att ta fram en ny simuleringsmodell. En sådan modell behöver innehålla beskrivning av de reglersystem som används i den verkliga maskinen som ska simuleras och kanske även koppla på någon typ av brusgenerator för att simulera fysikaliska fenomen. 5.3 Erfarenheter Detta projekt har bidragit till många nya erfarenheter. Bland annat var den största utmaningen i detta projekt att på kort tid införskaffa sig kunskap och förståelse om ett stort befintligt mjukvarusystem. Detta för att inte bara kunna skriva en applikation på systemet utan även skriva applikationen utifrån de kodstandarder och riktlinjer som fanns. Detta ser jag som en av de viktigaste erfarenheterna från detta projekt. 27

6 Diskussion Simuleringsmodell Simuleringsmodellen som utvecklades i detta projekt var mycket simpelt konstruerad och beskrev en väldigt simplifierad modell av verkligheten. Modellen blev väl godkänd av beställaren och den levde upp till alla de krav som ställdes på simulatorn. Med det sagt hade modellen kunnat konstrueras på ett mer sanningsenligt sätt som hade kunnat avbilda t.ex. de reglersystem som finns i den simulerade maskinen och påverkan av fysikaliska fenomen på ett korrekt sätt. Med en sådan modell hade simuleringsverktyget då kunnat användas även i andra sammanhang än just för utbildning, t.ex. för utveckling av nya processer. Om mer tid hade funnits i projektet hade jag då alltså lagt störst fokus på att designa en betydligt mer komplicerad simuleringsmodell. 28

7 Referenser 1) B&R (Bernecker + Rainer Industrie-Elektronik) hemsida. Hemsida http://www.br-automation.com/en/ Länk verifierad 2013-11-15 2) B&R: Automation Runtime RTOS. Hemsida http://www.br-automation.com/en-il/products/software/automationruntime/ Länk verifierad 2013-11-15 3) Introduction to Real time operating systems, Penn Engineering. Hemsida http://www.cis.upenn.edu/~lee/06cse480/lec-rtos_rtlinux.pdf Länk verifierad 2013-11-25 4) Simulering, Nationalencyklopedin. Hemsida http://www.ne.se/simulering/305867 Länk verifierad 2013-11-25 5) Kort om simulering och simulatorer, Bengt Sandblad. Kursmaterial från Operatörer och användargränssnitt vid processtyrning, Uppsala Universitet. MS Word dokument www.it.uu.se/edu/course/homepage/opgui/vt03/simulatordokumentation Länk verifierad 2013-11-25 6) Human Machine Interface (HMI) Design: The Good, The Bad and The Ugly (and what makes them so), Rockwell Automation. PDF-dokument http://www.marinetech.org/files/marine/files/curriculum/irov/module13 /gruhnhmidesignreviewed-110722135448-phpapp02.pdf Länk verifierad 2013-12-03 7) B&R Automation Studio. Hemsida http://www.br-automation.com/en/products/software/automation-studio/ Länk verifierad 2013-12-12 8) Paint.NET. Hemsida http://www.getpaint.net Länk verifierad 2013-12-10 9) Structured Text programming manual. Rockwell Automation. Hemsida http://literature.rockwellautomation.com/idc/groups/literature/documents /pm/1756-pm007_-en-p.pdf Länk verifierad 2013-12-10 29

Victor Alveflo Dataingenjör Högskolan i Halmstad 30

Besöksadress: Kristian IV:s väg 3 Postadress: Box 823, 301 18 Halmstad Telefon: 035-16 71 00 E-mail: registrator@hh.se www.hh.se