SlideShare a Scribd company logo
1 of 10
Download to read offline
Chapter 8 LirlearAnd Circular Interpolation
This chapter describes the linear and circular interpolation features of the ACR1000 motion control system.
Linear and circul:ar interpolation is possible for up to is-axes. This feature is included in versions 2.7.x and
4.x only. In addition to the correct software, the ACR1000 card needs a cable to go between all the
interpolating cards. This cable provides the necessary synchronization signals that make sure all the cards
are moving as they are supposed to.
Linear Interpolation
Linear interpolatiion can be mixed with independent axis commands as desired by the programmer. To
make an axis do interpolation, the axis must be told two things: 1) the destination and 2) the longest move
(in pulses) any axis will move during the coordinated move.
In a muHiaxis system, the cards may either run a stored program or execute one move at a time. First, let
us look at an eXclmple on a 2-axis system. When the program is run, it is desired that the two axes make a
22.5 degree move with x-axis ending at 10 inches and y-axis ending at 2.5 inches. The velocity is to be
100 inches per minute. Assume that there are 10000 pulses in an inch.
X Axis Program
10 ACC 0
20 DEC 0
30 STP 0
40 VEL 10000
SO P28=100000
60 MOV 100000
Y Axis Program
10 ACC 0
20 DEC 0
30 STP 0
40 VEL 10000
SO P28=100000
60 MOV 25000
In the above example, the Y-axis will move at 1/4th the speed of X-axis. Note that this method results in a
32-bit precision velocity range to both cards.
P28 holds the number of pulses in the longest move to be made by any axis. This parameter is used to
control how much the slower cards (the ones with less distance to travel) will scale down their velocities. If
P28 is set to zero, then all moves will take place in a non-interpolation manner-thus this method yields
the choice of either interpolation or non-interpolation movements.
Circular Interpolation
This section could be called sinusoidal motion since that would be a true representation of the motion of
each axis. The ACR1000 card has built-in provisions for allowing an axis to generate sinusoidal motion
starting at any p<J'int and traveling any desired number of pulses. On an X-V table, if one axis is
commanded to perfonn a sine and another a cosine, the result is a perfect circle. Similarly, if the x-axis is
commanded to perfonn a sinusoidal move and the y-axiS is given a linear move, the resuH will be a
perfect sine waVE~.
The command to do sinusoidal or circular motion is a little more detailed than the linear case. The axis still
requires knowing how many pulses to go, but also needs to know the radius, direction of travel (clockwise
or counter clockwise), precisely where the start point is in relation to the center of the arc and the absolute
position at the end of the arc or circle. To use the sine-wave terminology, we need the following:
1. Peak Amplitude
2. Direction
3_.start Amplitude
4. End Position
This infonnation is required for both the sine and the cosine wave axes. The reason the start amplitude of
the sine as well as cosine is needed is that, in general, each sine or cosine amplitude repeats twice for
each 21t period-but each pair of amplitudes happens only once. Thus to completely define the start point,
both the amplitudes must be given. In machine tool language, these amplitudes are known as I and J.
Chapter 8, Unear and Circular Interpolation 53
11
QODegees 90Degees Start Point
I=Xstart - Xcenter=O.7071
J=Ysfart - Ycenter:O.7071
Rl.OO
Sweep Angle-360 - .45-315 Degr'
315 Degrees-21r (315/36O)=5.~
__~____+-______~________~_o_~__ees___1M__~~ees__r-______~~____~-r~O~~~em__
360 Degrees 360 Oeaees
27CIOegees 270 Degees
CIRCLE COMMAND FORMAT
The format of the CIRCLE command is:
CIRCLE rotdir, radius, /, J, distance
Parameters may be USE~ for any circle command arguments. The rotdir argument indicates the direction
of rotation. Use +1 for GW, -1 for CCW. The radius is the radius (or amplitude of the sine wave) of the
circle in pulses. The distance parameter is the circumferential distance from the start point to the end
point If the circle is a 360 degree arc then the distance in pulses is 2x*radius(units)*pulseslunit. A Simple
way to calculate the distance is to determine the sweep angle between the start point and the end point in
radians. Then multiply by the radius expressed in pulses. To convert degrees to radians multiply by 1t and
divide by 180 (21t1360). I & J indicate where on the circumference of the circJe or arc the current position of
the axis represents, relc,tive to the center of the circJe (0,0). To generate elliptical motion, use different
values for the primary alnd secondary radii. (See section on elliptical interpolation for more details.) If
(Xstart,Ystart) is the start coordinate of the circle/arc, then the following can be used.
X axis
1= (Xstart-Xcent1er)
J= (Ystart-Ycenter)
-or-
t= Radius·SIN(AJlgle)
J= Radius·COS(Angle)
Yaxis
1= (Ystart-Ycenter)
J= -(Xstart-Xcenter)
1= Radius·COS(Angle)
J =-Radius·SIN(Angle)
Once the I,J values for the X-axis are calculated, the Y-axis 1& J are related like this: YI = XJ; YJ = -Xl.
In addition to the comm;and arguments, the following parameters must be loaded with correct values for
each CIRCLE move:
P28:
P29:
Maximum mOVE~ distance of all axes moving together. This value must be the same for all axes.
Position the axis will be at when the move is completed. This number, unlike I & J is absolute and
referenced to system zero. To determine this value, use the following.
where
X-axis: P29= start position + (rotdir * (lend - Istart»
Y-axis: P29= start poSition + (rotdir * (Jend - Jstart»
Istart = radius*COS(StartAngIe), Jstart = radius*SIN(StartAngle)
lend = radius*COS(EndAngle), Jend = radius*SIN(EndAngle)
All poSitions are in pulses.
ACR1000 Users Guide 54
11
Circular Interpo~ation Example
As an example, we will see how to generate a 360 degree SINE wave starting at 0 degrees and ending at
360 degrees. The amplitude (radius) is 1 inch (10000 pulses). Note the value that I and J can take is such
that 0 ~ I~ R. and 0.:£ 1.:£ R. where R is the radius. Assume 1 inch=10000 pulses.
Initially the axis is sitting at O. The radius or amplitude is 10000. At 0 degrees 1= 10000 and J = o. Since
we wish to go from 0 degrees to 360 degrees. the direction is CW (+1).
rotdiris +1
radius is 10000
lis 10000
JisO
distance is 62832 (this is 2x*10000)
Plugging in the values. the final command is:
P28=0
P29=0
CIRCLE +1,10000,10000,0,62832
Note that prior to the CIRCLE command, P28 and P29 must be set. P28 is loaded up with the maximum
number of pulses any axis is moving. In this case since only one axis is moving P28 should be set to O.
P29 must be loaded with the end point of the axis. In this example, since the axis was at 0, it will end up at
oafter going a complete 360 degrees.
In an x-y table application. if two axis were required to do the complete circle, the following programs
would be sufficient.
X-AXIS PROGRAM
10 P28=62832
20 P29=0
Y-AXIS PROGRAM
10 P28=62832
20 P29=0
30 CIRCLE 1,10000,10000,0,62832 30 CIRCLE 1,10000,0,-10000,62832
2-Axis Example
As a further illustration, the programming for a 2-axis path will be illustrated.
-
r i4.00
3..4142
I
I
-j~
Starting at 0,0, we: have
a line ending at (0,2).
R2.OO
r2m
·1:
~-- 3..4142 ----~..I
14------ A.82&C ----~
14----------6.8284 ------~
XV-Contour Example
a clockwise AHC with radius 2 inche~ center at (2.2), starting at 1800
and ending at 45°.
an ARC of radius 2 inches. center at (4.8284,2) start angle of 1350
and end angle of 0 degrees.
a line to (2,0).
a line to (0,0).
Chapter 8, Unear and Circular Interpolation 55
11
The ARCS require the 1following math:
Assuming 1-=10000 pulses, for the first ARC:
X-AXISi
rotdir= +1
radius :: 20000
1=-20000
J=O
distance = 2Jt*(1351360)*20000 =
47124
P28 = 47124
P29 = 34142
For the second ARC
X-AXIS.
rotdir= +1
radius :: 20000
1=-14'142
J = 14142
distance = 21t*(1351360)*20000 =
47124
P28 = 47124
P29= 68284
Y-AXIS
rotdir= +1
radius =20000
1=0
J =20000
cflSlance = 2x
*(1351360)*20000 = 47124
P28 47124
P29 = 34142
Y-AXIS
rotal/" = +1
radius = 20000
1=14142
J = 14142
distance = 21t*(135/360)*20oo0 =
47124
P28 = 47124
P29 = 20000.
The finished program will look as follows. Note that this program is shown without line numbers. If the axes
are commanded in the immediate mode, line numbers are not needed. If the axes are run in the program
mode, line numbers must be included. Blank lines are added for readability only.
X-AXIS
VEL 10000
ACCO
DECO
STPO
P28 = 20000
MOVO
P28=47124
P29=34142
CIRCLE 1,20000,-20000,0,47124
P28=47124
P29=68284
CIRCLE 1,20000,-14142,14142,47124
P28=20000
MOV6~284_
P28=68284
MOVO
Y-AXIS
VEL 10000
ACCO
DECO
STPO
P28 = 20000
MOV 20000
P28=47124
P29=34142
CIRCLE 1,20000,0,20000,47124
P28=47124
P29=20000
CIRCLE 1,20000,14142,14142,47124
P28=20000
MOVO
P28=68284
MOVO
Note that in some cases, the axis is being commanded to move to zero when it is already at zero. This is
necessary to keep the moves synchronized; all axes have to be programmed to move even if only one is
moving. If the user chooses not to do this, then P28 should be set to 0 on all axes and they will not move
in a interpolated mannE~r.
ACR1000 Users Guide 56
11
Elliptical Interpolation
Elliptical interpolation is very similar to circular interpolation in fonn. For drcular interpolation, both the
axes cards are creating the same amplitude (radius) profiles. For an Ellipse, each axis runs with a different
amplitude. With elliptical interpolation the following diagram applies:
90 Degrees
180 ~~ X-AxIs Radius 0 Degees
--~------------------4------------------r-------
:::v
o
0.
Cut
270 Degrees
Enipse Example
Ag.8.3
ELLIPSE FORMAT
360 Degees
As an example, we shall see how to generate an ellipse starting at adegrees and going 360 degrees.
Since the major axis radius is 2", this is 20000 pulses in a 10000 pulses per inch system. The minor axis is
1" (10000 pulses). Each axis will be programmed as if it were doing a circle. The X-axis will be
programmed as if it were doing a 20000 pulse radius and moving a complete 360 degrees. The Y-axis will
be programmed as if it were doing a 10000 pulse circle and moving a complete 360 degrees. The
parameter P28, which detennines the feed rate along with the VEL command, has to be set such that it is
the maximum of the distance calculation of the two axis. Assuming both axes start at 0:
X-AXIS PROGRAM
10 P28=125664
20 P29=0
30 CIRCLE +,20000,20000,0,125664
Y-AXIS PROGRAM
10 P28=125664
20 P29=0
30 CIRCLE +,10000,0,-10000,62832
Note that I and .J must be calculated individually for each axis, based on the radius of each axis. Also note
that, as with circles, the order of I & J is reversed for the Y axis, with J negated.
Binary Method e)f Specifying Interpolated Moves
In v2.7.x series software, there are provisions to allow the ACR1 000 card to accept data·at high speed.
This is needed in applications that have a DNC (Dired Numerical Control) link. If the point data in a 3-axis
system is generated by a CAD/CAM system, the points may be spaced very dose together and come very
quickly. With thiis method of specifying moves, the ACR1000 is able to keep up with the shortest distance
between moves and very high velocities. This mode is only available in the PC BUSS (ISA bus) mode.
Chapter 8, Unear and Circular Interpolation 57
11
Fast Move Block Format - ASCII
The command must have following fonnat.
ctrf-O wwww
xxxxxxx
yyyyyyy
wwww is the VEL follo,wed by a carriage return. If the velocity has been set and is not changing it can be
omitted and just a carriage return is needed. KXXXXXX is the Master Move Distance. (Nonnally P28.) This is
the maximum number of pulses that any axis will move. Again this number is tenninated by a carriage
return. yyyyyyy is the target position of the axis that is being sent this command. This is also tenninated by
a carriage return.
As soon as the ACR1000 board sees the ctrf-O it disables the echo. After the entire command is received.
the previous echo status is restored. Also. all these parameters can either be specified in decimal or
hexadecimal fonnat. Using the hexadecimal fonnat will speed up throughput considerably.
Fast Move Block Fonnat - Binary
ONC applications that require high data throughput with short length lines. arcs and circles should see a
considerable improvement in performance using this interface. This new interface is only available for PC
BUSS (lSA bus) application of the ACR-1 000.
For Lines & Circles
BYTE 0: #4 (ctr1-D)
BYTE 1: MOVE TYPE
Bit Number
7
6
5
4
3-0
Meaning
O=ASCII, 1=RAW
O=L1N, 1=CIRC
O=ABS, 1=INC
0=16 Bit Velocity, 1=24 Bit Velocity.
Reserved, set to 0000
NOTE: 24 Bit Velocities apply to v 4.x Only
1. 16 bit velocities (Byte 1:4 is 0)
Byte Meaning
2-3 V4~locity (Unsigned bit integer, LS byte 1st)
4-7 Master Move (P28-Unsigned 32 bit integer, LS byte 1st)
8-11 Move Distance (Signed 32 bit integer, LS byte 1st) For circles, this is a positive number if arc
is "cW' and negative if arc is "ccW'.
The following apply only to arc/circle moves
12-15 RADIUS (Unsigned 32 bit integer, LS byte 1st)
16-19 IVECTOR (Signed 32 bit integer, LS byte 1st)
20-23 JVECTOR (Signed 32 bit integer, LS byte 1st)
24-27 ENDPOINT (P29-Signed 32 bit integer, lS byte 1st)
2. 24 bit velocities (Byte 1:4 is 1. v4.x only)
Byte M4eaning
2-4 VE~locity (Unsignea24 bit integer, lS byte 1st)
5-8 M.;!ster Move (P28-Unsigned 32 bit integer, LS byte 1st)
9-12 Melve Distance (Signed 32 bit integer, LS byte 1st). For circles, this is a positive number if
an::: is "cW' and negative if arc is "CCYr.
13-16
17-20
21-24
25-28
ACR1000 User's Guide
.The following byte assignments only pertain to arcs.
RJ~IUS (Unsigned 32 bit integer, LS byte 1st)
IVECTOR (Signed 32 bit integer, LS byte 1st)
JVECTOR (Signed 32 bit integer, lS byte 1st)
ENDPOINT (P29-Signed 32 bit integer, LS byte 1st)
58
11
Move Counter
After interruptin~J a series of moves, it is now possible to determine which move in the series was last
executed. A 32 bit -move counter- located at addresses 401 OH-402H has been added for this purpose.
Prior to initially starting a series of moves, the counter should be zeroed by commanding POKE
4010=0,0,0,0. Of course this counter may also be preset by POKEing in a non-zero value, but if this is
done, note that the values must be in hexadecimal format. As each move command begins motion, the
counter is incremented. Thus the value will reflect which adual move is in progress at the time of
interruption.
This counter ma~, be read two ways: 1) Sending a drl-L (12 decJOCh) will return a 32 bit ASCII-hex string
followed by a carriage return in the same fashion as other status commands. This allows reading the
counter at any time and is the preferred method of the two. 2) If the Aaoloop is not busy running a
program or waiting for a move to complete, the counter may be read using PEEK ~010,4. This will return a
string of 4 ASCII··hex bytes separated by spaces and terminated with CRILF. Of course, if a 16 bit counter
is all that is needed, simply PEEK 401F,2.
JOG ing the axis will have no affed on this counter.
Chapter 8, Unear and Circular Interpolation 59
11
I
{
Chapter 9 Prc)gramming the ACR1000
There are two distinct parts to the ACR1000 board, the Axis Motion Controller and the Programmable 110
Controller (PLC). This chapter describes how to program and control the operation of the ACR1000.
Chapter 10 desClibes the PLC.
Command and Pirogram Modes
The easiest way to describe the fonnat of program entry is to relate it to BASIC as used in most personal
computers. Like the BASIC language, the ACR1 000 is either in the command mode or the program mode.
The ACR1000 deifaults to the command mode when it powers up unless the very first command in
memory is the PBOOT command. The PBOOT command forces the ACR1000 to_~er up in the run mode.
In the command mode, as soon as a command followed by a <CR> (ENTER or RETURN key on most
keyboards) is received, the ACR1 000 will immediately execute the command. The executed command
does not get ston~ into memory unless it is preceded by a line number.
When a command is preceded by a line number in the range of ato 65535 and followed by a <CR>, the
ACR1000 stores the command into it's program memory. This is the program mode. As each command is
received, the ACH1000 builds a program by using the line number to tell it where the line should be placed
within the program. No commands within the program will be executed until the RUN command is given.~ -
(See PBCOT in chapter 7 for power-up execution of a program). There is a run flag relay associated with
the run mode. Whenever the system is running a program, this relay is set. This provides a method for a
host PC to monitor whether the ACR1000 has completed its program. See the status commands in chapter
7 and the relay address tables in chapter 10 for specific information on the run mode flag.
Most commands can be executed in either the program mode or the command mode. However, there are
some commands that are only allowed in the command mode such as the RENUMBER command described
in Chapter 7.
Command Format
Most commands may be entered by using the first 3 letters of the command. This speeds up throughput
somewhat when ,I host PC is used to communicate with the ACR1000. Lower-case letters may be used
when entering any command, but parameters must still use a capitol "P".
Command Line Format
The following prolgram illustrates line fonnat. The program is shown exactly as it would be keyed in the
program mode.
10 VEL 1000
20 ACCEL 10
30 DECEL 10
40 STP 0
50 MOVE 100000
60 VEL 2000
70 STP 10
80 MOVE 200000
90 STP 2
100 MOV 0
110 GOTO 40
NOTE: Spaces entered in the ,program are ignored unless they are within quotes.
Multiple Commands On A Line
Starting with ACR:1000 executive version 2.6.966, multiple commands are allowed on a single line. This
has a few advantc~ges: In the command mode, a block of instructions can be sent to the ACR1000
together without some of the overhead of many single instructions. In the program mode, programs
become more readable and there is a slight increase in execution speed. The most powerful aspect of a
multi-command line is the ability to have many commands conditional on a single test.
NOTE: A REM command will tenninate the execution of a line. Any commands after the REM on the
same line will be ignored.
Chapter 9, Programming the ACR1000 61
11
Example program:
100 ACC 10:: DEClO: STPlO: VEL 1000
200 MOVE /12345: REM INDEX 12345 PULSES
299 REM IF FAULT, SET USER RELAY, EXIT
300 IF 1 THEN PRINT "*FAULT*": SET 117: CLR 116: GOTO 1000
400 IF 96 ,]~HEN 300
500 GOTO 200
Writing A Program Using Variables
The ACR1000 card has 50 variable parameters that can be used as arguments for most commands. This
allows writing subroutines that have a fill-in-the-blank approach. The same subroutine may be called
several times, filling different numbers into parameters, and running a different profile each time. These
variables (or parameters) are described in chapter 6.
The following example illustrates the use-of variables.
10 P30=1000
20 P31=10
30 P32=2000000
40 GSB 140
50 P32 = 0
60 GSB 140
70 GOTO 70
140 ACC P31
150 DEC P31
160 STP P31
170 VEL P30
180 MOV P32
190 RET
In the above program. lthe parameters are loaded up with values. Then the Acceleration, Deceleration.
STOP and MOVE commands use these parameters to go through the profile in the subroutine starting at
line 140. The first time the subroutine is called on line 40, the axis will move to position 2000000. The
second time. it is called! at line 60, it will move to position O.
On v3.x and vS.x the Acroloop can address memory as an indexed array. You may wish to refer to the end
of Chapter 6 for a more thorough discussion of the parameter array.
Number Entry In Hexadecimal Format
For specifying arguments. the programmer can either use decimal (base 10) numbers or hexadecimal
(base 16) numbers. This will work for all commands with the exception of arguments for branch commands
(i.e. GOTO. GOSUB). The hexadecimal numbers can be in the range of 0,1 ,2,3....E.F. In addition. the HEX
number must be precedled by the 2 digit identifier '&H'. In other words. typing MOVE 1000 or MOVE &H3E8
will cause the axis to mlove to the same place (1000 base 10 =3E8 base 16). Besides giving the user the
choice of an alternate base arithmetic, the hexadecimal entry is more efficient as far as execution is
concerned.
ACR1000 Users Guide 62
11

