Kommunikation zwischen twincat und bx/bcxx50 – BECKHOFF BC3150 Benutzerhandbuch

Seite 66

Advertising
background image

Sicherheitshinweise

64

Feldbuskomponenten

Kommunikation zwischen TwinCAT und BX/BCxx50

Um von TwinCAT-Daten zum Busklemmen-Controller zu transportieren liegt es nahe, die Daten in einer Struktur
anzulegen. Da die Datenhaltung auf beiden Systemen unterschiedlich ist sind folgende Hinweise zu beachten.

Wenn zwei unterschiedliche Datentypen aufeinander folgen (zum Beispiel Byte und INT) wird die folgende
Variable auf den nächsten graden Adress-Offset gelegt

Boolsche Variablen sollten nie einzeln in eine Struktur gelegt werden, da sie so immer 1 Byte belegen wür-
den. Boolsche Ausdrücke sollten immer in ein Byte oder Wort maskiert sein.

Beispiel 1: Eine Struktur auf den BX/BCxx50 und auf dem PC

Variable

Speicher des BX/BCxx50

Speicher des PC (TwinCAT)

Byte

%..B0

%..B0

INT (1)

%..B2

%..B1

INT (2)

%..B4

%..B3

Dadurch das hinter dem ersten Byte eine anderer Variable-Typ (INT) folgt ist dieser im BX/BCxx50 auf die nächste
freie grade Adresse gelegt worden. Will man beide auf beiden Systemen die gleiche Datenstruktur haben, muss im
PC-Projekt ein Dummy-Byte eingefügt werden (siehe Beispiel 2).

Beispiel 2: Eine Struktur auf den BX/BCxx50 und auf dem PC mit gleicher Speichebelegung

Variable

Speicher des BX/BCxx50

Speicher des PC
(TwinCAT)

Byte

%..B0

%..B0

Byte
(Dummy)

%..B1 (nicht unbedingt notwendig, da dies das System selber macht,
wenn diese Variabel nicht vorhanden ist)

%..B1

INT (1)

%..B2

%..B2

INT (2)

%..B4

%..B4

Daten Struktur

Type PB_Data
STRUCT
wVar_1:WORD;
iValue_1:INT;
iValue_2:INT;
iValue_3:INT;
END_STRUCT
END_TYPE

Anlegen einer Struktur in den Variablen

VAR_Global
strData_Out AT %QB1000:PB_Data; (*PLC Variables *)
bInput_01 AT %IX0.0:BOOL; (* Input from a terminal *)
END_VAR

Kleines Programmbeispiel

strData_Out.wVar_1.0:=bInput_01;

Hinweis

In einer gemischten Daten-Struktur sollten keine Real-Werte enthalten sein. Wenn dies
doch der Fall ist, muss zusätzlich im BX/BCxx50 oder im TwinCAT Masterprojekt das High
und Low Word vertauscht werden. Verwenden Sie besser ein Array von Real-Werten oder
übertragen Sie die Real-Werte einzeln.

Hinweis

Sie können auch größere Feldbusdatenblöcke übertragen, um eine Reserve für Ihre
Struktur zu haben. Nachteil: Diese Reserven werden dann mit jedem Feldbustelegramm
übertagen, was eine eine Mehrbelastung der Feldbuskommunikation verursacht.

Advertising