F356_PID_PWM

Elaborazione PID con uscita PWM opzionale

L'elaborazione PID viene eseguita per mantenere il valore corrente PV il più possibile vicino al valore target SP. Contrariamente a F355_PID_DUT, questa istruzione abilita un'uscita PWM (uscita on-off). È inoltre disponibile l'autotuning per calcolare automaticamente i dati di controllo PID Kp, Ti e Td.

Parametri

Ingresso

Run (BOOL)

Condizione di avvio

Control (F356_Control_DUT)

Dato di controllo

ParametersHold (F356_Parameters_Hold_DUT)

Parametri di controllo PID

ParametersNonHold (F356_Parameters_NonHold_DUT)

Valore manipolato MV, area modalità di controllo aggiuntiva, area relativa all'autotuning e area di lavoro

NOTA

Quando si esegue l'istruzione per la prima volta, ovvero quando la condizione di esecuzione specificata in Run passa a TRUE, i valori di default vengono scritti sui membri DUT da 1 a 9 della DUT.

ProcessValue (INT)

Valore corrente (-30000–30000)

Uscita

PWM_Output (BOOL) (vedere la nota)

Uscita modulata a larghezza di impulso (opzionale, al posto dell'uscita valore manipolato)

Note

  • Anziché utilizzare questa istruzione F, si consiglia di utilizzare l'istruzione FP7 corrispondente: FP_PID

  • Abbreviazioni utilizzate nella descrizione dell'elaborazione PID

    Abbreviazione

    Significato

    Detto anche

    PV

    Valore corrente

    Valore corrente, valore misurato

    SP

    Valore target

    Target, valore target

    MV

    Valore manipolato

    Valore di uscita, variabile manipolata

    Ts

    Tempo di campionamento

    Tempo di scan

    Ti

    Tempo integrale

    -

    Td

    Tempo derivativo

    -

    Kp

    Guadagno proporzionale

    -

    AT

    Autotuning

    -

  • Prima della seconda esecuzione di FP_PID, è necessario modificare i membri DUT da 1 a 9 della DUT ai valori richiesti.

Informazione generale di programmazione

  1. Quando viene eseguito l'ingresso su Run, i dati nell'argomento ParametersNonHold vengono inizializzati. Se si desidera che un valore nella DUT utilizzi valori non predefiniti, scrivere i valori nella DUT utilizzando un'istruzione MOVE, ad esempio, la quale deve essere attivata continuamente da una condizione TRUE.

  2. F356_PID_PWM deve essere eseguito una sola volta per ogni scansione. Non eseguite quindi F356_PID_PWM nei programmi di interrupt o nei circuiti.

  3. Non impostate la condizione di esecuzione su FALSE durante l'elaborazione PID. Altrimenti l'elaborazione PID viene disabilitata.

  4. Se non desiderate cicli di uscita PWM paralleli, p.es. per abilitare il controllo di più oggetti, ritardate i tempi di avviamento, p.es. utilizzando un'istruzione timer.

Esempio

NOTA

Il periodo (ciclo) dell'uscita PWM è il tempo di campionamento Ts (la frequenza dell'uscita PWM è 1/Ts) e la duty ratio è il valore manipolato MV in unità dello 0,01%, p.es. MV = 10000 significa una duty ratio del 100%.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)

se qualsiasi parametro di F356_Parameters_NonHold_DUT è fuori intervallo

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)

se qualsiasi parametro di F356_Parameters_NonHold_DUT è fuori intervallo

sys_bIsEqual (passa a TRUE e resta TRUE)

se l'area specificata con UpperLimit o LowerLimit è fuori intervallo

Informazioni dettagliate:

  • Condizioni di controllo: F356_Parameters_Hold_DUT

  • Valore target SP e i parametri di controllo: F356_Parameters_Hold_DUT

Note aggiuntive sull'autotuning:

  • I membri AT_Progress in F356_Parameters_Hold_DUT e b1_AT_Complete in F356_Control_DUT vengono cancellati sul fronte di salita del segnale di autotuning.

  • Una volta completato correttamente l'autotuning, l'elemento b1_AT_Complete di F356_Control_DUT viene impostato e il codice di autotuning concluso viene memorizzato nell'elemento AT_Progress di F356_Parameters_NonHold_DUT.

  • Quando l'autotuning viene interrotto, i parametri di Kp, Ti e Td non vengono modificati.

Esempio

Variabili globali

Nella lista variabili globali si definiscono variabili alle quali possono accedere tutti i POU del progetto.

Intestazione del POU

Tutte le variabili di ingresso e uscita utilizzate per programmare questa funzione sono state dichiarate nell'intestazione del POU. La stessa intestazione del POU è utilizzata per tutti i linguaggi di programmazione.

_VAR
	VAR 
		bStartAutoTuning: BOOL:=FALSE;
		bRunPidControl: BOOL:=FALSE;
		ControlData: F356_Control_DUT;
		ParametersHold: F356_Parameters_Hold_DUT;
		ParametersNonHold: F356_Parameters_NonHold_DUT;
	END_VAR

Corpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bStartAutoTuning,5,1,7,3,R);
B(B_COIL,,ControlData.b0_AT_Request,22,1,24,3,);
L(1,2,5,2);
L(7,2,22,2);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 7 ;
        NETWORK_BODY
B(B_F,F356_PID_PWM!,Instance,11,0,22,7,,?DRun?DControl?DParametersHold?DParametersNonHold?DProcessValue?APWM_Output);
B(B_VARIN,,ControlData,9,2,11,4,);
B(B_VARIN,,ParametersHold,9,3,11,5,);
B(B_VARIN,,ParametersNonHold,9,4,11,6,);
B(B_VARIN,,x_iTemperatureInput,9,5,11,7,);
B(B_VAROUT,,y_bPwmOutput,22,1,24,3,);
B(B_CONTACT,,bRunPidControl,4,1,6,3,);
L(1,2,4,2);
L(6,2,11,2);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

(* Auto Tuning: *)
if DF(bStartAutoTuning) then
    ControlData.b0_AT_Request:=TRUE;
end_if;
y_bPwmOutput:=F356_PID_PWM(    Run := bRunPidControl, 
        Control := ControlData, 
        ParametersHold := ParametersHold, 
        ParametersNonHold := ParametersNonHold, 
        ProcessValue := x_iTemperatureInput);

Corpo IL

L'ultima revisione: 2022-04-19Feedback su questa paginaPanasonic hotline