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