c-ipeak - DynamicDrives

Edition:
08.17
Functionality Manual
Dias Drive 300
Edition 08.17
SIGMATEK
Previously published editions
Edition
04.38
05.10
06.01
06.46
06.47
07.17
08.17
Comment
First Edition
Different Changes
Different Changes
Some new chapters
Added: Firmware download via
SSI, formula for calculating C-KPQ,
error handling
Description of the serial
communication protocol New
description of the stepper motor
setup
Upgrade linear motor setting
Special text formats used in this manual
I-VBUS
in Drawings are ASCII Objects (see also HTML – description)
F-FF
Bold, italicise in Formulas and Text are ASCII Objects (see also HTML – description)
Abbreviations used in this manual
Technical changes to improve the performance of the equipment may be made without prior notice!
All rights reserved. No part of this work may be reproduced in any form (by printing, photocopying, microfilm or any other method) or
stored, processed, copied or distributed by electronic means, without the written permission of SIGMATEK GmbH & Co KG.
Functionality Manual
2
Edition 08.17
SIGMATEK
0.
Contents
1.
Pulse width modulation (PWM)
4
2.
Current controller
5
2.1
Auto Range Function
6
3.
Minimum inductance
8
4.
Feedback
9
Resolver
9
4.1
5.
Speed controller
10
6.
Position controller
11
7.
Set point switching
14
7.1
7.2
7.3
8.
8.1
8.2
8.2.1
8.2.2
8.3
8.4
8.5
8.6
8.7
8.8
Position set point switch
Ncmd set point switch
Current set point switch
Host communication
Hardware
Data transfer
UART – mode
PLD (SPI) - mode
Structure of the communication
Components of the different telegrams
Object handling
Real time communication
Safety value (in preparation)
Synchronisation
14
14
15
16
17
18
18
18
19
20
22
23
23
24
9.
Holding brake operation
25
10.
Regen Circuitry
27
11.
Error handling
27
12.
Parameter up/download
29
12.1
12.2
12.3
13.
13.1
13.2
Parameter upload
Parameter download
Layout of the serial Parameter communication
Software download
Software download via RS232 or USB
Software download via SSI
29
29
30
33
33
34
14.
Scope function
36
15.
Stepper Motor Operation
39
16.
Start-up of Linear Motors
40
Functionality Manual
3
SIGMATEK
Edition 08.17
1.
Pulse width modulation (PWM)
The base of the PWM (pulse width modulation) of the power stage is the space vector
modulation (SVM). Even with 8 kHz power stage frequency, the current controller is running
with 16 kHz and can change the output voltage of the power stage by changing the
switching times of “on” and “off” transition of the IGBT’s.
The drive gives the possibility to change the mode of the PWM to give the best
performance for different cases.
1. Standard SVM for low speed and modified SVM above the threshold speed to reduce
the switching losses of the power stage (G-PWM = 0).
2. Modified SVM over the full range (G-PWM = 1).
G-PWM = 0 is used with low inductance motors and motors with high resolution feedback
devices in high performance applications. G-PWM = 1 is the default setting for general
purpose applications. It reduces the losses of the power stage and gives advantages with
long motor cables. When the motor is enabled but not running, all three legs of the power
stage switch on/off at the same time. The capacitance of the motor cable is charged and
discharged with the switching frequency which generates losses in the cable and power
stage. G-PWM = 1 reduces this effect by reducing the number of switches of the power
stage.
The setting of G-PWM depends on the inductance of the motor ( Page 8).
Back to Contents
Functionality Manual
4
SIGMATEK
Edition 08.17
2.
Current controller
The current controller is vector controlled and working field orientated in synchronous
coordinates, which gives the best performance and highest dynamic.
It has an update time of 62.5µs.
A bandwidth of up to 2 kHz is possible, depending on the current rating of the drive and the
inductance of the motor.
~
=
Rect ifier
In ru sh
Cir cu itry
C-KPQ
C-TN
D
I-VBUS
C-KDREL
C-IPEAK
Tor qu e cu rr en t
C-KPNULL
C-ICONT
Icm d
VBU S
C-KPPEAK
I-ICMD
(+)
jδ
ua
P WM
e
F ield cu rr en t
=
~
ub
(-)
C-ICONT
P ower
St a ge
Cu rr en t Con t roller
C-IPEAKN
Iq
I-IQ
-jδ
Ia
e
Id
I-ID
D
A
Ib
M
3~
δ
Iq
D
I-FPOS
F
Rot or P osit ion
Figure 1:
DCLin k
Ca p
A
C-KPDREL
F
Block diagram of the current controller
The tuning of the current controller for nearly all applications is very easy. No tuning
procedure is required, simply calculating the objects adequate. Only the phase to phase
inductance of the motor is necessary. Most of the objects can be set to the default value.
Only for very special motors, these objects have to be changed (contact the application
department in this case).
The gain of the current controller is scaled in physical units in [mV/A] and is independent of
the current rating of the drive. So every calculated object setting can be downloaded
without change, if the current rating of the drive is sufficient for the application.
The peak current time tpeak is limited. The maximum time is defined by C-ICONT and
C-IPEAK.
The actual I²t value of the drive reduces this time.
The standard setting is C-IPEAK = 2 · C-ICONT . In this case tpeak is 5 sec.
tpeak =
Functionality Manual
(C-ICONT)²
· 20 · [sec]
(C-IPEAK)²
5
SIGMATEK
Edition 08.17
2.1
Auto Range Function
To have the full A/D - resolution of the actual value of the currents, the 10A – unit has an
internal auto range functionality that depends on the setting of C-IPEAK. It has three
different gains for the actual current.
A/D resolution
12 Bit
11 Bit
10 Bit
9 Bit
C-IPEAK
5A rms
Figure 2:
10A rms
15A rms
20A rms
Resolution of the A/D conversion of the actual currents for the 10A – unit
This gives the possibility to use the 10A – unit for the full range of motors up to 20A peak
current and enables the three axis drive (otherwise there is a need for different types to
have the best performance) and reduces the need for spare parts. The auto range function
is started when the drive is disabled. If the drive is enabled, the reduction of C-IPEAK has
no effect on the resolution to limit the torque online without creating a resolution change
step. If C-IPEAK is changed higher than the disable state value, the auto range function is
executed. This means, that C-IPEAK should be set to the highest value at start-up, to avoid
the online change of the internal range. The 10A/30A, 15A/30A, 15A/40A and 20A/40A axis
have no auto range function, see table 1.
Drive Type
3 – axis (3 x 5A/10A)
Auto scaling 2.5A, 5A, 10A depending on C-IPEAK
3 – axis (3 x 10A/20A)
Auto scaling 5A, 10A, 20A depending on C-IPEAK
3 – axis (2 x 10A/20A,
15A/30A)
10A/20A – axes: Auto scaling 5A, 10A, 20A depending on CIPEAK
15A/30A – axis: No auto scaling
10A/20A – axes: Auto scaling 5A, 10A, 20A depending on CIPEAK
10A/30A – axis: No auto scaling
15A/40A – axis: No auto scaling
No auto scaling
3 – axis (10A/20A,
10A/30A, 15A/40A)
1 – axis (20A)
Table 1:
Auto Scaling
Functionality Manual
6
Edition 08.17
SIGMATEK
The procedure to get the full object set for the current controller is:
1. Set all motor objects to the motor data sheet values (M- objects)
2. Set following objects of the current controller to default values:
C-KDREL = 70
(70 % of C-KPQ)
C-KPNULL = 70
(70 % of C-KPQ)
C-KDREL = 50
(50 % of C-KPQ)
C-KPPEAK = 40
(40 % of C-KPQ)
C-TN = 1000
(1 msec)
3. Calculate C-KPQ with following formula (L = motor inductance phase – phase [mH]):
C-KPQ = 2500 · L
4. Set C-IPEAK, C-IPEAKN and C-ICONT to the values, that are necessary for the
application
For test purposes, there is also a possibility to give a fixed current set point in G-MODE = 4 to the current controller. The object is K-CI. The input is in [mA]. The current angle is
rotated independent of the measured feedback angle. The rotating speed is given by KCINC.
Back to Contents
Functionality Manual
7
SIGMATEK
Edition 08.17
3.
Minimum inductance
The drive has also limitations regarding the minimum inductance of the motor. The table
gives the minimum inductance related to the current rating, drive type and PWM method
(G-PWM).
C-IPEAK is the value that is calculated with the auto scaling function.
Drive type
Condition (for axis peak
current)
3 – axis
(3 x 10A/20A)
3 – axis
(2 x 10A/20A,
15A/30A)
3 – axis
(10A/20A,
10A/30A,
15A/40A)
1 – axis
(20A/40A)
3 – axis
(3 x 10A/20A)
3 – axis
(2 x 10A/20A,
15A/30A)
3 – axis
(10A/20A,
10A/30A,
15A/40A)
1 – axis
(20A/40A)
Table 2:
G-PWM
C-IPEAK <= 20A
C-IPEAK <= 10A
C-IPEAK <= 5A
20A – axis: C-IPEAK <= 20A
20A – axis: C-IPEAK <= 10A
20A – axis: C-IPEAK <= 5A
30A – axis: C-IPEAK <= 30A
20A – axis: C-IPEAK <= 20A
20A – axis: C-IPEAK <= 10A
20A – axis: C-IPEAK <= 5A
30A – axis: C-IPEAK <= 30A
40A – axis: C-IPEAK <= 40A
C-IPEAK <= 40A
0
0
0
0
0
0
0
0
0
0
0
0
0
C-IPEAK <= 20A
C-IPEAK <= 10A
C-IPEAK <= 5A
20A – axis: C-IPEAK <= 20A
20A – axis: C-IPEAK <= 10A
20A – axis: C-IPEAK <= 5A
30A – axis: C-IPEAK <= 30A
20A – axis: C-IPEAK <= 20A
20A – axis: C-IPEAK <= 10A
20A – axis: C-IPEAK <= 5A
30A – axis: C-IPEAK <= 30A
40A – axis: C-IPEAK <= 40A
C-IPEAK <= 40A
1
1
1
1
1
1
1
1
1
1
1
1
1
Minimum allowed Inductance of the motor
Functionality Manual
Minimum
Minimum
Inductance Inductance
(400/480V
(230V
Supply
Supply
Voltage)
Voltage)
3 mH
1.7 mH
6 mH
3.4 mH
12 mH
6.8 mH
3 mH
1.7 mH
6 mH
3.4 mH
12 mH
6.8 mH
2.3 mH
1.3 mH
3 mH
1.7 mH
6 mH
3.4 mH
12 mH
6.8 mH
2.3 mH
1.3 mH
1.5 mH
0.8 mH
1.5 mH
0.8 mH
5 mH
10 mH
20 mH
5 mH
10 mH
20 mH
3.5 mH
5 mH
10 mH
20 mH
3.5 mH
2 mH
2 mH
2.9 mH
5.8 mH
11.6 mH
2.9 mH
5.8 mH
11.6 mH
2 mH
2.9 mH
5.8 mH
11.6 mH
2 mH
1.2 mH
1.2 mH
Back to Contents
8
SIGMATEK
Edition 08.17
4.
Feedback
4.1
Resolver
The resolver feedback uses a tracking loop which is calculated in software every 62.5µs.
The tracking loop is necessary to reduce the noise of the small resolver signals.
Disadvantage is that the tracking loop generates a phase lag that causes stability problems
and ringing in the speed controller.
Therefore the tracking loop has an additional path (feed forward), to inject the actual torque
of the motor. This reduces the phase lag and gives better behaviour of the speed controller.
Iq
F-FF
M-J
M-TORQUE
A-JRATIO
F-RK
Resolver
In pu t
Figure 3:
DE M
F-BW
(+)
(+)
(+)
δres
ω
Rot or P osit ion
δ
(-)
Block Diagram of the Resolver Tracking Loop
The main setting of the resolver feedback is the bandwidth of the tracking loop F-BW. The
default setting is 600 Hz, which is good for most applications. It is a compromise between
low noise and adequate dynamic behaviour. If a higher bandwidth in the speed controller is
needed in the application, F-BW can be increased up to 1200 Hz, which results also in a
higher noise level. An increase of F-BW allows increasing the gain of the speed controller
without loosing the stability and results in higher stiffness of the axis.
The acceleration feed forward (Iq) of the tracking loop is set by different objects. It depends
on motor objects that are datasheet values (motor inertia M-J and torque constant MTORQUE) and application dependant values and the application dependant object AJRATIO.
A-JRATIO is the load/motor inertia ratio. Therefore you need information about the real
load inertia. In the first step, this can be estimated by knowing the mechanics of the
machine or calculating the ratio by an analysis of a speed step command. Later the drive
will get a service function to automatically test the real load inertia.
The object F-FF has the default value of 1000 (1000 ‰ = 1). This means that the
acceleration feed forward is calculated in an optimal way. The range is from 0 to 2000 to
give the possibility to adjust the feed forward for special applications.
SFF-Factor ~ F-FF ·
M-TORQUE
M-J · A-JRATIO
The object F-RK in the demodulation of the resolver signals compensates gain differences
between the sine and cosine signals. F-RK = 0 enables the adaptive compensation of the
gain differences. When starting the drive, it takes about 1 min to optimise the behaviour.
Back to Contents
Functionality Manual
9
SIGMATEK
Edition 08.17
5.
Speed controller
The speed controller is a standard PI-controller, which works with an update time of 62.5µs.
The gain is independent of the current rating of the drive. So every calculated object setting
can be downloaded without change, if the current rating of the drive is sufficient for the
application.
Beside the PI – controller are additional filters.
•
•
The feedback filter V-T to reduce feedback related noise
The 2nd time constant V-T2 that reduces noise especially with resolver feedback
and/or improves ringing mechanical systems
M-NMAX
V-KP
V-NMAX
G-VRAMP
N cm d
V-TN
V-T2
V-FILT
(+)
I-NCMD
(- )
Ra m p Gener a t or,
on ly in G-MODE = -2
and 2
Iq*
(+)
Speed Con t r oller
1 - V-FILT
(+)
2 n d Tim e Con st a n t
V-T
Rot or P osit ion
I-NFILT
I-N
δ
F eedba ck F ilt er
Figure 4:
Block Diagram of the Speed Controller
The setting of the speed controller is very easy for standard applications.
The procedure to get the full object set for the speed controller is:
Optimise the current controller (see under “Current Controller”, Page 5)
Set the feedback objects (see under “Feedback”, Page 9)
Set V-T to 400 (0.4 msec)
Set V-T2 to 1000 (1 msec)
Set V-TN to 10000 (10 msec)
Start the speed service step function using a small speed (about +/-100 rpm)
K-SPEED = 100 (100 rpm)
K-STEP = 100 (100 msec)
G-MODE = -2 ( service speed mode)
7. Increase V-KP to get a step response with one overshoot without ringing
1.
2.
3.
4.
5.
6.
Back to Contents
Functionality Manual
10
SIGMATEK
Edition 08.17
6.
Position controller
The position controller is executed every 62.5 µs and has two different operation modes.
•
•
Linear Interpolation
Spline Interpolation
In the linear interpolation mode, the host controller only transmits position set points to the
drive. If it transmits also speed set points in addition to the position set points, the drive
works automatically in interpolation mode. The speed feed forward is defined as the
tangent in the corresponding position point. The internal scaling of the speed feed forward
for the interpolation is in position change per cycle time. This means that the speed feed
forward reference is the position change within the cycle time with constant speed.
P4/S4
P5/S5
P6/S6
P3/S3
P2/S2
P1/S1
Figure 5:
Cycle
Time
Position Interpolation
If the controller calculates only the new positions, the speed set points can be calculated by
the controller in an easy way:
Si+1 =
With
2
tcycle
· (Pi+1 – Pi) – Si
Si+1
Si
Pi+1
Pi
new speed set point
old speed set point from the last cycle
new position set point
old position set point from the last cycle
If the object P-SMODE is set to “1”, the drive calculates the speed set point according to
the formula above. In this case the controller saves calculation power and there are 16 bit
free in the communication channel.
The position is always transmitted in 32 Bit signed format. The scaling can be set by the
user. Internally the drive works with 64 Bit resolution. The lower 32 Bit represents one
mechanical revolution of the motor and the upper 32 Bit the number of turns.
The object P-PSCALE has the range from 0 to 16. P-PSCALE = 0 means that the 32 Bit
motor position directly corresponds to the lower 32 Bit of the position of the drive. This
resolution is done especially for direct torque motors with high resolution feedback.
Disadvantage of this setting is, that the position change per cycle time increment is limited.
Functionality Manual
11
SIGMATEK
Edition 08.17
The maximum speed is limited to a quarter of a turn in one cycle time to make sure, that the
turns can be detected in the host controller.
P-PSCALE = 16 means, that the internal position is shifted 16 Bit related to the motor
position. So the lower 16 Bit give the position of one revolution of the motor and the upper
16 Bit give the number of turns. All settings in between are also possible.
The internal scaling of the speed feed forward for the interpolation is defined as change of
the position increments per cycle time. This means, the position change in that time period
with constant speed. If the host controller calculates the value in this way, P-SSCALE has
to be set to 1000 (1000 ‰). If it is calculated different, P-SSCALE scales the given value to
the internal scaling.
The internal speed feed forward (n*) value is generated by the position interpolator every
62.5µs and is added to the output of the position controller. The object P-SFF has the
default value of 1000 (1000 ‰ = 1). This means that the speed feed forward is calculated in
an optimal way. The range is from 0 to 2000 to give the possibility to adjust the feed
forward for special applications.
Another output of the spline interpolator is the torque feed forward. The internal value of the
torque feed forward (Iq*) is calculated depending on following objects:
TFF-Factor ~ P-TFF ·
M-J · A-JRATIO
M-TORQUE
The proportional gain of the position controller P-KV is defined as:
Ncmd = I-PE ·
P-KV
1000
P-KV is in physical units [1/msec] and has a range from 0 … 1000000.
N* is the sum of Ncmd and the speed feed forward.
P-TFF
M-TORQUE
M-J
A-JRATIO
Splin e In t er pola tor
Iq*ff
P os set
poin t
P-SFF
H ost
P-SSCALE
n *ff
P-KV
Speed set
poin t
(+)
(+)
P cm d
I-PE
N*
(+)
I-PCMD
(-)
P osit ion Con tr oller
I-POS
P-PSCALE
32 Bit
1
2x
64 Bit
32 Bit
Rot or P osit ion
δ
Add Revolu t ion s
Figure 6:
Block Diagram position Controller
A service mode (G-MODE = -3) is available, to test and optimise the position controller
settings.
Functionality Manual
12
Edition 08.17
SIGMATEK
The drive contains a fixed profile generator, which generates the position and speed set
points. If G-MODE = -3 is selected.
K-PINC is the auto increment value for the table pointer. If K-PINC = 1, all table values are
send to the position controller, which results in a position change of the motor of ½
revolution (with P-PSCALE = 0) in 1.024 seconds.
If P-PSCALE is set to 1, 1 revolution is moved in 1.024 seconds. K-PINC reduces linear the
execution time, so K-PINC = 2 and P-PSCALE = 0 means, that a ½ revolution is moved in
0.512 seconds.
K-PMOVE starts the motion. K-PMOVE = 1 starts a move in positive direction, K-PMOVE =
0 in negative direction.
Back to Contents
Functionality Manual
13
SIGMATEK
Edition 08.17
7.
Set point switching
The drive has a multi set point switch in front of the current controller, the speed controller
and the position controller, to bring the set points to the different controllers depending on
the selected working mode (G-MODE).
P osit ion set point swit ch
Zero speed
VAL 1 or 2
int. Table
Figure 7:
7.1
0, 1, 2,
-1, -2
3
Speed
set P oin t
-3
Ncm d set poin t swit ch
Iq*ff
G-MODE
Zero speed
N*
0, -1, 1
-3, 3
VAL 1 or 2
2
Speed set
point service
-2
Ncmd
Cur rent set poin t swit ch
G-MODE
(+)
Iq*
-3, 3
(+)
0, -2, 2
VAL 1 or 2
1
Current set
point service
-1
Icmd
Cu r ren t
con tr oller
int. Table
P os set
P oin t
-3
Speed
con tr oller
VAL 1 or 2
0, 1, 2,
-1, -2
3
Spline
Int er pola t or a n d
posit ion con t roller
G-MODE
actPOS
Block diagram set point switching
Position set point switch
In front of the “Spline interpolator and position controller” box are two switches, one for the
position set point and one for the speed set point.
Depending on the actual G-MODE, the set points have different sources.
For G-MODE = 0, -1, 1, -2, 2 the speed set point is zero and the Pos set point is actPOS,
which means, that the actual position is sampled at enable of the drive and then hold to
prevent a position jump.
With G-MODE = 3 the source of the set points are transmitted via the host communication.
If not one of the objects A-VALRT1 or A-VALRT2 is set to the position set point input the
position set point is switched to actPOS.
If not one of the objects A-VALRT1 or A-VALRT2 is switched to the speed set point, the
speed set point is set to zero speed.
In G-MODE = -3 the service function is enabled ( page 13).
7.2
Ncmd set point switch
In front of the “Speed controller” box is the Ncmd set point switch.
Depending on the actual G-MODE, the set point has different sources.
For G-MODE = 0, -1, 1 the Ncmd set point is zero.
With G-MODE = -3 and 3 the source of the set point comes from the “Spline and position
controller” box and is the output of the position controller and the speed feed forward of the
Spline interpolator.
In G-MODE = 2 the source of the set point is transmitted via the host communication.
If not one of the objects A-VALRT1 or A-VALRT2 is set to the Ncmd set point input, Ncmd
set point is switched to zero.
In G-MODE = -2 the service function is enabled ( page 10).
Functionality Manual
14
Edition 08.17
7.3
SIGMATEK
Current set point switch
In front of the “Current controller” box is the Current set point switch.
Depending on the actual G-MODE, the set point has different sources.
For G-MODE = 0, -2, 2 the Icmd set point is directly the output of the speed controller.
With G-MODE = -3 and 3 the source of the set point comes from the “Speed controller” box
added by the torque feed forward of the “Spline and position controller box”.
In G-MODE = 1 the source of the set point is transmitted via the host communication.
If not one of the objects A-VALRT1 or A-VALRT2 is set to the Icmd set point input, Icmd
set point is switched to zero.
In G-MODE = -1 the service function is enabled ( page 7).
Back to Contents
Functionality Manual
15
Edition 08.17
8.
SIGMATEK
Host communication
The basic of this communication is a bidirectional synchronous serial communication. It
runs from 1MBit/s to 5 MBit/s and gives the possibility to communicate with the
corresponding drive every 250µs. So it is possible, to get a real high speed communication,
to run the servo motor in a high dynamic mode to minimize position error.
There are different modes to give set points to the servo drive:
•
•
•
Torque control, with different programmable actual real time values
Speed control, with different programmable actual real time values
Position control (positions generated by an tracking generator on the host controller)
with internal spline interpolation, with different programmable actual real time values
The new position set points, velocity set points or torque set points can be send to the drive
in cycle times of 250µs, 500µs, 1msec and every msec up to 8msec. The power stage is
synchronized to the external beat of the host controller. The communication uses a CRC-8
algorithm for data integrity check. An internal monoflop checks the CLK-signal and resets
the internal state machine if the CLK-signal has stopped for more than 5µs.
Two different communication types are possible:
• Communication Type 1 (UART-Mode)
Communication via a UART unit of a microcontroller in synchronous mode with
start/stop bit and 8 bit data. The communication rate can be in the range of 1 MBit/s
to 5 MBit/s. This allows a communication to one axis in about 32µs (at 5MBit/s). The
monoflop time in the communication line of the drive, is fixed to max 5µs for the time
from the low-high to high-low transition and max 5µs for the time from the high-low to
low-high transition of the CLK-signal. This communication method allows full access
to all axes with synchronization via one RX/TX – channel and the Clock – channel of
the drive. The minimum update time is limited to 250µs for a three axes drive.
• Communication Type 2 (PLD-Mode)
Communication via a programmable logic device. The communication rate can be in
the range of 1 MBit/s to 5 MBit/s. The difference to the first possibility is, that there is
no start/stop sequence every 8 bit data and therefore the communication time is
shorter. This allows a communication to one axis in about 26µs at 5 MBit/s. The
monoflop time in the communication line, is fixed to max 5µs for the time from the
low-high to high-low transition and max 5µs for the time from the high-low to low-high
transition of the CLK-signal. This communication method allows full access to all
axes with synchronization via one RX/TX – channel and the Clock – channel of the
drive. The minimum update time is limited to 250µs for a three axes drive. VHDL –
code for the communication line is available to reduce development time.
The drive operates in all communication types without special configuration.
Three different protocol types are available, which give the possibility to send and receive:
• Object and two free configurable 32 Bit values in both directions (are mapped in the
starting phase).
• Three free configurable 32 Bit values in both directions (are mapped in the starting
phase).
• Object and 2 free configurable 32 Bit values in both directions (are mapped in the
starting phase) and additional independent information about the actual position for
safety purposes. The minimum communication time is about 38.4µs at 5 MBit/s (in
preparation).
By sending a Master SYNC Telegram (MST), all axes can be synchronised that are
connected to the master. There is also a possibility to define a capture point in respect to
the MST, where the actual values are captured and the set points are fed into the controller.
Functionality Manual
16
Edition 08.17
SIGMATEK
There is also a possibility to define a certain telegram of each axis as a Sync-telegram. In
this case no MST has to be send. The telegram type can be set by P-STYPE.
8.1
Hardware
VCC_e
10mA
CLK
X10/Pin 8A
330
R
VCC_e
VCC_e
10mA
DATA_RX_A
X10/Pin 4A
330
R
VCC_e
470R at 5V
DATA_TX_A
X10/Pin 5A
X10/Pin 2A, 2B, 4B,
7A, 9A, 10A, 10B
Host Board
Drive
Drive
Drive
Figure 8:
Hardware of the Bidirectional Communication
The hardware is based on a standard bidirectional synchronous communication. The clock
rate has to be between 1 MBit/s and 5 MBit/s.
The three axes have address 0 to 2. The host needs only one communication channel to
the drive. There are two possibilities of the hardware of the host. The first is to
communicate via a standard synchronous UART with start-, 8 Bit data and stop-bit
(Communication Type 1).
The drive accepts only one stop and one start bit per 8 data bits.
The other possibility is based on a programmable logic device that is able to handle the full
width of the data without start/stop – bit. The detection is done automatically after
transmitting the first 8 bit of data. The first stop/start sequence is inversed (stop bit is low
and start bit is high). After the drive detects the inversed sequence, the following start/stop
sequences every 8 bit are switched off (Communication Type 2). There is no configuration
change necessary in the drive to get into this mode.
Back to Contents
Functionality Manual
17
SIGMATEK
Edition 08.17
8.2
Data transfer
The data transfer can be done in two different ways, the UART and the PLD-mode.
8.2.1 UART – mode
The drive supports a standard UART with start and one stop bit and 8 data bits without
parity. In sum, 128 bits have to be transferred. Every 8 data bits, a start/stop sequence is
necessary (see Figure 9). The host system has to be able to send one stop and then directly
the start bit of the next 8 bit data.
The monoflop time in the communication line of the drive, is fixed to max 5µs for the time
from the low-high to high-low transition and max 5µs for the time from the high-low to lowhigh transition. So to prevent a stop of the communication, the clock has to be sending for
the whole protocol transmission time. The clock can be started before transferring data and
stopped after finishing sending data or can be run all the time without stopping. The drive
starts the communication with the first start bit of DATA_TX_A.
Advantage of this communication type 1 is the easy interface to the host; disadvantage is
the higher transmission time.
The bidirectional communication is prepared to bring the UART physically on the interface
board in the drive (because of the various delay time between CLK and DATA_RX_A).
The transmission time for telegram type 0 or 1 takes about 32µs at 5 MBit/s.
CLK
Data_RX_A
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
Drive Control Byte / Digital In/Output Byte
Start Bit
D1
Receive Control Byte (Receive Direction)
Stop Bit
D0
Stop Bit
Start Bit
Start Bit
Data_TX_A
D0
D1
D2
D3
D4
D5
Object Address / Transmit Control Byte
Figure 9: Data communication in UART mode
Back to Contents
8.2.2 PLD (SPI) - mode
The second possibility is the PLD-mode of the communication. This type can be done with
a programmable logic device because of the high number of transferred bits or an
intelligent SPI - Interface.
The detection of this mode is done by the first start/stop – bit sequence. In the UART mode,
the stop bit is high and the start bit low. In the PLD – mode, the stop bit is low and the start
bit is high. If the drive detects this, the communication type is switched to the other mode.
A VHDL-code is available for the customer to simplify the development. The VHDL-code
consists also of automatic delay time compensation. This allows the use of the bidirectional
communication also as a simple high speed bus. Cable length of up to 20m is possible in
combination with RS422/RS485 transceiver.
The transmission time for telegram type 0 or 1 takes about 26µs at 5 MBit/s.
CLK
Data_RX_A
D0
D1
D2
D3
D4
D5
D6
Receive Control Byte (Receive Direction)
Figure 10:
D7
Start Bit
Start Bit
Stop Bit
Data_TX_A
D0
D1
D2
D3
D4
D5
D6
D7
Drive Control Byte / Digital In/Output Byte
D0
D1
D2
D3
D4
D5
D6
D7
Object Address / Transmit Control Byte
Data communication in PLD mode
Back to Contents
Functionality Manual
18
SIGMATEK
Edition 08.17
8.3
Structure of the communication
1
2
3
4
5
6
CRC8
Depending on Axis Address
x State of Digital Input on the option board
Figure 11:
Axis 3
x
x
Axis 1
x
x
x
Axis 2
1
x Toggle Bit Object Handling Idle Master
0 = Read Object; 1 = Write Parameter
1 = Init Object Communication
Enable input 1 = Enable, 0 = Disable
LOCK input 1 = unlocked
EN_BRAKE input 1 = unlocked
1 = INTERFACE_COM_ERROR
1 = NO_SET_POINT
LSB
2
3
4
5
6
z
z
z
x Toggle Bit Object Handling Idle Slave
1 = Error in Object Handling
0 = no Warning, 1 = Warning
0 = no Error, 1 = Error
1 = Sync-Locked
1 = Mains applied
1 = external LOCK and external ENABLE and external EN-BRAKE
not used
x
x
Digital In/Output Byte DIO
(the same for all three axes)
Value 7
Value 10
Value 7
MSB
Transmit Control Byte TCB
MSB
x
Value 6
Value 9
Value 6
LSB
1
x
x
z
z
z
LSB
2
3
4
5
6
MSB
x
x
x
Value 2
Value 5
Value 2
Transmit/Receive Telegram Type
Axis Address
00, 01 and 10 Addresses of the 3 axis
11 is Master SYNC Telegram, Data is not transferred
Inversed Data of Bit 3 to Bit 0 for Data Integrity Checking
xxxx
x
Double Word 3
Double Word 2
1
xx
xx
Drive Control Byte DCB
Value 1
Value 4
Value 1
LSB
2
Object Value
Value 8
Object Value
3
4
TCB
TCB
TCB
5
Receive Control Byte RCB
DIO
DIO
DIO
6
Transmit Telegram Type 0
Transmit Telegram Type 1
Transmit Telegram Type 2
OA
Object Value
dc
Value 3
OA
Object Value
dc = don't care
MSB
RCB DCB
RCB DCB
RCB DCB
Receive Telegram Type 0
Receive Telegram Type 1
Receive Telegram Type 2
Double Word 1
Object Address
Drive Control Byte
Receive Control Byte
Communication Host to drive
1 2 3
Communication Overview (Double Word = 32 Bit)
Back to Contents
Functionality Manual
19
Edition 08.17
8.4
SIGMATEK
Components of the different telegrams
As it is shown in Figure 11, the different telegram types have the same components:
• Clock
The drive accepts interrupted or continuous clock signal. The start bit in the
DATA_RX_A line starts the communication and the monoflop. The monoflop is
necessary to detect a hang-up of the communication and to do a restart. The
monoflop time in the communication line of the drive, is fixed to max 5µs for the time
from the low-high to high-low transition and max 5µs for the time from the high-low to
low-high transition. After the telegram is ready, a new communication can be started
after the monoflop time (at least max 6 µs after the last clock transition).
• Start Bit (master drive)
The start bit starts the communication from master to drive
• Start Bit (drive master)
In front of the Digital Input Byte e, a start bit is transmitted.
The start bit in this direction is used on the master side to compensate the delay time
of the buffers and transceivers and the cable.
• Digital In/Output Byte
The digital In/Output byte gives the state of the six digital inputs and two digital
outputs on the option board. This byte is the same for all three axes.
• Receive Control Byte
The Receive control byte gives the corresponding drive address (0 to 2) for the three
axes for the actual communication. When a single axis drive is used, the address has
to be always 0. When the address is 3, the telegram is a Master SYNC Telegram
MST, which synchronises all axes. In this case, only the Receive control Byte is
relevant. No data has to be transmitted. In addition to that, the telegram type can be
assigned, that is transmitted after the Receive Control Byte. The drive inside, always
updates all mapped data, so it is able to switch between the different telegram types
immediately.
For data checking reasons, the lower 4 bits are inversed to the upper 4 bits. The
drive uses this double transmitted information to detect an error. If an error is
detected, the drive transmits no data and holds the TX – line always high.
• Drive Control Byte
The Drive Control Byte is used to transmit control bits to the drive.
• Transmit Control Byte
The Transmit Control Byte is used to transmit status bits of the drive to the host.
• Object Address (non Real Time Values)
The object address is used only in telegram type 0 and 2 together with the Object
Value, Bit 0, 1 and 2 of Drive Control Byte and Bit 0 and 1 of Transmit Control Byte,
to handle Object read/write.
• Object Value (non Real Time Values)
Object Value is active in Telegram type 0 and 2 and is the 32 Bit value of an Object,
that is read or written.
• Free Configurable Values (Value 1 to 10) (Real time Values)
This values are not defined in the start-up phase and must be mapped in the
configuration phase. This values can contain several set points, depending on the
selected G-MODE in the receive direction and also different actual values in the
transmit direction.
• CRC
8
2
1
The CRC is a standard CRC-8 algorithm with polynomial divisor of X + X + X + 1.
The error detection level that can be reached using the CRC algorithm is equal to
hamming distance of 3. The Hamming distance is the count of bits different in the two
patterns that are detected.
If the communication is run in the UART mode, the CRC has to be calculated in the
Functionality Manual
20
Edition 08.17
SIGMATEK
microcontroller. An example of the C-code is available. In PLD mode, the VHDL code
consists of the CRC generator.
Back to Contents
Functionality Manual
21
SIGMATEK
Edition 08.17
8.5
Object handling
The objects are non real time values that can be changed at any time, using the telegram
types 0 or 2.
When the 24V auxiliary supply is switched on, the object communication in not possible
(not initialised). In this case the bit 1 “ERROR IN OBJECT HANDLING” of the Receive
Control Byte is set and error code “10” (see list below) is put in the object value.
The object handling is initialised by setting the bit 2 “INIT OBJECT COMMUNICATION” of
the Drive Control Byte and read an object (e.g. P00). The answer will be an error in object
handling with error code “9”, what means, that the initialisation has been completed. Now
bit 2 of the Drive Control Byte has to be reset. The standard object handling is now
possible.
At any time, this procedure can be used to reset the communication.
An object handling is started by the host, by writing the address and object value, the
read/write bit 1 and at last toggling bit 0 of the Drive Control Byte. After that, the host has to
wait for the answer of the drive.
The drive gets this information, does the necessary calculation and at the end, bit 0 of
Transmit Control Byte is also toggled to the same state.
Then the host reads the result. When the drive detects a calculation error, bit 1 “ERROR IN
OBJECT HANDLING” in Transmit Control Byte is set and the error code is put in the object
value. The value of that object does not change in this case.
All objects can be changed, depending on the status of the drive (enable/disable, etc.) A
complete list of the objects is a separate document. The response time of the object
handling depends on the selected object.
Initialise
Communication
Init
Wait for
new object
handling
request of
host
Host: Write object address
and value, write bit 1 for rw
and toggle bit 0 in drive
control byte
Idle
OCP
Read/Write
Data
Drive: Toggle Bit 0 in
Transmit Control Byte
Figure 12:
Object Read/Write State Diagram
Init
Initialisation of the object handling
Idle Idle State, waiting for new object handling request
OCP Object Calculation Process, drive calculates object
When the drive detects an object calculation error, bit 1 “ERROR IN OBJECT HANDLING”
of Receive Control Byte is set and the error code is stored in the object value. Following
codes are implemented:
2
=
Object timeout
3
=
Object change only in Disable state
4
=
Object Value > max or < min
5
=
Object write not possible
6
=
Object cannot be changed in this mode
7
=
Object not available
8
=
Object read not possible
9
=
Initialisation processed successful
10
=
Communication not initialised
Back to Contents
11
=
Axis number not available
Functionality Manual
22
SIGMATEK
Edition 08.17
8.6
Real time communication
The real time communication is inactive in the start-up phase. Transmit and receive values
1 to 10 can be mapped via the object channel with the necessary data according to the
selected operation mode.
If only two values are needed (transmit and receive direction), the telegram type 1 is not
necessary; the usage of telegram type 0 is adequate. If more than 2 values are needed, the
host can send telegram type 0 and 1 in alternate mode. The drive handles all values
automatically.
The telegram type, that is transmitted in the Receive Control Byte, is used for transmit and
receive direction.
The telegram types have corresponding objects. Each object defines a single value and
offers a wide range of possibilities of real time values that are transmitted every cycle.
Telegram Type
Telegram type 0 and 2 (host drive)
Double Word
1
Object
handling
Telegram type 0 and 2 (drive host)
Object
handling
Telegram type 1 (host drive)
A-VALRT2
(low byte)
Value 3
A-VALTT2
(low byte)
Value 8
Telegram type 1 (drive host)
Table 3:
Double Word 2
A-VALRT1
(low byte)
Value 1
A-VALTT1
(low byte)
Value 6
A-VALRT2
(2nd byte)
Value 4
A-VALTT2
(2nd byte)
Value 9
Double Word
3
A-VALRT1
(2nd byte)
Value 2
A-VALTT1
(2nd byte)
Value 7
A-VALRT2
(3rd byte)
Value 5
A-VALTT2
(3rd byte)
Value 10
Real time objects
Back to Contents
8.7
Safety value (in preparation)
Normally one of the standard values is used to transfer the actual position. Telegram type
2 has an additional 32 bit variable to transfer safety relevant information to the host to have
independent information about the position.
This additional information is not calculated in the microcontroller system of the drive, but is
generated directly of the hardware by the FPGA, that controls the communication. The
information that is contained in the safety value is not a calculated position, but the real
measured feedback signals. So the host has to calculate the position out of these signals,
knowing the type of feedback device.
The 32 bits have the following structure:
Counter
Counter
Analogue Analogue
High
low
Input
Input
Nibble
Nibble
Sine
Sine
Highest
Middle
Nibble
Nibble
A detailed description will follow.
Analogue
Input
Sine
lowest
Nibble
Analogue
Input
Cosine
Highest
Nibble
Analogue
Input
Cosine
Middle
Nibble
Analogue
Input
Cosine
lowest
Nibble
Back to Contents
Functionality Manual
23
SIGMATEK
Edition 08.17
8.8
Synchronisation
The synchronisation of the drive to the beat of the host is done by using either the Master
SYNC Telegram MST or any other Telegram. The selection which telegram type generates
the synchronisation can be set in the start-up phase. If the MST is used, the MST telegram
has only a start bit and 8 data bits (the Receive Control Byte) of the standard telegram
types. The Transmit/Receive Telegram Type must be “00” and the Axis Address must be
“11”. In this case the end of the MST is the synchronisation point.
When the standard telegram is used, there is no need to send a MST. The corresponding
object is A-STYPE.
The synchronisation point is 10 Clocks after the start bit of the DATA_RX_A line.
In addition to that, there is a possibility to shift the synchronisation point by a delay time
tsync-Delay (A-STIME). It is given in µs. This time can be set by object. The cycle time tscyc (ACTIME) can also be set by object with following values: 250µs, 500µs, 1msec, 2msec and
every msec up to 8msec.
MST
T 0-A
T 0-B
T 0-C
T 1-A
t scyc
t sync-Delay
T 1-B
T 1-C
MST
T 0-A
T 0-B
A-CTIME
62.5µs
A-STIME
Capture Point for actual values and transfer of
set points to the internal controller
Figure 13:
Synchronisation
The synchronisation works with a PLL circuitry. If the beat of the SYNC – telegram is
constant (maximum long term tolerance of the cycle time is also given in the table below),
the capture point has the following maximum jitter:
Cycle Time
Accuracy
250µs
500µs
1msec
2msec
4msec
5msec
6msec
7msec
8msec
+/- 160ns
+/- 200ns
+/- 200ns
+/- 400ns
+/- 800ns
+/- 1000ns
+/- 1200ns
+/- 1400ns
+/- 1600ns
max long term tolerance
+/- 0.1µs
+/- 0.3µs
+/- 0.6µs
+/- 1.2µs
+/- 2.5µs
+/- 3.1µs
+/- 3.7µs
+/- 4.3µs
+/- 5.0µs
The maximum allowed jitter of the synchronisation telegram is +/- 100µs.
As an example, Figure 13 shows a communication of three axes with two different telegram
types each. In this case, the telegram type 0 (T 0-A, T 0-B and T 0-C) are used to
read/write two real time values and the object channel and telegram type 1 later on, is used
to read/write three additional real time values.
It is also possible to use telegram type 0 to read only the actual values, then calculate e.g.
the position controller and then transmit the calculated values with telegram type 1 to the
Back to Contents
drive. This decreases delay time.
Functionality Manual
24
SIGMATEK
Edition 08.17
9.
Holding brake operation
The drive has a circuitry to handle a holding brake per axis. The circuitry is not personnel
safe, but has a high level of functional safety. In combination with e.g. CAN-Interface, the
circuitry is personnel safe with category 1 according to EN954-1 and IEC13849
performance level “c”.
The holding brake is enabled by software with object M-BRAKE.
E n -Br a ke1
St a t e-Br a ke1
St a t e-Br -Su pply
E n -Br a ke-Su pply
H oldin g
Br a ke Axis 1
+24V-BR
H oldin g
Br a ke Axis 2
H oldin g
Br a ke Axis 3
On ly 3-Axis
Dr ive
Figure 7.
Block Diagram of the Holding Brake Circuitry
The 3-axis drive has three holding brake switches and a common brake supply relay. The
drive not only switches the holding brake, it also checks the status of the holding brake and
detects faults of the switch itself.
If M-BRAKE = 1, detected faults are:
•
•
•
•
•
When enabling the first motor of the drive (at this time M-BRAKE of every motor must
have the right value) the relay is checked and switched on. If the behaviour of the relay
contact is not ok (contact if switched off or no contact if switched on) the Bit
BRAKE_ERROR of I-STATUS of every axis is set.
Open load at on-state of the holding brake (minimum current of the holding brake must
be 200mA) sets the Bit BRAKE_ERROR of I-STATUS, the error handling disables the
motor and the holding brake processing stops the motor (see Figure 9)
Over temperature of the brake switch sets the Bit BRAKE_ERROR of I-STATUS, the
error handling disables the motor and the holding brake processing stops the motor
(see Figure 9)
Short circuit detection sets the Bit BRAKE_ERROR of I-STATUS, the error handling
disables the motor and the holding brake processing stops the motor (see Figure 9)
If the brake switch can not switch off (or there is no load when disabled) the Bit
BRAKE_SWITCH_ERROR of I-STATUS is set. This bit can not be cleared.
In this case the drive can not brake this motor, all other axis are ramped down by the
holding brake processing (Figure 9) and then the common brake switch relay is
switched off. So even in this case there is no risk with hanging loads.
If M-BRAKE = 0 (no holding brake in the motor), no holding brake errors are
generated, but if a brake is detected, Bit BRAKE_ERROR of I-STATUS is set and the
Functionality Manual
25
SIGMATEK
Edition 08.17
enable of the drive is not possible. If then M-BRAKE is set to “1”, bit BRAKE_ERROR is
automatically set to “0”, if no other error is detected.
The brake switches are working with negative clamp voltage to speed-up the deenergise time of the holding brake.
E n -Br a ke
t
Br a keVolt a ge
t
~ -48V
Br a keCu r r en t
t
Figure 8:
Switch behaviour of the Brake Switch
The holding brake processing handles the processing of the motor brake automatically.
If the drive is enabled, the power stage is enabled immediately and the holding brake is
switched on. The set point is held to zero for the time period given by M-BREN. The
minimum setting of M-BREN is the turn-on delay time of the holding brake tBRon. This is a
given parameter of the holding brake.
When the drive is disabled, the internal mode is set to speed mode and the speed set point
is set to zero. The motor is ramped down with ramp time G-EMRAMP. If the actual speed
reaches 3% of V-NMAX or the ramp down takes one second the brake is switched off. After
the time period M-BRDIS, the drive is disabled. The minimum setting of M-BRDIS is the
turn-off delay time of the holding brake tBRoff. This is a given parameter of the holding brake.
E n a ble
t
Speed
Set poin t
H ost
t
Speed
Set poin t
in t er n a lly
G-EMRAMP
t
M-BREN
Act u a l
Speed
Max. 1 sec
3% of V-NMAX
t
E n a ble
in t er n a lly
t
M-BRDIS
Br a ke
Sign a l
t
Br a ke
F or ce
t
tBRon
Figure 9:
tBRoff
Holding Brake Processing
Back to Contents
Functionality Manual
26
Edition 08.17
10.
SIGMATEK
Regen Circuitry
If the motor is decelerating the machine, mechanical energy is converted to electrical
energy which is fed back to the drive. This energy charges the DC-link – capacitors. If a
certain threshold is reached (depends on setting of G-VMAINS, see Hardware Manual for
details) the regen circuitry switches on/off a regen resistor, which dissipates the excessive
energy.
The drive has an internal regen resistor (wattage 200W) and the possibility to connect
alternatively an external regen resistor, if the wattage is not adequate.
X1B
4
Ext.
Regen
Resistor
Regen
Fusing
5
+ DC
6
7
Rint
Rtr
Figure 10:
Regen circuitry
If the internal regen resistor is used, a link has to be connected between X1/Pin 6 and 7.
An external resistor has to connected, if the wattage of the internal resistor is not sufficient.
The data of the external resistor is given in the Hardware Manual/Technical Data.
Back to Contents
11.
Error handling
The error handling is adaptable partly dependent on application. Internally, there are four
different set possibilities how mistakes should be treated.
The values are:
G-MASKD – No effect on the result.
G-MASKW – With the incidence, a warning is generated. The drive indicates with the red
LED a 1Hz a flashing code. The transmit control bit “2” is set (Ref. page 18).
Warnings can be also put back automatically again.
G-MASKE2 – The incidence brakes the motor controlled and the drive will be finally
disabled. In case of a feedback-, overspeed- or commutation-error the motor
will be slowed down “sensor less” to avoid a “go through”. The controlled
braking uses the parameter GEMRAMP. The drive indicates with the red
LED a 1Hz a flashing code. The transmit control bit “3” is set (Ref. page 18).
G-MASKE1 – The incidence disables the drive immediately and let the motor slowly run
down. The drive indicates with the red LED a 1Hz a flashing code. The
transmit control bit “4” is set (Ref. page 18).
Functionality Manual
27
Edition 08.17
SIGMATEK
Internal drive errors will be indicated with I-DERROR. (Ref. OBJECT.CHM)
With I-STATUS the actual status of each axis can be checked. Any or all actual errors are
shown and displayed with a decimal value.
For example: I-STATUS 33554945
Solution 1:
You can recalculate it into a binary value -> 10000000000000001000000001
Solution 2:
33554945 – 33554432 – 512 – 1 = 33554945 – 225 – 29 - 20
Explanation:
Bit 20 – One Phase
Bit 29 – Motor over temperature
Bit 225 – I2T Error
The error “One Phase” is set by default to G-MASKE2. This means, the motor is braked
controlled and the drive disabled becomes.
The table below shows permissible conditions. To start the motor under testing conditions,
the default can be changed to G-MASKD. With the command G-MASKD 1 (command +
bit) the error is still there, but the effect is different.
Functionality Manual
28
Edition 08.17
12.
SIGMATEK
Parameter up/download
The drive has no internal non-volatile memory (EEPROM or non-volatile RAM) for
parameter storage when the 24V auxiliary supply is switched-off, except using CAN or
Ethercat interface board. In this case the parameters are stored on the interface board.
So every switch-on of the 24V auxiliary supply requires the download of the whole
parameters to set them to the application settings. Otherwise there is a risk of damaging
the machine.
The parameter area is separated in two areas, the motor parameter (parameter number
“P1” to “P29”) and the drive parameter area (parameter number “P30” to value of parameter
“P0”) (description see “Object.HTML”).
The motor parameter area is automatically set to the motor data stored in the motor (for
Multiturn resolver, EnDAT- and Hiperface-Encoder) in the start-up phase of the drive. They
can be changed later if necessary.
Download all parameters for all axes before enabling one of the drives. This ensures the
right error handling of the holding brake function.
12.1 Parameter upload
Parameter upload must be executed after start-up of the machine. This parameter list must
be stored in the host controller.
1. Read parameter “P0” (P-COUNT) to get the maximum index of the parameter area
2. Start with parameter “P1” (M-NAME1) to read the value and store it in the host
controller. Increment the parameter number until the maximum index (see above) is
reached. When the parameter read gives an error message “7 = Object not available”
(see page 22), don’t store this parameter in your list. Parameter download must not
overwrite this parameter number while parameter download to ensure firmware
compatibility of the parameter settings
12.2 Parameter download
Parameter download must be executed after every switch-on of the 24V auxiliary supply.
The host controller downloads the parameter list, saved by parameter upload.
1. Read parameter “P12” (M-TYPE) to get the feedback type of the drive.
2. Depending on the value of “P12” (M-TYPE) (see File “Object.HTML”) write motor
parameter P1 to P29 (if e.g. a resolver without parameter storage is connected)
3. Write the rest of the parameters to the drive.
Back to Contents
Functionality Manual
29
Edition 08.17
SIGMATEK
12.3 Layout of the serial Parameter communication
The serial or USB communication for drive setup via the interface boards CAN or Ethercat has a
special ASCII format.
The communication allows writing and reading object numbers 0 to 255 (00 to FF) of the three
axes. The values are sent in 32 – Bit format, but in string changed hex – format.
A checksum is calculated to check the data.
To send the command line, add carriage return, line feed
\r
\n
carriage return (0x0D)
line feed (0x0A)
If an error is send from the drive, the corresponding error code is described Page 22, Object
Handling
Calculation of the checksum
The checksum is calculated as follows:
Convert all characters in the equivalent hex values and add all to one sum, except the checksum.
Calculate modulo 256 of this value (now the result is between 0 and 255). Transmit or check the
two characters in character format in addition to the data.
Example:
Drive sends string “X09!0446”
Checksum:
“X” =
“0” =
“9” =
“!” =
“0” =
“4” =
Sum
0x58
0x30
0x39
0x21
0x30
0x34
0x146
Modulo 256
0x46 = checksum
Back to Contents
Functionality Manual
30
Edition 08.17
SIGMATEK
The layout of the communication (master to drive):
Read data from drive:
Master reads the parameter M-L (P09)
“X09C1”
“C1“ calculated checksum
“09“ Parameter number M-L (9d) hex value sent in characters
“X“ is axis “0“, “Y” is axis “1”, “Z” is axis “2”
Possible answers:
Read successful
“X09=000003E89E”
“9E“ calculated checksum
“000003E8“ parameter value in hex format (1000d)
“09“ Parameter number M-L (9d) hex value sent in characters
“X“ is axis “0“, “Y” is axis “1”, “Z” is axis “2”
Read error
“X09!084A”
“4A“ calculated checksum
“08“ error code in hex format (Object read not possible)
“09“ Parameter number M-L (9d) hex value sent in characters
“X“ is axis “0“, “Y” is axis “1”, “Z” is axis “2”
Back to Contents
Functionality Manual
31
Edition 08.17
SIGMATEK
Write data to drive:
Master writes the parameter M-L (P09)
“X09=000003E89E”
“9E“ calculated checksum
“000003E8“ value to be written to parameter in hex format (1000d)
“09“ Parameter number M-L (9d) hex value sent in characters
“X“ is axis “0“, “Y” is axis “1”, “Z” is axis “2”
Possible answers
Writing successful
“X09C1”
“C1“ calculated checksum
“09“ Parameter number M-L (9d) hex value sent in characters
“X“ is axis “0“, “Y” is axis “1”, “Z” is axis “2”
Write error
“X09!0446”
“46“ calculated checksum
“04“ error code in hex format (Object Value > max or < min)
“09“ Parameter number M-L (9d) hex value sent in characters
“X“ is axis “0“, “Y” is axis “1”, “Z” is axis “2”
Back to Contents
Functionality Manual
32
Edition 08.17
13.
SIGMATEK
Software download
13.1 Software download via RS232 or USB
The Bootloader of the Interface Board provides an easy way to update the firmware via
RS232 or USB.
Below in table 1 are the available commands for changing the software sections listed. All
commands are executeable as usual parameter via CAN, EtherCAT, RS232 or USB.
Command
ASCII command
Mnemonic
/ parameter
Request
Description
K-START 1
XE0=000000018B
Acknowledge
ACK
NACK
XE0CD
XE0!0351
K-START 2
XE0=000000028C
XE0CD
XE0!0351
K-START 3
XE0=000000038D
XE0CD
XE0!0351
Reset the Controller Board
and start the Firmware
Reset the Controller Board
and start the Bootloader
Reset the UNI Interface Board
and start the UNI Bootloader
Table 1: Available commands in the firmware section of the Controller Board
In table 2 are the available commands of the Bootloader section described. It’s self-evident
that in this section only RS232 or USB can be used.
Command
ASCII command
Mnemonic
/ parameter
request
Description
K-START 1
XE0=000000018B
Acknowledge
ACK
NACK
XE0CD
XE0!0351
K-START 2
XE0=000000028C
XE0CD
XE0!0351
K-START 3
XE0=000000038D
XE0CD
XE0!0351
VER
VER
!!!!
ERASE
BLOCK1
LOAD
ERASE BLOCK1
e.g.
V008 or
B200
OK
LOAD
DATA
!!!!
SEND
Hexfile
XE0CD
Lines of Hexfile e.g.
:0200000040002F8
XE0CD
.
!1
XE0=00
000003
8D
!1
Reset the Controller Board or the
UNI Interface Board and start the
FIRMWARE, if the consistency of
the firmware is given.
Reset the Controller Board
and start the Bootloader (not
available in UNI Bootloader)
Reset the UNI Interface Board
and start the UNI Bootloader
Get the version of the Bootloader
UNI Interface: e.g. B008 Controller
Board: e.g. V008
Erases flash block for new firmware
Delay of Answer: max. 10 sec.
Prepare for load a new firmware, if
no “ERASE BLOCK1” was done
before. (flash block have to be
blank)
Writes the data into the Flash. The
ACK of the last line is “END” not “.”
Where am I? UNI Bootloader ->
XE0=000000038D
Bootloader of the Controller Board > XE0=000000028C
Table 2: Available commands in the Bootloader section of the UNI Interface Board
and the Bootloader section of the Controller Board
Functionality Manual
33
SIGMATEK
Edition 08.17
13.2 Software download via SSI
First reset the Controller Board and start the Bootloader with K-START 2.
The download of strings is split in 4 characters and is send via the object
K-START (object 224) to the drive.
The communication in the Bootloader is limited to axis 1. Communication to axis 2 and 3 is
ignored.
Used short cuts:
\r
\n
\0
carriage return (0x0D)
line feed (0x0A)
ASCII “0” (0x00)
Send strings:
Split the string in 4 character blocks, add \r\n and add as much \0 to enlarge the last block
to 4 characters.
Then send them by object K-START “xxxx” to axis 1.
The answer is send after \r\n, otherwise the drive sends back “\0!\0\0”.
Example: “ERASE BLOCK1\r\n”
Step
1
r/w
w
2
w
3
w
4
w
Send object
K-START “ERAS”
(0x53415245)
K-START “E BL”
(0x4C422045)
K-START “OCK1”
(0x314B434F)
K-START “\r\n\0\0”
(0x00000A0D)
Reply ACK
“\0!\0\0”
(0x00002100)
“\0!\0\0”
(0x00002100)
“\0!\0\0”
(0x00002100)
After max. 10
seconds “OK\0\0”
(0x00004B4F)
Reply NACK
“!!!!”
(0x21212121)
“!!!!”
(0x21212121)
“!!!!”
(0x21212121)
“????”
(0x3F3F3F3F)
Send line of hex data file:
Split the line in 4 character blocks, add \r\n and add as much \0 to enlarge the last block to
4 characters.
Then send them by object K-START “xxxx” to axis 1.
Example: “:020000040002F8”
Step
1
r/w
w
2
w
3
w
4
w
5
w
Functionality Manual
Send object
K-START “:020”
(0x3032303A)
K-START “0000”
(0x30303030)
K-START “4000”
(0x30303034)
K-START “2F8\r”
(0x0D384632)
K-START “\n\0\0\0”
(0x0000000A)
Reply ACK
“\0!\0\0”
(0x00002100)
“\0!\0\0”
(0x00002100)
“\0!\0\0”
(0x00002100)
“\0!\0\0”
(0x00002100)
“\0.\0\0”
(0x00002E00)
Reply NACK
“!!!!”
(0x21212121)
“!!!!”
(0x21212121)
“!!!!”
(0x21212121)
“!!!!”
(0x21212121)
“????”
(0x3F3F3F3F)
34
SIGMATEK
Edition 08.17
Initialise SSI:
The SSI Initialisation chain is as follows:
-
Wait 1 second after K-START
-
In case of other replies, try initialisation again after 7 seconds
Send the Initialise command and wait for the reply, ERROR 9, Init done or
ERROR 11, axis not available (see 8.5 ObjectHandling)
The full chain for software download is:
Step
1
r/w
w
Send object
K-START 2
2
3
r
Initialise SSI
K-START
4
w
“VER\r\n”
5
w
“ERASE BLOCK1\r\n”
6
w
“LOAD\r\n”
7
w
1. to (n-1). line of the hex
file
8
w
Last line of the hex file
9
w
K-START 1
10
11
r
Initialise SSI
K-START
Functionality Manual
Reply ACK
No error
(Goto step 2)
(Goto step 3)
2
(Goto step 4)
Reply NACK
Error 3 (One of the
axes enabled?)
- 1 (Go back to step
1)
- Error 10, SSI not
initialised
(Goto step 3)
“!!!!”(0x21212121)
(Stop chain)
After 10 seconds
“!1\0\0”
(0x00003121)
(Stop chain)
“!!!!”(0x21212121)
(Stop chain)
“Vxxx”
(Goto step 5)
After 10 seconds
“OK\0\0”
(0x00004B4F)
(Goto step 6)
“DATA”
(0x41544144)
(Goto step 7)
“\0.\0\0”
- “!1\0\0”
(0x00002E00)
(0x00003121)
(Goto step 8 after n-1
CRC of the line not
lines)
ok
- “!2\0\0”
(0x00003221)
“LOAD” was
missing
(Stop chain)
After max. 2 seconds “!CHK”
“END\0”
(0x4B484321)
(0x00444E45)
CRC of the complete
(Goto step 9)
hex file not ok
(Stop chain)
No error
(Goto step 10)
(Goto step 11)
1 Firmware started
Download ready
2 Bootloader
Download failed
CRC not ok
(Stop chain)
-
35
Edition 08.17
14.
SIGMATEK
Scope function
The internal scope function has three channels with maximum 512 data values. The data
acquisition time can be set from 62.5µs to 16sec. So various time scales can be defined.
Here is the procedure to start the scope and to upload the data:
a)
Prepare the scope (S-CH)
The scope channels and the trigger channel are set by the object S-CH. This object
is axis dependant, means the channels can be set individually to different axes.
If the drive only has one axis (S120), send the S-CH object only to this axis. Sending
the object to unknown axis replies an error message.
The lowest byte is the object number of channel A.
The second byte is the object number of channel B.
The third byte is the object number of channel C
The highest byte is the object number of the trigger channel.
Only object numbers under group I-ActualValues can be scoped.
To disable a scope channel, send a “0” in the equivalent byte to all three axes.
Send S-CH to all axes to make sure, that the contents is right for all axes
Example:
Set the scope to:
channel A: disabled
channel B to axis3: I-POS
channel C to axis2: I-PE
trigger channel to axis1: I-N
Send:
Axis 1: S-CH 0xC5000000
Axis 2: S-CH 0x00B00000
Axis 3: S-CH 0x0000AF00
b)
(P0, 0x0)
(P176, 0xB0)
(P175, 0xAF)
(P197, 0xC5)
= 3305111552d
= 11534336d
= 44800d
Prepare the scope (S-TRIGB)
The main settings of the scope can be made by S-TRIGB. The object sets the
trigger behaviour, the prescaler and the post trigger. This object can be send to any
axis.
1. BYTE: trigger behaviour of the scope
Bit0 = 0 ... falling edge (trigger if the trigger value (set by S-CH) falls below the
trigger level S-TRIGL)
Bit0 = 1 ... rising edge (trigger if the trigger value (set by S-CH) exceeds the trigger
level S-TRIGL)
Bit1 = 0 ... trigger by trigger level S-TRIGL and trigger edge (set by S-TRIGB)
Bit1 = 1 ... trigger immediately after setting S-WORK to 1
Functionality Manual
36
Edition 08.17
SIGMATEK
2. BYTE: Prescaler
The scope values are stored in a ring buffer with a size of 512 values. The prescaler
is used to select the time distance between two values.
0 ...
1 ...
2 ...
3 ...
4 ...
5 ...
6 ...
7 ...
8 ...
62,5us sample time
125us sample time
250us sample time
500us sample time
1msec sample time
2msec sample time
4msec sample time
8msec sample time
16msec sample time
3.Byte + 4.Byte(MSByte): post trigger
The post trigger sets the number of values which are sampled after the trigger point.
Range: 0..511
Example:
Set the scope to:
trigger on rising edge
sample time 250µs
post trigger on 256 (50%)
Send:
Axis 1: S-TRIGB 0x01000201
c)
= 16777729d
Prepare the scope (S-TRIGL)
The trigger level is set by S-TRIGL in the scaling of the object.
d)
Start the scope (S-WORK)
The scope can be started and stopped by S-WORK . If it is set to “1”, the scope is
started; a “0” stops the scope at any time.
e)
Status of the scope (S-STAT)
S-STAT can be read at any time to get the status of the scope.
0 = invalid data
1 = data can be read
2 = recording started (not yet triggered)
3 = recording is active
4 = invalid data
f)
Read the scope data (S-INDEX, S-GET1, S-GET2, S-GET3)
The stored data can be read by the host by S-GET1, S-GET2, S-GET3, when
S-STAT = “1”.
First set S-INDEX = “0”. This sets the data index to value “0”.
Functionality Manual
37
SIGMATEK
Edition 08.17
Now the scope data for index = 0 can be read by S-GET1 for scope channel A, by
S-GET2 for scope channel B, by S-GET3 for scope channel C. The read of S-GET3
automatically increments the data index by “1”. So the data can be read by reading
S-GET1, S-GET2, S-GET3, S-GET1, S-GET2, S-GET3 and so on.
Important is, that the data read by S-GETx must be read from the same axis as the
channel is selected to.
The example from above:
channel A: disabled
channel B to axis3: I-POS
channel C to axis2: I-PE
S-GET1
S-GET2
S-GET3
not necessary
from axis 3
from axis 2
S-GET3 has to be send anyway to increment the index, even if the channel was
disabled.
If only a preview should be displayed (lower resolution than 512 values) set the data
index by S-INDEX to the next value, before reading the next data. Later on, the
same data can be read with the maximum resolution, if necessary.
g)
Display the data
The number of points of the scope is 512 values. So the maximum time, that can be
displayed with e.g. prescaler of 1 (62.5µs sample time) is 32msec. This is unusual
for displaying it with a real digital scope. Normally the scope is set to e.g. 2msec/div
with 10 divisions. This means that the whole screen displays only 20msec. This can
be emulated by reading only 320 indexes, which is equal to 20msec. In this case,
the trigger point must be set to the equivalent value (e.g. 160 for 50% trigger point
on the display).
Functionality Manual
38
Edition 08.17
15.
SIGMATEK
Stepper Motor Operation
The drive can also operate two– and three– phase stepper motors.
The internal calculation is different to the standard behaviour of a stepper motor drive. The
drive works still in field oriented mode and the resolution for a full revolution is 32 Bit. This
means, that a motor has a theoretical internal “micro step resolution” of 2^32 steps. The
real executed is much more less, because of the resolution of the current controller and the
cogging of the motor, but it is much better, than the resolution of any stepper motor drive.
The connection diagram for three-phase stepper motors is the same as for standard PMmotors.
The two-phase stepper motors have to be connected different. The connections u and w at
the motor connector are the two 90° outputs of the power stage. The connection v is neutral
connection.
One winding has to be connected between u and v and the other between w and v.
Following settings have to be made:
M-TYPE = 0x505
M-TYPE = 0x405
for 2 – phase stepper motors
for 3 – phase stepper motors
M-POL = half of the full steps of the motor (100 for a motor with 200 full steps per
rev.)
G-VRAMP has to be set to the maximum possible acceleration of the stepper motor.
C-IPEAK, C-IPEAKN, C-CONT has to be set to the allowed current of the stepper
motor
A-STRED is the object for the stall current reduction in % of C-IPEAK (default 75%)
A-STDT is the object for the time delay of the stall current reduction in msec (default
100msec)
G-MODE can be set to 0, 2, 3, -2 and -3. The motor cannot work in current mode
After the setting of the parameters above, the feedback and the motor temperature error
has to be reset by K-CLRF 1. The reason is that the drive is set to resolver feedback in the
start-up phase. This leads to the two errors because the stepper motor has no resolver and
no motor temperature sensor.
Functionality Manual
39
SIGMATEK
Edition 08.17
16.
Start-up of Linear Motors
This is a guideline to start-up linear motors.
First a general information.
The linear motor is an open frame motor that needs completely different environment,
compared to a standard rotary motor. The machine has to be very stiff. Otherwise the
machine gets problems with mechanical resonances and this leads also to unstable
operation of the motor.
Possible feedback devices for linear motors
Resolution of the
encoder
Resolution of the
interpolated position
(about 12 Bit of a sine
period)
Absolute Position
Phasing at the first
enable of the axis
Setting for the motor
type M-TYPE
Performance
Maximum speed
High resolution
linear encoder
20 µm for one sine
period
About 5 nm
Low resolution
linear encoder
1 mm for one sine
period
About 0.5 µm
Absolute linear
encoder
e.g. Heidenhain
EnDAT encoder
High, depending on
the used type
No
Yes
No
Yes
Yes
No
4
4
2
Very stiff,
depending on the
mechanical
situation
5 m/s (limited by the
max input frequency
of the feedback
input, 250 kHz)
Standard stiffness
Very stiff,
depending on the
mechanical
situation
Depends on the
resolution of the
encoder
30 m/s (limited by
the maximum
output frequency of
the drive at motor
pole pitch of 32 mm,
1 kHz)
Following parameters can be calculated or set:
•
•
•
•
•
Set M-IPEAK and M-INULL to the max values of the motor
Set M-R to the motor winding resistance ph-ph
Set M-L to the motor winding inductance ph-ph
Set M-POL to “2”
Set M-RPULSE to motor pole pitch length (lp) divided by the sine period length
of the linear encoder (le).
M-RPULSE = lp / le
e.g. lp = 32 mm and le = 20 µm, M-RPULSE = 1600
This results in an internal resolution of I-FPOS of 32 Bit per motor pole pitch.
If you use an EnDAT linear encoder, this calculation is done internally.
Functionality Manual
40
Edition 08.17
•
SIGMATEK
Calculate M-NMAX by the maximum allowed linear speed in [m/sec] (vmax) and
motor pole pitch length (lp) in [m].
M-NMAX = vmax * 60 / lp [rpm]
e.g. if lp = 32 mm and vmax is 3 m/sec, M-NMAX = 5625 rpm
•
•
•
•
•
If the calculation of M-NMAX results in values > 12000 rpm, set M-POL to “4”
and calculate the with double pole pitch length, e.g. with 64 mm
Set M-BRAKE to “1”, if the linear motor is moving vertically and has a holding
brake. The holding brake has to be controlled by the brake output of the servo
drive. In this case, the phasing routine described later is done under unreleased
holding brake condition.
After that the holding brake is released and the motor is moving the vertical load.
Set M-TYPE = 4
Calculate C-KPQ (see Current Controller)
Set C-IPEAK and CIPEAKN to half of M-INULL
Set C-ICONT to M-INULL
After that, make the next steps to enable the automatic phasing routine. You don’t need
this, if you use an EnDAT encoder.
•
•
•
•
•
•
•
•
•
•
Choose I-FPOS under actual values and move the linear motor by hand. If IFPOS is increasing in the direction you need, all is fine. Otherwise you have to
change two lines of the feedback. Please change sine+ and sine- and test it
again. It should be fine then.
Set G-MODE = -4 and set K-CI to half of M-INULL. Switch on the mains supply
voltage and enable the drive. Set K-CINC = 1 and lock at the motor. If it is
moving slowly in the direction you defined as positive, the motor phases are
correct. Otherwise you can change two motor phases like U and V or set from MPOL = x to M-POL = -x
Disable the drive
Set A-ICOM to half of M-INULL
Set G-MODE = -2, K-STEP = 500 and K-SPEED to 1% of M-NMAX
Set V-NMAX to 10% of M-NMAX
Make sure, that there is enough way for the motor in both directions
Enable the drive. This should start the phasing routine which takes 500 msec. In
this time, the motor is excited by a sine current. After that, the motor should
make a small move in both directions controlled by the service function.
To make sure, that the drive gets the right phasing every time, check the phasing
signal. Select the phasing signal with A-INT1 6 and read the phasing signal with
I-INT1. If I-INT1 is smaller than 100 or higher than 10000 the feedback error is
set. If the signal is to small/high increase/decrease A-ICOM.
After that, set C-IPEAK and C-IPEAKN to the value that the application needs
and optimise the speed and position controller.
Functionality Manual
41