Habr kontrollpanel baserad på HMI från Advantech


Video: Habr administratörskonsol. Låter dig reglera karma, betygsätta och blockera användare.

TL; DR: I den här artikeln kommer jag att försöka skapa en komisk Habr-kontrollpanel med hjälp av Webaccess/HMI Designers industriella gränssnittsutvecklingsmiljö och WebOP-terminalen.

Human-machine Interface (HMI) är en uppsättning system för mänsklig interaktion med kontrollerade maskiner. Vanligtvis används denna term för industriella system som har en operatör och en kontrollpanel.

WebOP — En autonom industriterminal för att skapa gränssnitt mellan människa och maskin. Används för att skapa produktionskontrollpaneler, övervakningssystem, kontrollrum, smarta hemkontroller, etc. Stöder direktanslutning till industriell utrustning och kan fungera som en del av ett SCADA-system.

WebOP-terminal - hårdvara

Habr kontrollpanel baserad på HMI från AdvantechWebOP-terminalen är en lågeffektsdator baserad på en ARM-processor, i ett enda fodral med bildskärm och pekskärm, designad för att köra ett program med ett grafiskt gränssnitt skapat i HMI Designer. Beroende på modell har terminalerna olika industriella gränssnitt ombord: RS-232/422/485, CAN-buss för anslutning till bilsystem, USB-värdport för anslutning av extra kringutrustning, USB-klientport för anslutning av terminalen till en dator, ljud ingång och ljudutgång, MicroSD-kortläsare för icke-flyktigt minne och överföring av inställningar.

Enheterna är placerade som en budgetersättning för allt-i-ett-datorer, för uppgifter som inte kräver kraftfulla processorer och resurserna hos en fullfjädrad stationär dator. WebOP kan fungera som en fristående terminal för kontroll och datainmatning/utmatning, parat med andra WebOP:er, eller som en del av ett SCADA-system.

Habr kontrollpanel baserad på HMI från Advantech
WebOP-terminalen kan anslutas direkt till industriella enheter

Passiv kyla och IP66-skydd

På grund av låg värmeavledning är vissa WebOP-modeller designade helt utan aktiv luftkylning. Detta gör att enheterna kan monteras i områden som är känsliga för ljudnivåer och minskar mängden damm som kommer in i höljet.

Frontpanelen är gjord utan mellanrum eller skarvar, har en skyddsnivå på IP66 och tillåter direkt inträngning av vatten under tryck.

Habr kontrollpanel baserad på HMI från Advantech
Bakpanelen på WOP-3100T-terminalen

Icke-flyktigt minne

För att förhindra dataförlust har WebOP 128Kb icke-flyktigt minne, som kan arbetas med på samma sätt som med RAM. Den kan lagra mätaravläsningar och andra kritiska data. Vid strömavbrott kommer data att sparas och återställas efter en omstart.

Fjärruppdatering

Programmet som körs på terminalen kan uppdateras på distans via ett Ethernet-nätverk eller via RS-232/485 seriella gränssnitt. Detta förenklar underhållet, eftersom det eliminerar behovet av att gå till alla terminaler för att uppdatera programvaran.

WebOP-modeller

Habr kontrollpanel baserad på HMI från Advantech
2000T-serien - de mest prisvärda enheterna byggda på basis av realtidsoperativsystemet HMI RTOS. Serien representeras av WebOP-2040T/2070T/2080T/2100T, med skärmdiagonaler på 4,3 tum, 7 tum, 8 tum respektive 10.1 tum.

Habr kontrollpanel baserad på HMI från Advantech
3000T-serien — mer avancerade modeller baserade på operativsystemet Windows CE. De skiljer sig från 2000T-serien i ett stort antal hårdvarugränssnitt och har ett CAN-gränssnitt ombord. Enheterna arbetar i ett utökat temperaturområde (-20~60°C) och har antistatiskt skydd (Luft: 15KV/kontakt: 8KV). Linjen uppfyller helt kraven i IEC-61000-standarden, vilket gör att enheterna kan användas i halvledartillverkning där statisk urladdning är ett problem. Serien representeras av WebOP-3070T/3100T/3120T, med skärmdiagonaler på 7 tum, 10.1 tum respektive 12.1 tum.

WebAccess/HMI Designer utvecklingsmiljö

