FB_SMIAddressing

FB_SMIAddressing 1:

Dieser Funktionsbaustein adressiert die angeschlossenen SMI-Geräte nach dem Zufallsprinzip. Der Anwender hat keinen Einfluss darauf, welches SMI-Gerät welche Adresse zugewiesen bekommt. Die Vergabe der Adressen erfolgt absteigend, beginnend bei der Adresse, die durch den Parameter byHighestAddress vorgegeben wird.

Durch eine positive Flanke an dem Eingang bStart wird der Funktionsbaustein gestartet und der Ausgang bBusy geht auf TRUE. Der Funktionsbaustein adressiert jetzt selbständig alle SMI-Geräte. Die Ausgangsvariable arrAddressedDevices gibt Auskunft darüber, welche SMI-Gerätes schon eine Adresse erhalten haben. Sind alle SMI-Geräte adressiert, so geht der Ausgang bBusy wieder auf FALSE. Die Adressierung kann vorzeitig durch eine positive Flanke am Eingang bCancel abgebrochen werden. Abhängig davon, wie viele SMI-Geräte angeschlossen sind, kann die Abarbeitung dieses Funktionsbausteines mehrere Minuten dauern.

FB_SMIAddressing 2: Eingänge

VAR_INPUT
  bStart           : BOOL;
  bCancel          : BOOL;
  byHighestAddress : BYTE := 15;
  dwOptions        : DWORD := 0;
END_VAR

Name

Typ

Beschreibung

bStart

BOOL

Über eine positive Flanke an diesem Eingang wird der Funktionsbaustein aktiviert und der Befehl versendet.

bCancel

BOOL

Über eine positive Flanke an diesem Eingang wird der Funktionsbaustein deaktiviert und die Suche abgebrochen.

byHighestAddress

BYTE

Adresse, ab der absteigend die SMI-Geräte adressiert werden (0-15).

dwOptions

DWORD

Reserviert für zukünftige Erweiterungen

FB_SMIAddressing 3: Ein-/Ausgänge

VAR_IN_OUT
  stCommandBuffer : ST_SMICommandBuffer;
END_VAR

Name

Typ

Beschreibung

stCommandBuffer

ST_SMICommandBuffer

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

FB_SMIAddressing 4: Ausgänge

VAR_OUTPUT
  bBusy                  : BOOL;
  bError                 : BOOL;
  udiErrorId             : UDINT;
  dwCurrentSearchSlaveId : DWORD;
  byCurrentManufacturer  : BYTE;
  byCurrentSlaveAddr     : BYTE;
  arrAddressedDevices    : ARRAY [0..15] OF BOOL;
END_VAR

Name

Typ

Beschreibung

bBusy

BOOL

Der Ausgang wird gesetzt, sobald der Funktionsbaustein einen Befehl verarbeitet und bleibt so lange aktiv, bis der Befehl abgearbeitet wurde.

bError

BOOL

Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in udiErrorId enthalten. Durch das erneute Aktivieren des Funktionsbausteins über den Eingang bStart wird der Ausgang wieder auf FALSE zurückgesetzt.

udiErrorId

UDINT

Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das erneute Aktivieren des Funktionsbausteins über den Eingang bStart wieder auf 0 zurückgesetzt (siehe Fehlercodes).

dwCurrentSearchSlaveId

DWORD

Aktuelle Slave-Id, die im Such-Algorithmus verwendet wird.

byCurrentManufacturer

BYTE

Aktueller Herstellercode, der im Such-Algorithmus verwendet wird.

byCurrentSlaveAddr

BYTE

Aktuelle Adresse, die im Such-Algorithmus verwendet wird.

arrAddressedDevices

ARRAY OF BOOL

Wird einem SMI-Gerät eine Adresse zugewiesen, so wird in dem Array das entsprechende Element auf TRUE gesetzt.

Voraussetzungen

Entwicklungsumgebung

Einzubindende SPS-Bibliothek

TwinCAT ab v3.1.4020.14

Tc2_SMI ab 3.3.5.0