Vidbendo: Habr-administra konzolo. Permesas al vi reguligi karmon, taksadon kaj malpermesi uzantojn.
TL; DR: En ĉi tiu artikolo mi provos krei komikan kontrolpanelon Habr uzante la Webaccess/HMI Designer industria interfaca evolumedio kaj la WebOP-terminalo.
Hom-maŝina interfaco (HMI) estas aro de sistemoj por homa interago kun kontrolitaj maŝinoj. Tipe tiu esprimo estas aplikita al industriaj sistemoj kiuj havas funkciigiston kaj kontrolpanelon.
WebOP — aŭtonoma industria terminalo por krei hom-maŝinajn interfacojn. Uzita por krei produktajn kontrolpanelojn, monitorajn sistemojn, kontrolĉambrojn, inteligentajn hejmajn regilojn ktp. Subtenas rektan ligon al industria ekipaĵo kaj povas funkcii kiel parto de SCADA-sistemo.
WebOP-terminalo - aparataro
La WebOP-terminalo estas malalt-potenca komputilo bazita sur ARM-procesoro, en ununura kazo kun ekrano kaj tuŝekrano, dizajnita por ruli programon kun grafika interfaco kreita en HMI Designer. Depende de la modelo, la terminaloj havas diversajn industriajn interfacojn surŝipe: RS-232/422/485, CAN-buso por konekti al aŭtomobilaj sistemoj, USB-Gastiganto-haveno por konekti pliajn ekstercentrajn, USB-klient-havenon por konekti la terminalon al komputilo, audio. enigo kaj aŭda eligo, leganto de kartoj MicroSD por nevolatila memoro kaj translokigo de agordoj.
La aparatoj estas poziciigitaj kiel buĝeta anstataŭaĵo por ĉiu-en-unu komputiloj, por taskoj kiuj ne postulas potencajn procesorojn kaj la rimedojn de plentaŭga labortabla komputilo. WebOP povas funkcii kiel memstara terminalo por kontrolo kaj datenenigo/eligo, parigita kun aliaj WebOPoj, aŭ kiel parto de SCADA sistemo.
La WebOP-terminalo povas konekti rekte al industriaj aparatoj
Pasiva malvarmigo kaj protekto IP66
Pro malalta varmodissipado, kelkaj WebOP-modeloj estas dizajnitaj tute sen aktiva aermalvarmigo. Ĉi tio permesas la aparatojn esti muntitaj en lokoj kiuj estas sentemaj al bruniveloj kaj reduktas la kvanton de polvo eniranta en la loĝejon.
La antaŭa panelo estas farita sen interspacoj aŭ juntoj, havas protektan nivelon de IP66, kaj permesas rektan eniron de akvo sub premo.
Malantaŭa panelo de la terminalo WOP-3100T
Ne-volatila memoro
Por malhelpi datumperdon, WebOP havas 128KB da nevolatila memoro, kun kiu povas esti laborita same kiel kun RAM. Ĝi povas stoki mezurlegojn kaj aliajn kritikajn datumojn. Okaze de elektropaneo, la datumoj estos konservitaj kaj restarigitaj post rekomenco.
Fora ĝisdatigo
La programo funkcianta sur la terminalo povas esti ĝisdatigita malproksime per Ethernet-reto aŭ per seriaj interfacoj RS-232/485. Ĉi tio simpligas prizorgadon, ĉar ĝi forigas la bezonon iri al ĉiuj fina stacioj por ĝisdatigi la programaron.
WebOP-Modeloj
WebAccess/HMI Designer evolumedio
Ekstere de la skatolo, la WebOP-terminalo estas nur malalta potenco ARM-komputilo sur kiu vi povas ruli ajnan programaron, sed la tuta celo de ĉi tiu solvo estas la propra WebAcess/HMI-industria interfaca evolumedio. La sistemo konsistas el du komponentoj:
- HMI-Projektisto — medio por evoluigado de interfacoj kaj programa logiko. Funkcias sub Vindozo sur la komputilo de la programisto. La fina programo estas kompilita en unu dosieron kaj transdonita al la terminalo por ekzekuto ĉe rultempo. La programo haveblas en la rusa.
- HMI Runtime — rultempo por ruli la kompilitan programon sur la fina terminalo. Ĝi povas funkcii ne nur ĉe WebOP-terminaloj, sed ankaŭ ĉe Advantech UNO, MIC kaj regulaj labortablaj komputiloj. Estas rultempaj versioj por Linukso, Vindozo, Windows CE.
Saluton mondo - kreante projekton
Ni komencu krei testan interfacon por nia kontrolpanelo Habr. Mi rulos la programon sur la terminalo
Krei novan projekton kaj elektante arkitekturon
Elektante la komunikan protokolon per kiu la kompilita programo estos ŝarĝita en WebOP. Je ĉi tiu paŝo, vi povas elekti serian interfacon, aŭ specifi la IP-adreson de la terminalo.
Interfaco de kreado de projekto. Sur la maldekstra flanko estas arbdiagramo de la komponantoj de la estonta programo. Nuntempe, ni nur interesiĝas pri la elemento Ekranoj, ĉi tiuj estas rekte la ekranoj kun grafikaj interfacaj elementoj, kiuj estos montrataj en la terminalo.
Unue, ni kreu du ekranojn kun la teksto "Saluton Mondo" kaj la kapablo ŝanĝi inter ili per butonoj. Por fari tion, ni aldonos novan ekranon, Ekrano #2, kaj sur ĉiu ekrano ni aldonos tekstan elementon kaj du butonojn por ŝanĝi inter ekranoj (Ekranaj Butonoj). Ni agordu ĉiun butonon por ŝanĝi al la sekva ekrano.
Interfaco por agordi la butonon por ŝanĝi inter ekranoj
La programo Saluton Mondo estas preta, nun vi povas kompili kaj ruli ĝin. En la kompila stadio povas esti eraroj en kazo de malĝuste specifitaj variabloj aŭ adresoj. Ajna eraro estas konsiderata fatala; la programo estos kompilita nur se ne estas eraroj.
La medio disponigas la kapablon simuli terminalon por ke vi povu sencimigi la programon en via komputilo loke. Estas du specoj de simulado:
- Reta simulado — ĉiuj eksteraj datumfontoj specifitaj en la programo estos uzataj. Ĉi tiuj povas esti USO aŭ aparatoj ligitaj per seriaj interfacoj aŭ Modbus TCP.
- Senreta simulado — simulado sen uzo de eksteraj aparatoj.
Kvankam ni ne havas eksterajn datumojn, ni uzas eksterreta simuladon, antaŭe kompilinte la programon. La fina programo troviĝos en la projekta dosierujo, kun la nomo Projektonomo_Programnomo.px3
La programo kuranta en la simulado povas esti kontrolita per la muskursoro en la sama maniero kiel ĝi estus sur la tuŝekrano de WebOP-terminalo. Ni vidas, ke ĉio funkcias kiel celite. Bonege.
Por elŝuti la programon al fizika terminalo, simple alklaku la butonon Elŝuti. Sed ĉar mi ne agordis la konekton de la terminalo al la evolua medio, vi povas simple translokigi la dosieron per USB-memorkarto aŭ MicroSD-memorkarto.
La programa interfaco estas intuicia, mi ne trairos ĉiun grafikan blokon. Krei fonojn, formojn kaj tekston estos klara por ĉiu, kiu uzis programojn similajn al Word. Por krei grafikan interfacon, neniuj programaj kapabloj estas bezonataj; ĉiuj elementoj estas aldonitaj per trenado de la muso sur la formularon.
Laborante kun memoro
Nun kiam ni scias kiel krei grafikajn elementojn, ni lernu kiel labori kun dinamika enhavo kaj skriptlingvo. Ni kreu strektablon montrantan datumojn de variablo U $ 100. En la diagramo-agordoj, elektu la datumtipo: 16-bita entjero, kaj la diagramo-valora gamo: de 0 ĝis 10.
La programo subtenas verki skriptojn en tri lingvoj: VBScript, JavaScript kaj sia propra lingvo. Mi uzos la trian opcion ĉar estas ekzemploj por ĝi en la dokumentado kaj aŭtomata sintaksa helpo ĝuste en la redaktilo.
Ni aldonu novan makroon:
Ni skribu iun simplan kodon por pliige ŝanĝi datumojn en variablo, kiu povas esti spurita sur diagramo. Ni aldonos 10 al la variablo, kaj restarigos ĝin al nulo kiam ĝi estas pli granda ol 100.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
Por ekzekuti la skripton en buklo, agordu ĝin en la Ĝenerala Agordo kiel Ĉefa Makroo, kun ekzekutintervalo de 250ms.
Ni kompilu kaj rulu la programon en la simulilo:
En ĉi tiu etapo, ni lernis manipuli datumojn en memoro kaj montri ĝin vide. Ĉi tio jam sufiĉas por krei simplan monitoran sistemon, ricevi datumojn de eksteraj aparatoj (sensiloj, regiloj) kaj registri ilin en memoro. En HMI Designer, malsamaj datenmontraj blokoj estas haveblaj: en la formo de cirklaj ciferdiskoj kun sagoj, diversaj diagramoj kaj grafikaĵoj. Uzante JavaScript-skriptojn, vi povas elŝuti datumojn de eksteraj fontoj per HTTP.
Habr kontrolpanelo
Uzante la akiritajn kapablojn, ni faros komikan interfacon por la Habr-administra konzolo.
Nia teleregilo devus povi:
- Ŝanĝu uzantprofilojn
- Stoku karmon kaj taksajn datumojn
- Ŝanĝu karmon kaj taksajn valorojn per glitiloj
- Kiam vi alklakas la butonon "malpermeso", la profilo devus esti markita kiel malpermesita, la avataro devus ŝanĝiĝi al forstrekita
Ni montros ĉiun profilon sur aparta paĝo, do ni kreos paĝon por ĉiu profilo. Ni stokos karmon kaj taksadon en lokaj variabloj en memoro, kiuj estos pravigitaj uzante Setup Macro kiam la programo komenciĝos.
Ĝustigante karmon kaj taksadon
Por ĝustigi karmon ni uzos la glitilon (Slide Switch). Ni specifas la variablon pravigitan en Setup Macro kiel la registradreson. Ni limigu la gamon de glitilaj valoroj de 0 ĝis 1500. Nun, kiam la glitilo moviĝas, novaj datumoj estos skribitaj en memoron. En ĉi tiu kazo, la komenca stato de la glitilo respondas al la valoroj de la variablo en memoro.
Por montri la nombrajn valorojn de karmo kaj taksado, ni uzos la Numera ekranelemento. La principo de ĝia funkciado estas simila al la diagramo de la ekzemplo "Saluton Mondo" programo; ni simple indikas la adreson de la variablo en Monitor Address.
Butono Ban
La "malpermeso" butono estas efektivigita per la Ŝaltilo Ŝaltilo elemento. La principo de konservado de datumoj similas al la supraj ekzemploj. En la agordoj, vi povas elekti malsaman tekston, koloron aŭ bildon, depende de la stato de la butono.
Kiam la butono estas premata, la avataro devas esti forstrekita ruĝe. Ĉi tio estas facile efektivigi uzante la Picture Display-blokon. Ĝi permesas vin specifi plurajn bildojn asociitajn kun la stato de la butono Ŝaltilo. Por fari tion, la bloko ricevas la saman adreson kiel la bloko kun la butono kaj la nombro da ŝtatoj. La bildo kun nomplatoj sub la avataro estas starigita en simila maniero.
konkludo
Ĝenerale, mi ŝatis la produkton. Antaŭe, mi havis sperton uzante Android-tabulojn por similaj taskoj, sed disvolvi interfacon por ĝi estas multe pli malfacila, kaj retumiloj API ne permesas plenan aliron al la ekstercentraj. Unu WebOP-terminalo povas anstataŭigi kombinaĵon de Android-tablojdo, komputilo kaj regilo.
HMI Designer, malgraŭ sia arkaika dezajno, estas sufiĉe progresinta. Sen specialaj programaj kapabloj, vi povas rapide skizi funkciantan interfacon. La artikolo ne diskutas ĉiujn grafikajn blokojn, el kiuj estas multaj: viglaj tuboj, cilindroj, grafikaĵoj, baskuliloj. Ĝi subtenas multajn popularajn industriajn regilojn el la skatolo kaj enhavas datumbazkonektilojn.
referencoj
WebAccess/HMI Designer kaj Runtime evolumedio povas esti elŝutitaj
→
fonto: www.habr.com