Video: Habr admin console. Hukuruhusu kudhibiti karma, ukadiriaji na kupiga marufuku watumiaji.
TL; DR: Katika makala haya nitajaribu kuunda jopo la udhibiti wa vichekesho vya Habr kwa kutumia mazingira ya ukuzaji wa kiolesura cha Wabunifu wa Webaccess/HMI na terminal ya WebOP.
Kiolesura cha mashine ya binadamu (HMI) ni seti ya mifumo ya mwingiliano wa binadamu na mashine zinazodhibitiwa. Kwa kawaida neno hili linatumika kwa mifumo ya viwanda ambayo ina operator na jopo la kudhibiti.
WebOP - kituo cha viwanda kinachojitegemea cha kuunda miingiliano ya mashine ya binadamu. Inatumika kuunda paneli za udhibiti wa uzalishaji, mifumo ya ufuatiliaji, vyumba vya udhibiti, vidhibiti mahiri vya nyumbani, n.k. Inasaidia muunganisho wa moja kwa moja kwa vifaa vya viwandani na inaweza kufanya kazi kama sehemu ya mfumo wa SCADA.
WebOP terminal - vifaa
Terminal ya WebOP ni kompyuta yenye nguvu ndogo kulingana na kichakataji cha ARM, katika hali moja iliyo na kifuatilizi na skrini ya kugusa, iliyoundwa ili kuendesha programu yenye kiolesura cha picha kilichoundwa katika Mbuni wa HMI. Kulingana na mfano, vituo vina miingiliano mbalimbali ya viwanda kwenye bodi: RS-232/422/485, basi ya CAN ya kuunganisha kwenye mifumo ya magari, bandari ya USB Host ya kuunganisha vifaa vya ziada, bandari ya Mteja wa USB ya kuunganisha terminal kwenye kompyuta, sauti. pembejeo na pato la sauti, kisoma kadi ya MicroSD kwa kumbukumbu isiyo tete na uhamishaji wa mipangilio.
Vifaa vimewekwa kama mbadala ya bajeti kwa Kompyuta zote za moja kwa moja, kwa kazi ambazo hazihitaji wasindikaji wenye nguvu na rasilimali za kompyuta ya mezani iliyojaa. WebOP inaweza kufanya kazi kama terminal inayojitegemea ya udhibiti na ingizo/pato, iliyooanishwa na WebOP zingine, au kama sehemu ya mfumo wa SCADA.
Terminal ya WebOP inaweza kuunganisha moja kwa moja kwenye vifaa vya viwandani
Upoezaji tulivu na ulinzi wa IP66
Kutokana na utawanyiko wa chini wa joto, baadhi ya miundo ya WebOP imeundwa bila kupoza hewa inayotumika. Hii inaruhusu vifaa kupachikwa katika maeneo ambayo ni nyeti kwa viwango vya kelele na kupunguza kiwango cha vumbi kuingia ndani ya nyumba.
Jopo la mbele linafanywa bila mapungufu au viungo, lina kiwango cha ulinzi cha IP66, na inaruhusu ingress ya moja kwa moja ya maji chini ya shinikizo.
Jopo la nyuma la terminal ya WOP-3100T
Kumbukumbu isiyo na tete
Ili kuzuia upotezaji wa data, WebOP ina 128Kb ya kumbukumbu isiyo na tete, ambayo inaweza kufanyiwa kazi kwa njia sawa na RAM. Inaweza kuhifadhi usomaji wa mita na data nyingine muhimu. Katika tukio la kushindwa kwa nguvu, data itahifadhiwa na kurejeshwa baada ya kuanzisha upya.
Sasisho la mbali
Programu inayoendesha kwenye terminal inaweza kusasishwa kwa mbali kupitia mtandao wa Ethernet au kupitia miingiliano ya serial ya RS-232/485. Hii hurahisisha matengenezo, kwani huondoa hitaji la kwenda kwenye vituo vyote kusasisha programu.
Mifano ya WebOP
Mazingira ya ukuzaji wa WebAccess/HMI Designer
Nje ya kisanduku, terminal ya WebOP ni kompyuta ya ARM yenye nguvu ya chini ambayo unaweza kuendesha programu yoyote, lakini hatua nzima ya suluhisho hili ni mazingira ya maendeleo ya kiolesura cha viwanda cha WebAcess/HMI. Mfumo unajumuisha vipengele viwili:
- Mbunifu wa HMI - mazingira ya kukuza miingiliano na mantiki ya upangaji. Inaendesha chini ya Windows kwenye kompyuta ya programu. Programu ya mwisho imejumuishwa katika faili moja na kuhamishiwa kwenye terminal kwa ajili ya utekelezaji wakati wa kukimbia. Mpango huo unapatikana kwa Kirusi.
- HMI Runtime - wakati wa kukimbia wa kuendesha programu iliyokusanywa kwenye terminal ya mwisho. Inaweza kufanya kazi sio tu kwenye vituo vya WebOP, lakini pia kwenye Advantech UNO, MIC, na kompyuta za mezani za kawaida. Kuna matoleo ya wakati wa kutekelezwa kwa Linux, Windows, Windows CE.
Hello ulimwengu - kuunda mradi
Hebu tuanze kuunda kiolesura cha majaribio cha paneli yetu ya udhibiti ya Habr. Nitaendesha programu kwenye terminal
Kuunda mradi mpya na kuchagua usanifu
Kuchagua itifaki ya mawasiliano ambayo programu iliyokusanywa itapakiwa kwenye WebOP. Katika hatua hii, unaweza kuchagua interface ya serial, au taja anwani ya IP ya terminal.
Kiolesura cha kuunda mradi. Kwenye upande wa kushoto kuna mchoro wa mti wa vipengele vya programu ya baadaye. Kwa sasa, tunavutiwa tu na kipengee cha Skrini, hizi ni skrini moja kwa moja zilizo na vipengee vya kiolesura cha picha ambavyo vitaonyeshwa kwenye terminal.
Kwanza, hebu tuunda skrini mbili na maandishi "Hello World" na uwezo wa kubadili kati yao kwa kutumia vifungo. Ili kufanya hivyo, tutaongeza skrini mpya, Skrini # 2, na kwenye kila skrini tutaongeza kipengele cha maandishi na vifungo viwili vya kubadili kati ya skrini (Vifungo vya Skrini). Hebu tusanidi kila kitufe ili kubadili hadi skrini inayofuata.
Kiolesura cha kuweka kitufe ili kubadili kati ya skrini
Mpango wa Hello World uko tayari, sasa unaweza kuukusanya na kuuendesha. Katika hatua ya mkusanyiko, makosa yanaweza kutokea katika kesi ya vijiti vilivyoainishwa vibaya au anwani. Hitilafu yoyote inachukuliwa kuwa mbaya; programu itaundwa tu ikiwa hakuna makosa.
Mazingira hutoa uwezo wa kuiga terminal ili uweze kutatua programu kwenye kompyuta yako ndani ya nchi. Kuna aina mbili za simulation:
- Uigaji mtandaoni - vyanzo vyote vya data vya nje vilivyoainishwa kwenye programu vitatumika. Hizi zinaweza kuwa USO au vifaa vilivyounganishwa kupitia violesura vya mfululizo au Modbus TCP.
- Uigaji wa nje ya mtandao - kuiga bila kutumia vifaa vya nje.
Ingawa hatuna data ya nje, tunatumia uigaji wa nje ya mtandao, baada ya kuandaa programu hapo awali. Programu ya mwisho itakuwa iko kwenye folda ya mradi, yenye jina ProjectName_ProgramName.px3
Programu inayoendeshwa katika uigaji inaweza kudhibitiwa na kishale cha kipanya kwa njia sawa na ingekuwa kwenye skrini ya kugusa ya terminal ya WebOP. Tunaona kwamba kila kitu kinafanya kazi kama ilivyokusudiwa. Kubwa.
Ili kupakua programu kwenye terminal ya kimwili, bonyeza tu kitufe cha Pakua. Lakini kwa kuwa sijasanidi uunganisho wa terminal kwenye mazingira ya maendeleo, unaweza tu kuhamisha faili kwa kutumia gari la USB flash au kadi ya kumbukumbu ya MicroSD.
Kiolesura cha programu ni angavu, sitapitia kila kizuizi cha picha. Kuunda usuli, maumbo, na maandishi yatakuwa wazi kwa mtu yeyote ambaye ametumia programu zinazofanana na Word. Ili kuunda kiolesura cha picha, hakuna ujuzi wa programu unaohitajika; vipengele vyote huongezwa kwa kuburuta kipanya kwenye fomu.
Kufanya kazi na kumbukumbu
Kwa kuwa sasa tunajua jinsi ya kuunda vipengee vya picha, hebu tujifunze jinsi ya kufanya kazi na maudhui yanayobadilika na lugha ya uandishi. Wacha tuunde chati ya upau inayoonyesha data kutoka kwa kigezo U $ 100. Katika mipangilio ya chati, chagua aina ya data: nambari kamili ya biti 16, na anuwai ya thamani za chati: kutoka 0 hadi 10.
Programu inasaidia maandishi katika lugha tatu: VBScript, JavaScript na lugha yake mwenyewe. Nitatumia chaguo la tatu kwa sababu kuna mifano yake katika hati na usaidizi wa syntax otomatiki kwenye kihariri.
Wacha tuongeze jumla mpya:
Hebu tuandike msimbo rahisi ili kubadilisha data kwa kasi katika kigezo ambacho kinaweza kufuatiliwa kwenye chati. Tutaongeza 10 kwa kutofautisha, na kuiweka upya hadi sifuri ikiwa ni kubwa kuliko 100.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
Ili kutekeleza hati katika kitanzi, iweke katika Mipangilio ya Usanidi wa Jumla kama Macro kuu, na muda wa utekelezaji wa 250ms.
Wacha tukusanye na kuendesha programu kwenye simulator:
Katika hatua hii, tumejifunza kudhibiti data kwenye kumbukumbu na kuionyesha kwa macho. Hii tayari inatosha kuunda mfumo rahisi wa ufuatiliaji, kupokea data kutoka kwa vifaa vya nje (sensorer, watawala) na kurekodi kwenye kumbukumbu. Vizuizi mbalimbali vya kuonyesha data vinapatikana katika Mbuni wa HMI: kwa njia ya miduara yenye mishale, chati mbalimbali na grafu. Kwa kutumia hati za JavaScript, unaweza kupakua data kutoka kwa vyanzo vya nje kupitia HTTP.
Jopo la kudhibiti Habr
Kwa kutumia ujuzi uliopatikana, tutafanya kiolesura cha katuni cha kiweko cha msimamizi wa Habr.
Udhibiti wetu wa mbali unapaswa kuwa na uwezo wa:
- Badilisha wasifu wa mtumiaji
- Hifadhi karma na data ya ukadiriaji
- Badilisha karma na maadili ya ukadiriaji kwa kutumia vitelezi
- Unapobofya kitufe cha "marufuku", wasifu unapaswa kuwekewa alama kuwa umepigwa marufuku, avatar inapaswa kubadilika ili kuvuka nje.
Tutaonyesha kila wasifu kwenye ukurasa tofauti, kwa hivyo tutaunda ukurasa kwa kila wasifu. Tutahifadhi karma na ukadiriaji katika vigeu vya ndani kwenye kumbukumbu, ambavyo vitaanzishwa kwa kutumia Setup Macro programu itakapoanza.
Kurekebisha karma na ukadiriaji
Ili kurekebisha karma tutatumia kitelezi (Swichi ya slaidi). Tunabainisha kigezo kilichoanzishwa katika Setup Macro kama anwani ya kurekodi. Wacha tuweke kikomo cha maadili ya kitelezi kutoka 0 hadi 1500. Sasa, wakati kitelezi kinaposonga, data mpya itaandikwa kwa kumbukumbu. Katika kesi hii, hali ya awali ya kitelezi italingana na maadili ya kutofautisha kwenye kumbukumbu.
Ili kuonyesha maadili ya nambari ya karma na ukadiriaji, tutatumia kipengee cha onyesho cha Nambari. Kanuni ya uendeshaji wake ni sawa na mchoro kutoka kwa mfano wa mpango wa "Hello World"; tunaonyesha tu anwani ya kutofautiana katika Anwani ya Monitor.
Kitufe cha kupiga marufuku
Kitufe cha "marufuku" kinatekelezwa kwa kutumia kipengele cha Geuza Badilisha. Kanuni ya uhifadhi wa data ni sawa na mifano hapo juu. Katika mipangilio, unaweza kuchagua maandishi tofauti, rangi au picha, kulingana na hali ya kifungo.
Wakati kifungo kinaposisitizwa, avatar inapaswa kuvuka kwa rangi nyekundu. Hii ni rahisi kutekeleza kwa kutumia kizuizi cha Onyesho la Picha. Inakuruhusu kubainisha picha nyingi zinazohusiana na hali ya kitufe cha Geuza Badilisha. Ili kufanya hivyo, kizuizi kinapewa anwani sawa na kizuizi na kifungo na idadi ya majimbo. Picha iliyo na alama za majina chini ya avatar imewekwa kwa njia sawa.
Hitimisho
Kwa ujumla, nilipenda bidhaa. Hapo awali, nilikuwa na uzoefu wa kutumia kompyuta kibao ya Android kwa kazi zinazofanana, lakini kutengeneza kiolesura chake ni ngumu zaidi, na API za kivinjari haziruhusu ufikiaji kamili wa vifaa vya pembeni. Terminal moja ya WebOP inaweza kuchukua nafasi ya mchanganyiko wa kompyuta kibao ya Android, kompyuta na kidhibiti.
Mbuni wa HMI, licha ya muundo wake wa kizamani, ni wa hali ya juu kabisa. Bila ujuzi maalum wa programu, unaweza haraka kuchora interface ya kufanya kazi. Nakala hiyo haijadili vizuizi vyote vya picha, ambavyo kuna mengi: bomba za uhuishaji, mitungi, grafu, swichi za kugeuza. Inaauni vidhibiti vingi maarufu vya viwandani nje ya boksi na ina viunganishi vya hifadhidata.
marejeo
Mbuni wa WebAccess/HMI na mazingira ya ukuzaji wa Wakati wa Runtime yanaweza kupakuliwa
β
Chanzo: mapenzi.com