Guía de Instalación de HMICEOS1

 

Release 4.7.4-SNAPSHOT, año 2024.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CEOS Automatización C.A.

 

Contenido

 

Acerca de HMICEOS1

Descripción General

1. Estructura de Archivos

2. Pasos previos o requisitos

2.1. Instalar JDK 17 o 21

2.2. Instalar xdotool

3. Instalar Phoebus

3.1. Pantallas o Despliegues

4. Crear usuario operador y administrador

4.1. Autologin del usuario operador

5. Vulnerabilidades PHOEBUS

a) Debian XFCE

Administrador

Operador

Inicio automático (AutoStart) de aplicaciones

xfce4-panel

Eliminar acceso a la tecla ALT izquierda

Accesos Rápidos o Directos (Atajos)

b) Debian KDE

Accesos Rápidos

Accesos Rápidos Personalizados

6. Configuraciones Phoebus (HMICEOS1)

7. Imagen de inicio SPLASH

8. Logo HMICEOS01

9. Scripts Generados

9.1. printscreen_hmi

9.2. Arranque Phoebus (HMICEOS1)

a) Con Settings.ini

b) Con resource (Despliegue inicial) y layout (oper.mememto)

c) Validar usuario operador

10. COMANDOS AUTO INSTALL

11. Respaldar Archivos con ruta y permisología

12. Restaurar Archivos con ruta y permisologia

 

2.Acerca de HMICEOS1

 

 HMICEOS1 es una solución para monitorear y operar sistemas de control industrial en tiempo real, la cual puede instalarse en cualquier plataforma que soporte JAVA, integrada por CEOS Automatización CA.  Combina los avances de aplicaciones de código abierto como "Phoebus" variante actual de Control System Studio (CS-Studio) y Apache PLC4X en su característica “Merlot”.

 

  CS-Studio "Phoebus" permite generar los despliegues o pantallas requeridas para supervisar y controlar las variables digitales y analógicas, tales como estado del motor, válvulas, niveles del tanque, presión, vibración, temperatura, entre otros parámetros del proceso. Se utilizará la versión 4.7.4, año 2024.

 

 Apache PLC4X característica “Melot” es el intermediario de comunicación entre “Phoebus” y el Sistema de Control, Controlador Lógico Programable (PLC) u otro dispositivo industrial presente en la Planta a integrar que utilice protocolos de comunicación industrial, tales como: Modbus, S7, OPC, entre otros. La versión actual es merlot-0.13.0, año 2024.

El objetivo final de Apache PLC4X, https://plc4x.apache.org/, es crear un conjunto de bibliotecas en código abierto que permitan comunicarse con cualquier tipo de controlador lógico programable (PLC) de grado industrial.

 

 CEOS Automatización C.A. participa activamente en las mejoras de “Merlot”, ofreciendo soluciones reales en la actualidad con HMICEOS1 y trabajando en otros requerimientos con mayores grados de complejidad referidos como HMICEOS2 y HMICEOS3, según el avance y fechas de entrega.

 

4.Descripción General

 A continuación se muestra el flujo de los datos vistos y controlados desde los Despliegues en el Monitor del HMI hasta el proceso de fabricación.

 Phoebus hace uso de PV Access JAVA API, para comunicarse con “Merlot”. Por lo cual todos los datos en los despliegues que supervisan o controlan alguna variable de proceso, comenzarán con pva:// y luego el nombre de la variable, sin importar el protocolo de comunicación que utilice el PLC de campo. (Ejemplos: pva://UXTAG01/value, pva://UZTAG39/alarm)

 La característica “Merlot” de Apache PLC4X, es desarrollada sobre el contenedor de aplicaciones Apache Karaf, que le permite ejecutarse de manera aislada e independiente, en caliente,  con acceso remoto, entre otras bondades que brindan robustez, seguridad y posibilidad de enfrentar retos de incluir nuevos protocolos y funcionalidades.

 Es por ello que puede implementarse el driver de comunicación del protocolo S7 de Siemens hoy en HMICEOS1 y mañana dependiendo de los requerimientos de la planta, pasar a Modbus u otro nuevo protocolo por ejemplo sin afectar los Despliegues o Pantallas realizados en Phoebus.

 
 

5.Estructura de Archivos

 

 La instalación del programa Phoebus en Linux puede funcionar todo en una sola carpeta (por ejemplo: /home/user/git/forks/phoebus), sin embargo, implementarlo en un ambiente de producción en las instalaciones de Cliente amerita aplicar restricciones de acceso tanto al sistema operativo como a las aplicaciones dentro de Phoebus que puedan comprometer la funcionalidad del aplicativo o la seguridad de la Planta.  

 Se utilizará los directorios /opt, /usr/share y /usr/bin de la siguiente manera:

  (/opt):  Carpeta del sistema operativo donde se colocarán los archivos del aplicativo Phoebus; para HMICEOS1 el resultado generado de la versión 4.7.4-SNAPSHOT se descargará en la subcarpeta /opt/Phoebus-App.

/opt

└── Phoebus-App

__________________________________________________________________________________

/opt/Phoebus-App/lib$ pwd

/opt/Phoebus-App/lib

 

$ tree /opt

/opt

└── Phoebus-App

    ├── lib

    │   ├── activation-1.1.jar

    │   ├── activemq-client-5.18.4.jar

    . . .

    │   ├── xmlgraphics-commons-2.4.jar

    │   └── zstd-jni-1.5.5-1.jar

    ├── phoebus.bat

    ├── phoebus.desktop

    ├── phoebus.sh

    ├── product-4.7.4-SNAPSHOT.jar

    ├── README.md

    └── site_splash.png -> /usr/share/Phoebus-Files/Proyecto/Imagenes/site_splash.png

 

