Video: Habr administratorska konzola. Omogućava vam da regulirate karmu, ocjenjivanje i zabranu korisnika.
TL; DR: U ovom članku pokušaću da napravim komični Habr kontrolni panel koristeći Webaccess/HMI Designer industrijsko okruženje za razvoj interfejsa i WebOP terminal.
Interfejs čovek-mašina (HMI) je skup sistema za interakciju ljudi sa kontrolisanim mašinama. Obično se ovaj izraz primjenjuje na industrijske sisteme koji imaju operatera i kontrolnu ploču.
WebOP — autonomni industrijski terminal za kreiranje interfejsa čovek-mašina. Koristi se za kreiranje proizvodnih kontrolnih panela, sistema za nadzor, kontrolnih soba, kontrolera za pametne kuće itd. Podržava direktnu vezu sa industrijskom opremom i može raditi kao dio SCADA sistema.
WebOP terminal - hardver
WebOP terminal je računar male snage baziran na ARM procesoru, u jednom kućištu sa monitorom i ekranom osetljivim na dodir, dizajniran za pokretanje programa sa grafičkim interfejsom kreiranim u HMI Designer-u. U zavisnosti od modela, terminali imaju različite industrijske interfejse na ploči: RS-232/422/485, CAN bus za povezivanje sa automobilskim sistemima, USB Host port za povezivanje dodatnih perifernih uređaja, USB klijent port za povezivanje terminala na računar, audio ulaz i audio izlaz, čitač MicroSD kartica za trajnu memoriju i prijenos postavki.
Uređaji su pozicionirani kao budžetska zamjena za sve-u-jednom računare, za zadatke koji ne zahtijevaju moćne procesore i resurse punopravnog desktop računara. WebOP može raditi kao samostalni terminal za kontrolu i unos/izlaz podataka, uparen sa drugim WebOP-ovima, ili kao dio SCADA sistema.
WebOP terminal se može povezati direktno na industrijske uređaje
Pasivno hlađenje i IP66 zaštita
Zbog niske disipacije topline, neki WebOP modeli su dizajnirani u potpunosti bez aktivnog hlađenja zrakom. Ovo omogućava da se uređaji montiraju na područjima koja su osjetljiva na nivoe buke i smanjuje količinu prašine koja ulazi u kućište.
Prednja ploča je izrađena bez zazora i spojeva, ima nivo zaštite IP66 i omogućava direktan ulazak vode pod pritiskom.
Stražnja ploča terminala WOP-3100T
Trajna memorija
Kako bi spriječio gubitak podataka, WebOP ima 128Kb nepromjenjive memorije, s kojom se može raditi na isti način kao i sa RAM-om. Može pohraniti očitanja brojila i druge kritične podatke. U slučaju nestanka struje, podaci će biti sačuvani i vraćeni nakon ponovnog pokretanja.
Daljinsko ažuriranje
Program koji radi na terminalu može se daljinski ažurirati preko Ethernet mreže ili preko RS-232/485 serijskih sučelja. Ovo pojednostavljuje održavanje, jer eliminiše potrebu za odlaskom na sve terminale radi ažuriranja softvera.
WebOP modeli
WebAccess/HMI Designer razvojno okruženje
Izvan kutije, WebOP terminal je samo ARM računar male snage na kojem možete pokrenuti bilo koji softver, ali cijela poenta ovog rješenja je vlasnički WebAcess/HMI industrijsko okruženje za razvoj interfejsa. Sistem se sastoji od dvije komponente:
- HMI Designer — okruženje za razvoj interfejsa i logike programiranja. Radi pod Windowsom na računaru programera. Konačni program se kompajlira u jednu datoteku i prenosi na terminal za izvršenje u vrijeme izvođenja. Program je dostupan na ruskom jeziku.
- HMI Runtime — vrijeme izvođenja za pokretanje kompajliranog programa na konačnom terminalu. Može raditi ne samo na WebOP terminalima, već i na Advantech UNO, MIC-u i običnim desktop računarima. Postoje runtime verzije za Linux, Windows, Windows CE.
Zdravo svijete - kreiranje projekta
Počnimo sa kreiranjem testnog interfejsa za naš Habr kontrolni panel. Pokrenut ću program na terminalu
Kreiranje novog projekta i odabir arhitekture
Odabir komunikacijskog protokola preko kojeg će kompajlirani program biti učitan u WebOP. U ovom koraku možete odabrati serijski interfejs ili odrediti IP adresu terminala.
Interfejs za kreiranje projekta. Na lijevoj strani nalazi se dijagram stabla komponenti budućeg programa. Za sada nas zanima samo stavka Screens, to su direktno ekrani sa elementima grafičkog interfejsa koji će biti prikazani na terminalu.
Prvo, napravimo dva ekrana sa tekstom "Hello World" i mogućnošću prebacivanja između njih pomoću dugmadi. Da bismo to uradili, dodaćemo novi ekran, Ekran #2, a na svaki ekran ćemo dodati tekstualni element i dva dugmeta za prebacivanje između ekrana (Screen Buttons). Konfigurirajmo svako dugme za prelazak na sljedeći ekran.
Interfejs za podešavanje dugmeta za prebacivanje između ekrana
Program Hello World je spreman, sada ga možete kompajlirati i pokrenuti. U fazi kompilacije može doći do grešaka u slučaju pogrešno navedenih varijabli ili adresa. Svaka greška se smatra fatalnom; program će biti preveden samo ako nema grešaka.
Okruženje pruža mogućnost simulacije terminala tako da možete lokalno otkloniti greške u programu na vašem računalu. Postoje dvije vrste simulacije:
- Online simulacija — koristit će se svi vanjski izvori podataka navedeni u programu. To mogu biti USO ili uređaji povezani preko serijskih sučelja ili Modbus TCP.
- Offline simulacija — simulacija bez upotrebe vanjskih uređaja.
Dok nemamo eksterne podatke, koristimo offline simulaciju, nakon što smo prethodno kompajlirali program. Konačni program će se nalaziti u folderu projekta, sa imenom ProjectName_ProgramName.px3
Program koji radi u simulaciji može se kontrolisati pomoću kursora miša na isti način kao što bi to bilo na dodirnom ekranu WebOP terminala. Vidimo da sve funkcioniše kako je zamišljeno. Odlično.
Da biste preuzeli program na fizički terminal, samo kliknite na dugme Preuzmi. Ali pošto nisam konfigurisao vezu terminala sa razvojnim okruženjem, možete jednostavno prenijeti datoteku pomoću USB fleš diska ili MicroSD memorijske kartice.
Interfejs programa je intuitivan, neću prolaziti kroz svaki grafički blok. Kreiranje pozadina, oblika i teksta bit će jasno svima koji su koristili programe slične Wordu. Za kreiranje grafičkog interfejsa nisu potrebne veštine programiranja; svi elementi se dodaju prevlačenjem miša na formu.
Rad sa memorijom
Sada kada znamo kako da kreiramo grafičke elemente, hajde da naučimo kako da radimo sa dinamičkim sadržajem i skript jezikom. Kreirajmo trakasti grafikon koji prikazuje podatke iz varijable U $ 100. U postavkama grafikona odaberite tip podataka: 16-bitni cijeli broj i raspon vrijednosti grafikona: od 0 do 10.
Program podržava pisanje skripti na tri jezika: VBScript, JavaScript i svoj jezik. Koristit ću treću opciju jer za nju postoje primjeri u dokumentaciji i pomoć za automatsku sintaksi u uređivaču.
Dodajmo novi makro:
Hajde da napišemo neki jednostavan kod za inkrementalnu promjenu podataka u varijabli koja se može pratiti na grafikonu. Promenljivoj ćemo dodati 10 i resetovati je na nulu kada je veća od 100.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
Da biste izvršili skriptu u petlji, postavite je u postavkama General Setup kao Glavni makro, sa intervalom izvršavanja od 250 ms.
Hajde da kompajliramo i pokrenemo program u simulatoru:
U ovoj fazi smo naučili da manipulišemo podacima u memoriji i da ih vizuelno prikažemo. Ovo je već dovoljno za kreiranje jednostavnog sistema praćenja, primanja podataka od eksternih uređaja (senzora, kontrolera) i njihovog snimanja u memoriju. U HMI Designer-u su dostupni različiti blokovi prikaza podataka: u obliku kružnih brojčanika sa strelicama, raznih grafikona i grafikona. Koristeći JavaScript skripte, možete preuzeti podatke iz vanjskih izvora putem HTTP-a.
Kontrolna tabla habra
Koristeći stečene vještine, napravićemo strip interfejs za Habr admin konzolu.
Naš daljinski upravljač bi trebao biti u mogućnosti:
- Promijenite korisničke profile
- Pohranite podatke o karmi i rejtingu
- Promijenite vrijednosti karme i ocjene pomoću klizača
- Kada kliknete na dugme „zabrani“, profil treba da bude označen kao zabranjen, a avatar se promeni u precrtan
Svaki profil ćemo prikazati na zasebnoj stranici, tako da ćemo kreirati stranicu za svaki profil. Karmu i ocjenu ćemo pohraniti u lokalne varijable u memoriju, koje će biti inicijalizirane pomoću Setup Macro-a kada program pokrene.
Prilagođavanje karme i rejtinga
Za podešavanje karme koristit ćemo klizač (Slide Switch). Navodimo varijablu inicijaliziranu u Setup Macro-u kao adresu snimanja. Ograničimo raspon vrijednosti klizača od 0 do 1500. Sada, kada se klizač pomjeri, novi podaci će biti upisani u memoriju. U ovom slučaju, početno stanje klizača će odgovarati vrijednostima varijable u memoriji.
Za prikaz numeričkih vrijednosti karme i ocjene koristit ćemo element Numeričkog prikaza. Princip njegovog rada je sličan dijagramu iz primjera programa “Hello World”; jednostavno naznačimo adresu varijable u adresi Monitora.
Dugme zabrani
Dugme „zabrana“ implementira se pomoću elementa Toggle Switch. Princip skladištenja podataka je sličan gore navedenim primjerima. U postavkama možete odabrati drugačiji tekst, boju ili sliku, ovisno o stanju gumba.
Kada se pritisne dugme, avatar treba biti precrtan crvenom bojom. Ovo je lako implementirati pomoću bloka Picture Display. Omogućava vam da navedete više slika povezanih sa stanjem dugmeta Toggle Switch. Da biste to učinili, bloku se dodijeli ista adresa kao bloku s gumbom i brojem stanja. Slika sa natpisnim pločicama ispod avatara postavljena je na sličan način.
zaključak
Sve u svemu, svidio mi se proizvod. Ranije sam imao iskustva sa korišćenjem Android tableta za slične zadatke, ali razvoj interfejsa za njega je mnogo teži, a API-ji pretraživača ne dozvoljavaju potpuni pristup periferiji. Jedan WebOP terminal može zamijeniti kombinaciju Android tableta, računara i kontrolera.
HMI Designer, uprkos svom arhaičnom dizajnu, prilično je napredan. Bez posebnih vještina programiranja, možete brzo skicirati radni interfejs. Članak ne govori o svim grafičkim blokovima, kojih ima mnogo: animirane cijevi, cilindri, grafovi, prekidači. Podržava mnoge popularne industrijske kontrolere iz kutije i sadrži konektore za bazu podataka.
reference
WebAccess/HMI Designer i Runtime razvojno okruženje se mogu preuzeti