Ett HMI (Human-Machine Interface) eller användarinterface behövs i många motorstyrningstillämpningar. Dessa enheter används för att ge användare en möjlighet att instruera en maskin hur den ska bete sig, men utan behov av en komplett PC. Ett HMI är ofta touchbaserat vilket gör att de kan placeras på produktionsgolvet och användas av tekniker direkt vid maskinen. Det finns mängder med olika HMI-produkter och de kan ibland kosta tiotusentals kronor. Med ankomsten av Raspberry Pi har det dykt upp ett litet men kraftfullt alternativ. Tillsammans med Raspberry Pi Foundations nya 7″ display och Galils API utgör denna kraftfulla trio grunden till ett kostnadseffektivt men kraftfullt HMI som kan anpassas till att fungera med alla sorters motorstyrningsbehov.
Styrkan i detta nya alternativ kan man hitta i mjukvaran. Det finns fria mjukvaruverktyg som gör det möjligt att utveckla i princip vilken sorts användarinterface som helst för att köra på Raspberry Pi. Mjukvaran tar input från användaren genom touchinterfacet och Galils API gclib översätter dessa enkla instruktioner till kommandon för maskinstyrningen. Detta sänker ribban till någonting som motsvarar att utveckla en modern mobilapp. Dessutom finns ett helt community på nätet som erbjuder massor med hjälp att komma igång och som hjälper användaren att skapa interface som körs på dessa kraftfulla med billiga datorer. Delarna i det här projektet kostar under 1000 kronor.
Det här exempel-HMI:t använder en Raspberry Pi 3, den i skrivande stund senaste versionen av operativsystemet Rasbian, Python som programmeringsspråk, Kivy som ramverk för användarinterface och Galils gclib för att kommunicera med motorstyrningen. Raspberry Pi 3 är en ARM-baserad 1,2 GHz fyrkärning CPU med 1 Gb RAM, inbyggt Ethernet och WiFi. Den kör en Linux-distribution som heter Rasbian, vilket har ett stort communitystöd. Python är ett populärt programspår med stort supportcommunity och Kivy är ett Python-baserat ramverk med inbyggt stöd för touchelement och som har släppts som öppen källkod.
Galils API gclib kan användas på olika plattformar i många olika programspråk. Dess funktion är att kommunicera med Galil-styrningen på en högre nivå och diktera det övergripande programflödet. Eftersom gclib är skrivet i lågnivå C kan det användas i högnivåspråk såsom Python. Galil erbjuder en Python-wrapper och exempelkod som gör installation och användning av API:t mycket enkelt.
Det finns två program i detta HMI-projekt. Den första är en hemmalägessökning och servo-demo och det andra är ett ”kapa-till-längd”-demo. Exempelprogrammen här är bara som demonstration och visar bara en liten del av vad som är möjligt.
Första delen i detta exempel är skärmen ”Controller Selection”. Galils gclib har möjligheten att hitta styrningar på ett nätverk. Den första skärmen visar alla motorstyrningar som har hittats (se figur 2) och låter användaren välja styrning att använda i programmet. Användaren måste välja en styrning för att komma vidare.
Efter att ha valt styrning kan användaren behöva kontrollera att hårdvaran fungerar och att hemmalägessöka utrustningen innan man startar applikationen. Skärmen ”Homing and Setup” visar information om den anslutna styrningen och låter användaren utföra grundläggarna operationer på axeln. Figur 3 visar de tillgängliga operationerna, så som stänga av motorn, servo, stoppa, manuellt flytta motorn på steget eller att köra en hemmalägessökning.
API:et gclib används för att läsa motorpositionen och gränslägesbrytarna. Python-applikationen visar detta för användaren. Ett enkelt program laddas ner i motorstyrningen för att göra det möjligt att genom ett dragreglage sätta axelpositionen. När användaren är redo kan knappen Home Axis användas för att köra utrustningen till rätt läge och starta applikationen som kapar längder.
De flesta motorstyrningsapplikationerna kan beskrivas med följande enkla flödesdiagram.
Mekaniskt rörelsesystem & I/O ⇔ Motorstyrning & PLC (eventuell) ⇔ HMI
I denna applikation anger en tekniker värden som för materialet som ska bearbetas in i interfacet. Teknikerna anger längt för materialet och antal bitar att skära. Python-applikationen gör jobbet att ta teknikerns kommandon och omvandla detta till instruktioner för motorstyrningen. Dess huvuduppgift är att hantera den övergripande applikationen och förlitar sig på de andra systemet att rapportera ok eller fel. Motorstyrningen utför de nödvändiga rörelsemomenten för att fysiskt förflytta motorerna och skärverktygen. En PLC som RIO-47000-serien kan användas för att hantera flödet av material till och genom maskinen, inklusive att ladda råmaterial och lasta ur den kapade produkten.
Skärmen ”Cut to length” (figur 5) visar interfacet som används för att styra skärprogrammet, inklusive att ange antal skär, önskad längd och startknappen för att starta skärprocessen. Python-applikationen laddar ner den nödvändiga koden till motorstyrningen och begär information från styrningen som ska visas för användaren. Om ett fel uppstår kan användaren avbryta operationen.
Följande video visar den Raspberry Pi-baserade HMI-lösningen i drift. Du kan se hur den ansluter till en motorstyrning, låter användaren styra ett linjärsteg och köra kapa-till-längd-applikationen.
Denna applikation är en kraftfull demonstation av hur framstegen inom datorhårdvara har drivit ner priserna men samtidigt ökat prestandan. Framsteg inom mjukvara har gett lättanvända verktyg med programspråk och ramverk som öppen källkod. Genom att kombinera dessa framsteg med Galil Motion Controls produkter kan man enkelt skapa användarinterface för alla typer av motorstyrningsapplikationer. En Raspberry Pi med touchskärm som används i denna demonstration kostar runt en tusenlapp exklusive moms. All mjukvara som använts i demonstrationen är kostnadsfri eller öppen källkod.
Källor:
https://www.raspberrypi.org/
https://www.raspberrypi.org/products/raspberry-pi-touch-display/
https://www.raspberrypi.org/products/raspberry-pi-3-model-b/
https://www.python.org/
https://kivy.org/
This article was originally written by Troy Miller and published in it’s original language on www.galil.com