'Inteligenty' dom ze sterownikiem PLC

 Language:
Szukanie zaawansowane  

Aktualności:

Powrót do strony głównej: www.edom-plc.pl

Autor Wątek: Tyb zmiennej będący strukturą.  (Przeczytany 2065 razy)

Tom01

  • Full Member
  • ***
  • Wiadomości: 101
    • Zobacz profil
Tyb zmiennej będący strukturą.
« dnia: Lutego 21, 2018, 11:40:25 am »

Zauważyłem, że w nowszych blokach funkcyjnych jest tendencja do rezygnacji z podawania na wejściu osobnych zmiennych a zastępowanie jedną zmienną strukturalną. I tak, dla przykładu, jest taki blok:

FUNCTION_BLOCK FbLimitController
(*************************************************************************************
  WAGO Kontakttechnik GmbH & Co. KG Hansastr. 27 32423 Minden(Westf.)
  Tel. +49571/887-0                                                                                                       
 
  Function: Limit controller (PI-control)

  Version: 3.0
  Date: 18.06.2013
**************************************************************************************)
VAR_INPUT
xEnable : BOOL := TRUE; (*Enable limit control II Freigabe Begrenzungsregler*)
rReferenceValue : REAL := 22; (*Reference value || Sollwert *)
rActualValue : REAL; (*Actual value II Istwert *)
typConfigLimitController : typConfigLimitController; (*Configuration parameters II Konfigurationsparameter*)
END_VAR

VAR_OUTPUT
rY : REAL; (*Manipulated variable of the controller || Stellwert des Reglers [%]*)
wY : WORD; (*Manipulated variable of the controller [0-32767] II Stellwert des Reglers [0-32767]*)
END_VAR

VAR
PIDController : FbPIDController;
Hysteresis : FbHysteresis;
rPresetValue : REAL;
typConfigPIDController : typConfigPIDController := (xPresetOn:=TRUE,xPresetOff:=TRUE);
END_VAR

I teraz pytanie, może banalne. W jaki sposób podać konfigurację tego bloku jako zmienną typConfigPIDController?
Zapisane

admin

  • Administrator
  • Sr. Member
  • *****
  • Wiadomości: 313
    • Zobacz profil
Odp: Tyb zmiennej będący strukturą.
« Odpowiedź #1 dnia: Lutego 21, 2018, 08:15:08 pm »

Cześć,

Takie łączenie parametrów konfiguracyjnych o tyle ma sens, że potem po programie nie pałętają się zmienne o dziwnych nazwach, które nie wiadomo, co robią....  W przypadku, który opisałeś definiujesz blok funkcyjny i zmienną konfiguracyjną:

VAR
   Mixer : FbPIDController;
END_VAR

VAR RETAIN PERSISTENT
   mixerConfig : typConfigPIDController;
END_VAR

i w programie definiujesz:

Mixer(
   xEnable := _____________,
   rReferenceValue := _____________,
   rActualValue := _____________,
   xManualOperation := _____________,
   rManualValue := _____________,
   typConfigPIDController := mixerConfig
);

potem w wizualizacji wstawiasz obiekt Visualization wskazując ConfigPIDController i w konfiguracji tego obiektu pod Placeholder podajesz zmienną mixerConfig np: Heating_Control.mixerConfig

W efekcie ustawiasz parametry PIDa przez wizualizację.

Pozdrawiam,
Zapisane

Tom01

  • Full Member
  • ***
  • Wiadomości: 101
    • Zobacz profil
Odp: Tyb zmiennej będący strukturą.
« Odpowiedź #2 dnia: Lutego 21, 2018, 09:13:32 pm »

Ogarnięte, działa. Dzięki. :)
Zapisane