FB_SMIAddressing
Dieser Funktionsbaustein adressiert die angeschlossenden 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 Baustein gestartet und der Ausgang bBusy geht auf TRUE. Der Baustein 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 Bausteines mehrere Minuten dauern.
VAR_INPUT
bStart : BOOL;
bCancel : BOOL;
byHighestAddress : BYTE := 15;
dwOptions : DWORD := 0;
bStart: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert und der Befehl versendet.
bCancel: Über eine positive Flanke an diesem Eingang wird der Baustein deaktiviert und die Suche abgebrochen.
byHighestAddress: Adresse, ab der absteigend die SMI-Geräte adressiert werden (0-15).
dwOptions: Reserviert für zukünftige Erweiterungen.
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
udiErrorId : UDINT;
dwCurrentSearchSlaveId : DWORD;
byCurrentManufacturer : BYTE;
byCurrentSlaveAddr : BYTE;
arrAddressedDevices : ARRAY [0..15] OF BOOL;
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. Der befehlsspezifische Fehlercode ist in udiErrorId enthalten. Durch das erneute Aktivieren des Bausteins über den Eingang bStart wird der Ausgang wieder auf FALSE zurückgesetzt.
udiErrorId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das erneute Aktivieren des Bausteins über den Eingang bStart wieder auf 0 zurückgesetzt. Siehe Fehlercodes.
dwCurrentSearchSlaveId: Aktuelle Slave-Id, die im Such-Algorithmus verwendet wird.
byCurrentManufacturer: Aktueller Herstellercode, der im Such-Algorithmus verwendet wird.
byCurrentSlaveAddr: Aktuelle Adresse, die im Such-Algorithmus verwendet wird. Solange der Wert größer byHighestAddress ist, wurde noch kein SMI-Gerät adressiert.
arrAddressedDevices: Wird einem SMI-Gerät eine Adresse zugewiesen, so wird in dem Array das entsprechende Element auf TRUE gesetzt.
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 |