logo
produits
CASE DETAILS
Maison > Cas >
Version mise à jour de la programmation SCL Siemens : 12 cas pratiques industriels
Événements
Contactez-nous
Miss. Andy
86-0592-5636807
Wechat +8618020763272
Contact maintenant

Version mise à jour de la programmation SCL Siemens : 12 cas pratiques industriels

2025-07-03

Dernière affaire de l'entreprise Version mise à jour de la programmation SCL Siemens : 12 cas pratiques industriels
12 Cas pratiques industriels (1-6)

Cas 1 : Contrôle Marche-Arrêt Moteur

scl
FUNCTION_BLOCK FB_MotorControl  

VAR_INPUT  
    StartButton: BOOL;  
    StopButton: BOOL;  
    OverloadSignal: BOOL;  
END_VAR  

VAR_OUTPUT  
    RunningStatus: BOOL;  
    FaultIndicator: BOOL;  
END_VAR  

BEGIN  
    // Logique Marche-Arrêt  
    IF StartButton AND NOT StopButton AND NOT OverloadSignal THEN  
        RunningStatus := TRUE;  
    ELSIF StopButton OR OverloadSignal THEN  
        RunningStatus := FALSE;  
    END_IF;  


    // Indication de défaut  
    FaultIndicator := OverloadSignal;  
END_FUNCTION_BLOCK  
 

Cas 2 : Application Minuterie

scl
FUNCTION_BLOCK FB_DelayStart  

VAR_INPUT  
    StartSignal: BOOL;  
    DelayTime: TIME := T#5S;  
END_VAR  

VAR_OUTPUT  
    OutputSignal: BOOL;  
END_VAR  

VAR  
    DelayTimer: TON;  
END_VAR  

BEGIN  
    DelayTimer(IN := StartSignal, PT := DelayTime);  
    OutputSignal := DelayTimer.Q;  
END_FUNCTION_BLOCK  
 

Cas 3 : Contrôle de température PID

scl
FUNCTION_BLOCK FB_TempControl  

VAR_INPUT  
    Setpoint: REAL;  
    ProcessValue: REAL;  
END_VAR  

VAR_OUTPUT  
    ControlOutput: REAL;  
END_VAR  

VAR  
    Kp: REAL := 2.0;  
    Ki: REAL := 0.05;  
    Kd: REAL := 0.5;  
    IntegralTerm: REAL := 0;  
    LastError: REAL := 0;  
    Timer: TON;  
END_VAR  

BEGIN  
    // Exécuter périodiquement (100ms)  
    Timer(IN := NOT Timer.Q, PT := T#100ms);  
    IF Timer.Q THEN  
        VAR Error := Setpoint - ProcessValue;  
        IntegralTerm := IntegralTerm + Error;  
        VAR DerivativeTerm := Error - LastError;  
        LastError := Error;  


        ControlOutput := Kp * Error + Ki * IntegralTerm + Kd * DerivativeTerm;  
        ControlOutput := LIMIT(0.0, ControlOutput, 100.0);  


        Timer(IN := FALSE);  
    END_IF;  
END_FUNCTION_BLOCK  

Cas 4 : Gestion de file d'attente de chaîne de production

scl
 

Cas 5 : Contrôle d'interverrouillage de porte de sécurité

scl
FUNCTION_BLOCK FB_SafetyGate  

VAR_INPUT  
    Gate1Closed, Gate2Closed: BOOL;  
    EStopButton: BOOL;  
    ResetButton: BOOL;  
END_VAR  

VAR_OUTPUT  
    SafetyStatus: BOOL;  
END_VAR  

VAR  
    LockoutStatus: BOOL := FALSE;  
    LockoutTimer: TON;  
END_VAR  

BEGIN  
    // Condition de sécurité  
    VAR AllGatesClosed := Gate1Closed AND Gate2Closed;  


    // Arrêt d'urgence priorité la plus élevée  
    IF EStopButton THEN  
        SafetyStatus := FALSE;  
        LockoutStatus := TRUE;  
        LockoutTimer(IN := TRUE, PT := T#10S);  
        RETURN;  
    END_IF;  


    // Logique de déverrouillage  
    IF ResetButton AND LockoutStatus AND LockoutTimer.Q THEN  
        LockoutStatus := FALSE;  
    END_IF;  


    // Fonctionnement normal  
    IF NOT LockoutStatus THEN  
        SafetyStatus := AllGatesClosed;  
    END_IF;
        
Plan du site |  Politique en matière de protection de la vie privée | Bonne qualité de la Chine Capteur laser malade Fournisseur. © de Copyright 2025 Xiamen ZhiCheng Automation Technology Co., Ltd . Tous droits réservés.