beautypg.com

Communication between twincat and bx/bcxx50 – BECKHOFF BC3150 User Manual

Page 64

background image

Safety Instructions

62

Fieldbus Components

Communication between TwinCAT and BX/BCxx50

It makes sense to define a data structure for transferring data between TwinCAT and Bus Terminal Controller. Please
note the following to account for the differences in data management on the two systems.

If two different data types are sent in sequence (e.g. byte and INT), the following variable is set to the next
even address offset

Boolean variables should never be allocated individually within a structure, since they would invariably oc-
cupy 1 byte. Boolean expressions should always be masked in a byte or word.

Example 1: Structure on the BX and on the PC

Variable

BX memory

PC memory (TwinCAT)

Byte

%..B0

%..B0

INT (1)

%..B2

%..B1

INT (2)

%..B4

%..B3

Because the first byte is followed by a different variable type (INT), it was set to the next free even address in the
BX/BCxx50. In order to achieve the same data structure on both systems, a dummy byte has to be inserted in the PC
project (see example 2).

Example 2: Structure on the BX and on the PC with identical memory allocation

Variable

BX memory

PC memory
(TwinCAT)

Byte

%..B0

%..B0

Byte
(Dummy)

%..B1 (not necessarily required, since the system deals with this itself if the
variable does not exist)

%..B1

INT (1)

%..B2

%..B2

INT (2)

%..B4

%..B4

Data structure

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

Creating a variable structure

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

Small programming example

strData_Out.wVar_1.0:=bInput_01;

Note

A mixed data structure should not contain any Real values. If it does, the High and Low
word must be swapped in the BX/BCxx50or in the TwinCAT master project. It is better to
use an array of Real values or to transfer the Real values individually.

Note

It is also possible to transfer larger fieldbus data blocks, in order to leave a reserve for your
structure. Disadvantage: These reserves are then transferred with each fieldbus telegram,
causing additional load for the fieldbus communication.