Vídeo: consola de administración Habr. Permíteche regular o karma, a clasificación e prohibir os usuarios.
TL; DR: Neste artigo intentarei crear un panel de control Habr cómico usando o contorno de desenvolvemento da interface industrial Webaccess/HMI Designer e o terminal WebOP.
A interface humano-máquina (HMI) é un conxunto de sistemas para a interacción humana con máquinas controladas. Normalmente este termo aplícase aos sistemas industriais que teñen un operador e un panel de control.
WebOP — un terminal industrial autónomo para a creación de interfaces home-máquina. Úsase para crear paneis de control de produción, sistemas de monitorización, salas de control, controladores domésticos intelixentes, etc. Admite conexión directa a equipos industriais e pode funcionar como parte dun sistema SCADA.
Terminal WebOP - hardware
O terminal WebOP é un ordenador de baixo consumo baseado nun procesador ARM, nun só caso con monitor e pantalla táctil, deseñado para executar un programa cunha interface gráfica creada en HMI Designer. Segundo o modelo, os terminais dispoñen de varias interfaces industriais a bordo: RS-232/422/485, bus CAN para conectarse a sistemas de automoción, porto USB Host para conectar periféricos adicionais, porto cliente USB para conectar o terminal a un ordenador, audio entrada e saída de audio, lector de tarxetas MicroSD para memoria non volátil e transferencia de configuración.
Os dispositivos sitúanse como un substituto orzamentario para PCs todo en un, para tarefas que non requiren procesadores potentes e os recursos dun ordenador de escritorio completo. WebOP pode funcionar como un terminal autónomo para control e entrada/saída de datos, emparejado con outros WebOP ou como parte dun sistema SCADA.
O terminal WebOP pode conectarse directamente a dispositivos industriais
Refrixeración pasiva e protección IP66
Debido á baixa disipación de calor, algúns modelos WebOP están deseñados totalmente sen arrefriamento activo por aire. Isto permite que os dispositivos se monten en zonas sensibles aos niveis de ruído e reduce a cantidade de po que entra na carcasa.
O panel frontal está feito sen ocos nin xuntas, ten un nivel de protección IP66 e permite a entrada directa de auga a presión.
Panel traseiro do terminal WOP-3100T
Memoria non volátil
Para evitar a perda de datos, WebOP ten 128 Kb de memoria non volátil, coa que se pode traballar do mesmo xeito que coa RAM. Pode almacenar lecturas de contadores e outros datos críticos. En caso de falla de enerxía, os datos gardaranse e restauraranse despois dun reinicio.
Actualización remota
O programa que se executa no terminal pódese actualizar de forma remota a través dunha rede Ethernet ou mediante interfaces serie RS-232/485. Isto simplifica o mantemento, xa que elimina a necesidade de acudir a todos os terminais para actualizar o software.
Modelos WebOP
Entorno de desenvolvemento de WebAccess/HMI Designer
Fóra da caixa, o terminal WebOP é só un ordenador ARM de baixo consumo no que pode executar calquera software, pero o obxectivo desta solución é o contorno de desenvolvemento da interface industrial WebAcess/HMI propietario. O sistema consta de dous compoñentes:
- Deseñador HMI — contorno para o desenvolvemento de interfaces e lóxica de programación. Funciona baixo Windows no ordenador do programador. O programa final compílase nun só ficheiro e transfírese ao terminal para a súa execución no tempo de execución. O programa está dispoñible en ruso.
- Tempo de execución de HMI — tempo de execución para executar o programa compilado no terminal final. Pode funcionar non só en terminais WebOP, senón tamén en Advantech UNO, MIC e ordenadores de escritorio habituais. Hai versións en tempo de execución para Linux, Windows, Windows CE.
Ola mundo - creando un proxecto
Comecemos a crear unha interface de proba para o noso panel de control Habr. Vou executar o programa no terminal
Crear un novo proxecto e escoller unha arquitectura
Seleccionando o protocolo de comunicación a través do cal se cargará o programa compilado en WebOP. Neste paso, pode seleccionar unha interface en serie ou especificar o enderezo IP do terminal.
Interface de creación de proxectos. No lado esquerdo hai un diagrama en árbore dos compoñentes do futuro programa. Polo momento só nos interesa o elemento Pantallas, estas son directamente as pantallas con elementos da interface gráfica que se mostrarán no terminal.
En primeiro lugar, imos crear dúas pantallas co texto "Ola mundo" e a posibilidade de cambiar entre elas mediante botóns. Para iso, engadiremos unha nova pantalla, Pantalla #2, e en cada pantalla engadiremos un elemento de texto e dous botóns para cambiar entre pantallas (Botóns de pantalla). Imos configurar cada botón para cambiar á seguinte pantalla.
Interface para configurar o botón para cambiar entre pantallas
O programa Hello World está listo, agora podes compilalo e executalo. Na fase de compilación pode haber erros en caso de variables ou enderezos especificados incorrectamente. Calquera erro considérase fatal; o programa compilarase só se non hai erros.
O entorno ofrece a posibilidade de simular un terminal para que poidas depurar o programa no teu ordenador localmente. Existen dous tipos de simulación:
- Simulación en liña — Utilizaranse todas as fontes de datos externas especificadas no programa. Estes poden ser USO ou dispositivos conectados mediante interfaces serie ou Modbus TCP.
- Simulación fóra de liña — simulación sen o uso de dispositivos externos.
Aínda que non dispoñemos de datos externos, utilizamos simulación fóra de liña, xa que previamente compilamos o programa. O programa definitivo estará situado na carpeta do proxecto, co nome NomeProxecto_NomePrograma.px3
O programa que se executa na simulación pódese controlar co cursor do rato do mesmo xeito que o faría na pantalla táctil dun terminal WebOP. Vemos que todo funciona como se pretende. Genial.
Para descargar o programa nun terminal físico, só tes que facer clic no botón Descargar. Pero como non configurei a conexión do terminal ao contorno de desenvolvemento, pode simplemente transferir o ficheiro usando unha unidade flash USB ou unha tarxeta de memoria MicroSD.
A interface do programa é intuitiva, non pasarei por todos os bloques gráficos. A creación de fondos, formas e texto quedará clara para calquera que utilice programas similares a Word. Para crear unha interface gráfica non se precisan coñecementos de programación; todos os elementos engádense arrastrando o rato ata o formulario.
Traballar coa memoria
Agora que sabemos como crear elementos gráficos, imos aprender a traballar con contido dinámico e unha linguaxe de script. Imos crear un gráfico de barras que mostre os datos dunha variable U $ 100. Na configuración do gráfico, seleccione o tipo de datos: enteiro de 16 bits e o intervalo de valores do gráfico: de 0 a 10.
O programa admite a escritura de scripts en tres linguaxes: VBScript, JavaScript e a súa propia linguaxe. Utilizarei a terceira opción porque hai exemplos para ela na documentación e na axuda de sintaxe automática directamente no editor.
Engademos unha nova macro:
Escribamos un código sinxelo para cambiar gradualmente os datos nunha variable que se pode seguir nun gráfico. Engadiremos 10 á variable e restableceremos a cero cando sexa superior a 100.
$U100=$U100+10
IF $U100>100
$U100=0
ENDIF
Para executar o script nun bucle, configúrao na configuración xeral de configuración como Macro principal, cun intervalo de execución de 250 ms.
Compilemos e executemos o programa no simulador:
Nesta fase, aprendemos a manipular os datos na memoria e a mostralos visualmente. Isto xa é suficiente para crear un sistema de vixilancia sinxelo, recibindo datos de dispositivos externos (sensores, controladores) e gravándoos na memoria. En HMI Designer, están dispoñibles diferentes bloques de visualización de datos: en forma de discos circulares con frechas, varios gráficos e gráficos. Usando scripts JavaScript, pode descargar datos de fontes externas a través de HTTP.
Panel de control habr
Usando as habilidades adquiridas, faremos unha interface cómica para a consola de administración de Habr.
O noso mando a distancia debería ser capaz de:
- Cambiar perfís de usuario
- Almacena datos de karma e valoración
- Cambia os valores de karma e clasificación usando controles deslizantes
- Cando fas clic no botón "prohibir", o perfil debería marcarse como prohibido, o avatar debería cambiar a tachado
Mostraremos cada perfil nunha páxina separada, polo que crearemos unha páxina para cada perfil. Almacenaremos o karma e a valoración en variables locais na memoria, que se inicializarán mediante Setup Macro cando se inicie o programa.
Axustar o karma e a clasificación
Para axustar o karma usaremos o control deslizante (Slide Switch). Especificamos a variable inicializada na Macro de configuración como enderezo de gravación. Limitemos o intervalo de valores do control deslizante de 0 a 1500. Agora, cando o control deslizante se move, escribiranse novos datos na memoria. Neste caso, o estado inicial do control deslizante corresponderá aos valores da variable na memoria.
Para mostrar os valores numéricos de karma e clasificación, utilizaremos o elemento de visualización numérico. O principio do seu funcionamento é semellante ao diagrama do programa "Hello World" de exemplo; simplemente indicamos o enderezo da variable en Monitor Address.
Botón Ban
O botón "prohibir" implícase usando o elemento Cambiar. O principio de almacenamento de datos é semellante aos exemplos anteriores. Na configuración, pode seleccionar texto, cor ou imaxe diferente, dependendo do estado do botón.
Cando se preme o botón, o avatar debe estar tachado en vermello. Isto é doado de implementar usando o bloque Picture Display. Permítelle especificar varias imaxes asociadas ao estado do botón Cambiar. Para iso, o bloque recibe o mesmo enderezo que o bloque co botón e o número de estados. A imaxe con placas de identificación baixo o avatar está configurada dun xeito similar.
Conclusión
En xeral, gustoume o produto. Anteriormente, tiña experiencia usando unha tableta Android para tarefas similares, pero desenvolver unha interface para ela é moito máis difícil e as API do navegador non permiten o acceso total aos periféricos. Un terminal WebOP pode substituír unha combinación de tableta, ordenador e controlador Android.
HMI Designer, a pesar do seu deseño arcaico, é bastante avanzado. Sen habilidades especiais de programación, pode esbozar rapidamente unha interface de traballo. O artigo non discute todos os bloques gráficos, dos que hai moitos: tubos animados, cilindros, gráficos, interruptores de palanca. Admite moitos controladores industriais populares e contén conectores de base de datos.
referencias
Pódense descargar WebAccess/HMI Designer e o entorno de desenvolvemento Runtime
→
Fonte: www.habr.com