ValveThermo (FB) ¶ FUNCTION_BLOCK ValveThermo IMPLEMENTS IValveContinuous Thermal actuator valve. Application example ¶ Thermal actuator valves are widely used in building automation, are cost efficient but not very energy efficient and as precise as mechanical gear actuators. Device examples ¶ Danfoss ABN A5 Actuator https://assets.danfoss.com/documents/71560/AI111186467687en-010301.pdf Danfoss Thermal Actuator TWA-Z https://assets.danfoss.com/documents/86003/AI208386479940en-010201.pdf Functionality ¶ Thermal actuator valves are mostly controlled by 2-point control or continuous control via pulse-width modulation (PWM). General purpose 2-point control or general purpose PWM doesnt take the specifics of thermal actuator valves into account, leading to sub-optimal control deviation and variance. Thermal actuator valves comes in two flavours - normally closed and normally open valves. Normally closed valves should be prefered whenever possible to optimize for control energy consumption. ValveThermo provides an optimized control strategy for thermal actuator valves, improving control deviation and variance a bit. ValveThermo takes into account: warmup needed after longish shutdown / cooldown (normally closed valves only) inherent start delay (sometimes called “dead time”) travel time closing time including travel time plus closing delay (sometimes called “hold time”) Approximate value (taken from data sheet), guessed values or even default values for tStartDelay / tClose are often good enough. Opening / closing travel time are assumed to be alike. Warmup time and cooldown time are assumed to be alike. The ValveThermo algorithm does a refined PWM with an cycle tPeriod, but scaling the valve setpoint in a time window (tPeriod - tStartDelay - tClose). Normally closed valves and warmup: ¶ If ValveThermo is in eWarmupState = IS_COLD, (warmup is enabled by setting usiWarmupCycles > 0) and rSetpt is set to a value > 0.0 there is a subsequent warmup phase. During warmup ValveThermo does the refined PWM mentioned above for usiWarmupCycles using rWarmupSetpt instead of rSetpt. Cooldown starts, if valve is supposed to close (rSetpt:=0), procceds usiWarmupCycles to end up in eWarmupState = IS_COLD. Warmup/cooldown can be disabled using usiWarmupCycles:=0. ValveThermo doesnt do warmup/cooldown for normally open valves. Blocking protection ¶ If the valve is not opened for a given time tBpMaxOff, open it even if rSetpt = 0.0 for a given time tBpTime and the given position rBpPos. InOut: Scope Name Type Initial Comment Input xEnable BOOL TRUE Enable xNormallyClosed BOOL TRUE Valve is normally closed (if no power is applied), but gets opened if power is applied. rSetpt REAL 0.0 Setpoint, 0..100(%) - 0% => closed, 100% => open tPeriod TIME TIME#10m0s0ms Pulse width modulation period usiWarmupCycles USINT 1 Warmup time in number of periods, to deactivate warmaup/cooldown use usiWarmupCycles:=0. rWarmupSetpt REAL 50.0 Warmup setpoint. tStartDelay TIME TIME#1m0s0ms Start delay after powering on. tClose TIME TIME#3m0s0ms Closing time after powering off. tBpMaxOff TIME TIME#2880m0s0ms Blocking protection maximum off time tBpTime TIME TIME#0ms Blocking protection time, set to T#0S to disable blocking protection rBpPos REAL 100.0 Blocking protection position, 0..100(%) - 0% => closed, 100% => open xReset BOOL FALSE Reset itfDateTimeProvider Util.IDateTimeProvider Globals.g_dtpDateTimeProvider Source for the current date and time information in milliseconds since 1.1.1970 00:00:00.000 Output xPWM BOOL Pulse width modulation rSetptOut REAL Actual setpoint, either rSetpt or rWarmupSetpt eWarmupState ValveThermoWarmupState ValveThermoWarmupState.IS_COLD Warmup state xError BOOL Error indication eErrorID Error Error ID itfValveContinuous IValveContinuous Output to connect THIS to other function block inputs Properties: DateTimeProvider Enable ErrorIdOut ErrorOut Reset Setpoint Structure: DateTimeProvider (Property) Enable (Property) ErrorIdOut (Property) ErrorOut (Property) Reset (Property) Setpoint (Property)
AXIS_REF_ETC_Copley.ConvertTransmitDriveParameter (METH) ¶ METHOD ConvertTransmitDriveParameter : BOOL InOut: Scope Name Type Return ConvertTransmitDriveParameter BOOL Input diParameterNumber DINT fValue LREAL bUseDword BOOL pdwValue POINTER TO DWORD
AXIS_REF_ETC_Copley.GetMappedDriveParameter (METH) ¶ METHOD GetMappedDriveParameter : BOOL InOut: Scope Name Type Return GetMappedDriveParameter BOOL Input bRead BOOL diParameterNumber DINT Output diDriveParameterNumber DINT usiDataLength USINT
AXIS_REF_ETC_Copley.SMC3_AxisReadyForMotion (METH) ¶ METHOD SMC3_AxisReadyForMotion : BOOL InOut: Scope Name Type Return SMC3_AxisReadyForMotion BOOL
ValveThermoWarmupState (ENUM) ¶ TYPE ValveThermoWarmupState : Warmup state of ValveThermo . Attributes: qualified_only InOut: Name Initial IS_COLD 0 WARMING_UP 1 OPERATIONAL 2
state machine ¶ CommunicationStateMachine (Method) DriveStateMachine (Method)
AXIS_REF_ETC_Copley.CommunicationStateMachine (METH) ¶ METHOD CommunicationStateMachine : BOOL InOut: Scope Name Type Return CommunicationStateMachine BOOL
AXIS_REF_ETC_Copley.DriveStateMachine (METH) ¶ METHOD DriveStateMachine : BOOL InOut: Scope Name Type Return DriveStateMachine BOOL
Projektinformationen ¶ GetBooleanProperty (Function) GetCompany (Function) GetNumberProperty (Function) GetTextProperty (Function) GetTextProperty2 (Function) GetTitle (Function) GetVersion (Function) GetVersionProperty (Function)
WindowActuator (FB) ¶ FUNCTION_BLOCK WindowActuator Window actuator. Application example ¶ Window actuators (chain type, jackscrew/spindle type) are widely used in building automation to open/close skylights, roof hatches and window elements to utilize natural ventilation. Device examples ¶ Kaiser Nienhaus Jaguar https://www.kaiser-nienhaus.de/fileadmin/content/produkte/antriebe/Produktdownloads/ KN_ -_450100___450150.pdf Window Master WMS309 https://www.windowmaster.de/media/Files/Files/PDF/datablade/WMS_309_data_DE-1.pdf Functionality ¶ Lots of window actuators: are controlled by two signals - open / close do have a significant travel time do need a pause inbetween direction change shutoff drive power at final position (opened / closed) autonomously by final position switches final position switches are most likely internal - thus they are not externally usable (in the control application) Most often they are used as binary actuator simply opening / closing their related skylights / roof hatches / window elements. WindowActuator implements a control algorithm for the aspects listed above except limited duty cycle. Transition from closed to open position (or vise versa) - the travel time - will not be interrupted by changing control signal to avoid de-syncronization. Also the pause time will not be interrupted by changing control signal. Some application might want to used them as quasi-continuous actuators, thus involving position estimation and end position synchronization. This is beyond the scope of WindowActuator . InOut: Scope Name Type Initial Comment Input xReqOpen BOOL FALSE Control signal - request to open the window/skylight/hatch tTravel TIME TIME#30s0ms Travel time tPause TIME TIME#1s0ms Pause inbetween direction change xReset BOOL FALSE Reset itfDateTimeProvider Util.IDateTimeProvider Globals.g_dtpDateTimeProvider Source for the current date and time information in milliseconds since 1.1.1970 00:00:00.000 Output xOpen BOOL Open xClose BOOL Close eState WindowActuatorState Operational state xError BOOL Error indication eErrorID Error Error ID