3 directories, 274 files

administrador@elmorro:~$

__________________________________________________________________________________

 

 

        (/usr/share):  dentro de esta carpeta del sistema operativo, se colocaran los archivos de configuraciones y despliegues particulares desarrollados para el Cliente; para HMICEOS1 las configuraciones (authorization.conf, oper.memento, phoebus-HMICeos01-start.sh y settings.ini)  van en /usr/share/Phoebus-Files/ y los despliegues (000_INICIO.bob, 100-ModoOperacion.bob,... ) en /usr/share/Phoebus-Files/Proyecto.

__________________________________________________________________________________

$ tree /usr/share/Phoebus-Files/

/usr/share/Phoebus-Files/

├── authorization.conf

├── oper.memento

├── phoebus-HMICeos01-start.sh

├── Proyecto

│   ├── 000_INICIO.bob

│   ├── 000-Menu.bob

│   ├── 000-PanelLateralDer.bob

│   ├── 000-PanelV2.bob

│   ├── 100-ModoOperacion.bob

│   ├── 110-ControlLavadora.bob

│   ├── 600-SeleccionLDeLineaOpciones.bob

│   ├── Imagenes

│   │   └── morro.png

│   ├── PanelMenus.py

│   ├── Visualizacion454.py

│   ├── visualizacionfondo.py

│   └── VisualizacionMensajeFlotante.py

└── settings.ini

 

3 directories, 70 files

administrador@elmorro:/usr/share/Phoebus-Files$

__________________________________________________________________________________

 

 

        (/usr/bin):  dentro de esta carpeta del sistema operativo, se colocará el enlace “phoebus” a “/usr/share/Phoebus-Files/phoebus-HMICeos01-start.sh” que levantara el aplicativo Phoebus con las configuraciones iniciales para todos los usuarios definidas para HMICEOS1. También puede conservarse un enlace “phoebus.sh” al archivo original “/opt/Phoebus-App/phoebus.sh” para uso del administrador del sistema operativo.

__________________________________________________________________________________

:/usr/bin$ tree /usr/bin/ | more

/usr/bin/

├── [

├── 7z

├── pgrep

├── phoebus -> /usr/share/Phoebus-Files/phoebus-HMICeos01-start.sh

├── phoebus.sh -> /opt/Phoebus-App/phoebus.sh

. . .

├── printf

├── printscreen_hmi

├── zstdless

└── zstdmt -> zstd

 

2 directories, 1579 files

:/usr/bin$

__________________________________________________________________________________

 

6.Pasos previos o requisitos

6.1.Instalar JDK 17 o 21

__________________________________________________________________________________

sudo apt install openjdk-17-jre

 

 Si esta descargado el paquete, instalar de la siguiente manera:

 

sudo dpkg -i ca-certificates-java_20230710~deb12u1_all.deb java-common_0.74_all.deb libatk-wrapper-java_0.40.0-3_all.deb libatk-wrapper-java-jni_0.40.0-3_amd64.deb libgif7_5.2.1-2.5_amd64.deb openjdk-17-jre_17.0.12+7-2~deb12u1_amd64.deb openjdk-17-jre-headless_17.0.12+7-2~deb12u1_amd64.deb

__________________________________________________________________________________

 

6.2.Instalar xdotool

 Para simular clic del ratón desde el teclado a explicar en la sección de Accesos Rápidos.

__________________________________________________________________________________

sudo apt install xdotool

 

 Si esta descargado el paquete, instalar de la siguiente manera:

 

sudo dpkg -i libxdo3_1%3a3.20160805.1-5_amd64.deb xdotool_1%3a3.20160805.1-5_amd64.deb

7.Instalar Phoebus

 Se esta usando la versión 4.7.4-SNAPSHOT, fecha octubre 2024.

 El código fuente en JAVA en constante evolución del programa está en la ruta:

__________________________________________________________________________________

 https://github.com/ControlSystemStudio/phoebus.git

__________________________________________________________________________________

 

 En caso de requerir generar generar un producto más reciente, clonar desde git en local y realizar el procedimiento de compilación con el aplicativo maven, ejemplo:  

__________________________________________________________________________________

  mvn clean install -DskipTests

__________________________________________________________________________________

 

        Luego copiar el producto “target” resultante en la PC HMICEOS1 en “/opt/Phoebus-App/” como se describe anteriormente en el apartado Estructura de Archivos:

7.1.Pantallas o Despliegues

 Se utilizaran como base los despliegues proyecto El Morro elaborados hasta el 2024 sep 08, en el cual se utilizó:   000-PanelV2.bob como Principal o inicial.

 Para facilitar el reconocimiento y arranque automático del despliegue inicial de este proyecto y otros a futuro, se copia a 000_INICIO.bob y a partir de ahora se establece este último como el despliegue que el HMICEOS abrirá al encender el equipo.

 En resumen:

__________________________________________________________________________________

/usr/share/Phoebus-Files/Proyecto/

__________________________________________________________________________________

 

 Para facilitar las labores de mantenimiento y edición de despliegues por el administrador de Sistema, y No del Operador, asignar la permisología correspondiente a la carpeta donde se alojarán los despliegues de HMICEOS1.

___________________________________________________________________________________

sudo chmod 775 -R /usr/share/Phoebus-Files/Proyecto/

___________________________________________________________________________________

 

8.Crear usuario operador y administrador

__________________________________________________________________________________

sudo useradd -m operador

 

sudo passwd operador

New password:

Retype new password:

passwd: password updated successfully

 

 

Repetir para administrador

 

sudo useradd -m administrador

sudo passwd administrador

__________________________________________________________________________________

 

 Puede crearse un script para generar el usuario operador sin clave (Si luego se requiere el administrador puede colocarle una clave)

8.1.Autologin del usuario operador

 Para establecer que el usuario operador ingrese automáticamente “autologin” al encender la HMI sin solicitarse clave, se realiza la modificación del siguiente archivo:

/etc/lightdm/lightdm.conf

 

__________________________________________________________________________________

sudo nano /etc/lightdm/lightdm.conf

 

Para XFCE debe estar descomentado ”sin #” y con el nombre operador el siguiente campo.

#

[Seat:*]

#type=local

user-session=xfce

autologin-user=operador

__________________________________________________________________________________

9.Vulnerabilidades PHOEBUS

 

 Al navegar dentro del aplicativo Phoebus, se detectan algunas vulnerabilidades que han sido  superadas, como:

y acceder a

app-filebrowser

app-probe

app-pvtable

app-pvtree

desde el cual puede saltar la seguridad configurada en el despliegue.

Se recomienda quitar permisos de ejecución a esas aplicaciones en HMICEOS1.

         Se  ha solventado / ejecutado de la siguiente manera:

 a) Quitar permisos de lectura a otros (sudo chmod o-r AplicativoX) en /opt/Phoebus-App/lib

