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_SECPendingTimeSEC 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