PACFramework

Ємність з одним входом і одним виходом (smLevelCyl)

Короткий опис та призначення

Функціональний блок який імітує роботу датчиків рівня для ємності з одним входом і одним виходом, яка в імітаційній моделі установки використовується як дозатори D1 та D2 (рис.1).

рис.1. Зображення імітованої установки для перевірки роботи блоків PACFramework.

На вході блока входять значення вхідної та вихідної витрат (в м3/с або в л/с), на виході формується значення рівня L в метрах, або сантиметрах в залежності від розмірності входів. Імітуються також сигналізатори LSH та LSL.

Параметри V0, Vmax та S задаються ззовні або за замовченням. Параметр d_t - означує періодичність виклику для правильного розрахунку динаміки. Може використовуватися для зміни швидкості імітації.

Реалізація в IEC-61131

ST

FUNCTION_BLOCK "smLevelCyl1"
   VAR_INPUT 
      INIT : Bool;   // команда ініціалізації (задання початкових умов)
      Fin : Real;   // вхідна витрата задається в м3/с або в л/с
      Fout : Real;   // вихідна витрата задається в м3/с або в л/с
   END_VAR

   VAR_OUTPUT 
      L : Real;   // рівень в метрах або в сантиметрах
      LSH : Bool;   // сигналізатор верхнього рівня
      LSL : Bool;   // сигналізатор нижнього рівня
   END_VAR

   VAR 
      d_t : Real := 0.1;   // періодичність виклику в сек
      V0 : Real;   // значення обєму при ініціалізації моделі
      V : Real;   // об'єм рідини в ємності
      Vmax : Real := 50.0;   // об'єм ємності 
      S : Real := 20.0;   // задається в м2 при витратах м3/с або см2 при витратах л/с
   END_VAR
   
BEGIN
	IF INIT THEN
	    V := V0; (*мінімальний обєм*)
	ELSE
	    V := V + d_t * (Fin - Fout); (* приріст об'єму *)
	    IF V < 0.0 THEN V := 0.0; END_IF; (* обмеження по мінімуму *)
	    IF V > Vmax THEN V := Vmax; END_IF; (* обмеження по максимуму*)
	    L := V / S; 
	    LSH := (V / Vmax) > 0.999; (* сигналізатор верхнього рівня*)
	    LSL := (V / Vmax) > 0.001; (* сигналізатор нижнього рівня*)
	END_IF;
END_FUNCTION_BLOCK