# Componentes de panel de control

> Qué es un componente de panel de control: el catálogo de tipos, las direcciones que vinculan, cómo se dibuja una lectura, y las secciones de propiedades que comparten todos los tipos.

Un **componente** es un elemento de un panel de control: un rectángulo de celdas de la rejilla que
dibuja algo. La mayoría de los componentes leen el espacio de direcciones en vivo y lo presentan,
unos pocos escriben en él, y unos pocos solo dibujan. Usted coloca uno desde el área **Añadir** de
la barra de herramientas del [editor de paneles de control](view-editor), arrastrándolo a una
celda concreta o haciendo clic en él para que tome la primera libre, y se abre en Propiedades para
que usted lo configure.

Cada tipo tiene una página de referencia propia, enumerada en [El catálogo](#the-catalog) y en la
lista propia de este grupo. Esta página contiene lo que todos tienen en común: las direcciones que
vinculan, cómo se dibuja una lectura, y las secciones de propiedades que se repiten en todos los
tipos. Qué rol puede pulsar un mando, y la marca de candado que lleva un componente cuando el rol
con la sesión iniciada no puede, están en [View y paneles de control](home).

## El catálogo {#the-catalog}

La paleta de Añadir agrupa el catálogo por categorías, y las categorías dicen lo que hace cada
familia. **Visualización** es todo lo que informa: los visores y las tablas sin adornos, los
pilotos, y los gráficos que siguen puntos a lo largo del tiempo o los comparan uno junto a otro.
**Mando** es la familia dedicada a escribir: todos sus componentes existen para poner un valor en
un punto. No es, sin embargo, la única superficie que pulsa un operador. **Alarma** trae el
registro de alarmas pendientes a un sinóptico, y su aviso se reconoce desde ahí, fila a fila y en
bloque. **Multimedia**
coloca imágenes, marcas de la biblioteca y arte industrial. **Disposición** agrupa una región por
detrás del resto del sinóptico.

| Categoría | Componentes |
|---|---|
| Visualización | [Etiqueta](component-label) · [Valor](component-value) · [Tabla de puntos](component-point-table) · [Piloto de estado](component-status-led) · [Gráfico de líneas](component-line-chart) · [Gráfico de barras](component-bar-chart) · [Gráfico circular](component-pie-chart) · [Indicador analógico](component-gauge) · [Tarjeta de KPI](component-kpi-card) · [Progreso](component-progress) |
| Mando | [Conmutador](component-toggle) · [Entrada](component-input) · [Botón](component-button) · [Selector de opciones](component-selector) · [Control deslizante de consigna](component-setpoint-slider) · [Teclas de paso](component-step-keys) |
| Alarma | [Aviso de alarmas](component-alarm-banner) |
| Multimedia | [Imagen](component-image) · [Icono](component-icon) · [Símbolo](component-symbol) |
| Disposición | [Marco](component-frame) |

Tres páginas de este grupo describen partes del [panel de unidad](view-unit-panels), no
componentes: el aviso del [Enclavamiento](component-interlock), la
[Lista de incidencias](component-occurrence-list) y la
[Cronología de comentarios](component-comment-timeline). El panel de unidad los dibuja para su
propia unidad; nunca se colocan en un sinóptico, y la paleta Añadir no los ofrece.

Las imágenes, las marcas y el arte que dibujan los tipos de Multimedia vienen de la biblioteca
propia de la estación, en la página Logic: [La biblioteca de recursos](logic-assets) contiene las
imágenes, los iconos y los colores, y [Símbolos](assets-symbols) el catálogo del que se elige un
[Símbolo](component-symbol), con los bornes entre los que se dibujan sus trazos.

## Direcciones y lecturas en vivo {#addresses-and-live-readings}

Los componentes vivos se vinculan a **direcciones**: nombres con raíz dentro del espacio de
direcciones en vivo de la estación, el mismo espacio que lee Logic (véase la
[página Logic](logic)). Una dirección nombra un punto, viva donde viva:

| Forma de la dirección | Qué nombra |
|---|---|
| `Connector.<Controlador>.<Dispositivo>.<Tag>` | El valor de ingeniería de un tag del Connector, con las carpetas del dispositivo entre el controlador y el dispositivo cuando está archivado en alguna (véase la [página Connector](connector)) |
| `Variables.<nombre>` | Una variable de Logic (de memoria o calculada) |
| `Alarms.<nombre>` | El estado activo de una alarma |
| `Assets.Icons.<nombre>` | Una marca de la biblioteca de iconos |
| `Process.<Modelo>.<Unidad>.…` | Los puntos de ensayo de una unidad: lecturas, `Commands.*`, `Next.<campo>`, `Commands.Comment` |

Los campos de dirección son texto libre con sugerencias: la lista se toma de la lista de puntos en
vivo, se limita a 50 filas, se estrecha a la categoría de valor que consume el campo (un indicador
analógico sugiere números, un conmutador encabeza con puntos booleanos, un mando de escritura enumera
solo lo que se puede escribir), y todas las filas van marcadas con su tipo. Usted siempre puede
escribir una dirección que la lista no ofrece, incluida una que todavía no existe. Una vez que un
campo nombra un punto, el editor muestra **lo que ese punto lee ahora mismo** bajo el campo: la
confirmación que no puede dar un componente que no dibuja ningún número propio. En un sinóptico
definido sobre un modelo de Process, los canales abstractos del modelo encabezan todas las listas;
elegir uno vincula el canal y deja la unidad para cuando una unidad abra el sinóptico.

El lienzo refresca sus componentes desde el espacio de direcciones cada 150 ms en la ventana de la
propia estación y cada 400 ms en un navegador remoto, sobre los valores que publica el ciclo de la
lógica. Dos reglas valen para todos los componentes vivos:

- **Nunca un valor caducado.** Un punto que deja de leer cae al relleno propio de ese componente
  (el guion de hueco, un piloto vacío, un hueco en el gráfico), nunca al último número.
- **Una sola marca de mala lectura.** Un componente cuyo punto vinculado *no consigue leer* (la
  dirección no resuelve a nada, o el punto responde con mala calidad) lleva una sola marca
  compartida: un contorno de precaución discontinuo alrededor de la celda y una pequeña insignia
  con un `!` dentro de un círculo en su esquina superior derecha. Todos los tipos llevan la misma
  marca, así que se aprende una sola vez. Un punto resuelto que responde con buena calidad y *sin
  valor* no es un fallo (un banco de pruebas entre ensayos, un contador fuera de ciclo), así que
  el componente conserva su relleno discreto y la marca se queda apagada. Una dirección **sin
  vincular** no es culpa de nadie: un sinóptico que todavía se está montando no se lee nunca como
  un sinóptico de advertencias.

## Visualización del valor {#value-display}

Lo grande que se dibuja una lectura lo gobierna un solo contrato, compartido por todas las
superficies de texto del lienzo (visores, rótulos, caras de teclas, palabras de estado):

- Toda superficie es **automática** (la celda decide el tamaño, acotada por el ancho que reservan
  las declaraciones de la superficie: dígitos, decimales, unidad, o las palabras escritas) o
  **indicada**, un tamaño en puntos que da usted (de 9 a 144). Un tamaño indicado es literal: se
  dibuja a ese tamaño en cualquier celda y no se reduce nunca para que quepa el contenido. Nada del
  tamaño sigue nunca al valor que resulte llegar, así que un número que oscila entre cuatro y seis
  caracteres no mueve nunca la letra.
- **Un número no se dibuja nunca cortado.** Donde no se puede mostrar entero (más dígitos de los
  que declara el campo, o un tamaño indicado más ancho que la celda) la superficie dibuja `####`,
  la marca de la hoja de cálculo y del DCS para un campo demasiado estrecho para su valor, con la
  lectura entera en la información emergente.
- **El texto libre se recorta con puntos suspensivos**, con el texto entero en la información
  emergente. Las palabras no llevan nunca la marca del número.
- Un punto que **no está leyendo** es un hecho distinto otra vez: el guion de hueco, más la marca
  compartida de mala lectura donde el silencio es un fallo de verdad. La ausencia de lectura y la
  ausencia de sitio no se prestan nunca sus marcas.
- Los números descansan a la derecha de su campo, en cifras tabulares, así que las columnas de
  lecturas se alinean consigo mismas.

El suelo de legibilidad de 11 px vale en todas partes, y la perilla compartida **Escala del
contenido** multiplica el tamaño resuelto: hacia abajo se muestra siempre (con el suelo puesto),
hacia arriba crece solo hasta donde la línea sigue cabiendo sin cortarse.

## Las secciones de propiedades compartidas {#the-shared-property-sections}

Al seleccionar un componente se abren sus propiedades. Las secciones que llevan el nombre del tipo
propio del componente van primero (su contenido, sus datos, su formato) y se documentan en la
página de ese componente. A su alrededor, todos los componentes comparten las mismas secciones. El
panel que las dibuja, la lectura en vivo bajo cada campo de dirección, y los controles que se
repiten entre tipos (el tamaño de visualización, Se lee como, las bandas de Escala, la caja de
herramientas del gráfico) se describen en
[El editor de paneles de control](view-editor).

**Identificación** da nombre al componente para quien edita el sinóptico: el nombre encabeza el
panel de propiedades, rotula la fila en la lista de Componentes y responde a su búsqueda. Nada lo
dibuja en la pantalla del operador; eso es el título de Apariencia.

**Apariencia** es la caja del componente:

| Campo | Qué hace | Valores | Por defecto |
|---|---|---|---|
| Mostrar el marco | Dibuja el contorno propio del componente. | activado / desactivado | desactivado |
| Grosor del marco (px) | Lo pesado que es ese contorno. Un px es el borde de una tarjeta; un trazo más pesado distingue un grupo de lo que lo rodea sin un segundo color. | de 1 a 4 | 1 |
| Mostrar el fondo | Rellena el rectángulo del componente con el par de colores, convirtiéndolo en una tarjeta. Desactivado, se ve la rejilla a través. | activado / desactivado | desactivado |
| Color de fondo | El relleno como un par, una mitad por tema, con las dos mitades editadas a la vez, porque el tema en marcha decide qué mitad está en pantalla. | `#RRGGBB` cada uno | `#FFFFFF` claro · `#2B2B2B` oscuro |
| Título (esquina) | La etiqueta de esquina propia del componente, lo que la tarjeta *es*, por encima de lo que dibuje el tipo. En blanco significa que no hay fila de rótulo. | Texto libre | vacío |
| Tamaño del título (px) | En blanco, cada tarjeta dimensiona su propio título a partir de su celda; un tamaño indicado es literal y es lo que hace que los títulos de un sinóptico entero concuerden. Lo que ya no cabe se recorta con puntos suspensivos, con el título entero en la información emergente. | de 11 a 96, o en blanco | en blanco (Automático) |
| Color del título | El par de tintas del título. Sin tocarlo, el título sigue el propio tono discreto del tema. | `#RRGGBB` cada uno | `#6B6B6B` claro · `#A0A0A0` oscuro |
| Escala del contenido | Cuánto de su caja ocupa el contenido: la celda que usted dibujó ya dimensiona el contenido, y esto lo regula dentro de la celda sin redibujar la rejilla. El arte lo responde geométricamente, un visor tipográficamente. | de 0,25 a 3 | 1 |

**Posición y capa** contiene la X / Y / An / Al numéricas, la capa (Z) y la pareja **Traer al
frente** / **Enviar al fondo**. **Avanzado** aparece solo en los tipos que tienen extras poco
frecuentes. **Acciones** duplica o quita el componente.

Mantenga **Ctrl** para seleccionar varios componentes y editar lo que comparten: los campos de
Apariencia se despliegan sobre la selección entera (un campo en el que los miembros no coinciden dice
"Mezclado"), los comandos de capa conservan el orden relativo del lote, y Duplicar y Quitar actúan
sobre todos ellos. Los campos propios de cada tipo necesitan un solo componente.