More Related Content

What's hot

Troubleshooting and Enhancement of Inverted Pendulum System Controlled by DSP...
Troubleshooting and Enhancement of Inverted Pendulum System Controlled by DSP...Troubleshooting and Enhancement of Inverted Pendulum System Controlled by DSP...
Troubleshooting and Enhancement of Inverted Pendulum System Controlled by DSP...Thomas Templin
 
Inverted Pendulum Control System
Inverted Pendulum Control SystemInverted Pendulum Control System
Inverted Pendulum Control SystemAniket Govindaraju
 
Lecture 1: Quadrotor
Lecture 1: QuadrotorLecture 1: Quadrotor
Lecture 1: QuadrotorWong Kiong
 
Field-Oriented Control of PMSM Drive Based on SVPWM Using MATLAB
Field-Oriented Control of PMSM Drive Based on SVPWM Using MATLABField-Oriented Control of PMSM Drive Based on SVPWM Using MATLAB
Field-Oriented Control of PMSM Drive Based on SVPWM Using MATLABIJERA Editor
 
Analysis of a pendulum problem
Analysis of a pendulum problemAnalysis of a pendulum problem
Analysis of a pendulum problemSuman Lata
 
Research Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and ScienceResearch Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and Scienceinventy
 
Robust control theory based performance investigation of an inverted pendulum...
Robust control theory based performance investigation of an inverted pendulum...Robust control theory based performance investigation of an inverted pendulum...
Robust control theory based performance investigation of an inverted pendulum...Mustefa Jibril
 
