FB_SMISendSMICommand

FB_SMISendSMICommand 1:

Der Funktionsbaustein FB_SMISendSMICommand dient zum allgemeinen Senden eines SMI-Kommandos. Hierzu muss der genaue Aufbau eines SMI-Befehls und die Funktionsweise der KL6831/KL6841 bekannt sein. Der Einsatz dieses Funktionsbausteins ist nur notwendig, wenn ein SMI-Befehl versendet werden soll, der nicht durch die anderen SPS-Funktionsbausteine abgedeckt wird.

FB_SMISendSMICommand 2: Eingänge

VAR_INPUT
  bStart                  : BOOL;
  dwAddr                  : DWORD := 0;
  eAddrType               : E_SMIAddrType := eSMIAddrTypeAddress;
  dwAddrOption            : DWORD := 0;
  eCommandPriority        : E_SMICommandPriority := eSMICommandPriorityMiddle;
  eCommandType            : E_SMICommandType := eSMICommandTypeWrite;
  eResponseFormat         : E_SMIResponseFormat := eSMIResponseFormatDiagnosis;
  arrIdentificationBytes  : ARRAY [0..2] OF BYTE;
  arrParameters           : ARRAY [0..2] OF DWORD;
  bSuppressResponseBuffer : BOOL := FALSE;
  dwOptions               : DWORD := 0;
END_VAR

Name

Typ

Beschreibung

bStart

BOOL

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

dwAddr

DWORD

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

E_SMIAddrType

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

dwAddrOption

DWORD

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

eCommandPriority

E_SMICommandPriority

Priorität (hoch, mittel oder niedrig), mit der der Befehl von der SPS-Bibliothek abgearbeitet wird.

eCommandType

E_SMICommandType

Kommandoart: Schreiben/Lesen. Dieser Parameter beeinflusst das Bit 5 vom Startbyte des SMI-Telegramms.

eResponseFormat

E_SMIResponseFormat

Antwortformat: Diagnose-Sonderformat/Standard. Dieser Parameter beeinflusst das Bit 6 vom Startbyte des SMI-Telegramms.

arrIdentificationBytes

ARRAY OF BYTE

Ein SMI-Telegramm kann aus bis zu 3 Blöcken bestehen. Jeder Block besitzt ein Kennungsbyte. Über dieses Array werden die drei Kennungsbytes definiert.

arrParameters

ARRAY OF DWORD

Ein SMI-Telegramm kann aus bis zu 3 Blöcken bestehen. Jeder Block besitzt bis zu vier Wertebytes. Über dieses Array werden die Wertebytes der einzelnen Blöcke definiert.

bSuppressResponseBuffer

BOOL

Wird dieser Eingang auf TRUE gesetzt, so wird der interne Software-Puffer nicht mit den Antworten des Funktionsbausteins FB_KL6831KL6841Communication() gefüllt.

dwOptions

DWORD

Reserviert für zukünftige Erweiterungen

FB_SMISendSMICommand 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_SMISendSMICommand 4: Ausgänge

VAR_OUTPUT
  bBusy                        : BOOL;
  bError                       : BOOL;
  udiErrorId                   : UDINT;
  arrResponseData              : ARRAY [0..7] OF BYTE;
  byResponseDataLength         : BYTE;
  byResponseIdentificationByte : BYTE;
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).

arrResponseData

ARRAY OF BYTE

Die empfangenen Daten von den SMI-Geräten

byResponseDataLength

BYTE

Die Länge der empfangenen Daten in Bytes

byResponseIdentificationByte

BYTE

Das empfangene Kennungsbyte

Voraussetzungen

Entwicklungsumgebung

Einzubindende SPS-Bibliothek

TwinCAT ab v3.1.4020.14

Tc2_SMI ab 3.3.5.0