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.
Download SPS-Exportdatei: 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.