Section : alg.Alarme
La section SEC alg.Alarm décrit une alarme de module. Une alarme de module correspond essentiellement à une alarme du CODESYS gestion des alarmes qui a été configurée dans un groupe d'alarmes. Cependant, une alarme de module contient toujours des ajouts spécifiques au module.
Pour plus d'informations, consultez le Déclaration du module chapitre et Objet : Alarm Group
spécification
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| 
 | Les sous-sections de  | 
| 
 | Nom de la classe d'alarme sous laquelle l'alarme sera créée. Si cette classe d'alarme existe déjà dans l'application, l'alarme sera créée sous cette classe. Si cette classe n'existe pas, un objet modèle de classe d'alarme est recherché, qui doit être présent dans la POU voir. Si aucun objet de modèle de classe d'alarme approprié n'est trouvé, une erreur est émise lors de l'analyse du module. | 
| 
 | ID (de la forme  Le message référencé par l'ID peut contenir les mêmes espaces réservés que le texte dans une configuration d'alarme. Par exemple, des espaces réservés tels que  Si une entrée de liste de textes spécifiée est introuvable, un avertissement est émis pendant l'analyse. Correspond à la Un message réglage dans le Groupe d'alarme objet. | 
| 
 
 | Variables d'espace réservé Dans le cas présent d'alarmes spécifiques au module, les variables ne peuvent être spécifiées que directement à partir du bloc fonctionnel du module (tout comme les variables sont spécifiées dans la déclaration du module, par exemple pour les paramètres) Correspond aux paramètres Variable de verrouillage 1 / Variable de verrouillage 2 pour les espaces réservés  | 
| 
 | Variable de désactivation ( 
 Si le type de la variable saisie n'est pas  Correspond à la Désactivation réglage dans le Groupe d'alarme objet. | 
| 
 | Temps d'attente minimal. Définit la durée avant que l'alarme ne se déclenche après avoir atteint ses limites. Exemple:  Correspond au réglage Min. temps d'attente dans le Groupe d'alarme objet. | 
| 
 | Paramètre pour définir le temps d'attente minimum La valeur attribuée au paramètre est une chaîne qui peut être interprétée comme une heure. Ou aussi comme une expression composée de paramètres de module et de littéraux temporels. . Exemple: 
 | 
| 
 | ID des alarmes de priorité supérieure Pour identifier l'alarme sous laquelle l'alarme actuelle doit être classée, un ID cible d'un  Correspond au réglage Priorité plus élevée. alarme dans le Groupe d'alarme objet. | 
| 
 | Pour la gestion des alarmes spécifiques au module, les FB de module peuvent offrir des interfaces spécifiques qui peuvent être appelées en cas d'alarme de module. Les drapeaux définissent dans quels cas cela se produira. . Disponible  ModuleCallFlags:
 Les FB de module qui seront appelés par cet indicateur doivent implémenter le  Si la  | 
| 
 | La sous-section gère la même tâche que la  
 
 | 
| 
 | Verrouiller les variables. Jusqu'à 10 variables de verrouillage peuvent être définies dans cette section. Si, en plus de cette rubrique,  
 
 | 
| 
 
 | Conditions d'alarme pour les alarmes qui se déclenchent si les limites supérieures ou inférieures sont franchies. La section ne peut apparaître qu'une seule fois sous le  
 
 
 
 Correspond aux réglages Limite supérieure / Limite inférieure pour les types d'observation dans Groupe d'alarme objet. | 
| 
 
 | Conditions d'alarme pour les alarmes qui se déclenchent si une expression est à l'intérieur ou à l'extérieur d'une certaine plage de valeurs. La section ne peut apparaître qu'une seule fois sous le  
 
 Correspond aux paramètres À l'intérieur de la plage / Hors plage pour les types d'observation dans Groupe d'alarme objet. | 
| 
 | Alarme déclenchée si deux expressions sont comparées l'une à l'autre. La section ne peut apparaître qu'une seule fois sous le  
 Correspond au type d'observation Numérique dans le Groupe d'alarme objet. | 
| 
 | Alarme déclenchée si une expression change de valeur. La section ne peut apparaître qu'une seule fois sous le  
 Correspond au type d'observation Changement dans le Groupe d'alarme objet. | 
| 
 | Détermine que la section d'alarme actuelle crée une alarme d'événement. Cette alarme peut être déclenchée par la fonction  | 
Exemple
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