c-ipeak - DynamicDrives
Transcription
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