Video: Habr admin konsole. Laat jou toe om karma te reguleer, gradering en gebruikers te verbied.
TL; DR: In hierdie artikel sal ek probeer om 'n komiese Habr-kontrolepaneel te skep deur die Webaccess/HMI Designer-industriële koppelvlak-ontwikkelingsomgewing en die WebOP-terminaal te gebruik.
Mens-masjien-koppelvlak (HMI) is 'n stel stelsels vir menslike interaksie met beheerde masjiene. Tipies word hierdie term toegepas op industriële stelsels wat 'n operateur en 'n beheerpaneel het.
WebOP - 'n outonome industriële terminale vir die skep van mens-masjien-koppelvlakke. Word gebruik om produksiebeheerpanele, moniteringstelsels, beheerkamers, slimhuisbeheerders, ens. Ondersteun direkte verbinding met industriële toerusting en kan as deel van 'n SCADA-stelsel werk.
WebOP-terminaal - hardeware
Die WebOP-terminaal is 'n laekrag-rekenaar gebaseer op 'n ARM-verwerker, in 'n enkele geval met 'n monitor en raakskerm, wat ontwerp is om 'n program te laat loop met 'n grafiese koppelvlak wat in HMI Designer geskep is. Afhangende van die model, het die terminale verskeie industriële koppelvlakke aan boord: RS-232/422/485, CAN-bus om aan motorstelsels te koppel, USB-gasheerpoort vir die koppeling van bykomende randapparatuur, USB-kliëntpoort om die terminale aan 'n rekenaar te koppel, oudio invoer en oudio-uitvoer, MicroSD-kaartleser vir nie-vlugtige geheue en instellingsoordrag.
Die toestelle is geposisioneer as 'n begrotingsvervanger vir alles-in-een rekenaars, vir take wat nie kragtige verwerkers en die hulpbronne van 'n volwaardige tafelrekenaar benodig nie. WebOP kan werk as 'n selfstandige terminaal vir beheer en data-invoer/-uitvoer, gepaard met ander WebOP's, of as deel van 'n SCADA-stelsel.
Die WebOP-terminaal kan direk aan industriële toestelle koppel
Passiewe verkoeling en IP66-beskerming
As gevolg van lae hitte-afvoer, is sommige WebOP-modelle heeltemal ontwerp sonder aktiewe lugverkoeling. Dit laat toe dat die toestelle gemonteer word in areas wat sensitief is vir geraasvlakke en verminder die hoeveelheid stof wat binne die behuising kom.
Die voorpaneel is gemaak sonder gapings of voeë, het 'n beskermingsvlak van IP66, en laat direkte binnedring van water onder druk toe.
Agterpaneel van die WOP-3100T-terminaal
Nie-vlugtige geheue
Om dataverlies te voorkom, het WebOP 128Kb se nie-vlugtige geheue, waarmee op dieselfde manier as met RAM gewerk kan word. Dit kan meterlesings en ander kritieke data stoor. In die geval van 'n kragonderbreking, sal die data gestoor en herstel word na 'n herlaai.
Afgeleë opdatering
Die program wat op die terminale loop, kan op afstand opgedateer word via 'n Ethernet-netwerk of via RS-232/485-seriële koppelvlakke. Dit vergemaklik instandhouding, aangesien dit die behoefte uitskakel om na alle terminale te gaan om die sagteware op te dateer.
WebOP-modelle
WebAccess/HMI Ontwerper-ontwikkelingsomgewing
Uit die boks is die WebOP-terminaal net 'n laekrag-ARM-rekenaar waarop jy enige sagteware kan laat loop, maar die hele punt van hierdie oplossing is die eie WebAcess/HMI-industriële koppelvlak-ontwikkelingsomgewing. Die stelsel bestaan uit twee komponente:
- HMI Ontwerper — omgewing vir die ontwikkeling van koppelvlakke en programmeringslogika. Loop onder Windows op die programmeerder se rekenaar. Die finale program word in een lêer saamgestel en na die terminaal oorgedra vir uitvoering tydens looptyd. Die program is in Russies beskikbaar.
- HMI Looptyd - Looptyd om die saamgestelde program op die finale terminaal te laat loop. Dit kan nie net op WebOP-terminale werk nie, maar ook op Advantech UNO, MIC en gewone tafelrekenaars. Daar is runtime-weergawes vir Linux, Windows, Windows CE.
Hallo wêreld - skep 'n projek
Kom ons begin om 'n toetskoppelvlak vir ons Habr-kontrolepaneel te skep. Ek sal die program op die terminaal laat loop
Die skep van 'n nuwe projek en die keuse van 'n argitektuur
Kies die kommunikasieprotokol waardeur die saamgestelde program in WebOP gelaai sal word. By hierdie stap kan jy 'n seriële koppelvlak kies, of die IP-adres van die terminaal spesifiseer.
Projek skepping koppelvlak. Aan die linkerkant is daar 'n boomdiagram van die komponente van die toekomstige program. Vir nou is ons net geïnteresseerd in die Skerms-item, dit is direk die skerms met grafiese koppelvlak-elemente wat op die terminale vertoon sal word.
Kom ons skep eers twee skerms met die teks "Hallo Wêreld" en die vermoë om tussen hulle te wissel met knoppies. Om dit te doen, sal ons 'n nuwe skerm, Skerm #2, byvoeg en op elke skerm sal ons 'n tekselement en twee knoppies byvoeg om tussen skerms te wissel (Skermknoppies). Kom ons stel elke knoppie op om na die volgende skerm oor te skakel.
Interface om die knoppie te stel om tussen skerms te wissel
Die Hello World-program is gereed, nou kan jy dit saamstel en laat loop. By die samestellingstadium kan daar foute wees in die geval van verkeerd gespesifiseerde veranderlikes of adresse. Enige fout word as noodlottig beskou; die program sal slegs saamgestel word as daar geen foute is nie.
Die omgewing bied die vermoë om 'n terminaal te simuleer sodat jy die program op jou rekenaar plaaslik kan ontfout. Daar is twee tipes simulasie:
- Aanlyn simulasie — alle eksterne databronne wat in die program gespesifiseer word, sal gebruik word. Dit kan USO's of toestelle wees wat via seriële koppelvlakke of Modbus TCP gekoppel is.
- Vanlyn simulasie - simulasie sonder die gebruik van eksterne toestelle.
Alhoewel ons nie eksterne data het nie, gebruik ons vanlyn simulasie, nadat ons die program voorheen saamgestel het. Die finale program sal in die projeklêer geleë wees, met die naam Projeknaam_Programnaam.px3
Die program wat in die simulasie loop, kan met die muiswyser beheer word op dieselfde manier as wat dit op die raakskerm van 'n WebOP-terminaal sou wees. Ons sien alles werk soos bedoel. Groot.
Om die program na 'n fisiese terminaal af te laai, klik net op die Aflaai-knoppie. Maar aangesien ek nie die verbinding van die terminaal aan die ontwikkelingsomgewing gekonfigureer het nie, kan u die lêer eenvoudig oordra met 'n USB-flitsskyf of MicroSD-geheuekaart.
Die programkoppelvlak is intuïtief, ek sal nie deur elke grafiese blok gaan nie. Die skep van agtergronde, vorms en teks sal duidelik wees vir almal wat programme soortgelyk aan Word gebruik het. Om 'n grafiese koppelvlak te skep, is geen programmeringsvaardighede nodig nie; alle elemente word bygevoeg deur die muis na die vorm te sleep.
Werk met geheue
Noudat ons weet hoe om grafiese elemente te skep, kom ons leer hoe om met dinamiese inhoud en 'n skriftaal te werk. Kom ons skep 'n staafgrafiek wat data van 'n veranderlike vertoon U $ 100. In die grafiekinstellings, kies die datatipe: 16-bis heelgetal, en die reeks grafiekwaardes: van 0 tot 10.
Die program ondersteun die skryf van skrifte in drie tale: VBScript, JavaScript en sy eie taal. Ek sal die derde opsie gebruik, want daar is voorbeelde daarvoor in die dokumentasie en outomatiese sintaksishulp reg in die redigeerder.
Kom ons voeg 'n nuwe makro by:
Kom ons skryf 'n paar eenvoudige kode om data inkrementeel te verander in 'n veranderlike wat op 'n grafiek nagespoor kan word. Ons sal 10 by die veranderlike voeg en dit na nul terugstel wanneer dit groter as 100 is.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
Om die skrip in 'n lus uit te voer, stel dit in die Algemene Opstelling instellings as Hoofmakro, met 'n uitvoeringsinterval van 250ms.
Kom ons stel die program saam en laat loop in die simulator:
Op hierdie stadium het ons geleer om data in die geheue te manipuleer en visueel te vertoon. Dit is reeds genoeg om 'n eenvoudige moniteringstelsel te skep, data van eksterne toestelle (sensors, beheerders) te ontvang en in die geheue op te teken. Verskeie datavertoonblokke is beskikbaar in HMI Designer: in die vorm van sirkelvormige wysers met pyle, verskeie kaarte en grafieke. Deur JavaScript-skrifte te gebruik, kan u data vanaf eksterne bronne via HTTP aflaai.
Beheerpaneel
Deur die aangeleerde vaardighede te gebruik, sal ons 'n komiese koppelvlak vir die Habr-administrasiekonsole maak.
Ons afstandbeheer moet in staat wees om:
- Wissel gebruikerprofiele
- Stoor karma- en beoordelingsdata
- Verander karma- en graderingwaardes met behulp van glyers
- Wanneer jy op die "verbied"-knoppie klik, moet die profiel as verban gemerk word, die avatar moet verander na deurgehaal
Ons sal elke profiel op 'n aparte bladsy vertoon, so ons sal 'n bladsy vir elke profiel skep. Ons sal karma en gradering in plaaslike veranderlikes in die geheue stoor, wat met Setup Macro geïnisialiseer sal word wanneer die program begin.
Pas karma en gradering aan
Om karma aan te pas, sal ons die skuifbalk (Slide Switch) gebruik. Ons spesifiseer die veranderlike wat in Setup Macro geïnitialiseer is as die opname-adres. Kom ons beperk die reeks skuifwaardes van 0 tot 1500. Nou, wanneer die skuifbalk beweeg, sal nuwe data na die geheue geskryf word. In hierdie geval sal die aanvanklike toestand van die skuifbalk ooreenstem met die waardes van die veranderlike in die geheue.
Om die numeriese waardes van karma en gradering te vertoon, sal ons die Numeriese vertoonelement gebruik. Die beginsel van die werking daarvan is soortgelyk aan die diagram van die voorbeeld "Hello World"-program; ons dui eenvoudig die adres van die veranderlike in Monitor Address aan.
Ban knoppie
Die "verbod"-knoppie word geïmplementeer met behulp van die Toggle Switch-element. Die beginsel van databerging is soortgelyk aan die voorbeelde hierbo. In die instellings kan jy verskillende teks, kleur of beeld kies, afhangende van die toestand van die knoppie.
Wanneer die knoppie gedruk word, moet die avatar in rooi deurgehaal word. Dit is maklik om te implementeer deur die Picture Display-blok te gebruik. Dit laat jou toe om veelvuldige beelde te spesifiseer wat verband hou met die toestand van die Wisselskakelaar-knoppie. Om dit te doen, kry die blok dieselfde adres as die blok met die knoppie en die aantal state. Die prentjie met naamborde onder die avatar is op 'n soortgelyke manier opgestel.
Gevolgtrekking
Oor die algemeen het ek van die produk gehou. Voorheen het ek ondervinding gehad om 'n Android-tablet vir soortgelyke take te gebruik, maar om 'n koppelvlak daarvoor te ontwikkel is baie moeiliker, en blaaier-API's laat nie volle toegang tot die randapparatuur toe nie. Een WebOP-terminaal kan 'n kombinasie van 'n Android-tablet, rekenaar en beheerder vervang.
HMI Designer, ten spyte van sy argaïese ontwerp, is redelik gevorderd. Sonder spesiale programmeringsvaardighede kan jy vinnig 'n werkende koppelvlak skets. Die artikel bespreek nie al die grafiese blokke, waarvan daar baie is nie: geanimeerde pype, silinders, grafieke, wisselskakelaars. Uit die boks ondersteun dit baie gewilde industriële beheerders en bevat databasisverbindings.
verwysings
WebAccess/HMI Designer en Runtime-ontwikkelingsomgewing kan afgelaai word