Vaizdo įrašas: Habr administratoriaus konsolė. Leidžia reguliuoti karmą, vertinti ir uždrausti vartotojus.
Lt; DR: Šiame straipsnyje pabandysiu sukurti komišką Habr valdymo pultą, naudodamas Webaccess/HMI Designer pramoninės sąsajos kūrimo aplinką ir WebOP terminalą.
Žmogaus ir mašinos sąsaja (HMI) – tai žmonių sąveikos su valdomomis mašinomis sistemų rinkinys. Paprastai šis terminas taikomas pramoninėms sistemoms, turinčioms operatorių ir valdymo pultą.
WebOP — autonominis pramoninis terminalas žmogaus ir mašinos sąsajoms kurti. Naudojamas kuriant gamybos valdymo pultus, stebėjimo sistemas, valdymo patalpas, išmaniuosius namų valdiklius ir kt. Palaiko tiesioginį ryšį su pramonine įranga ir gali veikti kaip SCADA sistemos dalis.
WebOP terminalas – techninė įranga
„WebOP“ terminalas yra mažos galios kompiuteris, pagrįstas ARM procesoriumi, viename korpuse su monitoriumi ir jutikliniu ekranu, skirtas paleisti programai su HMI Designer sukurta grafine sąsaja. Priklausomai nuo modelio, terminalai turi įvairias pramonines sąsajas: RS-232/422/485, CAN magistralę, skirtą prisijungti prie automobilių sistemų, USB Host prievadą papildomiems periferiniams įrenginiams prijungti, USB Client prievadą terminalo prijungimui prie kompiuterio, garso įvestis ir garso išvestis, „MicroSD“ kortelių skaitytuvas, skirtas nuolatinei atminčiai ir nustatymams perkelti.
Įrenginiai yra išdėstyti kaip biudžetinis „viskas viename“ kompiuterių pakaitalas, atliekant užduotis, kurioms nereikia galingų procesorių ir visaverčio stalinio kompiuterio išteklių. WebOP gali veikti kaip atskiras valdymo ir duomenų įvesties/išvesties terminalas, suporuotas su kitais WebOP arba kaip SCADA sistemos dalis.
WebOP terminalas gali tiesiogiai prisijungti prie pramoninių įrenginių
Pasyvus aušinimas ir IP66 apsauga
Dėl mažo šilumos išsklaidymo kai kurie WebOP modeliai sukurti visiškai be aktyvaus oro aušinimo. Tai leidžia įrenginius montuoti vietose, kurios yra jautrios triukšmo lygiui ir sumažina dulkių patekimą į korpuso vidų.
Priekinis skydelis pagamintas be tarpų ir sujungimų, turi IP66 apsaugos lygį ir leidžia tiesiogiai patekti į slėgį esantį vandenį.
Galinis WOP-3100T terminalo skydelis
Nepastovi atmintis
Siekiant išvengti duomenų praradimo, WebOP turi 128Kb nepastovios atminties, su kuria galima dirbti taip pat, kaip ir su RAM. Jis gali saugoti skaitiklio rodmenis ir kitus svarbius duomenis. Nutrūkus maitinimui, duomenys bus išsaugoti ir atkurti po perkrovimo.
Nuotolinis atnaujinimas
Terminale veikiančią programą galima atnaujinti nuotoliniu būdu per Ethernet tinklą arba per RS-232/485 nuosekliąsias sąsajas. Tai supaprastina priežiūrą, nes nereikia eiti į visus terminalus norint atnaujinti programinę įrangą.
WebOP modeliai
WebAccess/HMI Designer kūrimo aplinka
„WebOP“ terminalas yra tik mažos galios ARM kompiuteris, kuriame galite paleisti bet kokią programinę įrangą, tačiau visa šio sprendimo esmė yra patentuota WebAcess/HMI pramoninės sąsajos kūrimo aplinka. Sistema susideda iš dviejų komponentų:
- HMI dizaineris — sąsajų ir programavimo logikos kūrimo aplinka. Programuotojo kompiuteryje veikia Windows sistemoje. Galutinė programa sukompiliuojama į vieną failą ir perkeliama į terminalą vykdyti vykdymo metu. Programa prieinama rusų kalba.
- HMI vykdymo laikas — vykdymo laikas, skirtas sukompiliuotai programai paleisti galutiniame terminale. Jis gali veikti ne tik WebOP terminaluose, bet ir Advantech UNO, MIC ir įprastuose staliniuose kompiuteriuose. Yra Linux, Windows, Windows CE vykdymo laiko versijos.
Sveikas pasaulis – kuriant projektą
Pradėkime kurti savo Habr valdymo pulto bandomąją sąsają. Aš paleisiu programą terminale
Naujo projekto kūrimas ir architektūros pasirinkimas
Ryšio protokolo, per kurį sukompiliuota programa bus įkeliama į WebOP, pasirinkimas. Šiame žingsnyje galite pasirinkti nuosekliąją sąsają arba nurodyti terminalo IP adresą.
Projekto kūrimo sąsaja. Kairėje pusėje yra būsimos programos komponentų medžio diagrama. Kol kas mus domina tik elementas Ekranai, tai tiesiogiai ekranai su grafinės sąsajos elementais, kurie bus rodomi terminale.
Pirmiausia sukurkime du ekranus su tekstu „Hello World“ ir galimybe juos perjungti mygtukais. Norėdami tai padaryti, pridėsime naują ekraną Ekranas #2 ir kiekviename ekrane pridėsime tekstinį elementą ir du mygtukus, skirtus perjungti ekranus (Ekrano mygtukai). Sukonfigūruokime kiekvieną mygtuką, kad perjungtumėte į kitą ekraną.
Sąsaja, skirta mygtukui perjungti ekranus
„Hello World“ programa yra paruošta, dabar galite ją kompiliuoti ir paleisti. Kompiliavimo etape gali būti klaidų, jei neteisingai nurodyti kintamieji ar adresai. Bet kokia klaida laikoma mirtina; programa bus sudaryta tik tuo atveju, jei klaidų nebus.
Aplinka suteikia galimybę imituoti terminalą, kad galėtumėte derinti programą savo kompiuteryje vietoje. Yra du modeliavimo tipai:
- Simuliacija internetu — bus naudojami visi programoje nurodyti išoriniai duomenų šaltiniai. Tai gali būti USO arba įrenginiai, prijungti per nuosekliąsias sąsajas arba Modbus TCP.
- Modeliavimas neprisijungus — modeliavimas nenaudojant išorinių įrenginių.
Nors neturime išorinių duomenų, naudojame modeliavimą neprisijungus, prieš tai sukūrę programą. Galutinė programa bus projekto aplanke su pavadinimu ProjectName_ProgramName.px3
Modeliavimo metu veikianti programa gali būti valdoma pelės žymekliu taip pat, kaip ir WebOP terminalo jutikliniame ekrane. Matome, kad viskas veikia taip, kaip numatyta. Puiku.
Norėdami atsisiųsti programą į fizinį terminalą, tiesiog spustelėkite mygtuką Atsisiųsti. Bet kadangi aš nesukonfigūravau terminalo prijungimo prie kūrimo aplinkos, galite tiesiog perkelti failą naudodami USB atmintinę arba „MicroSD“ atminties kortelę.
Programos sąsaja yra intuityvi, aš neperžvelgsiu kiekvieno grafinio bloko. Fonų, formų ir teksto kūrimas bus aiškus visiems, kurie naudojo programas, panašias į Word. Norint sukurti grafinę sąsają, nereikia jokių programavimo įgūdžių, visi elementai pridedami vilkdami pelę ant formos.
Darbas su atmintimi
Dabar, kai žinome, kaip kurti grafinius elementus, išmokime dirbti su dinamišku turiniu ir scenarijų kalba. Sukurkime juostinę diagramą, kurioje būtų rodomi kintamojo duomenys U $ 100. Diagramos nustatymuose pasirinkite duomenų tipą: 16 bitų sveikasis skaičius ir diagramos reikšmių diapazoną: nuo 0 iki 10.
Programa palaiko scenarijų rašymą trimis kalbomis: VBScript, JavaScript ir savo kalba. Naudosiu trečią parinktį, nes jos pavyzdžiai yra dokumentacijoje, o automatinės sintaksės pagalba tiesiog redaktoriuje.
Pridėkime naują makrokomandą:
Parašykime paprastą kodą, kad laipsniškai pakeistume duomenis kintamajame, kurį galima stebėti diagramoje. Prie kintamojo pridėsime 10 ir iš naujo nustatysime jį į nulį, kai jis bus didesnis nei 100.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
Norėdami vykdyti scenarijų cikle, bendrosios sąrankos nustatymuose nustatykite jį kaip pagrindinę makrokomandą su 250 ms vykdymo intervalu.
Sukompiliuokime ir paleiskime programą simuliatoriuje:
Šiame etape išmokome manipuliuoti atmintyje esančiais duomenimis ir juos vizualiai rodyti. To jau pakanka, kad būtų sukurta paprasta stebėjimo sistema, priimanti duomenis iš išorinių įrenginių (daviklių, valdiklių) ir įrašant juos į atmintį. HMI Designer galimi įvairūs duomenų rodymo blokai: apskritų ratukų su rodyklėmis, įvairių diagramų ir grafikų pavidalu. Naudodami JavaScript scenarijus galite atsisiųsti duomenis iš išorinių šaltinių per HTTP.
Habr valdymo pultas
Pasitelkę įgytus įgūdžius, sukursime komišką sąsają Habr administratoriaus konsolei.
Mūsų nuotolinio valdymo pultas turi turėti galimybę:
- Perjungti vartotojo profilius
- Išsaugokite karmos ir įvertinimo duomenis
- Keiskite karmą ir įvertinimo vertes naudodami slankiklius
- Kai paspausite mygtuką "uždrausti", profilis turi būti pažymėtas kaip uždraustas, avataras turėtų pasikeisti į perbrauktas
Kiekvieną profilį rodysime atskirame puslapyje, todėl kiekvienam profiliui sukursime po puslapį. Karmą ir įvertinimą išsaugosime vietiniuose kintamuosiuose atmintyje, kurie bus inicijuojami naudojant Setup Macro, kai programa paleidžiama.
Karmos ir įvertinimo koregavimas
Norėdami sureguliuoti karmą, naudosime slankiklį (Slide Switch). Kaip įrašymo adresą nurodome kintamąjį, inicijuotą Setup Macro. Apribokime slankiklio reikšmių diapazoną nuo 0 iki 1500. Dabar, kai slankiklis juda, nauji duomenys bus įrašyti į atmintį. Tokiu atveju pradinė slankiklio būsena atitiks atmintyje esančio kintamojo reikšmes.
Norėdami parodyti skaitines karmos ir įvertinimo reikšmes, naudosime skaitmeninio rodymo elementą. Jo veikimo principas panašus į schemą iš pavyzdinio „Hello World“ programos, tiesiog monitoriaus adresu nurodome kintamojo adresą.
Uždrausti mygtukas
Mygtukas „Uždrausti“ įgyvendinamas naudojant „Toggle Switch“ elementą. Duomenų saugojimo principas yra panašus į aukščiau pateiktus pavyzdžius. Nustatymuose galite pasirinkti skirtingą tekstą, spalvą ar vaizdą, priklausomai nuo mygtuko būsenos.
Paspaudus mygtuką, avataras turi būti perbrauktas raudonai. Tai lengva įgyvendinti naudojant vaizdo rodymo bloką. Tai leidžia nurodyti kelis vaizdus, susijusius su perjungimo mygtuko būsena. Norėdami tai padaryti, blokui suteikiamas toks pat adresas kaip blokui su mygtuku ir būsenų skaičiumi. Paveikslėlis su vardinėmis lentelėmis po avataru nustatytas panašiai.
išvada
Apskritai man produktas patiko. Anksčiau turėjau patirties naudojant Android planšetinį kompiuterį panašioms užduotims atlikti, tačiau sukurti jam sąsają yra daug sunkesnė, o naršyklės API neleidžia visiškai pasiekti periferinių įrenginių. Vienas WebOP terminalas gali pakeisti Android planšetinio kompiuterio, kompiuterio ir valdiklio derinį.
„HMI Designer“, nepaisant savo archajiško dizaino, yra gana pažengęs. Neturėdami specialių programavimo įgūdžių, galite greitai nubrėžti darbo sąsają. Straipsnyje neaptariami visi grafiniai blokai, kurių yra daug: animuoti vamzdžiai, cilindrai, grafikai, perjungimo jungikliai. Jis palaiko daugelį populiarių pramoninių valdiklių ir turi duomenų bazių jungtis.
Nuorodos
Galima atsisiųsti WebAccess/HMI Designer ir Runtime kūrimo aplinką
→
Šaltinis: www.habr.com