Vídeo: consola d'administració Habr. Et permet regular el karma, qualificar i prohibir els usuaris.
TL; DR: En aquest article intentaré crear un tauler de control Habr còmic utilitzant l'entorn de desenvolupament de la interfície industrial Webaccess/HMI Designer i el terminal WebOP.
La interfície home-màquina (HMI) és un conjunt de sistemes per a la interacció humana amb màquines controlades. Normalment, aquest terme s'aplica als sistemes industrials que tenen un operador i un panell de control.
WebOP — un terminal industrial autònom per a la creació d'interfícies home-màquina. S'utilitza per crear panells de control de producció, sistemes de monitorització, sales de control, controladors domèstics intel·ligents, etc. Admet connexió directa amb equips industrials i pot funcionar com a part d'un sistema SCADA.
Terminal WebOP - maquinari
El terminal WebOP és un ordinador de baix consum basat en un processador ARM, en un sol cas amb monitor i pantalla tàctil, dissenyat per executar un programa amb una interfície gràfica creat a HMI Designer. Segons el model, els terminals tenen a bord diverses interfícies industrials: RS-232/422/485, bus CAN per a la connexió a sistemes d'automoció, port USB Host per connectar perifèrics addicionals, port USB Client per connectar el terminal a un ordinador, àudio entrada i sortida d'àudio, lector de targetes MicroSD per a memòria no volàtil i transferència de configuració.
Els dispositius es col·loquen com un reemplaçament pressupostari dels ordinadors tot en un, per a tasques que no requereixen processadors potents i els recursos d'un ordinador d'escriptori complet. WebOP pot funcionar com a terminal autònom per a control i entrada/sortida de dades, emparellat amb altres WebOP o com a part d'un sistema SCADA.
El terminal WebOP es pot connectar directament a dispositius industrials
Refrigeració passiva i protecció IP66
A causa de la baixa dissipació de calor, alguns models WebOP estan dissenyats completament sense refrigeració activa per aire. Això permet muntar els dispositius en zones sensibles als nivells de soroll i redueix la quantitat de pols que entra a l'interior de la carcassa.
El panell frontal està fet sense buits ni juntes, té un grau de protecció IP66, i permet l'entrada directa d'aigua a pressió.
Panell posterior del terminal WOP-3100T
Memòria no volàtil
Per evitar la pèrdua de dades, WebOP té 128 Kb de memòria no volàtil, amb la qual es pot treballar de la mateixa manera que amb la memòria RAM. Pot emmagatzemar lectures de comptadors i altres dades crítiques. En cas d'interrupció de l'alimentació, les dades es desaran i es restauraran després d'un reinici.
Actualització remota
El programa que s'executa al terminal es pot actualitzar de forma remota mitjançant una xarxa Ethernet o mitjançant interfícies sèrie RS-232/485. Això simplifica el manteniment, ja que elimina la necessitat d'anar a tots els terminals per actualitzar el programari.
Models WebOP
Entorn de desenvolupament WebAccess/HMI Designer
Fora de la caixa, el terminal WebOP és només un ordinador ARM de baix consum en el qual podeu executar qualsevol programari, però l'objectiu d'aquesta solució és l'entorn de desenvolupament d'interfície industrial WebAcess/HMI propietari. El sistema consta de dos components:
- Dissenyador HMI — entorn per desenvolupar interfícies i lògica de programació. S'executa sota Windows a l'ordinador del programador. El programa final es compila en un fitxer i es transfereix al terminal per a l'execució en temps d'execució. El programa està disponible en rus.
- Temps d'execució de l'HMI — temps d'execució per executar el programa compilat al terminal final. Pot funcionar no només en terminals WebOP, sinó també en Advantech UNO, MIC i ordinadors d'escriptori normals. Hi ha versions d'execució per a Linux, Windows, Windows CE.
Hola món: creant un projecte
Comencem a crear una interfície de prova per al nostre tauler de control Habr. Executaré el programa al terminal
Crear un nou projecte i triar una arquitectura
Seleccionar el protocol de comunicació a través del qual es carregarà el programa compilat a WebOP. En aquest pas, podeu seleccionar una interfície sèrie o especificar l'adreça IP del terminal.
Interfície de creació de projectes. Al costat esquerre hi ha un diagrama en arbre dels components del futur programa. De moment, només ens interessa l'element Pantalles, aquestes són directament les pantalles amb elements d'interfície gràfica que es mostraran al terminal.
Primer, creem dues pantalles amb el text "Hola món" i la possibilitat de canviar entre elles mitjançant botons. Per fer-ho, afegirem una nova pantalla, Pantalla #2, i a cada pantalla hi afegirem un element de text i dos botons per canviar entre pantalles (Botons de pantalla). Configurem cada botó per canviar a la pantalla següent.
Interfície per configurar el botó per canviar entre pantalles
El programa Hello World està llest, ara el podeu compilar i executar. En l'etapa de compilació pot haver-hi errors en cas de variables o adreces especificades incorrectament. Qualsevol error es considera fatal; el programa només es compilarà si no hi ha errors.
L'entorn ofereix la possibilitat de simular un terminal perquè pugueu depurar el programa a l'ordinador localment. Hi ha dos tipus de simulació:
- Simulació en línia — S'utilitzaran totes les fonts de dades externes especificades al programa. Aquests poden ser USO o dispositius connectats mitjançant interfícies sèrie o Modbus TCP.
- Simulació fora de línia — simulació sense l'ús de dispositius externs.
Tot i que no disposem de dades externes, fem servir la simulació fora de línia, havent compilat prèviament el programa. El programa definitiu estarà situat a la carpeta del projecte, amb el nom ProjectName_ProgramName.px3
Un programa que s'executa a la simulació es pot controlar amb el cursor del ratolí de la mateixa manera que ho faria a la pantalla tàctil d'un terminal WebOP. Veiem que tot funciona segons el previst. Genial.
Per descarregar el programa a un terminal físic, només cal que feu clic al botó Descarrega. Però com que no he configurat la connexió del terminal a l'entorn de desenvolupament, simplement podeu transferir el fitxer mitjançant una unitat flash USB o una targeta de memòria MicroSD.
La interfície del programa és intuïtiva, no passaré per tots els blocs gràfics. La creació de fons, formes i text serà clara per a qualsevol que hagi utilitzat programes similars a Word. Per crear una interfície gràfica, no calen coneixements de programació; tots els elements s'afegeixen arrossegant el ratolí al formulari.
Treballant amb la memòria
Ara que sabem com crear elements gràfics, aprenem a treballar amb contingut dinàmic i un llenguatge de script. Creem un gràfic de barres que mostri dades d'una variable O $ 100. A la configuració del gràfic, seleccioneu el tipus de dades: enter de 16 bits i l'interval de valors del gràfic: de 0 a 10.
El programa admet escriure scripts en tres idiomes: VBScript, JavaScript i el seu propi llenguatge. Faré servir la tercera opció perquè hi ha exemples a la documentació i l'ajuda de sintaxi automàtica directament a l'editor.
Afegim una nova macro:
Escrivim un codi senzill per canviar de manera incremental les dades d'una variable que es pot fer un seguiment en un gràfic. Afegirem 10 a la variable i la restablirem a zero quan sigui superior a 100.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
Per executar l'script en un bucle, configureu-lo a la configuració general com a macro principal, amb un interval d'execució de 250 ms.
Compilem i executem el programa al simulador:
En aquesta etapa, hem après a manipular dades a la memòria i mostrar-les visualment. Això ja és suficient per crear un sistema de monitoratge senzill, rebent dades de dispositius externs (sensors, controladors) i gravant-les a la memòria. Hi ha diversos blocs de visualització de dades disponibles a HMI Designer: en forma de dials circulars amb fletxes, diversos gràfics i gràfics. Mitjançant scripts de JavaScript, podeu descarregar dades de fonts externes mitjançant HTTP.
Tauler de control Habr
Utilitzant les habilitats adquirides, farem una interfície còmica per a la consola d'administració Habr.
El nostre comandament a distància hauria de ser capaç de:
- Canvia els perfils d'usuari
- Emmagatzema el karma i les dades de valoració
- Canvieu el karma i els valors de qualificació mitjançant controls lliscants
- Quan feu clic al botó "prohibir", el perfil s'hauria de marcar com a prohibit, l'avatar hauria de canviar a ratllat
Mostrarem cada perfil en una pàgina separada, així que crearem una pàgina per a cada perfil. Emmagatzemarem el karma i la qualificació en variables locals a la memòria, que s'inicializaran mitjançant la macro de configuració quan s'iniciï el programa.
Ajust de karma i valoració
Per ajustar el karma utilitzarem el control lliscant (Slide Switch). Especifiquem la variable inicialitzada a la macro de configuració com a adreça de gravació. Limitem l'interval de valors del control lliscant de 0 a 1500. Ara, quan el control lliscant es mou, s'escriuran dades noves a la memòria. En aquest cas, l'estat inicial del control lliscant correspondrà als valors de la variable en memòria.
Per mostrar els valors numèrics de karma i valoració, utilitzarem l'element de visualització numèrica. El principi del seu funcionament és similar al diagrama de l'exemple del programa "Hello World"; simplement indiquem l'adreça de la variable a Monitor Address.
Botó Ban
El botó "prohibició" s'implementa mitjançant l'element de commutació. El principi d'emmagatzematge de dades és similar als exemples anteriors. A la configuració, podeu seleccionar diferents text, color o imatge, segons l'estat del botó.
Quan es prem el botó, l'avatar s'ha de ratllar en vermell. Això és fàcil d'implementar mitjançant el bloc de visualització d'imatges. Us permet especificar diverses imatges associades a l'estat del botó de commutació. Per fer-ho, el bloc rep la mateixa adreça que el bloc amb el botó i el nombre d'estats. La imatge amb plaques de nom sota l'avatar està configurada de manera similar.
Conclusió
En general, em va agradar el producte. Anteriorment, tenia experiència utilitzant una tauleta Android per a tasques similars, però desenvolupar-hi una interfície és molt més difícil i les API del navegador no permeten l'accés total als perifèrics. Un terminal WebOP pot substituir una combinació d'una tauleta, un ordinador i un controlador Android.
HMI Designer, malgrat el seu disseny arcaic, és força avançat. Sense habilitats especials de programació, podeu dibuixar ràpidament una interfície de treball. L'article no parla de tots els blocs gràfics, dels quals n'hi ha molts: canonades animades, cilindres, gràfics, interruptors de palanca. Admet molts controladors industrials populars des de la caixa i conté connectors de base de dades.
Referències
Es poden descarregar WebAccess/HMI Designer i l'entorn de desenvolupament Runtime
→
Font: www.habr.com