Logic
La página Logic, su columna Espacio de direcciones, las carpetas, la barra de comandos, el ciclo de la lógica y el punto único de escritura que hay detrás de cada panel, y los tres permisos que deciden lo que dibuja la página.
Logic es la tercera entrada de la barra de navegación. Se abre para cualquier rol que tenga Ver Logic, y su encabezado dice "Defina variables (valores derivados o escribibles) y acciones (scripts que las escriben), compuestas sobre el espacio de direcciones." Es una página de maestro y detalle (cómo funcionan las páginas): una columna titulada Espacio de direcciones a la izquierda, y una barra de comandos y un panel de detalle a la derecha. Todo lo que usted edita aquí se guarda solo conforme escribe; no hay ningún botón Guardar en toda la página.
En esta área
| Página | Qué cubre |
|---|---|
| El espacio de direcciones | Las siete raíces reservadas, cómo se escribe y se higieniza una dirección, la caja de filtro y las tres maneras de capturar una dirección. |
| Variables | El editor de la variable: identidad y dirección, las clases Expresión y Memoria, la tarjeta Valor, Poner el valor. |
| Expresiones | El lenguaje de expresiones, la superficie de lectura de un punto, las reglas que impone el evaluador, el editor de scripts. |
| Acciones | El editor de la acción, lo que un script puede escribir, todos los mensajes de validación, Ejecutar y Activar/Desactivar. |
| Disparadores | El editor del disparador y el planificador por intervalo. |
| Alarmas | El editor de la alarma, la máquina de estados, el anuncio, Reconocer y Reconocer todas. |
| De otras páginas | Las raíces System, Server, Connector y Process, el panel del punto y el aviso que nombra la página que las edita. |
La raíz Recursos de esa misma columna es un grupo aparte: Recursos cubre las imágenes, los iconos, los colores, los símbolos y los tipos de trazo.
La columna Espacio de direcciones
La columna lista las raíces del espacio de direcciones bajo dos títulos. Definido aquí contiene lo que esta página crea y edita: Variables de Logic, Alarmas, Acciones, Disparadores y Recursos. De otras páginas contiene lo que solo muestra: System, Server, Connector y Process. Cada raíz del primer título lleva un conteo (Variables y Alarmas cuentan sus definiciones, Acciones y Disparadores las suyas, Recursos la suma de sus cinco categorías), y la raíz Alarmas, cada carpeta de alarmas y cada fila de alarma llevan un punto de color con la peor prioridad que tengan activa o esperando reconocimiento; el punto se limpia en cuanto se responde la alarma.
El árbol es perezoso: una rama se carga cuando usted la despliega. Los valores en vivo nunca se dibujan en el árbol; los muestra el panel de detalle del nodo seleccionado, actualizado dos veces por segundo.
| Control | Qué hace |
|---|---|
| Filtrar… | Reduce el árbol a las filas cuyo nombre contiene el texto, sin distinguir mayúsculas. Una carpeta sobrevive cuando cualquier descendiente coincide, y se abre hasta sus coincidencias; la raíz Recursos se reduce a las categorías cuyo nombre coincide, o viene entera cuando solo coincide su propio nombre; una raíz del espacio de direcciones cuyo propio nombre coincide se queda listada y carga su rama al desplegarla, mientras que las secciones Acciones y Disparadores listan solo las filas que coinciden. |
| Nuevo… (pie de la columna) | Abre el menú de creación: Nueva variable, Nueva acción, Nuevo disparador, Nueva alarma, y luego Nueva carpeta con un destino por sección (Variables, Alarmas, Acciones, Disparadores). Todo lo que se hace aquí aterriza en la raíz de su sección con el primer nombre libre de las series Variable1, Action1, Trigger1, Alarm1 o Folder1, y se abre para editarlo. Se dibuja solo para un rol con Configurar Logic; queda en gris con el motivo mientras la estación está bloqueada. |
| Expandir todo / Contraer todo | Abre todas las ramas (cargando cada nivel conforme se abre) o cierra todo de vuelta hasta las raíces. |
| Clic derecho | Sobre una raíz de sección, una de sus carpetas o una fila de definición: selecciona la fila y abre su menú (más abajo). Sobre un nodo de otra página no abre nada. |
El menú del clic derecho lleva, según la fila y el rol: Nueva variable / Nueva acción / Nuevo disparador / Nueva alarma (dentro de la carpeta o de la raíz en la que usted hizo clic), Nueva carpeta (no se ofrece en una carpeta que ya está a tres niveles), Reconocer (en las filas de alarma, con Operar Logic), Mover a (un submenú con la raíz de la sección y todas las carpetas en las que se puede archivar la fila), Copiar, Eliminar, y en una carpeta Renombrar la carpeta y Quitar la carpeta. Un rol sin Configurar Logic no ve ningún menú, salvo la entrada Reconocer de una fila de alarma cuando tiene Operar Logic.
El área de detalle está vacía hasta que usted seleccione algo: "Seleccione un nodo para inspeccionarlo: las variables, las acciones, los disparadores y las alarmas abren su editor. Cree uno con Nuevo."
La barra de comandos
La barra dibuja los verbos del nodo seleccionado. Lo que el rol nunca permite no se dibuja; lo que la situación rechaza en este momento se queda dibujado, en gris, con el motivo en su información emergente: "La configuración está bloqueada mientras una unidad está en marcha." durante una operación de ingeniería, "Runtime detenido" mientras la estación corre en solo lectura.
| Selección | Grupo inicial | Grupo final (de peligro) |
|---|---|---|
| Una de sus carpetas | Nueva variable / acción / disparador / alarma (la clase que contiene su sección), Nueva carpeta (en gris, "Esta carpeta ya está a la profundidad máxima a la que se anidan las carpetas.", en el tope de profundidad), Renombrar la carpeta | Quitar la carpeta |
| Una variable | Copiar | Eliminar la variable |
| Una acción | Ejecutar, Activar o Desactivar, Copiar | Eliminar la acción |
| Un disparador | Activar o Desactivar, Copiar | Eliminar el disparador |
| Una alarma | Reconocer, Activar o Desactivar, Copiar | Eliminar la alarma |
| La raíz Alarmas | Reconocer todas | |
| Recursos, Imágenes | Importar imagen… | |
| Recursos, Iconos | Nuevo icono de usuario | |
| Recursos, Colores | Nuevo color | |
| Recursos, Símbolos | Nuevo símbolo de usuario, Importar símbolo…, Copiar la instrucción para el chat | |
| Un nodo System, Server, Connector o Process | El aviso de que se edita en otro lado y su botón Abrir |
Copiar duplica la definición seleccionada en la raíz de su sección, con el nombre propio del origen cuando está libre y si no con Nombre (2), Nombre (3) y así, y abre la copia para editarla; una alarma copiada arranca en reposo, un disparador copiado arranca sin programar, y una acción copiada no tiene ninguna ejecución registrada. Activar y Desactivar cambian la bandera Activado de la definición por el mismo guardado automático que cualquier campo. Todo Eliminar pregunta primero ("¿Eliminar 'X'? … Esta acción no se puede deshacer.") e informa "Eliminado." en el registro de acciones; eliminar una variable o una alarma deja sin resolver todas las expresiones, los scripts, las condiciones y los vínculos de panel de control que nombraran su dirección, que es lo que lista Validación.
Las carpetas
Cada una de las cuatro secciones se puede organizar en carpetas. Una carpeta pertenece a una sección y contiene solo los elementos de esa sección; se anida tres niveles como máximo. Una carpeta es organización y nada más: no tiene permiso, ni evaluación, ni estado.
Para Variables y Alarmas, la cadena de carpetas compone la dirección: una variable en Horno se lee Variables.Horno.Consigna, y una en su subcarpeta Zona1 se lee Variables.Horno.Zona1.Consigna. Un nivel de una sección es un espacio de nombres de un solo segmento, compartido por sus carpetas y sus definiciones: dos carpetas pueden tener cada una una Consigna, pero nada archivado en el mismo nivel puede higienizarse al mismo segmento, y el editor rechaza un nombre así conforme usted escribe, nombrando la dirección que ya está tomada. Las Acciones y los Disparadores se referencian por identidad, así que sus carpetas organizan solo el árbol y sus paneles muestran una línea de ubicación en lugar de una dirección.
| Comando | Qué pasa |
|---|---|
| Nueva carpeta | Crea una carpeta vacía llamada FolderN y abre su campo de nombre en la fila del árbol; dejar el campo vacío o sin cambiar conserva ese nombre. |
| Renombrar la carpeta | Abre el campo de nombre en la fila. Todas las direcciones que hay debajo de la carpeta se mueven con ella, todas las referencias se reescriben, y el registro de acciones dice cuántas ("Carpeta renombrada; 3 referencias actualizadas."). |
| Mover a | Archiva una carpeta o una definición bajo otra carpeta de la misma sección, o de vuelta en la raíz de la sección; las direcciones y las referencias van detrás. La lista ofrece solo los destinos legales: nunca la carpeta misma, ni una de sus propias subcarpetas, ni otra sección, ni un nivel en el que sus subcarpetas pasarían el tope de profundidad. |
| Quitar la carpeta | Pregunta primero, y dice qué se mueve: "Sus 3 elementos se mueven a Variables; no se elimina nada. Las referencias a las direcciones que se mueven se actualizan." Los elementos y las subcarpetas se vuelven a archivar un nivel arriba; el retiro se rechaza cuando dos de ellos chocarían en el destino. |
El ciclo de la lógica y la cola
Un ciclo de la lógica del runtime corre cada 100 ms sobre una sola cola secuencial de lógica: evalúa todas las variables de expresión y después todas las condiciones de alarma activadas, en ese orden, así que una condición lee los valores de variable de este mismo ciclo. Las ejecuciones de acción, las escrituras de memoria, las escrituras de tag y los reconocimientos viajan en esa misma cola, así que un script nunca se intercala con un ciclo ni con otro script. Un recorrido aparte, también cada 100 ms, lanza a la cola los disparadores que vencieron. Los consumidores (los paneles de control, los canales, esta página) leen el estado publicado; nada de esta página dispara una evaluación a mano.
Escribir valores
Todas las escrituras pasan por un punto único de escritura, sea lo que sea que las haya arrancado: la asignación de un script o un Write(...), el campo Poner el valor de una variable de memoria, un mando de un panel de control, una receta de Process, el agente, o un cliente OPC UA externo escribiendo un nodo público. El punto único rechaza un valor que no es finito o que no se puede convertir al tipo del destino, rechaza una fuente que retiene una receta en marcha o un enclavamiento (nombrando a quien la retiene), registra la escritura como valor anterior a valor nuevo bajo su fuente (Operador, MCP, la corrida) y la aplica en la cola de lógica. Una escritura cuya fuente es una acción es la excepción: va solo a la captura detallada, nunca a la consola de Eventos, porque un script que escribe en cada ciclo produce valores por millares y sepultaría bajo ellos las novedades de la estación. Lo que la consola sí lleva de una acción son sus fallas. Una escritura de tag toma el valor de ingeniería y deshace la cadena de conversión del tag hasta el valor bruto que toma el dispositivo. Los detalles están en Variables y en Acciones.
Los permisos y los bloqueos
| Permiso | Qué permite aquí |
|---|---|
| Ver Logic | Abrir la página y leer todo lo que hay en ella, los valores en vivo incluidos. |
| Configurar Logic | Crear, editar, renombrar, mover, copiar, activar, desactivar y eliminar variables, acciones, disparadores, alarmas y carpetas, y curar la biblioteca de recursos. |
| Operar Logic | Escribir un valor de memoria, ejecutar una acción y reconocer alarmas, aquí, en los paneles de control y en la página Eventos. |
Un rol solo con Ver Logic lee toda la página: los editores quedan inertes bajo una nota ("Su rol puede ver Logic pero no configurarlo (variables, acciones, disparadores, alarmas y recursos).") y no se dibuja ningún verbo de configurar ni de operar. Un rol con Operar pero sin Configurar conserva vivos Ejecutar, Reconocer, Reconocer todas y Poner el valor. Mientras una unidad de Process retiene la estación, la página muestra el aviso de bloqueo de ingeniería y todos los verbos y campos de configuración quedan en gris; Ejecutar, Reconocer y Poner el valor siguen disponibles. Mientras el runtime está detenido, tanto configurar como operar se rechazan con "Runtime detenido"; el árbol y los paneles se siguen leyendo, pero sin ningún dato en vivo. El catálogo de bits está en Permisos.
Lo que la página no hace
No hay Guardar ni Deshacer: una tecla es un cambio guardado (el registro de acciones dice "Guardado.") y un guardado rechazado recarga el campo a lo que tiene la estación. Las definiciones que el agente crea o elimina con sus propias herramientas no refrescan por sí solas una columna abierta; la rama se vuelve a leer la próxima vez que esta página cree, copie o elimine en esa sección. El histórico de alarmas, la consola de Eventos y los paneles de control viven en sus propias páginas.