Robotics: Cartesian Trajectory Planning
Robotics: Cartesian Trajectory PlanningRobotics: Cartesian Trajectory Planning
Robotics: Cartesian Trajectory PlanningDamian T. Gordon
 
Mathematical model analysis and control algorithms design based on state feed...
Mathematical model analysis and control algorithms design based on state feed...Mathematical model analysis and control algorithms design based on state feed...
Mathematical model analysis and control algorithms design based on state feed...hunypink
 
CIRCLE DIAGRAM ON 1-PHASE INDUCTION MOTOR
CIRCLE DIAGRAM ON 1-PHASE INDUCTION MOTORCIRCLE DIAGRAM ON 1-PHASE INDUCTION MOTOR
CIRCLE DIAGRAM ON 1-PHASE INDUCTION MOTORsuresh shindhe
 
12EE62R11_Final Presentation
12EE62R11_Final Presentation12EE62R11_Final Presentation
12EE62R11_Final PresentationAmritesh Maitra
 
State space modelling of a quadcopter
State space modelling of a quadcopterState space modelling of a quadcopter
State space modelling of a quadcopterSrinibashSahoo3
 
Quadcopter Design for Payload Delivery
Quadcopter Design for Payload Delivery Quadcopter Design for Payload Delivery
Quadcopter Design for Payload Delivery Onyebuchi nosiri
 