__________________________________________________________________________________

 

/opt/Phoebus-App/lib$ sudo chmod o-r app-filebrowser-4.7.4-SNAPSHOT.jar app-probe-4.7.4-SNAPSHOT.jar app-pvtable-4.7.4-SNAPSHOT.jar app-pvtree-4.7.4-SNAPSHOT.jar

 

luego quedan con permisos que solo le permiten ser usados por el usuario o grupo root.

-rw-r----- 1 root root  64946

__________________________________________________________________________________

 

 b) Asignar permisos al administrador de pertenecer al grupo root

__________________________________________________________________________________

usermod -a -G root administrador

__________________________________________________________________________________

 

 

9.0.a)Debian XFCE

 Se definen dos usuarios principales, “administrador” y “operador”. Para el usuario operador se describen una serie de pasos como medidas de protección del Sistema, Aplicativo y correcciones de vulnerabilidades detectadas en la implementación de la actual versión.

Administrador

 Total privilegios para efectuar cambios del sistema operativo y accesos directos. Instalación, despliegues y aplicaciones Phoebus.

Operador

 Solo tiene permisos para navegar dentro del aplicativo Phoebus, al cual se le quitará acceso a programas o llamadas desde Phoebus como app-filebrowser, app-probe, app-pvtable y app-pvtree por motivos de seguridad que se han detectado en la actual versión.

        Inicio automático (AutoStart) de aplicaciones

 Adicional a levantar el aplicativo Phoebus de manera automática al inicio de sesión también automático del usuario operador, se ejecutan otros programas personalizados a crear que limitan el acceso de este usuario a cualquier parte del Sistema Operativo, e incluso el uso de teclas y programas que atenten contra la continuidad operativa del HMICEOS, como por ejemplo la combinación de teclas ALT+F4 y el paquete Phoebus Pvtable.

 Estructura de archivos del entorno gráfico XFCE para Inicio automático (AutoStart) de aplicaciones.

__________________________________________________________________________________

/home/operador/.config

├── autostart

│   ├── at-spi-dbus-bus.desktop

│   ├── Desactivar_panel.desktop

│   ├── Desactivar_Tecla_ALT.desktop

│   ├── phoebus.desktop

...

│   └── xiccd.desktop

├── dconf

__________________________________________________________________________________

 xfce4-panel

 El cierre del panel y la barra de herramientas puede lograrse ejecutando el siguiente comando:

__________________________________________________________________________________

xfce4-panel && xfce4-panel -q

__________________________________________________________________________________

 

 O incluirlo en un programa de autostart a nombrar “Desactivar_panel”

Ejemplo de AutoStart activo:

__________________________________________________________________________________

[Desktop Entry]

Encoding=UTF-8

Version=0.9.4

Type=Application

Name=Desactivar_panel

Comment=Desactivar Panel XFCE

Exec=pgrep xfce4-panel && xfce4-panel -q

OnlyShowIn=XFCE;

RunHook=0

StartupNotify=false

Terminal=false

Hidden=true

__________________________________________________________________________________

 

Y guardar en la ruta

__________________________________________________________________________________

/home/operador/.config/autostart/Desactivar_panel.desktop

__________________________________________________________________________________

 

Eliminar acceso a la tecla ALT izquierda

 De igual manera proceder con deshabilitar la tecla ALT mediante el siguiente comando:

___________________________________________________________________________________

xmodmap -e 'keycode 64= '

___________________________________________________________________________________

 

en un programa a nombrar “Desactivar_Tecla_ALT”

Ejemplo de AutoStart activo:

___________________________________________________________________________________

[Desktop Entry]

Encoding=UTF-8

Version=0.9.4

Type=Application

Name=Desactivar_Tecla_ALT

Comment=Desactivar Tecla ALT

Exec=xmodmap -e 'keycode 64= '

OnlyShowIn=XFCE;

RunHook=0

StartupNotify=false

Terminal=false

Hidden=false

__________________________________________________________________________________

 

Y guardar en la ruta

 

__________________________________________________________________________________

