FB_BARSMISunblindActuator

Dieser Baustein arbeitet wie der FB_BARSunblindActuator nur mit dem Unterschied, dass ein SMI-Motor direkt angesteuert wird.

Benötigte Bibliothek ist die TwinCAT 2 PLC Lib: TcSMI.

FB_BARSMISunblindActuator 1:

Download SPS-Exportdatei: FB_BARSMISunblindActuator 2: FB_BARSMISunblindActuator.zip

VAR_INPUT

eDataSecurityType: E_HVACDataSecurityType;
bEnable          : BOOL;
stSunblind       : ST_BARSunblind;
tPositionRead    : TIME;
dwAddr           : DWORD;
eAddrType        : E_SMIAddrType;
dwAddrOption     : DWORD;
dwMasterDevAddr  : DWORD;

eDataSecurityType: Wenn eDataSecurityType:= eDataSecurityType_Persistent ist, werden die persistenten VAR_IN_OUT-Variablen des Funktionsbausteins bei einer Wertänderung im Flash des Rechners abgelegt. Dafür ist es zwingend erforderlich den Funktionsbaustein FB_HVACPersistentDataHandling einmalig im Hauptprogramm, das zyklisch aufgerufen wird, zu instanziieren. Andernfalls wird der instanziierte FB intern nicht freigegeben.

Bei eDataSecurityType:= eHVACDataSecurityType_Idle werden die persistent deklarierten Variablen nicht spannungsausfallsicher gespeichert.

Hinweis

Eine sich zyklisch ändernde Variable darf niemals mit der IN_OUT-Variablen eines Funktionsbausteins verbunden werden, wenn eDataSecurityType:= eHVACDataSecurityType_Persistent ist. Es würde zu einem frühzeitigen Verschleiß des Flashspeichers führen.

bEnable: Freigabeeingang für den Baustein. Solange dieser Eingang auf TRUE steht, nimmt der Aktorbaustein Befehle entgegen und arbeitet, wie oben beschrieben. Ein FALSE-Signal an diesen Eingang lässt den Funktionsbaustein in einem Ruhezustand verharren.

stSunblind: Positioniertelegramm, siehe ST_BARSunblind.

tPositionRead: Intervall, in dem die aktuelle Position vom SMI-Motor ausgelesen wird, wenn Positionierungsbefehle verarbeitet werden.

dwAddr:Herstellercode (0-15), Adresse eines Teilnehmers (0-15), Bitfeld (16 Bit) für die Gruppenadressierung oder Slave-Id (32 Bit Key-Id). Wird ein Sammelruf (Broadcast) versendet, so hat dieser Eingang keine Bedeutung.

eAddrType: Legt fest, ob der Eingang dwAddr als Herstellercode, Adresse eines Teilnehmers, zur Gruppenadressierung oder als Slave-Id ausgewertet werden soll.

dwAddrOption: Wird das SMI-Gerät per Slave-Id adressiert (eAddrType = eSMIAddrTypeSlaveId), so muss über diesen Eingang der Herstellercode angegeben werden.

dwMasterDevAddr: Adresse (0-15) vom SMI-Motor, von dem die aktuelle Position ausgelesen werden soll, wenn eAddrType != eSMIAddrTypeAddress ist.

VAR_OUTPUT

uiActPosition: UINT;
iActAngle    : INT;
bBusy        : BOOL;
bError       : BOOL;
udiErrorId   : UDINT;

uiActPosition: Aktuelle Position in Prozent.

iActAngle: Aktueller Lamellenwinkel in Grad.

bBusy: Ein Positioniervorgang findet statt.

bError: Dieser Ausgang wird auf TRUE geschaltet, wenn die eingetragenen Parameter fehlerhaft sind.

udiErrorId: Enthält den Fehlercode, sollten die eingetragenen Werte fehlerhaft sein. Siehe Fehlercodes.

VAR_IN_OUT

wLouvreRange       : WORD;
iAngleLimitUp      : INT;
iAngleLimitDown    : INT;
stCommandBuffer    : ST_SMICommandBuffer;

wLouvreRange: Schrittanzahl des SMI-Motors vom Lamellen "Tiefpunkt innen" zum "Tiefpunkt außen".

iAngleLimitUp: Höchste Stellung der Lamellen in Grad (-360..360).

iAngleLimitDown: Niedrigste Stellung der Lamellen in Grad (-360..360).

stCommandBuffer: Verweis auf die Struktur zur Kommunikation (Puffer) mit dem FB_KL6831KL6841Communication()-Baustein.