Quadcopter Design for Payload Delivery
Quadcopter Design for Payload Delivery Quadcopter Design for Payload Delivery
Quadcopter Design for Payload Delivery Onyebuchi nosiri
 
Design and Simulation of Different Controllers for Stabilizing Inverted Pendu...
Design and Simulation of Different Controllers for Stabilizing Inverted Pendu...Design and Simulation of Different Controllers for Stabilizing Inverted Pendu...
Design and Simulation of Different Controllers for Stabilizing Inverted Pendu...IJERA Editor
 
A Simplified Speed Control Of Induction Motor based on a Low Cost FPGA
A Simplified Speed Control Of Induction Motor based on a Low Cost FPGA A Simplified Speed Control Of Induction Motor based on a Low Cost FPGA
A Simplified Speed Control Of Induction Motor based on a Low Cost FPGA IJECEIAES
 

What's hot (20)

D05411622
D05411622D05411622
D05411622
 
Troubleshooting and Enhancement of Inverted Pendulum System Controlled by DSP...
Troubleshooting and Enhancement of Inverted Pendulum System Controlled by DSP...Troubleshooting and Enhancement of Inverted Pendulum System Controlled by DSP...
Troubleshooting and Enhancement of Inverted Pendulum System Controlled by DSP...
 
Inverted Pendulum Control System
Inverted Pendulum Control SystemInverted Pendulum Control System
Inverted Pendulum Control System
 
I010336070
I010336070I010336070
I010336070
 
Control of a Quadcopter
Control of a QuadcopterControl of a Quadcopter
Control of a Quadcopter
 
Lecture 1: Quadrotor
Lecture 1: QuadrotorLecture 1: Quadrotor
Lecture 1: Quadrotor
 
Field-Oriented Control of PMSM Drive Based on SVPWM Using MATLAB
Field-Oriented Control of PMSM Drive Based on SVPWM Using MATLABField-Oriented Control of PMSM Drive Based on SVPWM Using MATLAB
Field-Oriented Control of PMSM Drive Based on SVPWM Using MATLAB
 
Analysis of a pendulum problem
Analysis of a pendulum problemAnalysis of a pendulum problem
Analysis of a pendulum problem
 
Research Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and ScienceResearch Inventy : International Journal of Engineering and Science
Research Inventy : International Journal of Engineering and Science
 
Robust control theory based performance investigation of an inverted pendulum...
Robust control theory based performance investigation of an inverted pendulum...Robust control theory based performance investigation of an inverted pendulum...
Robust control theory based performance investigation of an inverted pendulum...
 
Robotics: Cartesian Trajectory Planning
Robotics: Cartesian Trajectory PlanningRobotics: Cartesian Trajectory Planning
Robotics: Cartesian Trajectory Planning
 
Mathematical model analysis and control algorithms design based on state feed...
Mathematical model analysis and control algorithms design based on state feed...Mathematical model analysis and control algorithms design based on state feed...
Mathematical model analysis and control algorithms design based on state feed...
 
CIRCLE DIAGRAM ON 1-PHASE INDUCTION MOTOR
CIRCLE DIAGRAM ON 1-PHASE INDUCTION MOTORCIRCLE DIAGRAM ON 1-PHASE INDUCTION MOTOR
CIRCLE DIAGRAM ON 1-PHASE INDUCTION MOTOR
 
12EE62R11_Final Presentation
12EE62R11_Final Presentation12EE62R11_Final Presentation
12EE62R11_Final Presentation
 
State space modelling of a quadcopter
State space modelling of a quadcopterState space modelling of a quadcopter
State space modelling of a quadcopter
 
Project report. fin
Project report. finProject report. fin
Project report. fin
 
Quadcopter Design for Payload Delivery
Quadcopter Design for Payload Delivery Quadcopter Design for Payload Delivery
Quadcopter Design for Payload Delivery
 
Quadcopter Design for Payload Delivery
Quadcopter Design for Payload Delivery Quadcopter Design for Payload Delivery
Quadcopter Design for Payload Delivery
 
Design and Simulation of Different Controllers for Stabilizing Inverted Pendu...
Design and Simulation of Different Controllers for Stabilizing Inverted Pendu...Design and Simulation of Different Controllers for Stabilizing Inverted Pendu...
Design and Simulation of Different Controllers for Stabilizing Inverted Pendu...
 
A Simplified Speed Control Of Induction Motor based on a Low Cost FPGA
A Simplified Speed Control Of Induction Motor based on a Low Cost FPGA A Simplified Speed Control Of Induction Motor based on a Low Cost FPGA
A Simplified Speed Control Of Induction Motor based on a Low Cost FPGA
 

Similar to Acr1 k interpolation_prog

Controller design of inverted pendulum using pole placement and lqr
Controller design of inverted pendulum using pole placement and lqrController design of inverted pendulum using pole placement and lqr
Controller design of inverted pendulum using pole placement and lqreSAT Journals
 
Controller design of inverted pendulum using pole placement and lqr
Controller design of inverted pendulum using pole placement and lqrController design of inverted pendulum using pole placement and lqr
Controller design of inverted pendulum using pole placement and lqreSAT Publishing House
 
2-Axis Interpolation Application note
2-Axis Interpolation Application note2-Axis Interpolation Application note
2-Axis Interpolation Application notePranav Parikh
 
Design of sampled data control systems part 2. 6th lecture
Design of sampled data control systems part 2.  6th lectureDesign of sampled data control systems part 2.  6th lecture
Design of sampled data control systems part 2. 6th lectureKhalaf Gaeid Alshammery
 
PSO and SMC based Closed Loop V/F Control of AC Drive using SVPWM
PSO and SMC based Closed Loop V/F Control of AC Drive using SVPWMPSO and SMC based Closed Loop V/F Control of AC Drive using SVPWM
PSO and SMC based Closed Loop V/F Control of AC Drive using SVPWMIRJET Journal
 