/home/operador/.config/autostart/Desactivar_Tecla_ALT.desktop

__________________________________________________________________________________

 

Accesos Rápidos o Directos (Atajos)

 

 Mediante el uso de una o varias teclas, presionadas al mismo tiempo, pueden activarse programas o scripts desarrollados por el administrador del sistema que permitan entre otras cosas, simular el clic del ratón sobre los botones F1 al F14 de los despliegues Phoebus.

 En XFCE se puede realizar gráficamente mediante la configuración del entorno de cada usuario; sin embargo el administrador del sistema puede incluirlos mediante la manipulación del siguiente archivo.

__________________________________________________________________________________

/home/operador/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml          

__________________________________________________________________________________

 

Estructura de archivos del entorno gráfico XFCE para Accesos Rápidos o Directos.

__________________________________________________________________________________

/home/operador/.config

├── autostart

├── dconf

├── xfce4

    ├── xfconf

    │   └── xfce-perchannel-xml

    │       ├── displays.xml

    │       ├── keyboards.xml

    │       ├── xfce4-desktop.xml

    │       ├── xfce4-keyboard-shortcuts.xml

    │       ├── xfce4-notifyd.xml

    │       ├── xfce4-panel.xml

    │       ├── xfce4-panel.xml.new

    │       ├── xfce4-power-manager.xml

    │       ├── xfce4-session.xml

    │       ├── xfce4-settings-manager.xml

    │       └── xfwm4.xml

    └── xfwm4

__________________________________________________________________________________

 

 Primero deben crearse los programas y se guardados por el usuario “root” en el directorio usr/bin que permitan simular el clic del ratón con los botones F1, F2,.. hasta F12 desde las correspondientes teclas F1, F2,.. hasta F12 del teclado.  

 La pantalla debe tener resolución de 1280x1024 para que el clic se haga en la coordenada del botón correctamente. Esto, mientras se logra acceder directamente desde el teclado a las variables pva:// y loc:// mediante los métodos vistos en connet2.py de los ejemplos de Phoebus, lo cual no dependerá de coordenadas.”

 Debido a que en la primera implementación del HMICEOS1, utiliza botones llamados F13 y F14 y el teclado no posee esas teclas, se utiliza y etiqueta en el teclado las dos teclas siguientes luego de PrintScreen; SCROLL y PAUSE como F13 y F14 respectivamente.

 Ejemplo de programa “F13” a ubicar en /usr/bin que se ejecuta al presionar la tecla “SCROLL” etiquetada en HMICEOS1 como F13.

__________________________________________________________________________________

#!/bin/sh

# KEYCODE SCROLL como F13

 

# F13

xdotool mousemove 790 790 click 1

__________________________________________________________________________________

 

Las coordenadas para las teclas F1 a F14, vistas en el ejemplo de Programa a colocar en /usr/bin para la tecla F1, son las siguientes:

 

__________________________________________________________________________________

#!/bin/sh

# Tecla SCROLL como F13 y tecla PAUSE como F14

# Coordenadas para monitor con resolución 1280x1024

 

## Panel Central Inferior

# F14

xdotool mousemove 903 790 click 1

# F13

#xdotool mousemove 790 790 click 1

# F12

#xdotool mousemove 681 790 click 1

# F11

#xdotool mousemove 574 790 click 1

# F10

#xdotool mousemove 462 790 click 1

# F9

#xdotool mousemove 350 790 click 1

 

## Panel Derecho

# F8

#xdotool mousemove 1070 485 click 1

# F6

#xdotool mousemove 1070 401 click 1

# F4

#xdotool mousemove 1070 315 click 1

# F2

#xdotool mousemove 1070 230 click 1

 

## Panel Izquierdo

# F7

#xdotool mousemove 200 471 click 1

# F5

#xdotool mousemove 200 386 click 1

# F3

#xdotool mousemove 200 301 click 1

# F1

#xdotool mousemove 200 218 click 1

__________________________________________________________________________________

 

 

Es importante también conocer que si queremos desactivar por razones de seguridad, combinaciones de teclas del Sistema Operativo muy usadas como ALT+F4, sencillamente debemos apuntarlas/suplantarlas hacia un nuevo programa, por ejemplo “phoebus” (que no puede levantarse dos veces en el mismo PC).

Luego verificar que el archivo resultante de los accesos directos del usuario, tenga declarados los comandos personalizados F1 al F14 debajo de las propiedades comands, custom:

 

/home/operador/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml

__________________________________________________________________________________

 

<channel name="xfce4-keyboard-shortcuts" version="1.0">

<property name="commands" type="empty">

<property name="default" type="empty">

</property>

<property name="custom" type="empty">

<property name="override" type="bool" value="true"/>

<property name="<Alt>F9" type="string" value="phoebus"/>

<property name="<Primary><Alt>Delete" type="string" value="phoebus"/>

<property name="<Primary><Shift>F4" type="string" value="phoebus"/>

<property name="<Primary>q" type="string" value="xfce4-session-logout"/>

<property name="<Primary>F4" type="string" value="phoebus"/>

<property name="<Primary>F3" type="string" value="phoebus"/>

<property name="<Primary>F2" type="string" value="phoebus"/>

<property name="<Alt>F4" type="string" value="phoebus"/>

<property name="Print" type="string" value="printscreen_hmi"/>

<property name="Home" type="string" value="F13p2"/>

<property name="Page_Up" type="string" value="F14p2"/>

<property name="Pause" type="string" value="F14"/>

<property name="Scroll_Lock" type="string" value="F13"/>