Out of the box är WebOP-terminalen bara en lågeffekts ARM-dator på vilken du kan köra vilken programvara som helst, men hela poängen med denna lösning är den proprietära WebAcess/HMI-utvecklingsmiljön för industriellt gränssnitt. Systemet består av två komponenter:

  • HMI-designer — Miljö för utveckling av gränssnitt och programmeringslogik. Körs under Windows på programmerarens dator. Det slutliga programmet kompileras till en fil och överförs till terminalen för körning under körning. Programmet är tillgängligt på ryska.
  • HMI körtid — körtid för att köra det kompilerade programmet på den slutliga terminalen. Det kan fungera inte bara på WebOP-terminaler, utan också på Advantech UNO, MIC och vanliga stationära datorer. Det finns runtime-versioner för Linux, Windows, Windows CE.

Habr kontrollpanel baserad på HMI från Advantech

Hej världen - skapa ett projekt

Låt oss börja skapa ett testgränssnitt för vår Habr kontrollpanel. Jag kör programmet på terminalen WebOP-3100T kör WinCE. Låt oss först skapa ett nytt projekt i HMI Designer. För att köra ett program på WebOP är det viktigt att välja rätt modell, formatet på den slutliga filen kommer att bero på detta. I det här steget kan du också välja skrivbordsarkitekturen, sedan kommer den slutliga filen att kompileras för X86-runtime.

Habr kontrollpanel baserad på HMI från Advantech
Skapa ett nytt projekt och välja en arkitektur

Välja kommunikationsprotokollet genom vilket det kompilerade programmet ska laddas in i WebOP. I det här steget kan du välja ett seriellt gränssnitt eller ange terminalens IP-adress.
Habr kontrollpanel baserad på HMI från Advantech

Gränssnitt för att skapa projekt. På vänster sida finns ett träddiagram över komponenterna i det framtida programmet. För närvarande är vi bara intresserade av objektet Skärmar, det här är direkt skärmarna med grafiska gränssnittselement som kommer att visas på terminalen.

Habr kontrollpanel baserad på HMI från Advantech

Låt oss först skapa två skärmar med texten "Hello World" och möjligheten att växla mellan dem med knappar. För att göra detta kommer vi att lägga till en ny skärm, Skärm #2, och på varje skärm kommer vi att lägga till ett textelement och två knappar för att växla mellan skärmar (Skärmknappar). Låt oss konfigurera varje knapp för att växla till nästa skärm.
Habr kontrollpanel baserad på HMI från Advantech
Gränssnitt för att ställa in knappen för att växla mellan skärmar

Hello World-programmet är klart, nu kan du kompilera och köra det. I kompileringsskedet kan det finnas fel vid felaktigt angivna variabler eller adresser. Alla fel anses vara ödesdigra; programmet kompileras endast om det inte finns några fel.
Miljön ger möjlighet att simulera en terminal så att du kan felsöka programmet på din dator lokalt. Det finns två typer av simulering:

  • Online simulering — Alla externa datakällor som anges i programmet kommer att användas. Dessa kan vara USO eller enheter anslutna via seriella gränssnitt eller Modbus TCP.
  • Offline simulering — Simulering utan användning av externa enheter.

Även om vi inte har extern data använder vi offline-simulering, efter att ha kompilerat programmet tidigare. Det slutliga programmet kommer att finnas i projektmappen, med namnet Projektnamn_Programnamn.px3

Habr kontrollpanel baserad på HMI från Advantech
Programmet som körs i simuleringen kan styras med muspekaren på samma sätt som det skulle vara på pekskärmen på en WebOP-terminal. Vi ser att allt fungerar som det är tänkt. Bra.
För att ladda ner programmet till en fysisk terminal klickar du bara på knappen Ladda ner. Men eftersom jag inte konfigurerade anslutningen av terminalen till utvecklingsmiljön kan du enkelt överföra filen med hjälp av ett USB-minne eller ett MicroSD-minneskort.
Habr kontrollpanel baserad på HMI från Advantech
Programgränssnittet är intuitivt, jag kommer inte att gå igenom varje grafiskt block. Att skapa bakgrunder, former och text kommer att vara tydligt för alla som har använt program som liknar Word. För att skapa ett grafiskt gränssnitt krävs inga programmeringskunskaper, alla element läggs till genom att dra musen till formuläret.

Arbeta med minne

Nu när vi vet hur man skapar grafiska element, låt oss lära oss hur man arbetar med dynamiskt innehåll och ett skriptspråk. Låt oss skapa ett stapeldiagram som visar data från en variabel U $ 100. I diagraminställningarna väljer du datatypen: 16-bitars heltal och intervallet för diagramvärden: från 0 till 10.

Habr kontrollpanel baserad på HMI från Advantech

