CANopen Communication
ADSWrite(
NETID:= ADSNetID,
PORT:= PortNr,
IDXGRP:= CO_Index,
IDXOFFS:= CO_SubIndex,
LEN:= DataLength,
SRCADDR:= ADR(WriteData),
WRITE:= TRUE,
TMOUT := T#1s
);
IF ADSWrite.err THEN
state := 2;
WriteDataFinished := TRUE;
Error := ADSWrite.ErrId;
ELSE
state := 1;
END_IF
ELSE
ADSWrite(
NETID:= '',
PORT:= PortNr,
IDXGRP:= CO_Index,
IDXOFFS:= CO_SubIndex,
LEN:= DataLength,
SRCADDR:= ADR(WriteData),
WRITE:= FALSE,
TMOUT := T#1s
);
END_IF
1:
ADSWrite(WRITE:=FALSE);
IF ADSWrite.err THEN
state := 2;
WriteDataFinished := TRUE;
Error := ADSWrite.ErrId;
ELSE
IF NOT ADSWrite.busy THEN
state := 2;
WriteDataFinished := TRUE;
END_IF
END_IF
2:
ADSWrite(WRITE:=FALSE);
state := 0;
END_CASE
5.7
Baud rate and bit timing
The following baud rates and entries in the bit-timing register are supported by the CANopen devices:
Baud rate [kbaud]
1000
800
500
250
125
100
50
20
10
The bit-timing register settings given (BTR0, BTR1) apply, for example, for the Philips 82C200, SJA1000,
Intel 80C527, Siemens 80C167 and other CAN controllers. They are optimized for the maximum bus length.
60
BTR0
0x00
0x00
0x00
0x01
0x03
0x04
0x09
0x18
0x31
Version: 2.0
BTR1
0x14
0x16
0x1C
0x1C
0x1C
0x1C
0x1C
0x1C
0x1C
Sampling Point
75%
80%
87%
87%
87%
87%
87%
87%
87%
FC5101 and FC5102