<property name="F12" type="string" value="F12"/>

<property name="F11" type="string" value="F11"/>

<property name="F10" type="string" value="F10"/>

<property name="F9" type="string" value="F9"/>

<property name="F8" type="string" value="F8"/>

<property name="F7" type="string" value="F7"/>

<property name="F6" type="string" value="F6"/>

<property name="F5" type="string" value="F5"/>

<property name="F4" type="string" value="F4"/>

<property name="F3" type="string" value="F3"/>

<property name="F2" type="string" value="F2"/>

<property name="F1" type="string" value="F1"/>

</property>

</property>

<property name="xfwm4" type="empty">

<property name="default" type="empty">

</property>

<property name="custom" type="empty">

</property>

</property>

<property name="providers" type="array">

</property>

</channel>

__________________________________________________________________________________

 

 

 Para poder cerrar sesión, apagar o reiniciar el equipo se crea el atajo de las teclas “ Ctrl + q “ (<Primary>q) para ejecutar el programa “xfce4-session-logout”, tal y como se observa en el extracto del mismo archivo anterior

 

/home/operador/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml

__________________________________________________________________________________

 

<channel name="xfce4-keyboard-shortcuts" version="1.0">

<property name="commands" type="empty">

<property name="default" type="empty">

</property>

<property name="custom" type="empty">

<property name="override" type="bool" value="true"/>

<property nam

. . .

<property name="<Primary>q" type="string" value="xfce4-session-logout"/>

. . .

__________________________________________________________________________________

 

 

9.0.b)Debian KDE

 

En debian entorno KDE también se puede acceder desde la configuración del entorno de cada usuario a los atajos del teclado y agregar los programas personalizados en usr/bin, incluso los de autostart.

 El comando directo que puede ejecutarse desde el terminal para los accesos directos es:

___________________________________________________________________________

Accesos Rápidos

/usr/bin/systemsettings kcm_keys

 

Accesos Rápidos Personalizados

/usr/bin/systemsettings kcm_hotkeys

__________________________________________________________________________________

Para aplicar al entorno de escritorio del usuario “operador” y pueda simular clic del ratón en los botones F1, F2,.. hasta F14 desde las correspondientes teclas F1, F2,.. hasta F12,  SCROLL y PAUSE como F13 y F14 respectivamente del teclado,  debe incluirse los programas personalizados F1 a F14 mostrados en el apartado Debian XFCE.

 

 

10.Configuraciones Phoebus (HMICEOS1)

 

 Los archivos de configuraciones particulares desarrollados para HMICEOS1 que deben estar presentes en /usr/share/Phoebus-Files son:

 

 Extracto del archivo authorization.conf  y su explicación:

__________________________________________________________________________________

# Authorization Settings

#

# Format:

# authorization = Comma-separated list of user names

#

# The authorization name describes the authorization.

# FULL is a special name to obtain all authorizations.

#

# Each entry in the list of user names is a regular expression for a user name.

 

# Anybody can lock a dock pane, i.e. set it to 'fixed'

lock_ui = administrador, supervisor, cgarcia

 

# Anybody can enter and exit full screen

full_screen = administrador, supervisor, cgarcia

...

# Anybody can run Display Editor

edit_display = administrador, supervisor

 

# Full authorization.

# Users listed for "FULL" authorization are granted

# all authorizations, no matter if they are listed above or not.

FULL = root

__________________________________________________________________________________

 Como el usuario “operador” no aparece en el anterior archivo, implica que no tiene permisos para salir en Phoebus de la pantalla completa (full_screen = ), ni permisos para cerrar (lock_ui =) el despliegue inicial. Es importante mencionar que con el archivo “memento” se inicia el Phoebus en pantalla completa (fullscreen="true") y el Despliegue inicial Bloqueado (fixed="true") como se muestra a continuación. Por tanto, obliga al usuario “operador” a solo trabajar con el aplicativo Phoebus.

 

 Archivo oper.memento  o memento (en su configuración original) y su explicación:

__________________________________________________________________________________

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<memento show_menu="false" show_statusbar="false" show_tabs="false" show_toolbar="false">

    <DockStage_MAIN fullscreen="true" height="1024.0" width="1280.0" x="0.0" y="0.0">

        <pane fixed="true" selected="0">

            <DockItem_747f7887_1876_44ec_a0dc_b230c2fe57af ZOOM="99 %" application="display_runtime" input_uri="file:/usr/share/Phoebus-Files/Proyecto/000_INICIO.bob" toolbar="false"/>

        </pane>

    </DockStage_MAIN>

</memento>

__________________________________________________________________________________

 Este archivo de solo lectura a ser usado por el usuario operador al abrir Phoebus que le indica a Phoebus colocarse en pantalla completa y ocultar todas las barras de navegación y herramientas. Ejemplo:  show_menu="false".

 

   Memento: Normalmente Phoebus guarda el estado del aplicativo al momento de cerrarse en un archivo de lectura/escritura generado automáticamente y ubicado en la carpeta home de cada usuario (“/home/usuarioX/.phoebus/memento”) para usarlo cuando se abra nuevamente. Cada usuario usará su propio archivo memento con permisos de lectura/escritura generado automáticamente por Phoebus al cerrarse.

 Sin embargo, en HMICEOS1 con la opción “ -layout” obliga al usuario operador, mediante script de arranque descrito en ente documento, a utilizar el archivo de solo lectura oper,memento, asegurando así que Phoebus siempre arranque Full Screen, sin Barras de Herramientas y sin posibilidad de cambio de resolución, a menos que el administrador edite el contenido de dicho archivo.

        Por tanto, operador no usa y no tiene mememto en su carpeta personal, administrador si.