Programmet stöder att skriva skript på tre språk: VBScript, JavaScript och sitt eget språk. Jag kommer att använda det tredje alternativet eftersom det finns exempel på det i dokumentationen och automatisk syntaxhjälp direkt i editorn.

Låt oss lägga till ett nytt makro:

Habr kontrollpanel baserad på HMI från Advantech

Låt oss skriva lite enkel kod för att stegvis ändra data i en variabel som kan spåras på ett diagram. Vi lägger till 10 till variabeln och nollställer den till noll när den är större än 100.

$U100=$U100+10
IF $U100>100
$U100=0
ENDIF

För att köra skriptet i en loop, ställ in det i General Setup-inställningarna som Main Macro, med ett exekveringsintervall på 250ms.

Habr kontrollpanel baserad på HMI från Advantech
Låt oss kompilera och köra programmet i simulatorn:

Habr kontrollpanel baserad på HMI från Advantech

I detta skede har vi lärt oss att manipulera data i minnet och visa det visuellt. Detta är redan tillräckligt för att skapa ett enkelt övervakningssystem, ta emot data från externa enheter (sensorer, styrenheter) och registrera dem i minnet. Olika datavisningsblock finns tillgängliga i HMI Designer: i form av cirkulära urtavlor med pilar, olika diagram och grafer. Med hjälp av JavaScript-skript kan du ladda ner data från externa källor via HTTP.

Har kontrollpanel

Med hjälp av de förvärvade färdigheterna kommer vi att skapa ett komiskt gränssnitt för Habrs administratörskonsol.

Habr kontrollpanel baserad på HMI från Advantech

Vår fjärrkontroll ska kunna:

  • Byt användarprofil
  • Lagra karma och betygsdata
  • Ändra karma och betygsvärden med hjälp av reglagen
  • När du klickar på "förbjud"-knappen ska profilen markeras som förbjuden, avataren ska ändras till överstruken

Vi kommer att visa varje profil på en separat sida, så vi skapar en sida för varje profil. Vi kommer att lagra karma och betyg i lokala variabler i minnet, som kommer att initieras med hjälp av Setup Macro när programmet startar.

Habr kontrollpanel baserad på HMI från Advantech
Bilden är klickbar

Justera karma och betyg

För att justera karma kommer vi att använda skjutreglaget (Slide Switch). Vi anger variabeln som initierats i Setup Macro som inspelningsadress. Låt oss begränsa intervallet för skjutreglagets värden från 0 till 1500. Nu, när skjutreglaget flyttas, kommer ny data att skrivas till minnet. I det här fallet kommer skjutreglagets initiala tillstånd att motsvara värdena för variabeln i minnet.

Habr kontrollpanel baserad på HMI från Advantech
För att visa de numeriska värdena för karma och betyg kommer vi att använda det numeriska displayelementet. Principen för dess funktion liknar diagrammet från exemplet "Hello World"-programmet; vi anger helt enkelt adressen till variabeln i Monitor Address.

Ban-knapp

"Ban"-knappen implementeras med hjälp av Toggle Switch-elementet. Principen för datalagring liknar exemplen ovan. I inställningarna kan du välja olika text, färg eller bild, beroende på knappens status.

Habr kontrollpanel baserad på HMI från Advantech
När knappen trycks in ska avataren vara överstruken med rött. Detta är enkelt att implementera med hjälp av Picture Display-blocket. Det låter dig ange flera bilder som är associerade med tillståndet för växlingsknappen. För att göra detta får blocket samma adress som blocket med knappen och antalet tillstånd. Bilden med namnskyltar under avataren är uppställd på liknande sätt.

Habr kontrollpanel baserad på HMI från Advantech

Slutsats

Sammantaget gillade jag produkten. Tidigare hade jag erfarenhet av att använda en Android-surfplatta för liknande uppgifter, men att utveckla ett gränssnitt för det är mycket svårare, och webbläsarens API:er tillåter inte full åtkomst till kringutrustningen. En WebOP-terminal kan ersätta en kombination av en Android-surfplatta, dator och kontroller.

HMI Designer är, trots sin arkaiska design, ganska avancerad. Utan speciella programmeringskunskaper kan du snabbt skissa på ett fungerande gränssnitt. Artikeln diskuterar inte alla grafiska block, av vilka det finns många: animerade rör, cylindrar, grafer, vippomkopplare. Den stöder många populära industriella kontroller direkt från förpackningen och innehåller databasanslutningar.

referenser

WebAccess/HMI Designer och Runtime-utvecklingsmiljö kan laddas ner här

Källor till Habrs kontrollpanelprojekt

Källa: will.com

Lägg en kommentar