Light intensity/incident angle measurement.pptx
Light intensity/incident angle measurement.pptxLight intensity/incident angle measurement.pptx
Light intensity/incident angle measurement.pptxRAHITNATH
 
Application of neuro fuzzy controller in torque ripple minimization of vec
Application of neuro fuzzy controller in torque ripple minimization of vecApplication of neuro fuzzy controller in torque ripple minimization of vec
Application of neuro fuzzy controller in torque ripple minimization of vecIAEME Publication
 
Design and implementation of 3 axis linear interpolation controller in fpga f...
Design and implementation of 3 axis linear interpolation controller in fpga f...Design and implementation of 3 axis linear interpolation controller in fpga f...
Design and implementation of 3 axis linear interpolation controller in fpga f...IAEME Publication
 
Design and Implementation of Schmitt Trigger using Operational Amplifier
Design and Implementation of Schmitt Trigger using Operational AmplifierDesign and Implementation of Schmitt Trigger using Operational Amplifier
Design and Implementation of Schmitt Trigger using Operational AmplifierIJERA Editor
 
final year presentation
final year presentationfinal year presentation
final year presentationrao tahir
 
r5.pdfr6.pdfInertiaOverall.docxDynamics of.docx
r5.pdfr6.pdfInertiaOverall.docxDynamics of.docxr5.pdfr6.pdfInertiaOverall.docxDynamics of.docx
r5.pdfr6.pdfInertiaOverall.docxDynamics of.docxcatheryncouper
 
Diapositivas maqueta en coordenadas normales_y_tangenciales
Diapositivas maqueta en coordenadas normales_y_tangencialesDiapositivas maqueta en coordenadas normales_y_tangenciales
Diapositivas maqueta en coordenadas normales_y_tangencialesARIELMATHEOCHANCUSIG
 
study of yaw and pitch control in quad copter
study  of yaw and pitch  control in quad copter study  of yaw and pitch  control in quad copter
study of yaw and pitch control in quad copter PranaliPatil76
 
PDR Robotic Replacement of Solar Collector Panels.pptx
PDR Robotic Replacement of Solar Collector Panels.pptxPDR Robotic Replacement of Solar Collector Panels.pptx
PDR Robotic Replacement of Solar Collector Panels.pptxCanGVEN7
 

Similar to Acr1 k interpolation_prog (20)

Controller design of inverted pendulum using pole placement and lqr
Controller design of inverted pendulum using pole placement and lqrController design of inverted pendulum using pole placement and lqr
Controller design of inverted pendulum using pole placement and lqr
 
Controller design of inverted pendulum using pole placement and lqr
Controller design of inverted pendulum using pole placement and lqrController design of inverted pendulum using pole placement and lqr
Controller design of inverted pendulum using pole placement and lqr
 
2-Axis Interpolation Application note
2-Axis Interpolation Application note2-Axis Interpolation Application note
2-Axis Interpolation Application note
 
Kk2518251830
Kk2518251830Kk2518251830
Kk2518251830
 
Kk2518251830
Kk2518251830Kk2518251830
Kk2518251830
 
Design of sampled data control systems part 2. 6th lecture
Design of sampled data control systems part 2.  6th lectureDesign of sampled data control systems part 2.  6th lecture
Design of sampled data control systems part 2. 6th lecture
 
PSO and SMC based Closed Loop V/F Control of AC Drive using SVPWM
PSO and SMC based Closed Loop V/F Control of AC Drive using SVPWMPSO and SMC based Closed Loop V/F Control of AC Drive using SVPWM
PSO and SMC based Closed Loop V/F Control of AC Drive using SVPWM
 
Light intensity/incident angle measurement.pptx
Light intensity/incident angle measurement.pptxLight intensity/incident angle measurement.pptx
Light intensity/incident angle measurement.pptx
 
Application of neuro fuzzy controller in torque ripple minimization of vec
Application of neuro fuzzy controller in torque ripple minimization of vecApplication of neuro fuzzy controller in torque ripple minimization of vec
Application of neuro fuzzy controller in torque ripple minimization of vec
 
Design and implementation of 3 axis linear interpolation controller in fpga f...
Design and implementation of 3 axis linear interpolation controller in fpga f...Design and implementation of 3 axis linear interpolation controller in fpga f...
Design and implementation of 3 axis linear interpolation controller in fpga f...
 
Design and Implementation of Schmitt Trigger using Operational Amplifier
Design and Implementation of Schmitt Trigger using Operational AmplifierDesign and Implementation of Schmitt Trigger using Operational Amplifier
Design and Implementation of Schmitt Trigger using Operational Amplifier
 
Ball and beam
Ball and beamBall and beam
Ball and beam
 
Final Project
Final ProjectFinal Project
Final Project
 
final year presentation
final year presentationfinal year presentation
final year presentation
 
Fq3510001006
Fq3510001006Fq3510001006
Fq3510001006
 
r5.pdfr6.pdfInertiaOverall.docxDynamics of.docx
r5.pdfr6.pdfInertiaOverall.docxDynamics of.docxr5.pdfr6.pdfInertiaOverall.docxDynamics of.docx
r5.pdfr6.pdfInertiaOverall.docxDynamics of.docx
 
Diapositivas maqueta en coordenadas normales_y_tangenciales
Diapositivas maqueta en coordenadas normales_y_tangencialesDiapositivas maqueta en coordenadas normales_y_tangenciales
Diapositivas maqueta en coordenadas normales_y_tangenciales
 
A010220109
A010220109A010220109
A010220109
 
study of yaw and pitch control in quad copter
study  of yaw and pitch  control in quad copter study  of yaw and pitch  control in quad copter
study of yaw and pitch control in quad copter
 
PDR Robotic Replacement of Solar Collector Panels.pptx
PDR Robotic Replacement of Solar Collector Panels.pptxPDR Robotic Replacement of Solar Collector Panels.pptx
PDR Robotic Replacement of Solar Collector Panels.pptx
 

Recently uploaded

Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% SecurePooja Nehwal
 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxMohammedJunaid861692
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxolyaivanovalion
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxolyaivanovalion
 
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxolyaivanovalion
 
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...Pooja Nehwal
 
Introduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxIntroduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxfirstjob4
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxolyaivanovalion
 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz1
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusTimothy Spann
 
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Delhi Call girls
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...shivangimorya083
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfLars Albertsson
 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130Suhani Kapoor
 
Data-Analysis for Chicago Crime Data 2023
Data-Analysis for Chicago Crime Data  2023Data-Analysis for Chicago Crime Data  2023
Data-Analysis for Chicago Crime Data 2023ymrp368
 

Recently uploaded (20)

Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% SecureCall me @ 9892124323  Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
Call me @ 9892124323 Cheap Rate Call Girls in Vashi with Real Photo 100% Secure
 
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptxBPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
BPAC WITH UFSBI GENERAL PRESENTATION 18_05_2017-1.pptx
 
Ravak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptxRavak dropshipping via API with DroFx.pptx
Ravak dropshipping via API with DroFx.pptx
 
Edukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFxEdukaciniai dropshipping via API with DroFx
Edukaciniai dropshipping via API with DroFx
 
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Punjabi Bagh 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
VidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptxVidaXL dropshipping via API with DroFx.pptx
VidaXL dropshipping via API with DroFx.pptx
 
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...{Pooja:  9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
{Pooja: 9892124323 } Call Girl in Mumbai | Jas Kaur Rate 4500 Free Hotel Del...
 
Introduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptxIntroduction-to-Machine-Learning (1).pptx
Introduction-to-Machine-Learning (1).pptx
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
ALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptxALSO dropshipping via API with DroFx.pptx
ALSO dropshipping via API with DroFx.pptx
 
Invezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signalsInvezz.com - Grow your wealth with trading signals
Invezz.com - Grow your wealth with trading signals
 
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in  KishangarhDelhi 99530 vip 56974 Genuine Escort Service Call Girls in  Kishangarh
Delhi 99530 vip 56974 Genuine Escort Service Call Girls in Kishangarh
 
Generative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and MilvusGenerative AI on Enterprise Cloud with NiFi and Milvus
Generative AI on Enterprise Cloud with NiFi and Milvus
 
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
Best VIP Call Girls Noida Sector 39 Call Me: 8448380779
 
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...Vip Model  Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
Vip Model Call Girls (Delhi) Karol Bagh 9711199171✔️Body to body massage wit...
 
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get CytotecAbortion pills in Doha Qatar (+966572737505 ! Get Cytotec
Abortion pills in Doha Qatar (+966572737505 ! Get Cytotec
 
Schema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdfSchema on read is obsolete. Welcome metaprogramming..pdf
Schema on read is obsolete. Welcome metaprogramming..pdf
 
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Saket (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
VIP Call Girls Service Miyapur Hyderabad Call +91-8250192130
 
Data-Analysis for Chicago Crime Data 2023
Data-Analysis for Chicago Crime Data  2023Data-Analysis for Chicago Crime Data  2023
Data-Analysis for Chicago Crime Data 2023
 

Acr1 k interpolation_prog

  • 1. Chapter 8 LirlearAnd Circular Interpolation This chapter describes the linear and circular interpolation features of the ACR1000 motion control system. Linear and circul:ar interpolation is possible for up to is-axes. This feature is included in versions 2.7.x and 4.x only. In addition to the correct software, the ACR1000 card needs a cable to go between all the interpolating cards. This cable provides the necessary synchronization signals that make sure all the cards are moving as they are supposed to. Linear Interpolation Linear interpolatiion can be mixed with independent axis commands as desired by the programmer. To make an axis do interpolation, the axis must be told two things: 1) the destination and 2) the longest move (in pulses) any axis will move during the coordinated move. In a muHiaxis system, the cards may either run a stored program or execute one move at a time. First, let us look at an eXclmple on a 2-axis system. When the program is run, it is desired that the two axes make a 22.5 degree move with x-axis ending at 10 inches and y-axis ending at 2.5 inches. The velocity is to be 100 inches per minute. Assume that there are 10000 pulses in an inch. X Axis Program 10 ACC 0 20 DEC 0 30 STP 0 40 VEL 10000 SO P28=100000 60 MOV 100000 Y Axis Program 10 ACC 0 20 DEC 0 30 STP 0 40 VEL 10000 SO P28=100000 60 MOV 25000 In the above example, the Y-axis will move at 1/4th the speed of X-axis. Note that this method results in a 32-bit precision velocity range to both cards. P28 holds the number of pulses in the longest move to be made by any axis. This parameter is used to control how much the slower cards (the ones with less distance to travel) will scale down their velocities. If P28 is set to zero, then all moves will take place in a non-interpolation manner-thus this method yields the choice of either interpolation or non-interpolation movements. Circular Interpolation This section could be called sinusoidal motion since that would be a true representation of the motion of each axis. The ACR1000 card has built-in provisions for allowing an axis to generate sinusoidal motion starting at any p<J'int and traveling any desired number of pulses. On an X-V table, if one axis is commanded to perfonn a sine and another a cosine, the result is a perfect circle. Similarly, if the x-axis is commanded to perfonn a sinusoidal move and the y-axiS is given a linear move, the resuH will be a perfect sine waVE~. The command to do sinusoidal or circular motion is a little more detailed than the linear case. The axis still requires knowing how many pulses to go, but also needs to know the radius, direction of travel (clockwise or counter clockwise), precisely where the start point is in relation to the center of the arc and the absolute position at the end of the arc or circle. To use the sine-wave terminology, we need the following: 1. Peak Amplitude 2. Direction 3_.start Amplitude 4. End Position This infonnation is required for both the sine and the cosine wave axes. The reason the start amplitude of the sine as well as cosine is needed is that, in general, each sine or cosine amplitude repeats twice for each 21t period-but each pair of amplitudes happens only once. Thus to completely define the start point, both the amplitudes must be given. In machine tool language, these amplitudes are known as I and J. Chapter 8, Unear and Circular Interpolation 53 11
  • 2. QODegees 90Degees Start Point I=Xstart - Xcenter=O.7071 J=Ysfart - Ycenter:O.7071 Rl.OO Sweep Angle-360 - .45-315 Degr' 315 Degrees-21r (315/36O)=5.~ __~____+-______~________~_o_~__ees___1M__~~ees__r-______~~____~-r~O~~~em__ 360 Degrees 360 Oeaees 27CIOegees 270 Degees CIRCLE COMMAND FORMAT The format of the CIRCLE command is: CIRCLE rotdir, radius, /, J, distance Parameters may be USE~ for any circle command arguments. The rotdir argument indicates the direction of rotation. Use +1 for GW, -1 for CCW. The radius is the radius (or amplitude of the sine wave) of the circle in pulses. The distance parameter is the circumferential distance from the start point to the end point If the circle is a 360 degree arc then the distance in pulses is 2x*radius(units)*pulseslunit. A Simple way to calculate the distance is to determine the sweep angle between the start point and the end point in radians. Then multiply by the radius expressed in pulses. To convert degrees to radians multiply by 1t and divide by 180 (21t1360). I & J indicate where on the circumference of the circJe or arc the current position of the axis represents, relc,tive to the center of the circJe (0,0). To generate elliptical motion, use different values for the primary alnd secondary radii. (See section on elliptical interpolation for more details.) If (Xstart,Ystart) is the start coordinate of the circle/arc, then the following can be used. X axis 1= (Xstart-Xcent1er) J= (Ystart-Ycenter) -or- t= Radius·SIN(AJlgle) J= Radius·COS(Angle) Yaxis 1= (Ystart-Ycenter) J= -(Xstart-Xcenter) 1= Radius·COS(Angle) J =-Radius·SIN(Angle) Once the I,J values for the X-axis are calculated, the Y-axis 1& J are related like this: YI = XJ; YJ = -Xl. In addition to the comm;and arguments, the following parameters must be loaded with correct values for each CIRCLE move: P28: P29: Maximum mOVE~ distance of all axes moving together. This value must be the same for all axes. Position the axis will be at when the move is completed. This number, unlike I & J is absolute and referenced to system zero. To determine this value, use the following. where X-axis: P29= start position + (rotdir * (lend - Istart» Y-axis: P29= start poSition + (rotdir * (Jend - Jstart» Istart = radius*COS(StartAngIe), Jstart = radius*SIN(StartAngle) lend = radius*COS(EndAngle), Jend = radius*SIN(EndAngle) All poSitions are in pulses. ACR1000 Users Guide 54 11
  • 3. Circular Interpo~ation Example As an example, we will see how to generate a 360 degree SINE wave starting at 0 degrees and ending at 360 degrees. The amplitude (radius) is 1 inch (10000 pulses). Note the value that I and J can take is such that 0 ~ I~ R. and 0.:£ 1.:£ R. where R is the radius. Assume 1 inch=10000 pulses. Initially the axis is sitting at O. The radius or amplitude is 10000. At 0 degrees 1= 10000 and J = o. Since we wish to go from 0 degrees to 360 degrees. the direction is CW (+1). rotdiris +1 radius is 10000 lis 10000 JisO distance is 62832 (this is 2x*10000) Plugging in the values. the final command is: P28=0 P29=0 CIRCLE +1,10000,10000,0,62832 Note that prior to the CIRCLE command, P28 and P29 must be set. P28 is loaded up with the maximum number of pulses any axis is moving. In this case since only one axis is moving P28 should be set to O. P29 must be loaded with the end point of the axis. In this example, since the axis was at 0, it will end up at oafter going a complete 360 degrees. In an x-y table application. if two axis were required to do the complete circle, the following programs would be sufficient. X-AXIS PROGRAM 10 P28=62832 20 P29=0 Y-AXIS PROGRAM 10 P28=62832 20 P29=0 30 CIRCLE 1,10000,10000,0,62832 30 CIRCLE 1,10000,0,-10000,62832 2-Axis Example As a further illustration, the programming for a 2-axis path will be illustrated. - r i4.00 3..4142 I I -j~ Starting at 0,0, we: have a line ending at (0,2). R2.OO r2m ·1: ~-- 3..4142 ----~..I 14------ A.82&C ----~ 14----------6.8284 ------~ XV-Contour Example a clockwise AHC with radius 2 inche~ center at (2.2), starting at 1800 and ending at 45°. an ARC of radius 2 inches. center at (4.8284,2) start angle of 1350 and end angle of 0 degrees. a line to (2,0). a line to (0,0). Chapter 8, Unear and Circular Interpolation 55 11
  • 4. The ARCS require the 1following math: Assuming 1-=10000 pulses, for the first ARC: X-AXISi rotdir= +1 radius :: 20000 1=-20000 J=O distance = 2Jt*(1351360)*20000 = 47124 P28 = 47124 P29 = 34142 For the second ARC X-AXIS. rotdir= +1 radius :: 20000 1=-14'142 J = 14142 distance = 21t*(1351360)*20000 = 47124 P28 = 47124 P29= 68284 Y-AXIS rotdir= +1 radius =20000 1=0 J =20000 cflSlance = 2x *(1351360)*20000 = 47124 P28 47124 P29 = 34142 Y-AXIS rotal/" = +1 radius = 20000 1=14142 J = 14142 distance = 21t*(135/360)*20oo0 = 47124 P28 = 47124 P29 = 20000. The finished program will look as follows. Note that this program is shown without line numbers. If the axes are commanded in the immediate mode, line numbers are not needed. If the axes are run in the program mode, line numbers must be included. Blank lines are added for readability only. X-AXIS VEL 10000 ACCO DECO STPO P28 = 20000 MOVO P28=47124 P29=34142 CIRCLE 1,20000,-20000,0,47124 P28=47124 P29=68284 CIRCLE 1,20000,-14142,14142,47124 P28=20000 MOV6~284_ P28=68284 MOVO Y-AXIS VEL 10000 ACCO DECO STPO P28 = 20000 MOV 20000 P28=47124 P29=34142 CIRCLE 1,20000,0,20000,47124 P28=47124 P29=20000 CIRCLE 1,20000,14142,14142,47124 P28=20000 MOVO P28=68284 MOVO Note that in some cases, the axis is being commanded to move to zero when it is already at zero. This is necessary to keep the moves synchronized; all axes have to be programmed to move even if only one is moving. If the user chooses not to do this, then P28 should be set to 0 on all axes and they will not move in a interpolated mannE~r. ACR1000 Users Guide 56 11
  • 5. Elliptical Interpolation Elliptical interpolation is very similar to circular interpolation in fonn. For drcular interpolation, both the axes cards are creating the same amplitude (radius) profiles. For an Ellipse, each axis runs with a different amplitude. With elliptical interpolation the following diagram applies: 90 Degrees 180 ~~ X-AxIs Radius 0 Degees --~------------------4------------------r------- :::v o 0. Cut 270 Degrees Enipse Example Ag.8.3 ELLIPSE FORMAT 360 Degees As an example, we shall see how to generate an ellipse starting at adegrees and going 360 degrees. Since the major axis radius is 2", this is 20000 pulses in a 10000 pulses per inch system. The minor axis is 1" (10000 pulses). Each axis will be programmed as if it were doing a circle. The X-axis will be programmed as if it were doing a 20000 pulse radius and moving a complete 360 degrees. The Y-axis will be programmed as if it were doing a 10000 pulse circle and moving a complete 360 degrees. The parameter P28, which detennines the feed rate along with the VEL command, has to be set such that it is the maximum of the distance calculation of the two axis. Assuming both axes start at 0: X-AXIS PROGRAM 10 P28=125664 20 P29=0 30 CIRCLE +,20000,20000,0,125664 Y-AXIS PROGRAM 10 P28=125664 20 P29=0 30 CIRCLE +,10000,0,-10000,62832 Note that I and .J must be calculated individually for each axis, based on the radius of each axis. Also note that, as with circles, the order of I & J is reversed for the Y axis, with J negated. Binary Method e)f Specifying Interpolated Moves In v2.7.x series software, there are provisions to allow the ACR1 000 card to accept data·at high speed. This is needed in applications that have a DNC (Dired Numerical Control) link. If the point data in a 3-axis system is generated by a CAD/CAM system, the points may be spaced very dose together and come very quickly. With thiis method of specifying moves, the ACR1000 is able to keep up with the shortest distance between moves and very high velocities. This mode is only available in the PC BUSS (ISA bus) mode. Chapter 8, Unear and Circular Interpolation 57 11
  • 6. Fast Move Block Format - ASCII The command must have following fonnat. ctrf-O wwww xxxxxxx yyyyyyy wwww is the VEL follo,wed by a carriage return. If the velocity has been set and is not changing it can be omitted and just a carriage return is needed. KXXXXXX is the Master Move Distance. (Nonnally P28.) This is the maximum number of pulses that any axis will move. Again this number is tenninated by a carriage return. yyyyyyy is the target position of the axis that is being sent this command. This is also tenninated by a carriage return. As soon as the ACR1000 board sees the ctrf-O it disables the echo. After the entire command is received. the previous echo status is restored. Also. all these parameters can either be specified in decimal or hexadecimal fonnat. Using the hexadecimal fonnat will speed up throughput considerably. Fast Move Block Fonnat - Binary ONC applications that require high data throughput with short length lines. arcs and circles should see a considerable improvement in performance using this interface. This new interface is only available for PC BUSS (lSA bus) application of the ACR-1 000. For Lines & Circles BYTE 0: #4 (ctr1-D) BYTE 1: MOVE TYPE Bit Number 7 6 5 4 3-0 Meaning O=ASCII, 1=RAW O=L1N, 1=CIRC O=ABS, 1=INC 0=16 Bit Velocity, 1=24 Bit Velocity. Reserved, set to 0000 NOTE: 24 Bit Velocities apply to v 4.x Only 1. 16 bit velocities (Byte 1:4 is 0) Byte Meaning 2-3 V4~locity (Unsigned bit integer, LS byte 1st) 4-7 Master Move (P28-Unsigned 32 bit integer, LS byte 1st) 8-11 Move Distance (Signed 32 bit integer, LS byte 1st) For circles, this is a positive number if arc is "cW' and negative if arc is "ccW'. The following apply only to arc/circle moves 12-15 RADIUS (Unsigned 32 bit integer, LS byte 1st) 16-19 IVECTOR (Signed 32 bit integer, LS byte 1st) 20-23 JVECTOR (Signed 32 bit integer, LS byte 1st) 24-27 ENDPOINT (P29-Signed 32 bit integer, lS byte 1st) 2. 24 bit velocities (Byte 1:4 is 1. v4.x only) Byte M4eaning 2-4 VE~locity (Unsignea24 bit integer, lS byte 1st) 5-8 M.;!ster Move (P28-Unsigned 32 bit integer, LS byte 1st) 9-12 Melve Distance (Signed 32 bit integer, LS byte 1st). For circles, this is a positive number if an::: is "cW' and negative if arc is "CCYr. 13-16 17-20 21-24 25-28 ACR1000 User's Guide .The following byte assignments only pertain to arcs. RJ~IUS (Unsigned 32 bit integer, LS byte 1st) IVECTOR (Signed 32 bit integer, LS byte 1st) JVECTOR (Signed 32 bit integer, lS byte 1st) ENDPOINT (P29-Signed 32 bit integer, LS byte 1st) 58 11
  • 7. Move Counter After interruptin~J a series of moves, it is now possible to determine which move in the series was last executed. A 32 bit -move counter- located at addresses 401 OH-402H has been added for this purpose. Prior to initially starting a series of moves, the counter should be zeroed by commanding POKE 4010=0,0,0,0. Of course this counter may also be preset by POKEing in a non-zero value, but if this is done, note that the values must be in hexadecimal format. As each move command begins motion, the counter is incremented. Thus the value will reflect which adual move is in progress at the time of interruption. This counter ma~, be read two ways: 1) Sending a drl-L (12 decJOCh) will return a 32 bit ASCII-hex string followed by a carriage return in the same fashion as other status commands. This allows reading the counter at any time and is the preferred method of the two. 2) If the Aaoloop is not busy running a program or waiting for a move to complete, the counter may be read using PEEK ~010,4. This will return a string of 4 ASCII··hex bytes separated by spaces and terminated with CRILF. Of course, if a 16 bit counter is all that is needed, simply PEEK 401F,2. JOG ing the axis will have no affed on this counter. Chapter 8, Unear and Circular Interpolation 59 11
  • 8.
  • 9. I { Chapter 9 Prc)gramming the ACR1000 There are two distinct parts to the ACR1000 board, the Axis Motion Controller and the Programmable 110 Controller (PLC). This chapter describes how to program and control the operation of the ACR1000. Chapter 10 desClibes the PLC. Command and Pirogram Modes The easiest way to describe the fonnat of program entry is to relate it to BASIC as used in most personal computers. Like the BASIC language, the ACR1 000 is either in the command mode or the program mode. The ACR1000 deifaults to the command mode when it powers up unless the very first command in memory is the PBOOT command. The PBOOT command forces the ACR1000 to_~er up in the run mode. In the command mode, as soon as a command followed by a <CR> (ENTER or RETURN key on most keyboards) is received, the ACR1 000 will immediately execute the command. The executed command does not get ston~ into memory unless it is preceded by a line number. When a command is preceded by a line number in the range of ato 65535 and followed by a <CR>, the ACR1000 stores the command into it's program memory. This is the program mode. As each command is received, the ACH1000 builds a program by using the line number to tell it where the line should be placed within the program. No commands within the program will be executed until the RUN command is given.~ - (See PBCOT in chapter 7 for power-up execution of a program). There is a run flag relay associated with the run mode. Whenever the system is running a program, this relay is set. This provides a method for a host PC to monitor whether the ACR1000 has completed its program. See the status commands in chapter 7 and the relay address tables in chapter 10 for specific information on the run mode flag. Most commands can be executed in either the program mode or the command mode. However, there are some commands that are only allowed in the command mode such as the RENUMBER command described in Chapter 7. Command Format Most commands may be entered by using the first 3 letters of the command. This speeds up throughput somewhat when ,I host PC is used to communicate with the ACR1000. Lower-case letters may be used when entering any command, but parameters must still use a capitol "P". Command Line Format The following prolgram illustrates line fonnat. The program is shown exactly as it would be keyed in the program mode. 10 VEL 1000 20 ACCEL 10 30 DECEL 10 40 STP 0 50 MOVE 100000 60 VEL 2000 70 STP 10 80 MOVE 200000 90 STP 2 100 MOV 0 110 GOTO 40 NOTE: Spaces entered in the ,program are ignored unless they are within quotes. Multiple Commands On A Line Starting with ACR:1000 executive version 2.6.966, multiple commands are allowed on a single line. This has a few advantc~ges: In the command mode, a block of instructions can be sent to the ACR1000 together without some of the overhead of many single instructions. In the program mode, programs become more readable and there is a slight increase in execution speed. The most powerful aspect of a multi-command line is the ability to have many commands conditional on a single test. NOTE: A REM command will tenninate the execution of a line. Any commands after the REM on the same line will be ignored. Chapter 9, Programming the ACR1000 61 11
  • 10. Example program: 100 ACC 10:: DEClO: STPlO: VEL 1000 200 MOVE /12345: REM INDEX 12345 PULSES 299 REM IF FAULT, SET USER RELAY, EXIT 300 IF 1 THEN PRINT "*FAULT*": SET 117: CLR 116: GOTO 1000 400 IF 96 ,]~HEN 300 500 GOTO 200 Writing A Program Using Variables The ACR1000 card has 50 variable parameters that can be used as arguments for most commands. This allows writing subroutines that have a fill-in-the-blank approach. The same subroutine may be called several times, filling different numbers into parameters, and running a different profile each time. These variables (or parameters) are described in chapter 6. The following example illustrates the use-of variables. 10 P30=1000 20 P31=10 30 P32=2000000 40 GSB 140 50 P32 = 0 60 GSB 140 70 GOTO 70 140 ACC P31 150 DEC P31 160 STP P31 170 VEL P30 180 MOV P32 190 RET In the above program. lthe parameters are loaded up with values. Then the Acceleration, Deceleration. STOP and MOVE commands use these parameters to go through the profile in the subroutine starting at line 140. The first time the subroutine is called on line 40, the axis will move to position 2000000. The second time. it is called! at line 60, it will move to position O. On v3.x and vS.x the Acroloop can address memory as an indexed array. You may wish to refer to the end of Chapter 6 for a more thorough discussion of the parameter array. Number Entry In Hexadecimal Format For specifying arguments. the programmer can either use decimal (base 10) numbers or hexadecimal (base 16) numbers. This will work for all commands with the exception of arguments for branch commands (i.e. GOTO. GOSUB). The hexadecimal numbers can be in the range of 0,1 ,2,3....E.F. In addition. the HEX number must be precedled by the 2 digit identifier '&H'. In other words. typing MOVE 1000 or MOVE &H3E8 will cause the axis to mlove to the same place (1000 base 10 =3E8 base 16). Besides giving the user the choice of an alternate base arithmetic, the hexadecimal entry is more efficient as far as execution is concerned. ACR1000 Users Guide 62 11