El espacio de direcciones de la unidad
Todos los puntos que publica una unidad en Process.Model.Unit, su tipo y su significado, qué puntos son comandos escribibles, y qué puede leer de ahí un script de Logic.
Toda unidad publica sus datos de corrida como direcciones comunes de Logic en
Process.<Model>.<Unit>, así que los paneles de control, las expresiones de Logic, el servidor OPC UA
embebido y el agente llegan a ellos sin ninguna tubería extra. La rama se recorre en la página Logic,
en "De otras páginas" (Desde otras páginas) y en todo selector de
dirección. Renombrar un modelo, una unidad, un canal, un campo de metadatos, una evaluación o un
criterio reemplaza las direcciones correspondientes y reescribe las referencias textuales vivas; los archivos grabados conservan
congelados los nombres de cuando se escribieron. Los segmentos son los nombres depurados: una unidad
llamada "Unidad 1" del modelo "Cámara climática" se direcciona como
Process.Cámara_climática.Unidad_1.
| Rama | Qué expone | Escribible |
|---|---|---|
Channels.<Channel> |
El valor vinculado en vivo de cada canal, tipado como lo declara el canal. | Un canal escribible (papel Solo escritura o Lectura y escritura) es un punto escribible por el punto único de escritura; una fuente que tiene una corrida rechaza a cualquier otro escritor. |
Procedure.<point> |
El estado de la corrida, un escalar por punto (tabla más abajo). | No. |
Commands.<command> |
Start, Hold, Resume, Stop, Abort y Comment. |
Sí: escribir despacha (tabla más abajo). |
Next.<point> |
El área de preparación que consume el siguiente Arranque. | Solo los campos de metadatos manuales. |
LastRun.<point> |
El registro de la última corrida que la unidad terminó (LastRun). | No. |
Productivity.Today.<branch> y Productivity.Rolling.<branch> |
La proyección de productividad de la unidad para cada periodo. | No. |
Canales
Un punto de canal lee el valor que hay detrás del vínculo de la unidad, proyectado al tipo de datos
del canal, y se lee como un hueco cuando el canal no está vinculado o su fuente no está disponible. En
un script de Logic el punto es una proyección tipada de solo lectura del tag o la variable vinculados,
nunca el tag mismo: Value, ValueObject, ValueRaw, ValueScaled, ValueCalibrated,
ValueLimited, ValueRounded, las conversiones ValueToBool(), ValueToInteger(),
ValueToReal(), ValueToString() y ValueToDateTime(), la calidad State(), las marcas
SourceTimeStamp() y ApplicationTimeStamp(), Refresh(), Name y EngineeringUnit. Los miembros
de la cadena de conversión responden para un vínculo a un tag; un vínculo a una variable responde el
valor y la marca de la aplicación.
Procedure
Todo punto se calcula a partir de la corrida en vivo y se lee con calidad buena; un punto que no tiene nada que decir se lee como un hueco.
| Punto | Tipo | Significado |
|---|---|---|
Status |
Texto | Preparing mientras la unidad está reservada y todavía no existe ninguna corrida, Idle mientras nada la posee, y si no el estado de la corrida: Running, Held, Saving, Completed, Aborted, Failed. |
Running |
Booleano | Estrictamente el estado En marcha; nunca verdadero para la preparación, En pausa, Guardando ni la finalización. |
Busy |
Booleano | El tramo ocupado entero: la reserva, En marcha, En pausa, Guardando y el cierre final del archivo de la corrida. |
Verdict |
Texto | Ok, Nok, Indeterminate o None, escritos exactamente así, sin importar la palabra que muestren la interfaz o una etiqueta impresa: una comparación se escribe Process.<Model>.<Unit>.Procedure.Verdict == "Nok". La evidencia juzgada se sigue leyendo después de que la corrida termina, hasta que arranca la siguiente. |
Mode |
Texto | El modo de la corrida activa, Instant, Temporal o Controlled; un comando suelto (instantánea, evaluar ahora) también informa. Hueco cuando está en reposo. |
ActiveProcedure |
Texto | El nombre de la corrida activa ("Procedimiento · Unidad"). Hueco cuando está en reposo. |
SegmentIndex |
Entero | El segmento actual del perfil temporizado, de base cero. Hueco sin perfil. |
CycleIndex |
Entero | El ciclo actual, de base cero. Hueco cuando está en reposo. |
CycleCount |
Entero | El total de ciclos de la corrida (1 para una sola pasada). Hueco cuando está en reposo. |
Cycle |
Texto | "2 / 10" para una corrida cíclica; un hueco cuando la corrida no es cíclica, para que una lectura vinculada muestre la marca de hueco en vez de una sola pasada engañosa. |
FailedCycles |
Entero | Los ciclos juzgados No conformes hasta ahora. Hueco cuando la corrida no es cíclica. |
SamplesEvaluated, SamplesOut, SamplesUnavailable, SamplesInvalid |
Entero | Los contadores de evidencia de la evaluación, actualizados de forma atómica por el motor de evaluación. Hueco sin evidencia juzgada. |
Elapsed |
Número decimal | Segundos desde que arrancó la corrida. Hueco cuando está en reposo. |
StartedAt |
Fecha y hora | Cuándo arrancó la corrida activa. Hueco cuando está en reposo. |
Metadata.<Field> |
Texto | Un punto por campo de metadatos del modelo: el valor que la corrida en curso congeló en el Arranque. Hueco cuando está en reposo y para un campo que esa corrida no pide; un campo dejado en blanco se lee como texto vacío. Es lo que una acción disparada en el Arranque lee de la corrida que empieza, ya que Next.<Field> muestra la siguiente. |
Commands
Leer un punto de comando responde "¿esto se puede ejecutar ahora?", así que un Botón vinculado se desactiva solo; escribirlo despacha el comando por la consola de corridas, con la fuente de la superficie que escribe registrada en el diario y con la identidad de quien lo presionó. Un comando es una llamada de servicio, nunca la escritura de un punto en cola.
| Punto | Se lee verdadero cuando | Al escribirlo |
|---|---|---|
Start |
La unidad no está ocupada, el runtime acepta operaciones, el enclavamiento está Normal y hay un procedimiento preparado. | Arranca el procedimiento preparado con los metadatos preparados. |
Hold |
Una corrida está En marcha y su procedimiento es Temporizado. | Congela la ventana. |
Resume |
Una corrida está En pausa y el enclavamiento está Normal. | Suelta la pausa. |
Stop |
Una corrida está En marcha. | Termina la corrida como Completada. |
Abort |
Una corrida está En marcha o En pausa. | Termina la corrida como Abortada. |
Comment |
Nunca: el punto no tiene lectura. | Anexa el texto escrito como comentario a la corrida activa, o como nota posterior a la corrida en la última corrida terminada de la unidad cuando está en reposo. Una unidad sin ninguna corrida lo rechaza ("La unidad no tiene ninguna corrida que comentar."), y el texto vacío también. |
Todo comando se lee falso mientras la estación rechaza escrituras (el runtime detenido).
Next
| Punto | Tipo | Significado |
|---|---|---|
Next.Procedure |
Texto | El nombre del procedimiento preparado. Aquí es de solo lectura: preparar se hace en la tarjeta Corrida del panel de unidad. |
Next.<Field> |
Texto | Un punto por campo de metadatos que pide el procedimiento preparado; la rama se rehace cuando la unidad se vuelve a preparar, y un campo de otro procedimiento se lee como un hueco. Un campo manual (de texto o numérico) es un punto de preparación escribible, que es lo que escribe un componente Entrada vinculado a él. Un campo secuencial es una predicción de solo lectura del identificador que compondría el contador ahora; leerlo nunca lo reserva. |
Preparar es de toda la estación, en memoria y transitorio: se restablece cuando la aplicación arranca y el Arranque lo consume, no lo limpia.
Productivity
Dos periodos, Today (desde la medianoche local) y Rolling (la ventana declarada en el modelo o en
la unidad), cada uno con tres ramas (Productividad):
| Rama | Puntos | Tipo |
|---|---|---|
Summary |
ProductivityPercent, YieldPercent, TypicalElapsedSeconds |
Número decimal; un hueco hasta que exista el denominador. |
Summary |
Finalized, OK, NOK, Indeterminate, Unclassified, Aborted, Failed |
Conteos enteros. |
Outputs.<key> |
Quantity, RatePerHour |
Número decimal; una clave por cantidad con nombre, o por procedimiento productivo cuando el modelo no declara ninguna cantidad. |
Procedures.<key> |
Quantity, RatePerHour y los puntos de resumen de arriba |
Como arriba, por procedimiento productivo. |
Las claves se derivan del identificador estable y de la unidad de salida congelada, no del nombre visible, así que un cambio de nombre nunca mueve una expresión. Todo punto es de solo lectura, y la proyección se lee del índice de históricos, nunca de los archivos de corrida.
LastRun
El registro de la última corrida que la unidad terminó: cuál fue, cómo terminó, qué ingresó el operador en el Arranque y cómo salió cada criterio. Es lo que lee una acción de Logic disparada en la Finalización (Acciones), y cualquier otro consumidor lo lee igual: una pantalla que muestra la última pieza, una alarma, los servidores de la estación. Cuenta toda corrida grabada de la unidad, también una fallida y una Instantánea o un Evaluar ahora; una corrida importada nunca cuenta.
| Punto | Tipo | Significado |
|---|---|---|
RunId |
Texto | El identificador de la corrida. |
Procedure |
Texto | El nombre del procedimiento como lo grabó la corrida. |
Status |
Texto | Completed, Aborted o Failed, escritos exactamente así. |
Verdict |
Texto | Ok, Nok, Indeterminate o None, escritos como en Procedure.Verdict; una corrida fallida se lee None. |
StartedAt, FinishedAt |
Fecha y hora | Cuándo arrancó la corrida y cuándo terminó. |
Elapsed |
Número decimal | Segundos desde el arranque hasta el final. |
CycleCount |
Entero | Los ciclos de la corrida (1 en una pasada única). |
FailedCycles |
Entero | Los ciclos juzgados No conformes. |
Metadata.<Field> |
Texto | Un punto por campo de metadatos del modelo: el valor que la corrida congeló en el Arranque. Un campo que la corrida no pidió se lee como hueco; un campo dejado en blanco se lee como texto vacío. |
Evaluations.<Evaluation>.<Criterion>.<point> |
Como abajo | Una carpeta por evaluación del modelo y, debajo, una por criterio, con el nombre del criterio, o con el de su canal cuando no tiene. |
Cada criterio lleva un resultado, plegado sobre todos los ciclos en que se juzgó, así que la dirección es la misma para una pasada única y para una corrida de cien ciclos:
| Punto | Tipo | Significado |
|---|---|---|
Outcome |
Texto | Ok, Nok o Indeterminate, escritos exactamente así: un ciclo No conforme da Nok; si no, un ciclo Indeterminado da Indeterminate; si no, Ok. |
Passed |
Booleano | Verdadero solo cuando Outcome es Ok. |
Value |
Número decimal | El valor medido del canal vigilado: la última muestra evaluada de la ventana, en modo Un punto la juzgada, del ciclo más reciente que midió uno. |
MinValue, MaxValue |
Número decimal | El menor y el mayor valor evaluado, sobre todos los ciclos. |
Limits |
Texto | Los límites como se grabaron, como 5 .. 45. |
WorstExcursion |
Número decimal | La mayor distancia más allá de un límite, sobre todos los ciclos. |
FailedCycles |
Entero | Los ciclos que juzgaron este criterio No conforme. |
La rama tiene la forma del modelo, nunca la forma de la última corrida: cada campo de metadatos del catálogo y cada criterio de cada evaluación es un punto, así que un script que nombra uno pasa la validación antes de cualquier corrida, y después de una corrida de un procedimiento que juzgó por otra evaluación.
| Situación | Qué leen los puntos |
|---|---|
| Ninguna corrida de la unidad ha terminado todavía | Un hueco con mala calidad, en cada punto. |
| Una corrida termina | El registro nuevo, ya en su lugar antes de que el Procedure.Status de la unidad diga que la corrida terminó. |
| Otra corrida de la unidad está en curso | El registro anterior, hasta que esa corrida termine. |
| La aplicación vuelve a arrancar | La última corrida terminada de la unidad, releída de su archivo poco después del arranque; un hueco hasta que se lee. |
| Un criterio que la última corrida no juzgó (de otra evaluación, o agregado después) | Un hueco en cada punto. |
| Dos evaluaciones, o dos criterios, cuyos nombres se leen igual | Nada: la dirección no se resuelve en ninguno de los dos, y la página de la evaluación lo dice (Evaluaciones). |
Renombrar un campo de metadatos, una evaluación, un criterio o el canal de un criterio sin nombre mueve estas direcciones como cualquier otro renombrado de esta página.
Qué puede hacer un script
Los scripts de variable, de alarma y de acción de Logic pueden leer todo lo de aquí: valores de canal, estado de la corrida, disponibilidad de un comando, valores preparados, la última corrida y puntos de productividad. No pueden despachar un comando, escribir un campo de preparación ni anexar un comentario; esas escrituras pertenecen a los consumidores explícitos de comandos: los paneles de operación, los Botones y las Entradas de un panel de control, la automatización de la unidad y las herramientas del agente.
Un punto de canal se lee como la proyección tipada de Canales; cualquier otro punto de
aquí se lee como su valor simple, sin .Value detrás, a diferencia de una variable:
if (Process.Oven_soak.Oven_1.LastRun.Verdict === "Ok") {
Variables.Last_serial = Process.Oven_soak.Oven_1.LastRun.Metadata.Serial;
}