El espacio de direcciones de la unidad
Cada punto que publica una unidad bajo Process.Model.Unit, su tipo y su significado, qué puntos son comandos escribibles, y qué puede leer de él un script de Logic.
Cada unidad publica los datos de sus ensayos como direcciones corrientes de Logic bajo
Process.<Model>.<Unit>, así que los paneles de control, las expresiones de Logic, el servidor OPC UA
integrado y el agente llegan a ellos sin fontanería adicional. La rama se recorre en la página Logic,
en "De otras páginas" (De otras páginas) y en todos los selectores de
dirección. Renombrar un modelo, una unidad, un canal, un campo de metadatos, una evaluación o un
criterio sustituye las direcciones correspondientes y reescribe las referencias textuales vivas; los archivos registrados conservan
congelados los nombres que tenían cuando se escribieron. Los segmentos son los nombres saneados: una
unidad llamada "Unidad 1" del modelo "Climatic chamber" se direcciona como
Process.Climatic_chamber.Unidad_1.
| Rama | Qué expone | Escribible |
|---|---|---|
Channels.<Channel> |
El valor vinculado en vivo de cada canal, con el tipo que declara el canal. | Un canal escribible (rol Solo escritura o Lectura y escritura) es un punto escribible por el punto único de escritura; una fuente que tiene un ensayo rechaza a cualquier otro escritor. |
Procedure.<point> |
El estado del ensayo, un escalar por punto (tabla de abajo). | No. |
Commands.<command> |
Start, Hold, Resume, Stop, Abort y Comment. |
Sí: escribir despacha (tabla de abajo). |
Next.<point> |
La zona de preparación que consume el próximo Arranque. | Solo los campos de metadatos manuales. |
LastRun.<point> |
El registro del último ensayo 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 está sin vincular 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 propio tag: 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 con un tag; un vínculo con una variable responde el valor y la
marca de la aplicación.
Procedure
Todos los puntos se calculan a partir del ensayo en vivo y se leen 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 ningún ensayo, Idle mientras nada la posee, y en los demás casos el estado del ensayo: Running, Held, Saving, Completed, Aborted, Failed. |
Running |
Booleano | Estrictamente el estado En marcha; nunca verdadero para la preparación, En pausa, Guardando o la finalización. |
Busy |
Booleano | Todo el tramo ocupado: reserva, En marcha, En pausa, Guardando y el cierre final del archivo del ensayo. |
Verdict |
Texto | Ok, Nok, Indeterminate o None, escritos exactamente así, sea cual sea 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 puede seguir leyendo después de terminar el ensayo hasta que arranca el siguiente. |
Mode |
Texto | El modo del ensayo activo, Instant, Temporal o Controlled; un comando suelto (instantánea, evaluar ahora) también informa. Hueco en reposo. |
ActiveProcedure |
Texto | El nombre del ensayo activo ("Procedimiento · Unidad"). Hueco en reposo. |
SegmentIndex |
Entero | El segmento actual del perfil temporizado, contando desde 0. Hueco sin perfil. |
CycleIndex |
Entero | El ciclo actual, contando desde 0. Hueco en reposo. |
CycleCount |
Entero | El total de ciclos del ensayo (1 para una pasada única). Hueco en reposo. |
Cycle |
Texto | "2 / 10" para un ensayo cíclico; un hueco cuando el ensayo no es cíclico, para que una lectura vinculada muestre la marca de hueco en lugar de una pasada única engañosa. |
FailedCycles |
Entero | Los ciclos juzgados No conformes hasta ahora. Hueco cuando el ensayo no es cíclico. |
SamplesEvaluated, SamplesOut, SamplesUnavailable, SamplesInvalid |
Entero | Los contadores de evidencia de la evaluación, actualizados atómicamente por el motor de evaluación. Hueco sin evidencia juzgada. |
Elapsed |
Número decimal | Segundos desde que arrancó el ensayo. Hueco en reposo. |
StartedAt |
Fecha y hora | Cuándo arrancó el ensayo activo. Hueco en reposo. |
Metadata.<Field> |
Texto | Un punto por campo de metadatos del modelo: el valor que el ensayo en curso congeló en el Arranque. Hueco en reposo y para un campo que ese ensayo no pide; un campo dejado en blanco se lee como texto vacío. Es lo que una acción disparada en el Arranque lee del ensayo que empieza, ya que Next.<Field> muestra el siguiente. |
Comandos
Leer una punta de comando responde "¿se puede ejecutar esto ahora?", así que un Botón vinculado se deshabilita solo; escribirla despacha el comando por la consola de ensayos, anotado en el diario con el origen de la superficie que escribe y registrado con la identidad de quien pulsó. Un comando es una llamada a un servicio, nunca la escritura encolada de un punto.
| Punto | Se lee verdadero cuando | Al escribirlo |
|---|---|---|
Start |
La unidad no está ocupada, el runtime acepta operaciones, el enclavamiento está En reposo y hay un procedimiento preparado. | Arranca el procedimiento preparado con los metadatos preparados. |
Hold |
Un ensayo está En marcha y su procedimiento es Temporizado. | Congela la ventana. |
Resume |
Un ensayo está En pausa y el enclavamiento está En reposo. | Suelta la pausa. |
Stop |
Un ensayo está En marcha. | Termina el ensayo como Completado. |
Abort |
Un ensayo está En marcha o En pausa. | Termina el ensayo como Abortado. |
Comment |
Nunca: el punto no tiene lectura. | Añade el texto escrito como comentario al ensayo activo, o como nota posterior al ensayo en el último ensayo terminado de la unidad cuando está en reposo. Una unidad sin ningún ensayo lo rechaza ("La unidad no tiene ningún ensayo que comentar."), y lo mismo un texto vacío. |
Todos los comandos se leen falsos mientras la estación rechaza las escrituras (el runtime detenido).
Next
| Punto | Tipo | Significado |
|---|---|---|
Next.Procedure |
Texto | El nombre del procedimiento preparado. Aquí es de solo lectura: la preparación se hace en la tarjeta Ensayo del panel de unidad. |
Next.<Field> |
Texto | Un punto por cada 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 ahora el contador; leerlo no lo reserva nunca. |
La preparación es de toda la estación, en memoria y transitoria: se reinicia cuando arranca la aplicación y la consume, no la borra, el Arranque.
Productividad
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 existe el denominador. |
Summary |
Finalized, OK, NOK, Indeterminate, Unclassified, Aborted, Failed |
Recuentos 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. Todos los puntos son de solo lectura, y la proyección se lee del índice del histórico, nunca de los archivos de ensayo.
LastRun
El registro del último ensayo que la unidad terminó: cuál fue, cómo terminó, qué introdujo 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 cada ensayo registrado de la unidad, también uno fallido y una Instantánea o un Evaluar ahora; un ensayo importado no cuenta nunca.
| Punto | Tipo | Significado |
|---|---|---|
RunId |
Texto | El identificador del ensayo. |
Procedure |
Texto | El nombre del procedimiento tal como lo registró el ensayo. |
Status |
Texto | Completed, Aborted o Failed, escritos exactamente así. |
Verdict |
Texto | Ok, Nok, Indeterminate o None, escritos como en Procedure.Verdict; un ensayo fallido se lee None. |
StartedAt, FinishedAt |
Fecha y hora | Cuándo arrancó el ensayo y cuándo terminó. |
Elapsed |
Número decimal | Segundos desde el arranque hasta el final. |
CycleCount |
Entero | Los ciclos del ensayo (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 el ensayo congeló en el Arranque. Un campo que el ensayo 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 un ensayo 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 tal como se registraron, 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 del último ensayo: 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 ensayo, y después de un ensayo de un procedimiento que juzgó por otra evaluación.
| Situación | Qué leen los puntos |
|---|---|
| Ningún ensayo de la unidad ha terminado todavía | Un hueco con mala calidad, en cada punto. |
| Un ensayo termina | El registro nuevo, ya en su sitio antes de que el Procedure.Status de la unidad diga que el ensayo terminó. |
| Otro ensayo de la unidad está en curso | El registro anterior, hasta que ese ensayo termine. |
| La aplicación vuelve a arrancar | El último ensayo terminado de la unidad, releído de su archivo poco después del arranque; un hueco hasta que se lee. |
| Un criterio que el último ensayo no juzgó (de otra evaluación, o añadido 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 del ensayo, disponibilidad de los comandos, valores preparados, el último ensayo y puntos de productividad. No pueden despachar un comando, ni escribir un campo de preparación, ni añadir un comentario; esas escrituras son de 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;
}