__________________________________________________________________________________

sudo tree /home/operador/.phoebus/

/home/operador/.phoebus/

 

0 directories, 0 files

 

:/usr/bin$ tree /home/administrador/.phoebus/

/home/administrador/.phoebus/

└── memento

 

1 directory, 1 file

 __________________________________________________________________________________

  

        En dado caso se requiera apuntar oper.memento a algún otro usuario, realizar esta acción manualmente por el mismo usuario, creando enlace a (/usr/share/Phoebus-Files/oper.memento ) desde / home/usuarioX/.phoebus/memento

__________________________________________________________________________________

ln -s /usr/share/Phoebus-Files/oper.memento /home/usuarioX//.phoebus/memento

 

root@elmorro:/home/usuarioX//.phoebus# ls -la /home/usuarioX//.phoebus/memento

lrwxrwxrwx 1 root root 37 oct 10 08:09 /home/usuarioX//.phoebus/memento -> /usr/share/Phoebus-Files/oper.memento

root@elmorro:/home/usuarioX//.phoebus# ls -la /usr/share/Phoebus-Files/oper.memento

-rw-r--r-- 1 root root 510 oct 10 08:06 /usr/share/Phoebus-Files/oper.memento

__________________________________________________________________________________

 

 

         Archivo phoebus-HMICeos01-start.sh  y su explicación:

__________________________________________________________________________________

#!/bin/sh

# Incluido Layout para el usuario operador (Archivo Phoebus Memento a utilizar)

# resource (Pantalla Inicial) Ya memento lo tiene incluido redundante

# Incluir Layout y Resource Rev B

 

TOP="/opt/Phoebus-App"

SETTING="-settings /usr/share/Phoebus-Files/settings.ini"

JAR=`echo ${TOP}/product-*.jar`

 

## Pantalla o Despliegue Inicial

RESOURCE="-resource /usr/share/Phoebus-Files/Proyecto/000_INICIO.bob "

 

## Memento operador

##LAYOUT="-layout /usr/share/Phoebus-Files/oper.memento"

 

## Validar si el usuario es operador

usuariologin="$(whoami)"

if [ "$usuariologin" = "operador" ]

then

LAYOUT="-layout /usr/share/Phoebus-Files/oper.memento"

else

LAYOUT=""

fi

 

# To get one instance, use server mode

OPT="-server 4918"

 

filter1="-help"

filter2="-main"

 

firstarg=$1;

 

if test "${firstarg#*$filter1}" != "$firstarg"; then

  # Run MEDM converter etc. in foreground

  java -Dfile.encoding=UTF-8 -jar $JAR $OPT "$@"

elif test "${firstarg#*$filter2}" != "$firstarg"; then

    java -Dfile.encoding=UTF-8 -jar $JAR $OPT "$@"

else

  # Run UI as separate thread

  java -Dfile.encoding=UTF-8 -jar $JAR $SETTING $RESOURCE $LAYOUT $OPT "$@" &

fi

__________________________________________________________________________________

 

 A nivel general es el mismo archivo phoebus.sh del “target” producto 4.7.4-SNAPSHOT, con las siguientes modificaciones:

 Se coloca la ruta completa (no relativa, que viene originalmente) donde se ha instalado el aplicativo phoebus.

  Agregado para usar el archivo personalizado settings.ini creado para HMICEOS1.

 Apoyar en asegurar que la pantalla o despliegue inicial se cargue automáticamente al inicio.

 El archivo “solo lectura” memento a ser utilizado por el usuario “operador”, gracias a verificar dentro del mismo script (if [ "$usuariologin" = "operador" ]) cual fue el usuario que invocó el arranque de phoebus. Cualquier otro usuario usará su propio archivo memento con permisos de lectura/escritura generado automáticamente por Phoebus al cerrarse, dentro de la carpeta personal de cada usuario (“/home/usuarioX/.phoebus/memento”).

 

      Extracto del Archivo settings.ini y su explicación:

__________________________________________________________________________________

# ----------------------------

# Package org.phoebus.security

# ----------------------------

# --------------------------------------------------------

# Formato

# Package/Setting=value

# org.phoebus.security/authorization_file=authorization.conf

# --------------------------------------------------------

 

# Authorization file

#

# If left empty, the built-in core/security/authorization.conf is used.

#

# When specifying a plain file name like "authorization.conf",

# the install location (Locations.install()) is searched for that file name.

#

# The file name can also be an absolute path like /some/path/auth.conf.

#

# Finally, the file name may use a system property like $(auth_file)

# which in turn could be set to either BUILTIN, a file in the install location,

# or an absolute path.

#

# When set to an invalid file, the user will have no authorizations at all.

 

# Use built-in core/security/authorization.conf

###authorization_file=

 

# Use authorization.conf in the install location

org.phoebus.security/authorization_file=/usr/share/Phoebus-Files/authorization.conf

 

# Secure store underlying implementation.

# Can be 'FILE' or 'IN_MEMORY'

#secure_store_target=FILE

__________________________________________________________________________________

 

 Este archivo permite sobrescribir las configuraciones iniciales de los aplicativos o paquetes  internos de Phoebus, siempre y cuando se declare éste durante el comando de arranque con la opción -settings.

 El formato que debe seguirse internamente es Package/Setting=value, lo que significa que se coloca primero el nombre de la aplicación o paquete interno a la que se requiere reemplazar alguna condición inicial, seguido de un slash “/”, luego el nombre de dicha condición, e igualar al valor a colocar.

 Ejemplo para el paquete de seguridad “org.phoebus.security”, co la condición a modificar de dicho paquete “authorization_file”,

        El valor a colocar deseado es: “/usr/share/Phoebus-Files/authorization.conf”

