Beispiel: FB_SMIVenetianBlind

Beispiel: FB_SMIVenetianBlind 1:

Jalousiesteuerung.

Download SPS-Exportdatei

VAR_INPUT

bUp                 : BOOL;
bDown               : BOOL;
bStop               : BOOL;
bSwitchOverUp       : BOOL;
bSwitchOverDown     : BOOL;
tSwitchOverTime     : TIME := t#400ms;
bStep               : BOOL;
iAngle              : INT := 0;
bSetPosition        : BOOL;
bySetPosition       : BYTE := 0;
bSafetyPosition     : BOOL;
tPositionRead       : TIME := t#1s;
dwAddr              : DWORD := 0;
eAddrType           : E_SMIAddrType := eSMIAddrTypeAddress;
dwAddrOption        : DWORD := 0;
dwMasterDevAddr     : DWORD := 0;
dwOptions           : DWORD := 0;

bUp: Fährt die Jalousie hoch. Beginnt im Schleichgang und erhöht dann die Geschwindigkeit.

bDown: Fährt die Jalousie runter. Beginnt im Schleichgang und erhöht dann die Geschwindigkeit.

bStop: Stoppt die Jalousie.

bSwitchOverUp: Fährt die Jalousie schrittweise hoch. Liegt das Signal länger an als tSwitchOverTime, geht die Jalousie in Selbsthaltung.

bSwitchOverDown: Fährt die Jalousie schrittweise runter. Liegt das Signal länger an als tSwitchOverTime, geht die Jalousie in Selbsthaltung.

tSwitchOverTime: Gibt an, wie lange bSwitchOverUp und bSwitchOverDown anliegen müssen, bevor die Jalousie in Selbsthaltung geht. Wenn der Wert 0 beträgt, geht die Jalousie sofort in Selbsthaltung.

bStep: Fährt die Jalousie an die angegebene Position.

iAngle: Winkel (-510° ... +510°) auf den die Jalousie gefahren wird, nachdem eine steigende Flanke am Eingang bStep erkannt wurde. Negative Werte entsprechen hochfahren, positive Werte runterfahren.

bSetPosition: Fährt die Jalousie an die unter bySetPosition angegebene Position.

bySetPosition: Position in Prozent, zu der die Jalousie gefahren wird, nachdem eine steigende Flanke am Eingang bSetPosition erkannt wurde. 0 % entspricht vollständig eingefahren, 100 % vollständig ausgefahren.

bSafetyPosition: Die Sicherheitsposition wird angefahren. Es ist nicht möglich die Jalousie zu bedienen während dieser Eingang gesetzt ist.

tPositionRead: Intervall, in dem die aktuelle Position vom SMI-Motor ausgelesen wird, wenn keine 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.

dwOptions: Reserviert für zukünftige Entwicklungen.

VAR_OUTPUT

bBusy             : BOOL;
bError            : BOOL;
udiErrorId        : UDINT;
byActualPosition  : BYTE;

bBusy: Bei der Aktivierung des Bausteins wird der Ausgang gesetzt und bleibt so lange aktiv, bis der Befehl abgearbeitet wurde.

bError: Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist.

udiErrorId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls.

byActualPosition: Die ausgelesene Position in Prozent. 0 % entspricht der oberen Endlage und 100 % der unteren Endlage.

VAR_IN_OUT

stCommandBuffer     : ST_SMICommandBuffer;

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

Voraussetzungen

Entwicklungsumgebung

Zielsystem

erforderliche Bibliotheken

TwinCAT 2.11 R3/x64 ab Build 2238

PC/CX, BX oder BC

TcSMI-Bibliothek ab V1.0.0