FP_PID

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 FP_PID_BASIC, 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

s1_Control (PID_Control_DUT)

Dato di controllo

s2_ProcessValue (INT)

Valore corrente (-30000–30000)

s3_Parameters (PID_PARAMETERS_DUT)

Parametri di controllo PID

Ingresso/uscita

s4_WorkArea (PID_WORK_AREA_DUT)

Tabella dati dei parametri PID

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.

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

Uscita

PWM (BOOL)

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

Note

  • 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%.

  • L'istruzione va eseguita due volte. La prima esecuzione resetta i valori in PID_WORK_AREA_DUT, poi i valori corretti per i membri DUT da 1a 9 in PID_WORK_AREA_DUT devono essere impsotati in modo tale che la seconda esecuzione dell'istruzione utilizzi i valori corretti.

Flag di errore

sys_bIsOperationErrorHold (passa a TRUE e resta TRUE)
  • se l'area specificata utilizzando il registro indice eccede il limite.

  • se un valore specificato per un parametro di PID_Parameters_DUT è fuori dall'intervallo utilizzabile

sys_bIsOperationErrorNonHold (passa a TRUE per una scansione)
  • se l'area specificata utilizzando il registro indice eccede il limite.

  • se un valore specificato per un parametro di PID_Parameters_DUT è fuori dall'intervallo utilizzabile

Esempio

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
		Automatic: BOOL:=TRUE;
		dutControl: PID_Control_DUT;
		PV: INT:=0;
		ParametersHold: PID_Parameters_DUT;
		ParametersNonHold: PID_Work_Area_DUT;
		bPWMOutput: BOOL:=FALSE;
	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 := 7 ;
        NETWORK_BODY
B(B_VARIN,,dutControl,15,2,17,4,);
B(B_VARIN,,ParametersHold,15,4,17,6,);
B(B_CONTACT,,Automatic,6,1,8,3,);
B(B_VARIN,,ParametersNonHold,15,5,17,7,);
B(B_F,FP_PID!,,17,0,30,7,,?DRun?Ds1_Control?Ds2_ProcessValue?Ds3_Parameters?Ds4_WorkArea?As4_WorkArea?APWM);
B(B_VARIN,,PV,15,3,17,5,);
B(B_VAROUT,,bPWMOutput,30,1,32,3,);
L(1,2,6,2);
L(8,2,17,2);
L(1,0,1,7);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Corpo ST

bPWMOutput := FP_PID(Run := Automatic, 
                     s1_Control := dutControl,
                     s2_ProcessValue := PV,
                     s3_Parameters := ParametersHold,
                     s4_WorkArea := ParametersNonHold);

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