___________________________________________________________________________________

org.phoebus.security/authorization_file=/usr/share/Phoebus-Files/authorization.conf

___________________________________________________________________________________

 

11. Imagen de inicio SPLASH

 Imagen que aparece al arrancar Phoebus. En esta versión se esta colocando la imagen del Cliente que aparece en el Proyecto, sin embargo se reemplazará por la imagen de CEOS.

--- Debe existir una imagen o enlace con nombre "site_splash.png" en /opt/Phoebus-App/

que llame a la imagen "site_splash.png" de la empresa, ubicada en la ruta de pantallas o despliegues.

___________________________________________________________________________________

ln -s /usr/share/Phoebus-Files/Proyecto/Imagenes/site_splash.png /opt/Phoebus-App/site_splash.png

 

root@debian:/opt/Phoebus-App# ln -s /usr/share/Phoebus-Files/Proyecto/Imagenes/site_splash.png site_splash.png

root@debian:/opt/Phoebus-App#

___________________________________________________________________________________

 

 

12.Logo HMICEOS01

 Se ha creado un logo para colocar al icono de acceso directo a Phoebus (HMICEOS1), el cual se coloca en la ruta siguiente para que sea accedido por cualquier usuario.

___________________________________________________________________________________

sudo cp -r HMICEOS01/ /usr/share/pixmaps/

___________________________________________________________________________________

 

 

13.Scripts Generados

 A ser colocados en “/usr/bin” para uso de cualquier usuario que lo requiera. En el caso del usuario “operador” se le asignaron teclas de acceso rápido o atajos.

13.1.printscreen_hmi

###########################  INICIO ############################################

#!/bin/bash

 

# riverara 20241010 para evitar problemas de Idioma, Pictures vs Imagenes

# se cambio la ruta de ruta=$(echo ~/Pictures)  a ruta=$(echo ~)

 

# printscreen_hmi tiene los avances de PRINTSCREEN_revC.sh

 

hmi=$(hostname)

ruta=$(echo ~)

titulo="-      Captura de pantalla guardada exitosamente      -"

nombre="${hmi}-$(date -d "today" +"%Y%m%d-%H%M%S").png"

mensaje="\n $ruta/$nombre\n\n\nPara revision por parte del Administrador del sistema"

 

# Guardar la Captura de Pantalla

xfce4-screenshooter -w -s "$ruta/$nombre"

 

# Informar al usuario que el comando Captura de Pantalla fue exitoso

zenity --info --text="$mensaje" --title="$titulo" --width="800" --height="60" --ok-label="OK"

exit 0

###########################  FIN ############################################

 

“ Facilidad creada para capturar la pantalla con guardado automático con nombre por fecha Año Mes Día Hora Minuto Segundo”

Debe incluirse/reemplazar como atajo de teclado a la tecla PrintScreen.

“ Se ejecuta cuando el operador o usuario presiona la tecla PrintScreen del teclado,  tomando captura de la pantalla y guardando en la carpeta personal /home/operador de dicho usuario, para posterior revisión por parte del administrador de sistema”

 

13.2. Arranque Phoebus (HMICEOS1)

13.2.a)Con Settings.ini

 Con la opción “-settings”  se  pueden cambiar condiciones o parámetros de los paquetes internos de phoebus.

__________________________________________________________________________________

phoebus -settings /usr/share/Phoebus-Files/settings.ini

__________________________________________________________________________________

 

Debe existir el archivo “settings.ini” con el formato correcto.

Ejemplo de script revisión A con solo settings.ini, no utilizado en HMICEOS1.

##################################################################################

#!/bin/sh

# Revision A

# Incluido Setiings.ini,

#  Layout y resource … Pendientes

 

TOP="/opt/Phoebus-App/"

SETTING="-settings /usr/share/Phoebus-Files/settings.ini"

JAR=`echo ${TOP}/product-*.jar`

 

# To get one instance, use server mode

OPT="-server 4918"

 

filter1="-help"

filter2="-main"

 

firstarg=$1;

if test "${firstarg#*$filter1}" != "$firstarg"; then

  # Run MEDM converter etc. in foreground

  java -Dfile.encoding=UTF-8 -jar $JAR $OPT "$@"

elif test "${firstarg#*$filter2}" != "$firstarg"; then

    java -Dfile.encoding=UTF-8 -jar $JAR $OPT "$@"

else

  # Run UI as separate thread

  java -Dfile.encoding=UTF-8 -jar $JAR $SETTING $OPT "$@" &

fi

##################################################################################

 

13.2.b)Con resource (Despliegue inicial)  y layout (oper.mememto)

 Con la opción “-resource”  se define el despliegue inicial del Proyecto a cargar en el arranque del HMI.

__________________________________________________________________________________

phoebus -resource /usr/share/Phoebus-Files/Proyecto/000_INICIO.bob

__________________________________________________________________________________

 

 Con la opción “-layout”  se define el archivo memento que define la resolución y condiciones iniciales del aplicativo phoebus a utilizar en el arranque del HMI.

__________________________________________________________________________________

phoebus  -layout /usr/share/Phoebus-Files/oper.memento

__________________________________________________________________________________

 

        Combinados se utilizan de la siguiente manera:

