Sección: alg.Alarma
La sección SEC alg.Alarm
describe una alarma de módulo. Una alarma de módulo corresponde esencialmente a una alarma del CODESYS gestión de alarmas que se ha configurado en un grupo de alarmas. Sin embargo, una alarma de módulo aún contiene adiciones específicas del módulo.
Para más información ver capítulo Sintaxis de declaración de módulo y Objeto: grupo de alarmas
Especificación
SEC alg.Alarm //optional: yes, modifier: [UPDATE] SEC SetAlarm <alarm identifier> //optional: yes, modifier [UPDATE] Class := <class name>; //optional: no, type: ID Message := <TextlistEntry>; //optional: no, type: TextListEntry LatchVar1 := <LatchVariable1>; //optional: yes, type: InstancePath LatchVar2 := <LatchVariable2>; //optional: yes, type: InstancePath Deactivation := <DeactivationVariable>; //optional: yes, type: InstancePath PendingTime := <PendingTime>; //optional: yes, type: LiteralOrConstant PendingTimeParameter := <string> //optional: no, type: literal/string HigherPrioAlarm := <HigherPrioAlarm_ID>; //optional: yes, type: ID ModuleCalls := <ModuleCallFlags>; //optional: yes, type: ModuleCallFlag SEC Messages : <alarm identifier> //optional: yes, modifier: [UPDATE] Message := <TextlistEntry>; //optional: no, type: TextListEntry Number := <ColumnNumber>; //optional: no, type: Literal END_SEC SEC LatchVar <latch var identifier> //optional: yes, modifier [UPDATE] LatchVar := <LatchVariable>; //optional: no, type: InstancePath Number := <LatchVarNumber> //optional: no, type: LiteralOrConstant END_SEC SEC UpperLimit //optional: yes, modifier: [UPDATE] Expression := <Expression>; //optional: no, type: Literal/String IncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool UpperExpression := <UpperExpression>; //optional: no, type: Literal/String Hyteresis := <HysteresisValue>; //optional: yes, type: LiteralOrConstant END_SEC SEC LowerLimit //optional: yes, modifier: [UPDATE] Expression := <Expression>; //optional: no, type: Literal/String IncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool LowerExpression := <LowerExpression>; //optional: no, type: Literal/String Hyteresis := <HysteresisValue>; //optional: yes, type: LiteralOrConstant END_SEC SEC InsideRange //optional: yes, modifier: [UPDATE] Expression := <Expression>; //optional: no, type: Literal/String AreaLow := <AreaLowValue>; //optional: no, type: Literal/String LowIncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool HighIncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool AreaHigh := <AreaHighValue>; //optional: no, type: Literal/String Hyteresis := <HysteresisValue>; //optional: yes, type: LiteralOrConstant END_SEC SEC OutsideRange //optional: yes, modifier: [UPDATE] Expression := <Expression>; //optional: no, type: Literal/String AreaLow := <AreaLowValue>; //optional: no, type: Literal/String LowIncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool HighIncludeBorder := TRUE/FALSE; //optional: no, type: FlagBool AreaHigh := <AreaHighValue>; //optional: no, type: Literal/String Hyteresis := <HysteresisValue>; //optional: yes, type: LiteralOrConstant END_SEC SEC Digital //optional: yes, modifier: [UPDATE] Expression := <Expression>; //optional: no, type: Literal/String Equal := TRUE/FALSE; //optional: no, type: FlagBool EqualsExpression := <Expression>; //optional: no, type: Literal/String END_SEC SEC Change //optional: yes, modifier: [UPDATE] Expression := <Expression>; //optional: no, type: Literal/String END_SEC SEC Event //optional: yes, modifier: [UPDATE] END_SEC END_SEC END_SEC
| Las subsecciones de |
| Nombre de clase de alarma, bajo el cual se creará la alarma. Si esta clase de alarma ya existe en la aplicación, la alarma se creará bajo esta clase. Si esta clase no existe, se busca un objeto de plantilla de clase de alarma, que debe estar presente en el POU vista. Si no se encuentra un objeto de plantilla de clase de alarma apropiado, se emite un error cuando se escanea el módulo. |
| DNI (de la forma El mensaje al que hace referencia el ID puede contener los mismos marcadores de posición que el texto en una configuración de alarma. Por ejemplo, marcadores de posición como Si no se puede encontrar una entrada de lista de texto específica, se emite una advertencia durante la exploración. corresponde a la Mensaje ajuste en el Grupo de alarma objeto. |
| Variables de marcador de posición En el presente caso de alarmas específicas del módulo, las variables solo se pueden especificar directamente desde el bloque de función del módulo (al igual que las variables se especifican en la declaración del módulo, por ejemplo, parámetros) Corresponde a la configuración Variable de bloqueo 1 / Variable de bloqueo 2 para marcadores de posición |
| Variable de desactivación (
Si el tipo de variable que se ingresa no es corresponde a la Desactivación ajuste en el Grupo de alarma objeto. |
| Tiempo mínimo de espera. Define la cantidad de tiempo antes de que la alarma suene realmente después de alcanzar sus límites. Ejemplo: Corresponde al ajuste mín. tiempo pendiente en el Grupo de alarma objeto. |
| Parámetro para establecer el tiempo mínimo de espera. El valor asignado al parámetro es una cadena que puede interpretarse como tiempo. O como una expresión que consta de parámetros de módulo y literales de tiempo. . Ejemplo:
|
| ID de las alarmas de mayor prioridad Para identificar la alarma bajo la cual se debe clasificar la alarma actual, una ID de destino de un Corresponde al ajuste Mayor prioridad. alarma en el Grupo de alarma objeto. |
| Para la gestión de alarmas específicas del módulo, los FB de módulo pueden ofrecer interfaces específicas a las que se puede llamar si se produce una alarma de módulo. Las banderas definen en qué casos sucederá esto. . Disponible ModuleCallFlags :
Los FBs de módulo que serán llamados por esta bandera deben implementar el Si el |
| La subsección gestiona la misma tarea que la
|
| Fijar variables. En esta sección se pueden definir hasta 10 variables de latch. Si, además de esta sección,
|
| Condiciones de alarma para alarmas que se disparan si se cruzan los límites superior o inferior. Se permite que la sección ocurra solo una vez debajo de la
Corresponde a la configuración Limite superior / Límite inferior para los tipos de observación en el Grupo de alarma objeto. |
| Condiciones de alarma para alarmas que se disparan si una expresión está dentro o fuera de un cierto rango de valores. Se permite que la sección ocurra solo una vez debajo de la
Corresponde a la configuración Rango interior / Fuera de rango para los tipos de observación en el Grupo de alarma objeto. |
| Alarma que salta si se comparan dos expresiones entre sí. Se permite que la sección ocurra solo una vez debajo de la
Corresponde al tipo de observación. Digital en el Grupo de alarma objeto. |
| Alarma que salta si una expresión cambia de valor. Se permite que la sección ocurra solo una vez debajo de la
Corresponde al tipo de observación. Cambiar en el Grupo de alarma objeto. |
| Determina que la sección de alarma actual crea una alarma de evento. Esta alarma puede ser disparada por la función |
Ejemplo
SEC SetAlarm : ValueRange Class := Error; Message := TL.Alarm_Temperature; LatchVar1 := rAlarmValueLow; LatchVar2 := rAlarmValueHigh; ModuleCalls := THIS | PARENTS; SEC Messages : msg2 Message := TL.msg5_Message; Number := 5; END_SEC SEC OutsideRange Expression := 'rValue'; AreaLow := 'rAlarmValueLow'; LowIncludeBorder := TRUE; HighIncludeBorder := TRUE; AreaHigh := 'rAlarmValueHigh'; END_SEC END_SEC
PendingTime
SEC alg.Alarm SEC SetAlarm : NoVar Class := AlarmClassTemplate; Message := TL.NoVar_Message; PendingTimeParameter := 'NoVar'; SEC Digital Expression := 'xAlarm'; Equal := TRUE; EqualsExpression :='TRUE'; END_SEC END_SEC SEC SetAlarm : WithVar Class := AlarmClassTemplate; Message := TL.NoVar_Message; PendingTimeParameter := 'WithVar'; SEC Digital Expression := 'xAlarm'; Equal := TRUE; EqualsExpression :='TRUE'; END_SEC END_SEC SEC SetAlarm : SimpleMath Class := AlarmClassTemplate; Message := TL.NoVar_Message; PendingTimeParameter := 'WithVar - NoVar + TIME#5S'; SEC Digital Expression := 'xAlarm'; Equal := TRUE; EqualsExpression :='TRUE'; END_SEC END_SEC SEC SetAlarm : NoParam Class := AlarmClassTemplate; Message := TL.NoVar_Message; PendingTime := TIME#5S; SEC Digital Expression := 'xAlarm'; Equal := TRUE; EqualsExpression :='TRUE'; END_SEC END_SEC END_SEC