Académique Documents
Professionnel Documents
Culture Documents
INTERNSHIP
C ONTENTS
1 Introducing the company
2 Overview
3 CMMP
3.1
3.2
ACR-View programs . . . . . .
3.1.1 Homing routines . . .
3.1.2 Printing program . . .
Printing mode - fully-engaged
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Test sled
4.1
4.2
CAM Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1 Given and calculated constants . . . . . . . . . . . . .
4.1.2 Calculating necessary parameters in order to obtain
and z 2 elevations . . . . . . . . . . . . . . . . . . . . . .
4.1.3 Conditional statements for the printheads path . . .
4.1.4 Final motion profile and plotted path . . . . . . . . . .
ACR-View programs . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Homing routine . . . . . . . . . . . . . . . . . . . . . . .
4.2.2 Printing program . . . . . . . . . . . . . . . . . . . . . .
13
. . . . . . . .
. . . . . . . .
the required
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. .
. .
z1
. .
. .
. .
. .
. .
. .
5 Conclusion
Homing routine of linear Axis on the CMMP . . . . . . . . . . . . .
Homing routine of rotary Axis of the CMMP . . . . . . . . . . . . . .
Printing program for the CMMP . . . . . . . . . . . . . . . . . . . . .
Homing routing for the maneuverable printhead on the Test-Sled
Bottle detection for the Test-sled . . . . . . . . . . . . . . . . . . . .
Printing program for the Test-sled . . . . . . . . . . . . . . . . . . .
Test of Mini-Test-sled . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
15
16
18
22
23
23
24
26
6 Appendix
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6
7
8
9
27
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
27
29
31
33
33
39
2 O VERVIEW
In order for me to get accustomed and get started in the printing industry field, I was given
the opportunity to see and work with many projects in parallel. The company allowed me to
work with many engineers and people within different positions so I get a real feeling of how
does a company in this scale works, have a wide overview over the composition it requires, as
well as get familiarise with the many technologies they developed over the years.
Since INX Internationals main focus is on selling ink, the first weeks I was allowed to go
through the ink production process in the facility located in Prague, Czech Republic. Receiving background knowledge on the end users product was vital in order to later be able
to understand how the many complex systems can process it. Ranging from the studies of
the chemical components they are using in order to produce their fluids/ink while assisting
chemical engineers, to running assisted demos on the available machinery for testing, calibrating and tuning parameters to get an ultimate desired result, I was exposed to highly confidential and crucial information in order to get started with my internship. I was not allowed
to take any detailed notes in this period of my internship, such as the chemical components
and the respective processing of the ink itself.
After my arrival to Huntsville, Alabama, I followed a training week with the presence of many
professionals that arrived from around the country. This week was about servicing already
existing technologies, troubleshooting, tech training, equipment and software overview, issue handling, repairing and replacing components and much more. I was handed many user
guides to study, from their most successful technology - JetINX printing and ink recirculation
system - to the many drivers and software they are using in their daily routines.
The main focus of my internship was aimed at the experimentation with motions of two different systems - the CMMP and the Test-sled. The implemented controllers, drivers and
servo-motors on both of those systems where of Parker Hannifins products. In order to be
able to experiment with those technologies, it was required to get acquainted with them by
learning to use ACR-View software - the communication platform between the user and the
Aries9000-EPL controllers. This also included learning the structured text programming of
the motion control system - ACR-Basic.
The first step for both of the systems was to tune some motion parameters for the best achievable systems performance. This included, withal, tuning the PID gains for the control algorithm, as well as setting up the systems gearing parameters. Those were tuned in order to
meet the systems requirements, and keeping it stable at all times. We considered parameters
such as the rising time, overshoot - which could lead to jerking specific parts of the system,
settling time, as well as steady state error.
We also had to create several motion sequences. Those included homing routines, for repeatability and definition of initial conditions for the maneuverable parts of the system. Those
initial positions allowed us to later on provide information through the possible range of motion of the machine. Hence, by knowing the required motion of our system for successful
printing to be accomplished, we were able to write printing programs relating those motions
and control programs of the inkjet printhead in order to fulfill the instructed tasks.
Some motion sequences involved were straightforward, combining linear and rotational motionsas for the CMMP. For the Test-sled, the requirement of printing on a basseball bat entailed us
to create a non-linear motion sequence on the multi-axis system.
In addition to the experimentation with motion system on the two different machines, the
reader can find in this report a discussion about a different and more efficient, in specific
cases, printing mode for the CMMP - fully-engaged. The calculationx of the motion profile
of the maneuvarable printhead on the Test-sled can also be found, allowing us to follow the
profile of the baseball bat.
At the end of this report, in the Appendix, the reader can find all the motion programs written
for the studied systems. Those programs were tested, and work properly in order to be able
to print images on the different substrates those two offer.
3 CMMP
The CMMP is composed of a printhead mounted on a linear axis and a substrate mounted on
a rotational axis. While a rotational motor rotates the substrate object at a certain velocity, the
printhead prints on the object by controlled jet output of ink while moving linearly in order
to cover the whole objects length. The rotation of the object is continuous, and the printing
of images is done one color layer at a time.
PPU = 8000 32
(3.1)
After clearing all necessary flags for well examination of our homing routine, we reset the ac-
tual position of both the encoder and axis to zero. We then define a JOG profile, as we did in
the homing routine of the linear axis.
The homing routine begins by jogging the motor forward. We do so until there is an hardware position capture from the encoder, which is triggered by a specified source defined by
the hardwares capture register. The trigger causes the hardware to latch the encoder count
of the position feedback encoder of the axis, stores the value in the desired capture register
and sets an interrupt. When the capture is done, we stop the jogging and store Axis3 and the
encoders positions.
Finally, we reset the rotational axis to be the difference between the Axis3 and the encoders
positions (considering the number of counts of the rotary encoder to be 472000), and we jog
an increment of the previous position of AXIS1 (considering the number of counts of the rotary axis).
The corresponding written program can be found in the APPENDIX section.
(3.2)
with,
inch printed per sec =
printhead fire freq (by drop size) printhead fire freq (by drop size)
=
horizontal dpi
dpi to print
horizontal interleave
(3.3)
(3.4)
GearRatio X =
(3.5)
Finally, we can produce the necessary motions for printing on the objects.
We need to move the printhead to the starting position by moving our linear axis, wait for
the layer to be ready to be printed - throughout a flag from the printing control C# code, and
rotate the second/rotary axis with the necessary velocity. The printing takes then place by
allowing both motions to run simultaneously. After the printing is finished, we proceed to
the next layer to be printed - until all required layers are acheived on the object. Once this is
done, we turn off all gearing and terminate the process.
The appropriate program can be found in the APPENDIX section.
10
11
(number of parts per segment) and X the number of segments our image is composed of. We
can then write that for the fully-engaged mode:
Z = (Y X ) + (X 1)
(3.6)
Z = Y + (Y X )
(3.7)
We can now consider which printing mode will result in a shorter time, or overall revolutions
by our object to be printed on, to complete our printing. Let us remember that we perform
only whole-revolutions. Hence, for an image composed of 8, 9 or 10 sections in total, for
example, the number of revolutions performed will be the same. In the following Figure we
can confirm that, as in our example, for 2 segments per image with 4 revolutions to print a
single segment, the fully-engaged mode results in less overall number of revolutions to be
performed in order to print our image.
Figure 3.4: Number of revolutions required to print an image: usual versus fully-engaged
mode
12
4 T EST SLED
The Test-sled enables us to print on non-symmetrical objects, given its ability to move objects
in different directions. In order for us to print on tube-like objects, helical printing is used.
While our object moves linearly in the x-direction, it rotates in the y-direction; by controlling
the motion of the object with respect to what end result we require, this allows us to print on
the whole surface of the tube-like object in a fast and consistent manner.
Helical printing was used until this day in order to print on objects such as cans. Given their
profile, it was enough for the printing head to be placed statically on the printing machine,
while the object moved and rotated on itself. This obviously worked, due to the fact that the
distance between the printing head and the object itself did not change throughout the whole
process.
Taking a step further, and considering we want to print an object where its profile is not uniform: its radius would be varying, we need to consider yet another motion of our printing
system. It would be possible to think that placing the printhead far enough from the objects
largest radius could be enough to print on its whole length. Nevertheless, considering the
importance of the printheads placement with regards to the quality and end result obtained
- more specifically, the change of the inks characteristics when leaving the nozzles - we could
not expect a proper printing outcome.
A solution that was designed in order to compensate for this issue is placing the printhead on
a varying fixture. By fixing to it two linear motors side by side, the printhead is able to change
the height of its leading, or lagging, ends in order for it to induce a certain angle with respect
to the x-axis. By creating specific motion profiles for the required object to be printed on, this
enables the printhead to follow along the change of profile of the object itself. The distance
between the printhead and this object would now be homogeneous throughout the printing
process.
13
14
15
Constant
Value
d1
d2
OFFSET
x0
x1
Barrel Length
Length of Print
R1
R2
Home Position: z 1h
Home Position: z 2h
Distance from Home Centerline
Initial Print Height: Hi
20.955
56.642
2
0
100
211.68
600.08
866.394
1299.464
-1
-0.9
51.1
38.6225
The following calculated constants are all in mm, except the inflection angle , in degrees.
Again, what is important are the calculations - rather than the values themselves, which are
greatly dependent of the type of the bassebal bat considered.
Constant
Calculation
value
r1
r2
R 10
R 20
x2
x 30
x4
x5
d1
2
d2
2
12.4775
30.321
868.394
1297.464
7.35972
311.68
422.9199
589.1229
700.08
+ OFFSET
+ OFFSET
R 1 + OFFSET
R 2 + OFFSET
1 r 2 |
cos1 1|r
R 1 +R 2
Barrel Length + x 1
x 2 + R 10 sin
x 2 + (R 10 + R 20 ) sin
x 1 + Length of Print
AND z 2
ELEVATIONS
In order for us to implement a profile into the motors control software, we must create the
required motion. This includes taking into account dimensions and properties that are given
to us, such as the printheads characteristics, or the systems composition, and calculating the
angle the printheads should take at certain x-positions.
What we ultimately require, is the elevations of both motors in the z-direction, z 1 and z 2 , so
that a proper input is provided in order for the motion of the printhead to perform appropriately. In order to find the corresponding z-values for every corresponding x-positions, we
need to calculate several variables. The fixtures and bats physical dimensions were given in
the subsection before.
16
Looking at the baseball bat profile, we can devide it into four sections. The section of the
barrel, where it is straight; before x 2 . The section between x 2 and the inflection point x 30 . The
section between the inflection point x 30 and x 4 . And finally, the section of the handle, where
it is once again straight; after x 4 . It is natural that the printhead would be parallel to the xaxis at the barrels and handles sections. What we are more interested about, are the section
forming the "S-shape" of the bat.
Distance to hard stop of the system:
Distance to hard sensor:
Distance from rail:
0.773"
0.653"
1.371"
and
Offset to biggest bat:
Offset to smallest barrel:
Distance to handle:
0.058"
0.244"
0.946"
x2 +
70.5556
70.5556
< x i < x 30 +
2
2
0
x 2 < x mp < x 3
with
x mp = x i 35.278
x = x mp x 2
x
= si n 1 0
R1
(4.1)
So in order to achieve this angle, we need a change in the z axis for the specific motor
distance between pivots
= 40.64si n()
2
z 2 = 40.64si n()
z 1 = si n()
(4.2)
(4.3)
17
So
z 1i = Hi + (R 10 R 10 cos()) 40.64si n()
z 2i = Hi + (R 10 R 10 cos()) + 40.64si n()
(4.4)
Inflection point x 30
Since we know the angle at the inflection point to be , it is pretty straight forward to write
that on x = x 30 or x = inf,
Hi n f = Hi + (R 10 R 10 cos())
(4.5)
x 30 + 35.278 < x i
x 30
< x 4 + 35.278
< x mp < x 4
and
= si n 1
x 4 x mp
R 20
(4.6)
With
H = R 20 (cos() cos())
Hi mp = Hi + (R 10 R 10 cos()) + R 20 (cos() cos())
(4.7)
So that
z 1i = Hi + (R 10 R 10 cos()) + R 20 (cos() cos()) 40.64si n()
z 2i = Hi + (R 10 R 10 cos()) + R 20 (cos() cos()) + 40.64si n()
(4.8)
18
In order for us to draw the path of the printhead, we use conditional statements to create a
motion profile able to perform the appropriate printheads movement with respect to its location on the x-axis. Considering the printhead is having specific dimensions and that just
a fraction of is actually composed of nozzles, we need to take into account the avoidance of
crashes that could occur with the bat.
x mi d posi t i on , being the middle point of the printhead in the x-axis, will be given as an input
and allow us to calculate the necessary values of the elevations.
The reason we write down the possible path of the printhead in conditional statements is because it is the most forward and clear way we could present the calculation of the printheads
elevations providing the parameter values we obtained previously. The reader is advised to
follow the previous diagrams in order to fully understand the obtained results.
Data:
Result: Calculating , the angle formed by the z-axis and R 10 , considering the midpoint
x mi d as x-value
if x mi d > x 2 and x mi d x 30
then
si n 1 xmiRd 0x2
1
else
0
end
Data:
Result: Calculating , the angle formed by the z-axis and R 20 , considering the midpoint
x mi d as x-value
if x mi d > x 30 and x mi d x 4
then
mi d
si n 1 x4 x
R0
2
else
0
end
19
Data: Lx l ead i ng (l ag g i ng )
Result: Calculating Lx l ead i ng (l ag g i ng ) , the x-position of the printheads front and back
side, respectively
if x mi d > x 2 then
if x mi d > x 30 then
if x mi d > x 4 then
x mi d +()45.1
else
x mi d +()45.1 cos
end
else
x mi d +()45.1 cos
end
else
x mi d +()45.1
end
Data: l ead (l ag )
Result: Calculating l ead (l ag ) , the angle formed by the z-axis and R 20 , considering the
lead(lag) x-value
if Lx l ead (l ag ) > x 30 and Lx l ead (l ag ) < x 4
then
sin1
x 4 Lx l ead (l ag )
R 20
else
0
end
Data:
Result: Calculating , the angle formed by the z-axis and R 10 , considering the lag x-value
if x mi d > x 30 and Lx l ag > x 2 and Lx l ag < x 30
then
si n 1
Lx l ag x 2
R 10
else
0
end
20
Data:
Result: Calculating , the angle formed by the z-axis and R 10 , considering the lead x-value
if Lx l ead < x 30 and Lx l ead > x 2
then
x 2
si n 1 Lxl ead
R0
1
else
0
end
Data: Ly l ead (l ag )
Result: Calculating Ly l ead (l ag ) , the y-position of the printheads front and back ends,
respectively
if x mi d > x 30 then
if x mi d > x 4 then
DistanceFromHometoCenterline r 2
else
Hi R 10 (1 cos() R 20 (cos() cos())+()45.1si n
end
else
Hi R 10 (1 cos())+()45.1cos()
end
Data: Hl ead (l ag )
Result: Calculating Hl ead (l ag ) , the height of the lead(lag) end of the printhead
if Lx l ead (l ag ) > x 30 then
Hi R 10 (1 cos()) R 20 (cos(l ead (l ag ) ) cos())
else
Hi R 10 (1 cos())
end
21
Data: z 1(2)
Result: Calculating z 1(2) , the necessary z-value for the first, and second, motors
if x mi d < x 2 then
Hi
else
if x mi d < x 30 then
Hi R 10 (1 cos())+()40.64si n()
else
if x mi d < x 4 then
Hi R 10 (1 cos()) R 20 (cos() cos())+()40.64si n()
else
Hi + (r 1 r 2 )
end
end
end
22
Figure 4.4: Motion profile of the printhead following the curve of a basseball bat
23
24
our image. When all layers have been successfully printed, we clear all previously used flags,
home the stepper motors and turn all gears off.
As we can observe, the main issue and limitation of coding CAM motion in ACR-Basic is hardcoding the CAM table into the program. It would be of more ease to be able to refer to this
CAM table written in an Excel table, for example, so that changing the required motion with
respect to a specific baseball bat would be of less work. Unfortunately, ACR-Basic does not
allow us to do so.
Furthermore, ACR-Basic does not seem to be a user-friendly language code to write. The
use of Bits and Parameters in order to define our actions are slowing coding speed dramatically. Due to this, and in combination to many more downsides of the coding language, it
was decided that the company will slowly shift into a different controller so that a better programming platform can be used. Mostly, and most importantly, the IEC 61131-3 standard for
programmable logic controllers would need to be available.
The appropriate program can be found in the APPENDIX section.
25
5 C ONCLUSION
Receiving background knowledge on the ink used in the printing systems I worked with was
of vital importance. There is a great deal in understanding the process of ink-jets and printheads functionality when dealing with motion required to print an image on a substrate in
a consistent and appropriate manner. The values and features of the end-user products are
a result of many parameters: the quality of the ink used, the technologies of the hardware
mechanisms, the algorithms used for the nozzles jet control, the precision and robustness of
the motions of the system and many more.
Being responsible of the motion created by the substrate, and printhead, thanks to multi-axis
systems was just a cog in a very complex mechanism in order to print an image on an object.
It was important, at first, to make sure all considered parameters in our motion profiles are
correctly tuned on our systems. This allowed us later for better systems performance. Dealing with the systems controllers and defining correct input for the gearing trains and power
transmissions was as important as carefully tuning the PID gains, considering specific requirements, for the control algorithm used. Following, it was possible to create motion sequences.
Homing routines allowed us to return loads, such as the printhead, to a repeatable starting
location. The controller sets the absolute position register to zero when home was reached,
and allowed us for determined use of absolute motion with respect to a reference position. It
was vital to properly code those routines, as every sequence of motions was later on beginning with those.
The motion sequences for the printing programs of the CMMP and Test-Sled involved the use
of parameters obtained from external C-sharp programs. Specific velocity profiles, starting
positions, motion requirements are all inherited from programs relating the printing mode,
images end-product needs and functionality of the printhead/nozzles. Using those, we were
able to create the necessary linear and non-linear motion sequences on those two multi-axis
systems. And, whereas some sequences were straightforward, when dealing with more complex objects to be printed on some elaborated calculations were needed.
After dealing with the controllers interface, ACR-View, it was possible to observe the complexity of coding those motion sequences. After long research, and compatibility check with
the already existing servo-motors available on both our systems, we were able to find a more
suited systems implementation that will both fulfill the requirements for the motions of our
systems, as well as ease their future use.
Instead of the use of the ACR-9000 EPL controller, combined with the Aries-EPL drives on
both of our systems - a combination of the Compax3 drive from Parker-Hannifin with the
MC4N-Mini Ethercat Master controller from TRIO Motion Technology was decided to be implemented on the systems next. This would allow the future coding of the motions of the
different axis on our systems to be done in MotionPerfects interface, a much more straightforward and thoroughgoing platform to deal with introducing the IEC 61131-3 standard for
programmable logic controllers.
26
6 A PPENDIX
6.1 H OMING ROUTINE OF LINEAR A XIS ON THE CMMP
PROGRAM
DETACH : REM cancels the previous created master and slave attachments
ATTACH MASTER2
PPU AXIS0 1000 : REM sets the pulses per programming unit (PPU) for axis
CLR 522 : REM clear MASTER0 KAMR
AXIS0 DRIVE ON
DWL .25 : REM dwell time
AXIS0 JOG ACC(200) : REM defining JOG settings
AXIS0 JOG DEC(200)
AXIS0 JOG VEL(50)
AXIS0 JOG HOMVF (5)
AXIS0 JOG HOME -1
WHILE (NOT BIT16134 AND NOT BIT16135) : REM status flag of Found Home and Failed
to find Home of AXIS0
WEND
IF (BIT16135)
PRINT "Homing failed"
ELSE
PRINT "Homing Axis0 Succeeded"
HomedRightLinear = 1
END IF
ENDP
27
28
29
30
6.4 H OMING ROUTING FOR THE MANEUVERABLE PRINTHEAD ON THE T EST-S LED
PROGRAM
SET 5651 : Rem Line numbers
DETACH
CLR 8467 : REM kill motion request of the four Axis
CLR 8499
CLR 8531
CLR 8563
CLR 522 : REM kill moves of Axis0
HEADHOMED=0
31
REM P11=0
AXIS2 jog vel 10
AXIS2 jog acc 1000
AXIS2 jog dec 1000
AXIS3 jog vel 10
AXIS3 jog acc 1000
AXIS3 jog dec 1000
SET 8528 : REM make ACR run stepper Axis 2 in CW / CCW mode
SET 8560 : REM make ACR run stepper AXIS 3 in CW / CCW mode
AXIS2 DRIVE ON
AXIS3 DRIVE ON
AXIS2 JOG HOMVF .5
AXIS3 JOG HOMVF .5
CLR 16198 : REM clear flag Found Home
CLR 16230 : REM clear homed flag
CLR 16216 : REM backup to home disabled - clear Home Backup Enable
CLR 16248 : REM backup to home disabled
CLR 16218 : REM final direction positive - clear Home Negative Final Direction
CLR 16250 : REM final direction positive
CLR 16217 : REM positive edge - clear Home Negative Edge Select
CLR 16249 : REM positive edge
PRINT "HOMING AXIS2 AXIS 3"
AXIS2 JOG HOME -1
AXIS3 JOG HOME -1
WHILE (NOT BIT 16198 OR NOT BIT 16230)
IF (BIT16199 OR BIT16231)
PRINT "HOMING FAILED"
HEADHOMED=0
REM P11=0
ENDIF
WEND
32
ENDP
33
34
ENDIF
WHILE (BIT(144+LV1)=0) : REM BIT144 BIT151 reserved as ready to go for each layer
WEND
PRINT "Turn rotary drive on"
IF (BIT8497=0)
AXIS1 DRIVE ON
DWL 1.0
ENDIF
IF (BIT(228+LV1)) : REM BIT228 BIT135 reserved as lamp ON/OFF for each layer
SET 3842 : SET 3843 : REM EPLD0 output 2 and 3 for uv lamp
ELSE
CLR 3842 : CLR 3843
ENDIF
: REM CAM profile
SET 5651 : REM line number when listing program
jog vel Z 10
jog acc Z 5000
jog dec Z 5000
jog vel A 10
jog acc A 5000
jog dec A 5000
SET 8528 : REM make ACR run stepper Z axis in CW/CCW mode
SET 8560 : REM make ACR run stepper A axis in CW/CCW mode
JOG ABS Z38.6225 A38.6225 : REM Initial print height = Distance from home to centerline (51.1) - r1 (12.4775)
INH -856 : REM wait while JOG active Z axis
INH -888 : REM wait while JOG active A axis
: REM distance in array is in (mm * 1000)
: REM Z Axis2 array
DIM LA(4)
DIM LA0(2)
LA0(0)=0
35
LA0(1)=0
DIM LA1(325)
LA1(0)=0
LA1(1)=0
LA1(2)=0
.
. Copy/paste calculated values from Excel file
.
LA1(323)=-178396
LA1(324)=-178435
: REM A Axis3 array
DIM LA2(2)
LA2(0)=-178435
LA2(1)=-178435
DIM LA3(325)
LA3(0)=0
LA3(1)=-1
LA3(2)=-10
.
. Copy/paste calculated values from Excel file
.
LA3(323)=-178473
LA3(324)=-178435
: REM CAM axis PPU is 16 000
: REM SEG distance is the distance in (mm * PPU) of the source axis (1000)
: REM SEG distance must equal the total distance of the source move
CAM DIM Z3
CAM DIM A3 : REM allocate cam segments - 3 cam segments
CAM SEG Z(0,50000,LA0) : REM define cam segments - 266 mm X 1000
CAM SEG Z(1,324000,LA1) : REM 324 mm X 1000
CAM SEG Z(2,59000,LA2) : REM 115 mm X 1000
CAM SEG A(0,50000,LA0)
CAM SEG A(1,324000,LA3)
CAM SEG A(2,59000,LA2)
CAM SCALE Z(1/10000) A(1/10000) : REM CAM output scaling (mm)
PRINT "SET CAM SOURCE"
36
37
38
INH -888
AXIS2 JOG RES
AXIS3 JOG RES
AXIS2 JOG REN
AXIS3 JOG REN
AXIS2 RES
AXIS3 RES
GEAR OFF X
INH -789 : REM wait until gear off
CLR 16132 : REM Clear +Hard Limit Encountered
CLR 8467 : REM Clear AXIS0 KAMR
CLR 522 : REM Clear MASTER0 KAMR
IF (BIT8465=0)
DRIVE ON X
DWL 1.0
ENDIF
X(-1850)
INH -516
INH -824 : REM wait until rotary jog off
HALT PROG1
HALT PROG4
ENDP
39
IF (NOT BIT16649)
EPLC OFF : REM reset EPL network
SET ResetEPLNetwork : REM set reset EPL network latched bit
INH -16657 : REM inh until EPL network resets
EPLC ON : REM start it again
INH -16656 : REM inh program until start EPL network has finished
ENDIF
IF ((NOT BIT16649) AND (ResetEPLNetwork))
PRINT "EPL network problem occurred."
HALT
ENDIF
: REM Homing Z-AXIS
_HOMEZ
DRIVE ON Z
JOG VEL Z200 : REM set axes jog parameters used during homing
JOG ACC Z2000
JOG DEC Z2000
HLBIT Z3328 : REM assign hardware limit
HLIM Z3 : REM enable end-of-travel limit checking for Z axis
JOG HOMVF Z40 : REM Set backup to home velocity
REM SET 16208 SET 16209 : REM invert axis2 level of limit inputs
SET 16216 : REM disable backup to home
CLR 16217 : REM look for positive edge of sensor
CLR 16218 : REM final homing direction will be positive
JOG HOME Z1
WHILE (((NOT BIT16198) AND (NOT BIT16199))) : REM stay in this loop until axis2 has
either passed or failed homing process
WEND
REM IF (BIT16199) THEN
REM PRINT "HOME FAILED"
REM HALT
REM END IF
PRINT "HOME ROUTINE COMPLETE"
_MAIN
VEL 330
Z 400 : REM move to print pos.
INH-516 : wait for motion to complete
40
PRINT "Done"
INH 31 : REM wait for input bit 31
PRINT "Done2"
DWL 1
DAC1 OFFSET -10 : REM se lamp intensity, DAC1 offset to 10 Volts - negative numbers
for positive output
CLR 8500 : REM clear the enable drive I/O flag to allow setting the state of direct I/O
commands
PRINT P38144
Z -30 : REM move to final pos.
IHPOS -P38144(250000,0) : REM inh execution until given setpoint (in PPU) is reached
PRINT P38144
SET 41 : REM turn on lamp to output0
INH-516 : REM wait for motion to complete
CLR 41 : REM turn off lamp
Z 400 : REM move to start position
INH -516 : REM wait for motion to complete
GOTO MAIN
ENDP
41
R EFERENCES
[1] E. Knight, C. Lynn, Industrial Inkjet For Dummies, XAAR Special Edition, WileyPublishing, Inc., 2010. ISBN: 978-0-470-92047-3
[2] INX Internation Ink Co., PM3 Servicing, Troubleshooting and Tech Training, July 2015.
[3] Parker Hannifin Co., ACR Programmers Guide, July 2010. Version: 88-028698-01D
[4] Parker Hannifin Co., ACR Command Language Reference, July 2010. Version: 88-02560401H
[5] Parker Hannifin Co., ACR Parameter and Bit Reference, July 2010. Version: 88-02560501H
[6] Parker Hannifin Co., Aries EPL Hardware Installation Guide, October 2008. Version: 88027024-01B
[7] Parker Hannifin Co., Aries User Guide, September 2008. Version: 88-021610-01G
42