__________________________________________________________________________________

phoebus  -resource  /usr/share/Phoebus-Files/Proyecto/000_INICIO.bob -layout /usr/share/Phoebus-Files/oper.memento

__________________________________________________________________________________

 

13.2.c)Validar usuario operador

        Verificar rol de usuario e incluir settings y restricciones a todo aquel que no sea usuario administrador.

 Dentro del archivo phoebus-HMICeos01-start.sh, se realiza de la siguiente manera:

__________________________________________________________________________________

. . .

## Validar si el usuario es operador

usuariologin="$(whoami)"

if [ "$usuariologin" = "operador" ]

then

LAYOUT="-layout /usr/share/Phoebus-Files/oper.memento"

else

LAYOUT=""

fi

 

. . .

  java -Dfile.encoding=UTF-8 -jar $JAR $SETTING $RESOURCE $LAYOUT $OPT "$@" &

fi

__________________________________________________________________________________

 

        Y puede observarse que el operador no tiene ningún privilegio en authorization.conf, llamado desde settings.ini:

__________________________________________________________________________________

 

lock_ui = administrador, supervisor, cgarcia

 

full_screen = administrador, supervisor, cgarcia

 

edit_display = administrador, supervisor

__________________________________________________________________________________

 

 Se puede automatizar el arranque y carga como el siguiente ejemplo:

 Crear un enlace /usr/bin/phoebus hacia el archivo

/usr/share/Phoebus-Files/phoebus-HMICeos01-start.sh

___________________________________________________________________________________

root@elmorro:/usr/bin# ln -s /usr/share/Phoebus-Files/phoebus-HMICeos01-start.sh /usr/bin/phoebus

___________________________________________________________________________________

 

que permite levantar Phoebus utilizando las opciones de arranque personalizadas anteriores.  

phoebus-HMICeos01-start.sh esta en su versión B y siendo utilizada por HMICEOS1.

14.COMANDOS AUTO INSTALL

 Este apartado documenta una instalación desde 0 en nuevo PC, teniendo el respaldo de las configuraciones y archivos necesarios a restaurar de manera más rápida mediante script de instalación:

Por tanto se puede restaurar en un nuevo Sistema Linux Debian 12 XFCE, que cuenta con java y xdotool:

___________________________________________________________________________________

sudo useradd -m operador

sudo passwd operador

sudo useradd -m administrador

sudo passwd administrador

sudo usermod -a -G root administrador

sudo usermod -a -G root administrador

 

cd /

 

sudo tar xvpzf opt.tar.gz

sudo tar xvpzf usr_share_Phoebus.tar.gz

sudo tar xvpzf usr_bin.tar.gz

sudo tar xvpzf _config_operador.tar.gz

ls -la /home/operador/.config/autostart/

 

sudo su

ls -la /home/operador/.config/

ls -la /home/operador/.config/autostart/

 

ROOT

user@debian:/$ sudo su

# history

chown operador:operador -R /home/operador/

___________________________________________________________________________________

 

 

15.Respaldar Archivos con ruta y permisología

 En dado caso se tenga una instalación HMICEOS1 corriendo perfectamente y quiera respaldarse para restauración futura, seguir el siguiente ejemplo:

 

___________________________________________________________________________________

como super usuario root

#

tar cvpzf nombre.tar.gz .

 

Se creara nombre.tar.gz

 

de todos los archivos en el directorio actual "."

 

 

LOGS:

Carpeta OPT

sudo tar cvpzf opt.tar.gz ./opt/Phoebus-App/

Archivos en USER/BIN

./usr/bin/phoebus

./usr/bin/phoebus.sh

./usr/bin/printscreen_hmi

 

sudo tar cvpzf usr_bin_laptop.tar.gz ./usr/bin/phoebus ./usr/bin/phoebus.sh ./usr/bin/printscreen_hmi ./usr/bin/F1 ./usr/bin/F2 ./usr/bin/F3 ./usr/bin/F4 ./usr/bin/F5 ./usr/bin/F6 ./usr/bin/F7 ./usr/bin/F8 ./usr/bin/F9 ./usr/bin/F10 ./usr/bin/F11 ./usr/bin/F12 ./usr/bin/F13 ./usr/bin/F14

 

Carpeta Phoebus-Files

user@debian:/media/user/f77fb288-b1ab-46f9-af1f-02749d237ad4$ sudo tar cvpzf usr_share_Phoebus_laptop.tar.gz ./usr/share/Phoebus-Files

 

Carpeta .config operador

 

./home/operador/.config/autostart

./home/operador/.config/xfce4

 

 

sudo tar cvpzf _config_operador_laptop.tar.gz ./home/operador/.config/autostart ./home/operador/.config/xfce4

___________________________________________________________________________________

 

16.Restaurar Archivos con ruta y permisologia

 

En dado caso se tenga que restaurar la instalación HMICEOS1 anteriormente respaldada, seguir el siguiente ejemplo:

 

___________________________________________________________________________________

como super usuario root

#

tar xvpzf nombre.tar.gz

 

Se descomprimirá el contenido de nombre.tar.gz

de todos los archivos en el directorio actual

 

 

cd /

tar xvpzf opt.tar.gz

 

tar xvpzf usr_bin_laptop.tar.gz

 

tar xvpzf usr_share_Phoebus_laptop.tar.gz

 

tar xvpzf AutologinXFCEoperador.tar.gz

tar xvpzf _config_operador.tar.gz

 

tar xvpzf IconoAccesoAdministrador.tar.gz

 

___________________________________________________________________________________