Вы находитесь на странице: 1из 157

Everything for Filament Winding

Official Training Manual for


McClean Anderson’s Composite Software Suite
Composite Designer – Pattern Entry
Omniwind – Machine Operation
Contact Information:

McClean Anderson
300 Ross Avenue
Schofield, WI
54476-0020
USA

Phone: +1 (715) 355-3006


Fax: +1 (715) 359-0900

On the Web: www.mccleananderson.com


Email: sales@mccleananderson.com

© 2004 McClean Anderson Inc., All Rights Reserved. All information contained in this
document is believed accurate at the time of printing. All trademarks belong to their
respective owners. Important note: this manual contains confidential technical information
on McClean Anderson software and control systems and is only intended for use by McClean
Anderson customers for the operation of our machines. Disclosure of this information to third
parties is prohibited without express written consent from McClean Anderson.
Table of Contents
1. What is Filament Winding? .............................................................................................. 1
2. Some Filament Winding Basics........................................................................................ 3
3. Composite Designer Overview ......................................................................................... 6
4. Installing and Starting-up Composite Designer................................................................ 8
4.1. Installation with hardware based protection key ...................................................... 8
4.2. Installation with software based protection key........................................................ 8
4.3. Additional configuration........................................................................................... 9
5. Introduction to Composite Designer Interface................................................................ 10
5.1. Toolbar Reference................................................................................................... 11
5.2. File Extension Reference ........................................................................................ 12
6. Helical Winds.................................................................................................................. 13
6.1. Defining the helical wind parameters ..................................................................... 13
6.2. Wind Pattern Selection ........................................................................................... 16
7. Circumferential Winds.................................................................................................... 20
8. Bottle Winds ................................................................................................................... 22
8.1. Defining the bottle wind parameters....................................................................... 22
8.2. Wind Pattern Selection ........................................................................................... 26
9. Zero Degree Winds ......................................................................................................... 30
10. Non-linear Winds........................................................................................................ 32
10.1. Mandrel Editing .................................................................................................. 35
10.2. Path selection ...................................................................................................... 37
11. Visual Rendering ........................................................................................................ 41
12. Motion Generation ...................................................................................................... 44
12.1. Machine Offsets – setting key reference locations ............................................. 45
12.2. Motion Generation Options – selecting axis behavior........................................ 46
12.3. Segment Flags – for file chaining ....................................................................... 47
12.4. Motion Generation Information – for tooling clearance..................................... 47
12.5. Machine Velocities – establishing the rate envelope.......................................... 49
13. Motion Editing ............................................................................................................ 52
13.1. Overview of motion generation process ............................................................. 52
13.2. Motion Editing, first steps................................................................................... 53
13.3. Additional Viewing and Editing Commands...................................................... 58
13.4. Direct Motion Generation ................................................................................... 63
13.5. Motion Table Editing.......................................................................................... 63
13.6. Spreadsheet Table Functionality......................................................................... 66
13.7. Inserting motion via the table ............................................................................. 68
13.8. Merging Motion Files and Manual Chaining...................................................... 70
14. Motion Filtering .......................................................................................................... 73
14.1. Initial Filter Parameter Entry .............................................................................. 73
14.2. Additional Filter Parameters ............................................................................... 78
14.3. Advanced Filter Parameters................................................................................ 80
14.4. Using Excel® to Graph and Compare Filtered Motion ...................................... 84
14.5. Chain File Filtering Issues .................................................................................. 86
14.6. Some Tips on Motion Smoothing ....................................................................... 87
15. Chain / Transition Files............................................................................................... 89
15.1. Transition Motion Files....................................................................................... 90
15.2. Transition Path Files ........................................................................................... 91
15.3. Do Not Transition option .................................................................................... 92
15.4. Chain File Tips and Troubleshooting ................................................................. 93
16. Auxiliary Output Files ................................................................................................ 94
16.1. Digital Auxiliary Outputs ................................................................................... 95
16.2. Analog Auxiliary Outputs................................................................................... 97
16.3. Use of Timers...................................................................................................... 98
16.4. Final notes on auxiliary outputs.......................................................................... 99
17. Omniwind ................................................................................................................. 101
17.1. Installation issues, startup, user accounts ......................................................... 101
17.2. Software/User Interface Overview ................................................................... 104
17.3. Initial Machine Motion ..................................................................................... 108
17.4. Loading and Executing Files ............................................................................ 111
17.5. Manual Operation/Jogging and Manual Offset................................................. 113
17.6. Use of Offsets ................................................................................................... 114
17.7. Shutting Down .................................................................................................. 115
17.8. Light Tower ...................................................................................................... 116
17.9. Additional Programming Features / Configuration .......................................... 116
17.10. Interfacing to Tensioner and Dr. Blade............................................................. 120
17.11. Troubleshooting ................................................................................................ 122
17.12. Advanced Troubleshooting............................................................................... 123
18. Digital Tensioning .................................................................................................... 129
18.1. Safety ................................................................................................................ 129
18.2. Tensioner Overview.......................................................................................... 130
18.3. Basic Tensioner Operation................................................................................ 132
18.4. Advanced Tensioner Controls........................................................................... 134
18.5. Automated Operation with Omniwind.............................................................. 136
18.6. Troubleshooting ................................................................................................ 137
18.7. Tensioner Command Table............................................................................... 139
19. Digital Dr. Blade....................................................................................................... 142
19.1. Basic Operation................................................................................................. 142
19.2. Dr. Blade Command List .................................................................................. 144
19.3. Gain Adjustment ............................................................................................... 144
19.4. Automated Operation with Omniwind.............................................................. 144
19.5. Trouble Shooting .............................................................................................. 145
20. Coordinator Software................................................................................................ 146
A. Verifying Part Coverage and Pattern Closure............................................................... 151
1. What is Filament Winding?

While the typical attendee of this course is already


familiar with the concept of filament winding, a basic
overview of the process can help to clarify the steps
needed to take a product from conception to a fully
functional parts program.

In filament winding, a machine, rather like a lathe, spins a


mandrel. In synchronization with this, the machine moves
one or more additional axes in order to wind a composite
material such as a fiberglass, carbon fiber, or Kevlar over
the surface of this mandrel in a very precise, controlled
manner. The material can be dry wound, a prepreg or run
through a resin bath for wet winding applications. Once
the desired number of layers have been laid on the
mandrel, the part is cured and depending on the process,
the mandrel either becomes part of the final product (such
as plastic water tanks) or is removed – generally using
force or by chemical or physical destruction of the
mandrel.

Unlike typical machining (e.g. milling, lathing…), the


Figure 1 – a filament wound bottle motion of the machine itself does not directly correspond
to part being produced. Instead, a fiber payout system
guides the fiber while moving at some clearance from the mandrel surface. Tension in the
system naturally causes the fiber to assume a tangential path from a contact point on the
surface of the part to a contact point in the payout system.

When this tension is exactly along the current position and orientation of the fiber at the
surface of the part (i.e. longitudinal or fiber-axial force), then the machine is performing a
geodesic wind. Imagine putting a string on the surface of a globe – if the string is pulled
tight, the tension will also cause it to follow this same geodesic path – it is the shortest path
across the surface of a convex curve.

In real filament winding, the desired fiber weave is rarely geodesic, so the path must be
deflected from a pure geodesic one. These lateral forces require some degree of friction
between the fiber and the surface of the mandrel or part, otherwise the fiber will slip.
Alternatively, additional devices such as pin-rings can be mounted on the surface of the
mandrel to assist with fiber-guidance and control slippage. This is one of the key issues to be
considered when creating a filament wound part – in essence can this part be filament
wound?

1
That question does not have a simple answer – although there are many practical experiences
which show that fairly complex parts can be successfully wound. In addition to the mandrel
surface, the designer should also consider the effects of wind angle and resulting pattern
when considering if a part can be wound. In general, parts / patterns with the following traits
are easily wound:
- Symmetrical about an axis of rotation (which would become the mandrel axis). In
many cases, asymmetrical parts can also be wound, although they may require
significantly more complex programming.
- Convex surface curvature (note that only the curvature seen by the fiber is relevant, a
curve which is concave when examined from a particular fiber angle may disappear
or become convex at a different angle). Fibers will naturally bridge concave curves.
- No abrupt changes in angle – these tend to lead towards fiber slippages – an
alternative is to use pin-rings.

The vast majority of filament wound parts are variations of cylinders, domes, and cones, and
occasionally other 3-D projections of simple 2-D surfaces such as squares or other polygons.
In some cases, more complex, asymmetrical 2-D surfaces are projected along a 3rd axis and
wound such as helicopter blades. Finally, with very sophisticated control, non-axisymmetric
parts can also be wound such as elbows and T-junctions, although at present, Composite
Designer does not support such designs.

2
2. Some Filament Winding Basics
In this course, we will cover the capabilities of Composite Designer for generating a wide
variety of parts programs. To begin, here is a picture showing the basic components of a
filament winder in operation.

Figure 2 – Picture of filament winder in operation. The large yellow cabinet is a tensioning system
which moves in tandem with the carriage.

The machine and mandrel are fairly obvious components. On the left side is the operator
panel. Behind the machine is a fiber tensioning system or simply a tensioner. For less
demanding applications, various friction-based systems (possibly as simple as winding the
fiber through multiple eyelets) are used instead to increase tension. In general, multiple fiber
tows will be fed off of fiber creels, flow through various guides, through a resin dispenser (if
wet-winding; generally a resin bath or drum), and out of a payout system (generally one or
more fiber combs and a D-ring or rollers) onto the mandrel itself.

This group of fibers together forms one fiber bandwidth. Note that effective bandwidth
often varies from the sum of the nominal fiber bandwidths, and that this further varies
depending on the fiber payout system, the fiber angle and the radius of curvature of the
mandrel (the lower the angle and the smaller the part radius, the smaller the effective
bandwidth as the fibers tend to bunch up). Often, the designer will need to actually measure
the resulting bandwidth and use this in a further design iteration when generating a parts
program – particularly if it is critical for a pattern to “close”. A “closed” pattern will
completely cover a mandrel, leaving no gaps between fibers. The machine operator may also

3
adjust aspects of the payout system such as the placement and routing of fibers through fiber
combs.

Figure 3 – Simple representation of fiber bandwidth

Figure 4 – Definition of fiber bandwidth on surface of mandrel


Already “fiber angle” has been mentioned several times – this is the angle between the
fiber’s orientation at the surface of the mandrel and an intersecting surface line that is parallel
to the mandrel’s axis of rotation. By this convention, a “low-angle wind” is one which
approaches the mandrel axis (if the mandrel were a globe, a zero-angle wind would be from
pole-to-pole – parallel to lines of longitude – and is therefore also called a polar wind). A
“high-angle wind” is one which approaches the perpendicular of the mandrel axis and winds
the mandrel like a spool (returning to the globe example, a 90-deg angle wind would be like
wrapping around the equator, or parallel to lines of latitude). Figure 6 makes this point.

4
Figure 5 – Definition of fiber angle

Figure 6 – examples of high- and low-angle winds. The high-angle wind is on the left.
The basic design parameters of bandwidth and fiber angle will appear again and again when
generating a filament wound part.

5
3. Composite Designer Overview
When generating Composite Designer part programs, users tend to follow the same basic
sequence of steps:

Step 1:
Select appropriate mandrel geometry. At present, Composite Designer supports the following
geometry types:
A circumferential wind is a near-90-deg wind where for every revolution of the mandrel,
the carriage advances along the mandrel axis by one bandwidth, essentially wrapping the
mandrel.
In a helical wind, the carriage moves at a much higher rate, with controlled acceleration,
deceleration, and fixed velocity sections to obtain various helical patterns on the surface of
the mandrel. The helical and circumferential winds are commonly used for pipes/cylinders
and other 3-D projections of 2-D surfaces.
In a bottle wind, a dome is added to both ends of the mandrel and the axes combine to form
much more complex motion as the fiber is laid at a particular angle over the cylindrical bottle
section and then changes into an appropriate near-geodesic path over the domes.
A non-linear wind allows for a much greater degree of flexibility by allowing the designer
to specify essentially any longitudinal mandrel profile, which is then revolved around the
mandrel’s axis to form the 3-D mandrel (i.e. it specifies radius against position along mandrel
axis). Furthermore, the designer can specify different wind angles at different positions along
the axis. Of course, as has been mentioned, not all profiles and fiber angles are well suited to
being wound.
A chain-wind is formed by combining any of the above winds into a single motion program
– this is useful to increase machine productivity and in many cases, to provide a smooth fiber
path to transition from one segment to the next.
A zero-degree wind is somewhat unique in that it directly specifies machine motion rather
than part geometry. It is used for specialized applications in which a true-zero degree fiber
angle is required.

Step 2:
Enter basic part information. This will vary from part geometry to part geometry and is
covered in the subsequent sections. This also includes basic wind parameters such as
bandwidth and fiber angle.

Step 3:
Use this information to generate a fiber path. Once Composite Designer is given all the
necessary information, it will use this to generate a listing of paths that correspond to the
given inputs. These paths will vary by minor differences in the input parameters, which will
result in different wind patterns and other physical wind characteristics. The user can study
and sort these various possible paths and select the path he/she feels will best match the
design at hand. In some cases, the user will need to iterate this and try the following steps
several times to establish a stable or more optimal path.

6
Step 4:
Examine the resulting path. Composite Designer includes powerful 3-D parts rendering to
assist the user in visualizing the final part.

Step 5:
Enter machine motion parameters. Here the user will establish the desired clearances the
machine should maintain from the surface of the part, along with determining various types
of envelopes to control machine motion.

Steps 6 and 7:
Examine and tweak the resulting motion. Particularly with complex parts such as bottles, the
resulting motion may require some user-assisted post-processing to improve machine
performance and smooth any spikes in machine motion.

Execute the program. In some cases, this may be done prior to any motion post-processing
since the user may first wish to establish if a particular path is stable.

As mentioned above, the user may need to perform a few design iterations between steps 3
and 7 (and possibly 2). Also, generating chain files is a somewhat more complex sequence of
events involving generating and testing individual segments and then combining these and
performing some additional tweaking.

Once these steps have been completed, the designer should have a viable parts program,
which is well suited to generating the desired component. As the designer gains experience,
the process will become more rapid and he/she will gain insight into critical design
parameters and often be able to quickly form judgments ranging from determining if a part is
well suited to filament winding, to selecting the appropriate wind parameters.

In the subsequent sections, we will cover the generation of each category of Composite
Designer parts programs.

A few formatting notes of this manual:


- Filename extensions are shown in italics: mct, hlx, etc.
- Menu navigation is shown in Arial with menu layers indicated by a vertical bar:
File | Open… indicates the user should use the mouse to click on the File menu
heading and then the Open… submenu heading.

7
4. Installing and Starting-up Composite Designer
For regular users, starting up Composite Designer (from here on labeled CD) is as simple as
clicking on its icon. However, first time users and those in special circumstances need to be
aware of program installation and configuration.

4.1. Installation with hardware based protection key


The latest version of CD uses a hardware based software protection key to prevent
unauthorized program distribution (also known as a “dongle”). Two different key versions
are available – one for the printer/parallel port (which includes a “pass through” port for
printing), and one for the USB port. They implement the same function and are
interchangeable.

Installing the software requires the user to log into the given computer with administrator
privileges (for network operating systems such as Windows ® NT, 2000, or XP). Make sure
that no hardware key is installed. Then use a program like Windows Explorer to navigate to
the appropriate installation program (generally the file path is something like:
“\\Composite Designer X.X\Disk1\Setup.exe” – where \\ is the location/letter of the drive and
X.X is the current version number). The setup program is very similar to most Windows®
installation software. Note that the installation package will install both Composite Designer
and the drivers for the hardware key (from Rainbow® technologies). When upgrading, it is
recommended that both Composite Designer and the hardware key drivers be uninstalled
before upgrading to the newer version (using the standard Windows uninstall methods).

Before running the software for the first time, remember to plug in the hardware key.

4.2. Installation with software based protection key


Earlier versions of CD use a software based protection key. Installation is similar to the
method described above (again, the installation should be done via an administrator account).
During installation, the user will be requested to enter a machine number – this should have
the format: X###### - there X is a letter, typically J for job number, and # is a numeral. The
first 4 digits of this number are the machine’s serial number while the last 2 digits are used to
describe the current software version (e.g. J123412 would be machine #1234 with software
version 1.2). The actual number entered – particularly the version number – is not absolutely
critical, although it will assist McClean Anderson staff when registering the software.

When CD is run for the first time, a registration screen appears asking the user to enter a
software registration key. Users should contact McClean Anderson to obtain this key. Note
that the software should also be run with administrator privileges when entering this software
key as well. Once the software is unlocked, any user of the PC can run it.

As with the hardware key version, users are requested to uninstall previous versions before
installing newer ones.

8
4.3. Additional configuration
Before CD can generate machine motion programs, it needs to obtain the parameters of the
machine that will execute the program. These are stored in .mct files. Each machine built is
given a specific mct file, which is given the name of the machine’s serial number (e.g.
“j1234.mct”). When executing CD for the first time, or in a facility which has different types
of McClean Anderson winders, users need to select the machine for which they wish to
produce motion. This choice remains until a new mct file is selected. To select an mct file,
use the menu entry: Options | Current MCT File… This will bring the user to a file dialog
box where they can select an appropriate mct file.

9
5. Introduction to Composite Designer Interface
Composite Designer (CD) has a user interface, which should be familiar to users of Windows
applications. Program control is provided through a set of menus and quick access to specific
tasks is achieved through use of a toolbar and, in some cases, keyboard commands. Figure 7
is a picture of CD displaying various aspects of parts programming.

Figure 7 - Typical Composite Designer Screen. At top, the menu bar and tool bar are visible. In the
main window, the following windows related to a particular bottle wind are shown clockwise from top
left: Winding parameter dialog box, Motion graph, Wind pattern selection dialog, and 3-D rendering
of wound bottle.
These individual windows will be covered in subsequent sections. The menus and toolbars
are largely fixed, although items become enabled and disabled based on the active window.
Some buttons, such as file access, are generally available while some are specific to various
portions of the editing process. The following reference of toolbar functions is taken from the
CD help file and can be referred back to when covering other portions of this training. It is
followed by a reference of the various file extensions (suffixes) generated and used by CD.

10
5.1. Toolbar Reference

The Toolbar is a row of buttons at the top of the main window that represent Composite
Designer application commands. Clicking one of the buttons is a quick alternative to
choosing a command from the menu. Buttons on the toolbar activate and deactivate
according to the state of the application. The toolbar itself may be moved with the mouse
and left as a floating palette, or docked to any edge of the main window.

Button Action Menu Equivalent


Create a new wind module File | New
Locate and open a wind module File | Open
Save the current wind module File | Save
Cut selected text to clipboard
Copy selected text or current view
to Clipboard
Paste text from Clipboard
Reject current edit operation Calculate | Discard New Dataset
Accept current edit operation Calculate | Accept New Dataset
Terminate the current fiber View | Stop Fiber Plot
rendering
Enable mouse pointer to select View | Zoom Menu | Zoom Window
zoom range
Show previous zoom window View | Zoom Menu | Zoom Previous
Show full dataset View | Zoom Menu | Zoom All
Scroll zoomed window left 10% View | Zoom Menu | Scroll Left
Scroll zoomed window right 10% View | Zoom Menu | Scroll Right
Set mouse pointer to insert data Calculate | Insert Points
points
Delete selected dataset range Calculate | Add Points
Display help file contents Help | Contents
Table 1 – description of toolbar buttons

11
5.2. File Extension Reference
Composite Designer generates and uses quite a few different files. This is a brief synopsis of
each file extension:

Extension Description
.ang an angle definition file, used to establish fiber angle and/or wind start
and end points for non-linear winds
.aux an auxiliary output file, used to control Omniwind in tandem with a
motion file to define conditions for controlling auxiliary outputs
.bld a compiled Dr. Blade control file – generated by Coordinator
.btl a bottle wind parameter file
.chn a chained motion file, consisting of more than one segment (i.e. several
.mmt files chained together to allow the machine operator to lay down
multiple layers in a single sequence)
.cir a circumferential wind parameter file
.cts a chained segment file used by the older Compositrak series machines
.ctw a chain transition wind used to chain multiple parameter files together to
produce a chained path-based or motion-based compound motion file
.gen a general wind parameter file, used to store the parameters of a non-
linear wind
.hlx a helical wind parameter file
.mct a machine configuration file. mct files are provided by McClean Anderson
for each built machine and used by CD to obtain information on the
machine to be controlled
.mdf a mandrel definition file, generated any time a fiber path is created;
describes the geometry of the given mandrel; useful as a starting point
for non-linear winds
.mfp motion filter parameters – keeps track of filtering parameters
corresponding to current motion file
.mmt a simple machine motion file, consisting of only one segment
.pth a path file; essentially a list of sequential coordinates describing a single
circuit of fiber path across the surface of a mandrel; used when
generating motion and for 3D rendering purposes
.seg a segment motion file used by the Compositrak series machines; not
specifically covered in this guide.
.ten a compiled digital tensioner control file – generated by Coordinator
.tre a raw text tensioner or Dr. Blade control file – generated by Coordinator
.zro a zero degree wind parameter file
Table 2 – listing of file extensions used and/or created by Composite Designer
Note: parameter files (e.g. hlx) contain the initial parameters entered by the user but no
solution information such as a fiber path, mandrel definition, or machine motion, hence they
are very compact.

12
6. Helical Winds
In this section, we will cover the first steps of generating a helical part – one of the most
common types of filament windings. Subsequent sections will cover the steps for generating
other part shapes as well as motion generation and machine control.

Once Composite Designer (CD) is opened and properly initialized as described in previous
sections, the user can begin parts entry.

6.1. Defining the helical wind parameters


To begin programming a new part, simply select the File | New menu option (or the
toolbar button). This brings up a pop-up menu allowing the user to decide which type of file
they wish to create. We will select Helical Wind from the pop-up menu.

This brings up the following dialog box:

Figure 8 - Helical wind parameter dialog box.

This dialog box allows the user to specify the various relevant parameters for the wind. Each
parameter is covered in turn in the following paragraphs.

The first two parameters (Fiber Start Position and Fiber End Position) describe the
location at which the Helical fiber path begins and ends. Note - these locations are relative to
the Mandrel Origin, are not bandwidth compensated (i.e. they describe the fiber center line),
and may be located at any position along the mandrel. Figure 9 shows these key mandrel
locations. Also, the wind may begin at either end of the mandrel. If the fiber start position has
a larger value than fiber end, then the wind would begin at the far side of the mandrel, away
from the headstock. However, the recommended way to reverse the wind is during path
selection (after pressing the Calculate button – see page 19).

13
Figure 9 – Various key mandrel points

The next parameter, Mandrel Diameter, is straightforward. Figure 10 shows its definition.

Figure 10 – Mandrel diameter

Turnaround Range describes the region over which the helical fiber path is allowed to
transition from the desired fiber angle towards 90 degrees. This range is also referred to as
an acceleration range because it affects the rate at which the carriage axis is required to
change directions for the given pattern. Over this distance, the carriage accelerates from zero
to the programmed speed and vice versa. It is recommended that at least one (1) inch of
linear range be used for every 20 FPM of carriage speed.

Since there is no program feedback as to the stability of a given helical wind path,
experimentation may be required to produce a stable wind pattern. Stability is affected by
many different parameters: mandrel/fiber and fiber/fiber friction (higher friction coefficients
reduce turnaround range requirements), mandrel diameter (larger diameters increase
turnaround requirements), and fiber angle (higher angles reduce turnaround requirements).
Increasing turnaround range will improve stability, at a cost of a larger part – potentially
wasting fiber. Its value should generally be significantly less than ½ the distance between the
fiber starting and ending positions (at ½ this figure, the entire helix would consist of
turnaround and no region of constant fiber angle would exist). Figure 11 defines this
parameter.

14
Figure 11 – shows the definition of turnaround range on a typical helical mandrel.

The next parameters to be specified are Fiber Angle and Fiber Bandwidth. These
parameters were defined in section 2. In general, the larger the bandwidth, the faster the part
is completed (fewer strokes are required). Fiber angle is one of the critical design parameters
of any composite part. Unlike metals and other homogenous substances, the characteristics of
composite materials are not the same in all orientations – generally, they exhibit much higher
strengths in the directions of fibers. Hence a high-pressure cylinder would generally want a
high-angle wind since this effectively aligns the fibers against pressure forces, while a
structural post would typically be at a much lower angle for effective strength against
bending. These basic concepts only scratch the surface of composite engineering. A detailed
analysis on how to select wind angles and similar parameters is far beyond the scope of this
booklet. The reader is advised to consult composite literature1.

End Dwell describes the number of degrees of mandrel rotation while the carriage waits at
the end of a stroke. In a single stroke, the carriage accelerates to attain the selected fiber
angle, maintains constant velocity while depositing fiber at the selected angle, decelerates to
zero velocity, and then maintains constant position while the mandrel continues to rotate
through this end dwell parameter, before starting the return trip to the opposite end of the
part. In many respects, end dwell complements turnaround range – they both affect how
stable a path is likely to be. It also affects the precise length of the part. This has to do with
the approximation made on helical winds.

The following aside is not critical to making parts programs or understanding CD, but it
offers some insight into the differences between fiber path and machine motion: (also see
chapter on chain winds as there are some minor differences in motion calculation between
simple helixes and chained helixes).

Unless the user is chaining several helixes together, the actual motion executed in a
helical wind is an approximation of the true helix. In many cases, the difference is
unlikely to be noticed, although for particularly low wind angles with little end dwell,
the user may note that the resulting part is slightly shorter than anticipated.

This has to do with the translation between fiber path and machine motion. On a
simple helix, the carriage actually follows the motion as described above (accelerate,

1
For a much more thorough discussion of filament winding, see “Filament Winding Composite Structure
Fabrication” by S.T. Peters, W.D. Humphrey, and R.F. Floral. Published by SAMPE Publications. Currently in
its second edition.

15
constant velocity, decelerate, dwell), but this motion is not entirely accurate in terms
of guiding the fiber at the correct tangential. The correct motion would have the
carriage overshoot both ends of the part and then retract in order to ensure that the
wind successfully reaches the end points.

Imagine if the turnaround range were set very small – essentially zero - and the wind
angle were low. When the carriage reached its end of travel, the fiber angle would
still be at this low angle and would gradually approach 90deg. as the machine moves
through this end dwell. If the end dwell is set too short, then the fiber will not actually
reach the end point before the carriage reverses direction, yielding a shorter than
anticipated part.

When CD chains several helical segments together, it no longer attempts to apply


this simplification, hence the resulting motion is technically more accurate, but also
less smooth.

Note that in an actual wind, fiber angle, fiber bandwidth, and particularly end dwell are all
adjusted from their entered values to obtain a fiber path solution which will generate a
particular wind pattern and, once the machine has completed a full cycle, places the payout
eye in the exact same position as at program start.

The final number to be entered is the Path Threshold parameter. This parameter establishes
how often the software generates path coordinates. CD will calculate a path point for this
increment of mandrel rotation. This can become quite obvious when generating a 3D
rendering of the part. Because of the simplification mentioned in the aside above, this
parameter is irrelevant in terms of generating machine motion for simple files, but it is used
when chaining files together (where the simplification is not applied). For beginning users,
this parameter rarely requires adjustment on helical winds (a default value of 5 degrees is
generally acceptable, with values as high as 30degrees still reasonable).

Finally, at the bottom of the dialog box is a check-box which allows the user to switch
between metric and standard units of measurement. When the users checks this box, all linear
measurements are taken in mm, otherwise they are in inches. Note that checking the box does
not rescale any numbers to reflect the switch to metric/standard units. Also, in both
measurement systems, angles are given in degrees.

At this point, the user has completed the initial entry of wind parameters and he/she may
press the calculate button in the dialog box.

6.2. Wind Pattern Selection


Assuming the exact parameters shown in the previous section were entered, once the user
pressed the Calculate button, the following path selection dialog box would appear:

16
Figure 12 – Wind Pattern Selection dialog box
In this case, the user is presented with the first 9 of 18 possible winds (the total number is
displayed on the first line of the dialog box). The scrollbar is used to display the rest. By
default, the display is sorted by Natural Path Deviation (which is proportional to the
deviation from the desired angle). By using the “Sort” button at the bottom of the box, the
user can choose a different sort criterion, which is quite useful in cases which generate large
numbers of entries. The other entries at the top of the screen indicate mandrel rotation for a
complete circuit (distance covered in the time it takes the carriage to traverse from start to
end and back to the start again) and also the mandrel rotation in the turnaround range (while
the carriage decelerates, dwells, and accelerates in the opposite direction). These data values
are only generated for the first path shown.

The user may now select which wind pattern they wish to convert into motion. They may use
the 3D rendering functions to assist with this selection (see chapter 11).

Going through the columns one by one:

Circuits/Coverage indicates the number of carriage circuits (from starting point to end point
and back again) needed to close the pattern. Recall that a closed pattern is when the fiber
covers the entire surface of the mandrel (and requires that the entered bandwidth match the
actual bandwidth). In almost all cases, the software will generate solutions which differ by 1
circuit count and which adjust the calculated bandwidth to be slightly higher and lower than
the entered bandwidth.

17
Pattern indicates the type of pattern the user will obtain. Larger numbers indicate a tighter
weave (which also tends to lead to a greater buildup of thickness and hence voids in the
composite structure), while low numbers have less fiber interweaving. This number can be
established by examining a mandrel. Beginning at the corner of a diamond pattern and
following a circumferential route around the mandrel, count the number of diamonds that
appear on the surface of the part. Figure 13 shows a 2-pattern weave:

Figure 13 – shows a 2-pattern weave – each diamond occupies 180deg. of mandrel revolution and a
second diamond would appear on the side facing away from the observer.

Pattern is again an important parameter for a filament wound part, involving various
tradeoffs in the final product. Precise pattern selection is beyond the scope of this document.

Pattern Type: Lead/Lag – patterns have two possible ways to build up on the mandrel.
After the machine completes the pattern number of circuits (e.g. after 3 cycles on a 3-pattern
wind), the next circuit will place fiber directly next to the original circuit. Leading or lagging
describes on which side of the original fiber later circuits will be placed. On a lead pattern,
newer circuits are placed ahead of older ones in the direction of rotation (i.e. they come into
view first as the mandrel rotates). On lagging patterns, they are placed behind older ones.
Figure 14 describes this effect. Lead/lag selection may have some effect on path stability.

18
Figure 14 – shows the difference between fiber build-up with a leading and a lagging pattern.

Natural Path Deviation: This column indicates a relative deviation between the natural, or
base fiber path and the adjusted fiber path required for this pattern. In essence, this number
represents the degree to which the user specified entries were adjusted in order to obtain a
pattern which closes properly.

Besides selecting a particular path, the user can also decide it the wind should start on the left
(headstock) or right side of the mandrel. Clicking the option “Start on Right End of
Mandrel” will reverse the normal path (and motion) of the wind. This is often useful when
winding multiple programs (or a chain file), one of which is a circumferential wind.
Circumferential winds with an odd number of layers leave the carriage at the opposite end of
the machine.

Once the user has selected an appropriate pattern, he/she may click “OK” and a new dialog
box will appear requesting the user to save the file (clicking “Cancel” will return the user to
the previous, parameter-entry dialog box). Helix files are saved with the extension .hlx. A
path file (.pth) and a mandrel definition file (.mdf) with the same name are also saved (see
section 5.2).

To complete the process of generating a helical part, the user would now typically render the
generated path (turn to chapter 11), generate motion (chapter 12), evaluate and edit motion
(chapter 13), and finally execute the program on the machine using Omniwind (chapter 17).

The following chapters cover the basics of each different part geometry.

19
7. Circumferential Winds
This chapter covers what are probably the simplest types of wind – the circumferential wrap
or “hoop wind”. This wind largely consists of the mandrel rotating at a fairly high speed
while the carriage moves over by one bandwidth for each mandrel revolution. Many concepts
are identical to the helical wind. To begin, the user can click on the new part toolbar button:
and select Circumferential Wind from the pop-up menu. This brings up the following
dialog box:

Figure 15 – The circumferential wind dialog box.


Going through the parameters one by one:

Fiber Starting Position (Z1) establishes the carriage location where the machine will begin
the program. The Dwell column establishes how many degrees the mandrel should rotate
before the carriage begins to move. Generally, for a complete wrap this would be set to 360.
Fiber Ending Position (Z2) establishes the carriage location where the machine will begin
the program. Again, the user can enter a dwell.
Mandrel Diameter and Fiber Bandwidth are fairly self-explanatory. Also, the mandrel
figures from chapter 6 should clarify and bandwidth was defined in section 2 (see page 3).
Coverage Strokes is unique to circumferential winds. Unlike other winds, circumferential
motion is defined as strokes rather than circuits. A stroke is a single motion of the carriage
towards either the headstock or the tailstock. If an even number of strokes is defined, the
result is cyclic. With odd numbers, the machine (i.e. the carriage) ends up at a different
location at the end of the wind. This can be useful for moving the machine a certain distance
between layers (often with the bandwidth set very large). More detailed information about
the stroke/circuit differences is available in section 13.5.
Metric Units (mm) – if checked, all linear dimensions are considered to be millimeters.

A few things to note: the wind can start at either end of the mandrel (i.e. if Z1 is greater than
Z2, the wind will start near the tailstock and move towards the headstock). Also, the resulting
motion is based on the fiber centerline and not bandwidth compensated, meaning the final
wrap will be approximately 1 fiber bandwidth wider than entered. Finally, the given dwells

20
are applied at the end of every stroke. For example, if the user has the starting (Z1)-dwell set
to 360 and the ending (Z2)-dwell set to 180, and the number of strokes is 2, then the machine
will dwell 360, move from Z1 to Z2, dwell 180 then dwell 360, move from Z2 to Z1, dwell
180, and then stop. If other dwell characteristics are desired, these could be generated via
chaining circ winds together.

Once the parameters have been entered, the user can press Calculate to continue the process.
With circumferential winds, there is only one solution to the entered parameters, so no
additional user selection is required. The computer simply states that the path has been
generated and then asks the user for a filename. The computer will now generate the
circumferential wind file (.cir), a path file (.pth), and a mandrel definition file (.mdf – see
section 5.2). At this point, the user can render the part to examine the wind (see chapter 11)
and then proceed to generate machine motion (chapter 12).

21
8. Bottle Winds
While simpler machines do a fair job at winding helixes and hoops, the use of multi-axis
machines and sophisticated controls becomes very noticeable when generating bottle winds
and other complex parts. They provide for excellent fiber control around the poles of the
bottle, making program generation much easier and often greatly improving fiber stability.

8.1. Defining the bottle wind parameters


The first step for generating a bottle wind is to begin a new part (via File | New or the
toolbar button). This brings up another menu where the user can select Bottle Wind. This
brings up the following dialog box:

Figure 16 – the bottle wind dialog box

The Bottle Wind module handles two types of bottle dome shapes, Ellipsoidal and
Isotensoid. Both bottles have a cylindrical section and domes on both ends. The ellipsoidal
dome, when cut along the mandrel axis, has an elliptical shape for its domes while the
isotensoid dome consists of two 90-degree circular arc segments and a flat end to connect the
two. Figure 17 shows examples of the two bottle shapes. In general, ellipsoidal shapes tend to
generate better machine motion because they have fewer discontinuities. Often, bottles with
an isotensoid shape are more easily wound using an ellipsoidal approximation (this is
discussed in greater detail below).

The dialog box has four tabs along the bottom of the parameters. In addition to the two
shapes already discussed, the user can also select planar winds for each shape. With planar
winds, the machine will try to wind from pole to pole and the fiber angle is automatically
adjusted to near zero.

22
Figure 17 – Shows the difference isotensoid bottle shape (top) and ellipsoidal bottle shape (bottom).
This particular ellipsoidal bottle has a width greater than ½ its diameter, giving a “pointy”, bullet-like
dome.

The following covers the various parameters which determine the bottle wind:

Mandrel Diameter – is fairly self-explanatory. Figure 18 gives a visual definition.

Cylinder Length – this is the length of the cylindrical section of the bottle (not including the
dome ends. Figure 18 gives a visual definition.

Figure 18 – Definition of Cylinder Length and Mandrel Diameter


For ellipsoidal bottles, the next two parameters are Left- and Right Dome Width. Together
with the mandrel diameter, these determine the shape of the ellipse. Figure 19 gives a visual
definition of the left (headstock side) dome width. If the dome width is set to the mandrel

23
radius (i.e. ½ of Mandrel Diameter), then the domes become spherical. Smaller values give
flat domes while larger values give pointy ones.

Figure 19 – definition of Left Dome Width and Right Dome Width. These only apply to ellipsoidal
bottles.

For isotensoid bottles, Left- and Right Dome Polar Opening replace dome width. These
define the diameter of the flat ends of the isotensoid shape. Figure 20 gives a visual
definition. As the polar opening approaches zero, the end becomes spherical; as it approaches
the mandrel diameter, the end becomes cylindrical.

Figure 20 – definition of the Left Polar Diameter and Right Polar Diameter. These only apply to
isotensoid bottles.

The Dome Evaluation Points parameter establishes how many sample points are taken to
describe the profile of the dome on both ends of the mandrel. This affects how accurately the
part will be calculated in software and the accuracy of path and consequently the rendered
part and motion. In general, a value around 50 will produce good results and does not require
further adjustment.

Common to most dialog boxes, the user can select the measurement system. If the Metric
(mm) box is checked, linear units are in millimeters. Otherwise they are in inches.

24
Fiber Angle and Fiber Bandwidth are common to almost all winds and have already been
described in some detail. See pages 3 - 5 for more details and figures.

The Left- and Right Polar Opening (Dia.) parameters define the desired opening in the
fibers at the ends of the part. Figure 21 gives a visual definition. This parameter usually
requires some adjustment to achieve a stable (i.e. small dome slip factor) wind. The
appropriate value will first depend on the physical layout of the mandrel (e.g. the machine
obviously can’t wind through any shaft protruding from the ends). Beyond this, the user may
need to decide on the appropriate trade-offs between polar opening, fiber angle, and fiber
stability. The user can obtain an approximate measure of path stability by examining the
dome slip factors during path selection. If the left and right openings are significantly
different in size, this can pose a problem to stability. In such cases, the user may wish to
examine a non-linear wind (see chapter 10, especially page 39), which allows for a gradual
change in fiber angle along the cylinder. The following section also covers topics of path
stability in greater detail. Note: this parameter takes fiber bandwidth into account (i.e. it is
not based on the fiber center line), so the desired opening value should be used.

Figure 21 – shows the definition of the Left Polar Opening and Right Polar Opening parameters. The
figure on the left has less than 180 degrees of rotation as can be seen by comparing fiber entry and
exit points across the pole. Depending on various external factors, this path may exhibit a tendency
to fall off the part. The right dome has the opposite problem – over 180 degrees of rotation with a
tendency to wrap around the pole. This shows the problems with having significantly different polar
openings on the same bottle.

25
Cyl.- and Dome Section Threshold establish how frequently the software should generate
path solution points, for both the cylindrical and dome regions of the wind. The parameters
are in units of fiber length (i.e. inches or mm). Path solution points are used during visual
part rendering and later to generate machine motion. If these values are too small, the
resulting path can have an excessive number of points (generally, a complex single segment
should not require more than a hundred points or so). This can also lead to some motion
stability issues in transition regions. Conversely, if this value is too large, the path may not
cover all the nuances of the part motion and can be even more prone to motion instability in
some types of transition regions where the spacing between motion coordinates becomes
uneven. This is often a problem on low-angle winds. In general, these values will require
adjustment when there are major size differences between parts.

Typical values for the dome threshold are around 1/20th the part diameter, and about 1/20th
the cylinder length for the cylinder threshold.

8.2. Wind Pattern Selection


At this point, all the part parameters should be defined. Once all the wind parameters are
entered, the user can continue with path selection by pressing the Calculate button. This
brings up the path selection window (Figure 22). The path selection process is similar to that
of the helical wind and much of the displayed data has the same meaning. Section 6.2
contains much of the detailed information which is common to most types of winds. This
section will focus on the differences for bottle winds. Because bottle winds are quite a bit
more complex than helixes, the end of this section briefly explains the method used to
generate different wind patters and how the user can adjust parameters to increase stability.

The upper portion of the window (“Base Path Statistics”) now includes measures of how
stable the base wind path should be. The base wind path is the one which most closely
matches the input parameters (it is close to the first entry in the path list if the list is sorted by
deviation). This base path is then minutely adjusted to generate different wind patterns (and
also slightly alter the wind angle/bandwidth). Stability of the path is indicated by the Left-
and Right Dome Slip Factor, as well as the Left- and Right Dome Rotation in Current
Path. The slip factor is roughly analogous to a measure of friction required before the fiber
would slip. Negative values indicate the fiber is likely to slip off the part while positive
values indicate it is likely to slip towards the pole. While both forms are undesirable,
slippage towards the pole is often less problematic since the fibers will catch on any
protruding shaft (although they may also slip when exiting the pole region and beginning the
next carriage stroke). Ideally, the slip factors should be zero which would be a geodesic path.
While generalizations are difficult, levels far in excess of 0.01 are unlikely to be stable for
many mandrel / fiber / resin combinations.

In addition to slip factors, dome rotation values also closely correlate to stable paths. In
general, a dome rotation of 180 degrees provides the greatest stability – the fibers enter the
dome region at one end and leave exactly 180 degrees away. Smaller values generally cause
the fiber to fall off the part while larger values cause slippage to the pole.

26
The remaining entry displayed at the top of the screen is Mandrel Rotation in Current
Path. This is the mandrel distance covered during a complete circuit – including the
cylindrical portion of the wind and the rotation in both domes.

As with the helical wind, many different wind permutations are displayed below the base
path. In this example, 9 of 58 generated winds are displayed and the scrollbar is used to
display the rest. The same sorting criteria used for helical paths may be used for bottles.

Figure 22 - Wind Pattern Selection dialog box for bottles

The user may now select which wind pattern they wish to convert into motion by selecting a
line in the path list box and clicking OK (or double-clicking on a line). 3-D part rendering
can assist with this process (see chapter 11).

The individual columns of the path selection list are all very similar to the parameters
generated for helical winds (see pages 17 - 19). Looking at each in turn:

Circuits/Coverage indicates the number of carriage circuits (from starting point to end point
and back again) needed to close the pattern.

Pattern indicates the type of pattern the user will obtain. Larger numbers indicate a tighter
weave. The same method as with the helix can be used to determine a bottle’s pattern
number. With the bottle, an alternate method is to count the number of points on the star-like
patterns which form at the poles. Figure 21 shows a 7-pattern weave.

27
Pattern Type: Lead/Lag – Leading or lagging describes on which side of the original fiber
later circuits will be placed. On a lead pattern, newer circuits are placed ahead of older ones
in the direction of rotation (i.e. they come into view first as the mandrel rotates).

Natural Path Deviation: This column indicates a relative deviation between the natural, or
base fiber path and the adjusted fiber path required for this pattern. In essence, this number
represents the degree to which the user specified entries were adjusted in order to obtain a
pattern which closes properly.

As with the helix, the user can also decide it the wind should start on the left (headstock) or
right side of the mandrel by clicking the option “Start on Right End of Mandrel”.

The key part of the dialog box is the list-box containing an assortment of fiber paths which
generate various wind patterns. To generate these permutations, the software increases
mandrel rotation during both the cylindrical and dome portions of the wind. If the results are
sorted by deviation, this trend becomes clear. While increases in dome rotation can help to
stabilize a path with insufficient dome rotation, the resulting path across the dome requires
greater levels of curvature, which also leads to slippage.

There is no one solution to path stability issues. The user may wish to consider the following:

If the fiber slips off the part – dome rotation is likely to be too low. Possible
improvements include:
increasing the wind angle of the part
reducing the polar opening (if this isn’t possible,
the user may consider reducing the opening and
later rescaling crossfeed motion to avoid
striking the mandrel – see page 60)
trying a lower than desired wind angle and then
navigating through the generated paths to find a
solution close to the desired wind angle with
greater dome rotation

If the fiber slips toward the pole – dome rotation is likely too high. Possible
improvements include:
decreasing the wind angle of the part
increasing the polar opening (crossfeed
rescaling can also be tried here to later reduce
the opening – see page 60, use caution when
moving crossfeed closer to part)

If bottle ends have different slippage – typically a result of significantly different polar
openings and difficult to solve. Some possibilities
include:

28
adjusting parameters as described above to
roughly balance over- and under-rotation (over-
rotation is usually less problematic)
using a varying wind angle on the cylindrical
section via non-linear winds to improve the
entry angle into the dome (see page 39)

Finally, if other solutions fail, the user may consider mechanical fiber stabilization via the
use of guides such as pin-rings. Their use is beyond the scope of this document. Even where
they are incorporated, the user will often still want to attain the most stable wind pattern
because this often improves the fiber’s behavior through the guides. This can reduce effects
such as pin shadowing (where fibers tend to “bunch up” while crossing the pins and then
require a significant distance before spreading out again).

Once the user has selected an appropriate pattern, he/she may click “OK” and a new dialog
box will appear requesting the user to save the file (clicking “Cancel” will return the user to
the previous, parameter-entry dialog box). Bottle files are saved with the extension .btl. A
path file (.pth) and a mandrel definition file (.mdf) with the same name are also saved (see
section 5.2).

To complete the process of generating a bottle, the user would follow the typical process of
rendering the path (turn to chapter 11), generating motion (chapter 12), evaluating and
editing motion (chapter 13), and finally executing the program on the machine using
Omniwind (chapter 17).

29
9. Zero Degree Winds
Zero degree winds are somewhat unique compared to the other modules in Composite
Designer. Rather than specify parameters which describe the part and fiber path, the user
directly specifies the motion which will generate the part.

As with the other types of wind, the first step in generating a zero degree wind is to click on
the New command (File | New or ), then select Zero Degree Wind from the pop-up
menu. This brings up the following parameter entry window:

Figure 23 – Zero Degree Wind dialog box


The various portions of this window describe the discrete motion steps required to generate a
zero degree wind. The motion consists of the following actions, with corresponding window
entries placed in bold:

The cycle begins with the carriage moved to its Start Position, the crossfeed plunged in by
its Plunge Distance, Eye-rotation at either + or – 90degrees (depending on whether or not
the carriage’s start position is greater than its end position – if greater, then eye-rotation starts
at –90), and the mandrel starts at its Start Position (deg).

The first motion is to retract the crossfeed. It will retract its Plunge Distance over the course
of its Plunge Time (i.e. a complete plunge and retract cycle takes double the plunge time).

Once the crossfeed is withdrawn, the carriage will begin its stroke – achieving its target
Velocity (in Units/sec - either inches or mm) over the course of its Acceleration Range – a
measure of distance (again inch or mm). It will then coast at target Velocity until it is within
an Acceleration Range of its End Position. Finally, it will decelerate over this range and
come to rest at its End Position.

30
Now the crossfeed will plunge in the length of its Plunge Distance over the course of its
Plunge Time.

Once the crossfeed has completed this move, the mandrel and eye-rotation will
simultaneously begin to rotate – the mandrel will accelerate to its target Velocity (in
degrees/sec), then coast at its target Velocity until it is within an Acceleration Range of its
Index value. Finally, the mandrel will again come to a rest. Over this same time period, the
eye rotation will move by 180 degrees to face in the opposite direction.

At this point, the machine has completed half of a circuit and the same motion is repeated
(with appropriate axes / positions inverted) to return the machine to its starting location. This
entire process is repeated Carriage Strokes number of times.

Some issues to consider – the two acceleration ranges must be short enough to complete
within the allotted distance (half of Index for the mandrel, half the difference between Start
and End position for the carriage). The user may wish to consider the resulting acceleration –
(which would be target velocity squared divided by twice the acceleration range). If
acceleration levels are too high, the user should reduce the target velocity or increase the
acceleration range (for the crossfeed, the plunge time would be increased, eye-rotation
acceleration levels are rarely a problem – eye rotation is tied to the mandrel).

As with other types of winds, the actual starting locations for the carriage and crossfeed are
influenced by the parameters entered on the motion generation dialog box (see chapter 12).
The crossfeed location is the tooling offset and constant eye position entered during motion
generation minus the Plunge Distance (remember the crossfeed starts off plunged in). The
Diameter value is not directly used, but the software will warn the user if the crossfeed is
plunging in beyond the part’s diameter. Of course, this is often the case on a zero-degree
wind, so it need not be a major concern. Generally, the user will set the constant eye position
value to be greater than the radius of the mandrel, then set the plunge distance such that the
payout-eye has sufficient clearance from any mandrel shaft, and set the carriage distance (via
start and end points) so that the payout system has adequate side clearance on both ends of
the mandrel.

When the user is satisfied with the part parameters, he/she can click on Calculate to continue
the process. The zero degree wind is unique in that it does not generate a fiber path, but
directly generates motion based on user parameters. Often, this has little affect on the user,
but it is a concern when trying to chain multiple layers together (a zero degree wind cannot
be chained via path files to layers – for more see section 15.2). It also implies that the user
cannot generate a 3D part rendering. Beyond these limitations, the part generation process
proceeds normally – after pressing calculate, the software will ask the user if they wish to
generate motion. If the user clicks yes, the software will ask for a filename for the wind. It
will then generate a .zro file and proceed to display the generate motion dialog.

The user would generate motion (see chapter 12), verify / edit motion (generally not an issue
for zero degree winds, see chapter 13), and then execute motion (see chapter 17).

31
10. Non-linear Winds
While the wind categories introduced so far cover the vast majority of filament wound parts,
Composite Designer (CD) includes a module for generating highly complex winds called
non-linear winds. Before proceeding, the user may wish to verify that their part is truly
unsuited to other types of winds – often a particular part can be successfully wound using a
mandrel model which does not truly represent the part. For example, people have often
resorted to using helical winds to generate bottles on old, 2-axis winders. While non-linear
winds are quite powerful, the resulting motion often requires some degree of post-process
(motion) editing.

Unlike other winds, the first step when generating a non-linear wind is usually not to start a
new wind (e.g. File | New, then select Non-Linear Wind), although this can be done. Often
the user will start with an existing mandrel and proceed to modify this. For example, the user
may wish to start with a bottle profile and add some modifications to it. To do this, click on
File | Open... or the toolbar button . This will bring up the open file dialog box. To load
the file, the user should first click on the drop-down list-box at the bottom of the dialog
entitled “Files of type:”. At this point, a number of CD-file types will be listed. The user
should select “Non-Linear Wind (*.mdf)”. When loading a mandrel profile for the first time,
the user will typically get a warning message that an associated angle file and general data
file were not found – this is normal. Also, if loading an .mdf file, it is a good idea to
immediately save this file under a different name, or the original file group (e.g. a bottle) will
be partially overwritten.

An alternative is to generate a part profile using Auto-CAD®, or a similar package capable


of generating .dxf files. Such files should remove all extraneous data and lines and simply
consist of the relevant mandrel profile. Also, the part should consist of discrete line segments
rather than polylines. To load such a file, the user first creates a new, non-linear wind
program (File | New | Non-Linear Wind), and then edits the mandrel table
(Edit Mandrel Options | Edit Mandrel Table… - Note: editing the mandrel table is
covered later.). At this point, the relevant .dxf file is imported via the
Mandrel Table Options | Import Mandrel File command. This brings up a file-load dialog
box where the user may select from one of several file formats including .dxf (by clicking on
the drop-down list-box next to the label “Files of type”). At this point, the user may load the
relevant mandrel profile. To see a graphic representation of the mandrel, close the mandrel
table and accept the newly entered mandrel data.

In a similar manner, the user can import the mandrel using other file formats including
Excel® 4.0 and also export the mandrel into several formats.

Once the user has loaded a mandrel (or started a new file), the non-linear parameter window
should appear (Figure 24). This window is rather unique in that it has a small, graphical
representation of the mandrel’s profile. In this particular figure, it is a profile of a small
bottle/pressure vessel. Generally, the first step is to edit the mandrel shape to obtain a
reasonable approximation of the actual mandrel (assuming that the mandrel is not already the
correct shape – quite a few non-linear winds are actually wound on standard mandrels in

32
order to obtain some of the flexibility they offer such as varying fiber angles). CD has two
options for editing mandrels – graphically or through the mandrel table. In either case, the
user will need to make use of the table for entering fiber angle or start/stop data. These topics
are covered in the following sections.

Turning to the remaining parameters in the window: at the bottom of the window, the user
can select one of three different types of winds:
- Helical winds - similar to a bottle wind or helical wind, depending on mandrel shape
- Circumferential winds - similar to a hoop wind on a cylinder
- Planar winds - which attempt a near zero-degree wind from end to end (pole to pole)

Figure 24 – the Non-Linear Wind parameter entry window

The remaining parameters will vary depending on which type of wind is chosen. These are:

Bandwidth – the total width of the fibers being laid on the mandrel (see page 3 for
definition). It is used for all wind types.

Z-Axis Location for Coverage – non-linear winds can have varying radii and fiber angles.
Because of this, the software can generally only provide full fiber coverage at a particular
radius and fiber angle (see Appendix A for a method on calculating fiber angles). This
parameter specifies the location along the mandrel axis (Z-axis) at which the software should
generate full coverage. At larger diameters and smaller angles, there will be gapping. This
option is not available for circumferential winds (which cover everywhere).

33
Cyl. and Dome Section Threshold – this establishes how frequently, in inches or mm of
fiber path, the path software should generate a path solution point while in the cylindrical and
dome sections of the wind. For more information, see page 26. Reasonable values are usually
around 1/20th of the relevant part dimension (diameter or length). Cyl. Section Threshold is
used for all wind types, while the Dome Threshold is not used for circumferential winds
(which don’t have turnaround regions). The definition of the dome / cylindrical section is
given below.

Left and Right Polar Opening – this establishes the fiber opening diameter at the left
(headstock) or right end of the part (see page 25 for more information). This option is only
available when generating a helical or planar wind.

Circ. Start and End Dwell – these determine how many degrees the mandrel should rotate at
the start and end of a circumferential wind, before carriage motion commences. This option
is only available when generating a circumferential wind.

Because the user directly specifies angles for helical, non-linear winds, this can lead to some
confusion about the exact definition of openings and thresholds. Actual entry of angle data is
covered in subsequent sections, but the start and end of winds can be specified in one of two
ways:

- The user can enter 90 degrees in the angle column of the mandrel data to mark the
start and end points of the wind. Between these points, the user must enter at least 2
additional angle values. In this case, the polar opening values are ignored and the
software only uses the angle data to establish the start and end of the wind; also, the
wind will not have any polar region – the path generation algorithm will only use the
cylinder threshold value.

- Alternatively, the user can enter the desired polar opening. The software will then
automatically interpolate a 90-degree point into the mandrel table (no entry is actually
made, it simply determines where the mandrel diameter first reaches the given left
opening, and last reaches the right opening). The user must then add supplemental
angle data in the angle column of the mandrel. At least two additional angles must be
entered in the angle column, between the resulting start and end points. In this case,
the dome threshold value is applied to the region between the polar openings and the
closest angle entry. The cylinder threshold value will apply to the rest of the mandrel
(between the outermost angle entries).

For planar winds, the software always uses the polar openings to establish the start and end
of the wind. However, the user must still enter at least two angle values that lie within the
region to be wound. Their actual value is ignored (although typically 90 is used), but their
table location is used to determine the transition between the dome and cylinder threshold
region. For a bottle, it would typically be placed at the transition point. For other shapes, the
selection may be less obvious, but it should be thought of as marking a boundary. If it is set
too close to the polar opening this can result in poor motion.

34
As with other sections, the software can be told to use Metric Units (mm) by clicking on the
corresponding checkbox.

While many of these parameters are similar to other types of wind programs, the remaining
steps are unique to non-linear winds: editing the mandrel and angle data. These are done
through a graphical and a spreadsheet interface.

10.1. Mandrel Editing


Much of the critical data for the non-linear wind is contained within a table defining mandrel
shape and fiber angle. The shape of the mandrel can be edited either graphically or via a
spreadsheet, while the fiber angle can only be edited through the spreadsheet. In general,
both of these interfaces are very similar to the interfaces used for motion editing and are
covered in greater depth in that context. Here, only the specifics for generating non-linear
winds are presented. For more information on the graphical interface, refer to sections 13.2 to
13.4. For more on the spreadsheet interface, see sections 13.5and 13.6. In general, the
spreadsheet is used more often for mandrel editing due to the coarse nature of the graphical
interface.

To graphically edit the mandrel, the user clicks on the item


Edit Mandrel Options | Edit Mandrel Graphic. This opens a screen with several lines on it
– the mandrel’s outline, its slope (1st derivative of its outline), and its curvature (2nd
derivative). This screen is very similar to the screens used for motion editing. A slightly
reduced set of commands is available for graphically editing mandrels. In brief, the graphical
editing screen gives the user access to various commands – via the toolbar, the menu, and by
right clicking the mouse. These include functions to zoom in to a region of the mandrel, to
delete mandrel coordinates, to smooth regions of the mandrel and perform other
mathematical operations on the mandrel, and to directly add additional mandrel coordinates
(by drawing them).

Again, many of the actual commands are the same as for motion editing and covered in that
section. Some important limitations for mandrel editing include:
- the mandrel is always linearly interpolated, functions to use other interpolation
schemes are disabled
- some minor features such as crosshairs and the Draw Data Directly command have
not been ported. To manually draw mandrel points, the Edit | Insert Points
command (or toolbar button) can be used.

When using the graphical interface, the current location of the cursor is displayed in the
lower right corner of the window, with the Z and R axes corresponding to X and Y. Note that
the axes do not use the same scale values – they are automatically adjusted so that the
mandrel uses the full area – unfortunately this can distort the mandrel shape somewhat.

The mandrel data can be accessed in spreadsheet format by clicking on


Edit Mandrel Options | Edit Mandrel Table… While the editor is the same as for motion
data, the spreadsheet columns (and their meanings) are completely different.

35
The mandrel table has three columns – Axial (Z), Radial (R), and Angle (øº). The axial value
is measured along the axis of mandrel rotation, while the radial value gives the mandrel’s
radius at the particular axial point. Together, the two describe the mandrel profile via linear
interpolation. The mandrel should begin and end with a radius of zero (very abrupt changes
are acceptable – e.g. a radius of 0 to start and 10 inches after 0.0001inches down the axis).
The first empty axial and radial columns signal the end of the part. The region beyond this
may be used as a scratchpad for spreadsheet calculations (if needed).

The angle column describes the target fiber angle at various locations along the part.
Appropriate values depend on the type of wind and also on the desired fiber path. For near-
geodesic winds (i.e. the most stable fiber path), the angle should match the radius based on
the relationship:

R sin ø=c

Where R and ø are the radius and fiber angle at a given location and c is a constant which is
fixed given a user supplied radius and angle. For example, if at a particular part location, the
user would like an angle of 30 degrees at a radius of 5 inches, then c is 2.5. If the radius
changes to 3 inches, then maintaining the same constant yields a target angle of 56.4degrees.
Note that the minimum radius for this wind would be 2.5 inches (at this point the angle is 90
degrees). Also note that stable paths tend to work against even fiber thickness. For stability,
fiber angle decreases as the radius grows while for even fiber thickness, the angle would need
to increase.

For helical winds, the user can mark the start and end of the wind by placing a 90 in the angle
column. Alternatively, the start and end of the wind can be established by setting the polar
openings in the main parameter window (Figure 24). In both cases, the user must enter at
least two additional angles between these extremities. The fiber path is calculated by
gradually varying the fiber angle so that it reaches 90 degrees at the ends of the dome (or in
the turnaround region), and attains the specified angle(s) at the given entry locations. If
uniform fiber coverage is a large concern (i.e. no gaps or significant overlap), appendix 19
offers some advice; although in practical terms, obtaining uniform coverage is generally a
challenge.

For planar winds, the angle column is largely irrelevant. However, the user must place at
least two values in it – these must lie between the points which correspond to the polar
opening entries (the radius values at the entry rows should exceed half the corresponding
pole diameter). The software uses them to establish the boundary between the dome and
cylindrical portions of the wind. The angle values themselves are ignored (the planar wind
always attempts to generate angles near zero).

For circumferential winds, the user needs to enter two values in the angle column signaling
the start and end of the wrap. The values themselves are irrelevant (generally, the
recommended values are 1 for the starting point and 2 for the ending point). The fiber path

36
will begin at the smaller of these values (so to start winding closer to the tailstock, place the
larger value first in the table).

As with the motion table, the mandrel table can be exported into Excel 4 format, allowing the
user access to a far more powerful spreadsheet and also the storage of formulas and data
beyond that used for the wind.

Once the user has completed data entry, they can close the mandrel table. A dialog box will
prompt the user to accept any changes.

If the user is satisfied with the general mandrel and wind parameters, he/she can generate the
fiber path by pressing the “Calculate” button. If a circumferential wind is being generated,
then no path selection is possible, the user simply enters the number of strokes and the
relevant path file is generated.

10.2. Path selection


For planar and helical winds, after clicking on the “Calculate” button, the user is presented
with the familiar wind path selection dialog box. This window (Figure 25) is very similar to
the selection window for bottle winds (Figure 22). It gives the user various pieces of
information about the base wind path and allows them to choose from one of many different
permutations of this path. Many of the statistics are common to other winds.

The upper portion of the window (“Base Path Statistics”) indicates the number of paths
generated and gives measures of how stable the base wind path is. The base wind path is the
one which most closely matches the input parameters (it is close to the first entry in the path
list if the list is sorted by deviation). Stability of the path is indicated by various criteria
which depend on the type of wind.

For planar winds, the window shows the total mandrel rotation in a complete fiber circuit and
mandrel rotation on each end of the part (left- and right-dome rotation). Generally, a mandrel
rotation of 180 degrees at each end is desirable, although the wide variety of mandrel shapes
for non-linear winds makes generalization difficult.

For helical winds, the statistics displayed depend on whether or not the user has manually
defined the 90-degree turnaround location in the mandrel table. If so, then the wind is
considered a standard helical, the polar openings are ignored, and the software calculates the
following:

- Max Slip Factor – a measure of the greatest lateral force the fiber experiences in the
base path. This can be thought of as corresponding to some level of friction required
for fiber stability. Levels close to zero are desirable. While generalizations are
difficult, levels far in excess of 0.01 are unlikely to be stable for many mandrel / fiber
/ resin combinations.

37
- Slip Factor Location – indicates the Z-axis location of maximum slip. The user may
wish to examine a 3-D rendering of the part to get a feel for where slippage is
occurring and may wish to adjust fiber angle entries to reduce levels.
- Mandrel Rotation in Current Path – indicates total mandrel rotation for a single
circuit
- Left and Right Turnaround Rotation – indicates mandrel rotation at the ends of the
part. Values near 180 degrees are desirable, although this general rule-of-thumb may
not hold for some oddly shaped mandrels.

If the user does not specify 90-degree fiber angles in the mandrel table, then the software
uses the polar opening values to establish turnaround location and the wind is considered
bottle-like. In this case, following statistics are calculated:

- Left and Right Dome Slip Factor – these are an indication of maximum lateral force
on the fiber while in the dome regions (between the polar opening and the nearest
angle entry in the mandrel table). A value of zero is ideal. Negative values indicate a
tendency for the fiber to slip off the part, while positive values indicate a tendency to
slip towards the pole.
- Center Region Max. Slip Factor – the same parameter for the region between the
domes. Positive and negative values now indicate a tendency to slip towards the left
or right when looking along a length of fiber.
- Center Region Max. Slip Factor Location – indicates the Z-axis location of
maximum slip. The user may wish to examine a 3-D rendering of the part to get a feel
for where slippage is occurring and may wish to adjust fiber angle entries to reduce
levels.
- Mandrel Rotation in Current Path – indicates total mandrel rotation during a single
circuit of the wind.
- Left and Right Dome Rotation in Current Path – indicates mandrel rotation at the
ends of the part (between the polar opening and the first angle entry). Values near 180
degrees tend to be most stable, while those below cause the fiber to slip off the part
and those above then to slip towards the pole. However, due to the wide variety of
possible mandrel shapes, this generalization may not hold for non-linear winds.

As with the helical and bottle winds (sections 6.2 and 8.2), many different wind permutations
are displayed below the base path. In this example, 9 of 64 generated winds are displayed
and the scrollbar is used to display the rest. The same sorting criteria used for helical and
bottle paths may be used for non-linear winds.

38
Figure 25 – the wind pattern selection dialog box for a helical non-linear wind
The columns displayed for each different wind path are identical to the bottle wind, and the
user will typically adapt the same criteria for selecting a particular wind and modifying wind
parameters to improve their characteristics. For more on the various column headings and
suggestions for improving a wind, see pages 27 - 29.

In addition to the general methods for improving bottle winds, non-linear winds give the user
new opportunities to tailor wind patterns for difficult-to-wind parts using wind-angle
adjustments. For example, if a particular bottle shaped part requires a large polar opening on
one end and a small one on the other, it may be quite difficult to obtain a near-geodesic path.
However, with non-linear winds, the user can set a low-wind angle near the small opening
dome and a high-angle near the large opening. This allows the fiber entry angle near the
domes to more closely match the desired polar openings and get reasonably close to a 180-
degree, geodesic path. This angle transition region need not encompass the entire cylinder –
the bulk of the cylindrical section might be set to a particular, desired angle, and then as the
wind approaches the domes, the angle gradually changes to the dome entry angle. Of course,
varying the fiber angle can have significant impact on the structural properties of the part.

To complete the process of generating the non-linear wind, the user would follow the typical
process of rendering the path (turn to chapter 11), generating motion (chapter 12), evaluating
and editing motion (chapter 13), and finally executing the program on the machine using
Omniwind (chapter 17).

Note: the user may wish to immediately save the newly created file. In many cases, the non-
linear wind was not created from “scratch” and the user will not be prompted to save the

39
work before generating a path (which would then overwrite any path previously generated
for this mandrel). It is often safer to save the parameters immediately rather than completing
the rest of the steps and waiting to be prompted when closing the file or exiting CD. As
mentioned earlier, in addition to the standard path and motion files, CD will generate three
files related to the non-linear wind: the .mdf file describing the mandrel shape (this is not
unique to non-linear winds, but for other winds the shape is fixed by the parameters entered),
the .ang file describing the fiber angles at different mandrel locations, and the .gen file
describing the supplemental parameters of the non-linear wind.

40
11. Visual Rendering
When the user saves a part file, in addition to saving the basic parameters, Composite
Designer (CD) also generates complementary files describing the mandrel geometry and the
fiber path (.mdf and .pth files – see section 5.2). CD uses these to generate a 3-D rendering of
the part (and in some cases, to generate motion). The part visualizations in this document
were generated using these CD-functions (e.g. Figure 6, Figure 13). Note that zero degree
winds do not generate these files.

Once a part has been generated and saved, the user can use the visualization tools by clicking
on View | Open New ViewPort. This will open a new window to display 3-D graphics. To
view renderings of previously generated parts, the user can also directly load their .pth files
as follows: Click on File | Open and under “Files of type:” at the bottom of the dialog box,
select “Wind Path Files (*.pth)”. At this point, CD will ask for the bandwidth of the path
and then automatically open a new view port. In either case, the user can then click on
View | View Mandrel and View | View Fiber Path and this will complete the sequence and
display the 3-D graphic.

The format of the graphic can be edited by selecting Options | Mandrel View Options…
This brings up the following dialog box:

Figure 26 - Mandrel View Options dialog box

Note: all entries made in this box have no affect on any other portion of the software or the
part itself – they only affect how the part is rendered on the screen.

41
The top of the dialog box – “3-D View Port Options” – allows the user to select between
two types of views – a diagonal 3-D projection view and a 3-face orthographic projection
showing the length and both ends of the part (this tends to be useful for evaluating bottle and
non-linear dome winds). Figure 27 below shows examples of both views. With the diagonal
projection, the user may enter 2 angles to rotate the part in space and view it from different
points.

The 3-D part model is calculated by taking a 2-D part outline and revolving it. The next entry
– “Mandrel Surface Points” – determines how many sample points the software should
make during this revolution. The larger the number, the more circular the part cross-section
becomes (e.g. a value of 4 would yield a square mandrel). Generally, the user can leave the
original default of 60 unless their computer is particularly slow.

Figure 27 – shows two different projections of the same bottle. On the left are “Side & End Views”
while the right is a “Projection View”. On the right, the computer is also displaying the mandrel mesh
and fiber mesh, and the user is only plotting 15 fiber circuits.

The remainder of the box controls various view port settings – the first 2 checkboxes (“Show
Mandrel Mesh” and “Show Fiber Mesh”) allow the user to turn on the meshes used to
render the mandrel and fiber path. The next box (“Plot ___ Fiber Circuits”) allows the user
to control how many passes of fiber are rendered. If left unchecked, the computer will
display a default number (if the user opened the view port by loading a .pth file, then a single
circuit will be displayed, otherwise it will be a complete layer). If the user checks this box,
the software will plot the entered number of circuits.

The fiber rendering algorithms use the fiber path points calculated during wind path
generation. They then use straight lines to connect these (linear interpolation). In some cases,
particularly with circumferential winds, there are significant gaps between points. This leads
to coarse, blocky interpolation. Selecting “Augment Path Data (display only)” will
generate many intermediate points using smooth interpolation methods. In many cases, the
resulting display is more accurate. However, if the display is blocky on bottle or non-linear
winds, this usually indicates too few path points – it is a better idea to use smaller dome /
cylinder threshold values.

42
The “Animate Fiber Circuits” checkbox allows the user to determine if the computer
should animate the rendering sequence. If unchecked, the program calculates the entire
picture internally and then displays it all at once. If checked, the fiber path is drawn as it is
calculated (this is not slower, so generally this box is left checked). At present, there is no
provision for slowing down the rendering process.

If the user wishes to use the 3-D graphic in a different software package, he/she may select
View | Copy Current View. This will place a bitmap copy of the graphic on the clipboard.
From there, the user may open most graphics packages (e.g. Microsoft® Paint) and utilize
their paste command to import the graphic.

Note: if user is editing multiple parts at once, clicking on View | Open New ViewPort
generates a view port for the part which is currently being edited (i.e. the part with the active
/ highlighted window).

43
12. Motion Generation
Once the user is satisfied with a wind path and pattern, a motion file can be generated. This is
the file which will execute on the winder. For Omniwind these are .mmt or .chn files – where
.chn is a chained motion file of multiple layers. For older, Compositrak systems, a .seg file is
generated.

There are two paths to generate motion – the user can either continue the process of entering
part data, choosing a fiber path, rendering the fiber path, and then generating motion.
Alternatively, the user can load and render an existing .pth file and directly generate motion
from it (note that the motion generated may not be the same – see aside on page 15). If
generating motion from a path file, the user must note how many circuits are required to form
a complete layer – this information is not contained in the path file.

Once the software is ready to calculate motion (an appropriate path has been generated) the
user can simply click on Calculate | Machine Motion… to start the process. This brings up
the following dialog box:

Figure 28 – The motion generation dialog box

44
One common selector box is the “Metric Units” switch near the bottom left of the screen.
Check this box when using metric units. The following sections cover the entries within the
box.

12.1. Machine Offsets – setting key reference locations


The first heading is “Machine Offsets”. Here, the user must input the data needed for
Omniwind to establish the location of the part and compensate for any tooling. This consists
of two parameters:

Mandrel Origin / Pattern Offset – this defines a basic mandrel parameter – the distance
between the face of the mandrel or headstock chuck (or mounting flange) and the start of the
mandrel part, as used for fiber path calculation. Figure 29 shows this definition. For a helical
wind, the center of fiber bandwidth at the left end of the part would be located at:

Zoff + Z1

units from the zero-point of the mandrel (the chuck surface or mounting flange), where Zoff is
the “Mandrel Origin/Pattern Offset” and Z1 is the “Fiber Start Position (Z1)” from the helix
parameter entry window. Note that the actual, left-most fiber point would be a half-
bandwidth further left (subject to the approximation described in section 6.1 under “end
dwell”).

Figure 29 – definition of Mandrel Origin/Pattern Offset

45
The second parameter in this section is Payout Eye Tooling Offset. This parameter allows
CD to adjust for any tooling attached to the payout system. Figure 30 shows this definition.

Figure 30 – definition of Payout Eye Tooling Offset

12.2. Motion Generation Options – selecting axis behavior


The next section in the motion dialog box is Motion Generation Options. Here the user can
establish which axes are enabled and set fixed positions for any disabled, but present, axes.
CD supports motion in up to 6 axes, although few machines actually incorporate all axes. All
machines incorporate at least 2 axes – the mandrel and the carriage. Depending on machine
configuration, one or more of the fields in this box may be disabled. In the example above (
Figure 28), only 3 axes are present: mandrel, carriage, and crossfeed. The user may disable
the crossfeed by clicking on the check-box next to “Enable Crossfeed Axis Motion”. In this
case, actual crossfeed location is entered at “Constant Eye Position” under “Motion
Generation Information” (other clearance options are disabled – see below). In a similar
manner, the user may disable the remaining axes by unchecking the boxes next to “Enable
Rotating Eye Motion”, “Enable Eye Yaw Motion”, and “Enable Elevation Motion”. On
disabled axes, the user would enter a fixed position which that axis would assume during the
wind.

Under Eye Yaw, the user may select two different criteria for motion generation – either
tangential to the fiber line between the payout eye and the fiber’s point of contact with the
part, or normal to surface of the mandrel (aligned to a normal line connecting the mandrel’s
surface and the payout eye). Fiber tangent motion is likely to generate more stable fiber
control in the payout system, while normal to mandrel surface can maintain large payout
systems closer to the mandrel system.

The next flag in this section allow the user to reverse the mandrel’s direction. Normally, the
mandrel rotates in a counter-clockwise direction when looking from the part towards the
chuck. Checking “Invert Mandrel Rotation” would make the mandrel rotate clockwise.

46
Finally, the user may select “Compositrak output”. In this case, CD will generate a .seg file,
suitable for conversion to a .pgm file for execution on an older Compositrak machine.
Compositrak operation is not covered in this manual.

12.3. Segment Flags – for file chaining


The next section of the box is titled Segment Flags. These are important during chain file
generation and are normally set during chain file path and motion generation. For more
information see section 15.1.

12.4. Motion Generation Information – for tooling clearance


In the Motion Generation Information section, the user may alter the number of circuits to
be executed and establish machine clearances during program execution.

The first box allows the user to modify the number of circuits to be executed. In general, this
would be modified to a multiple of the original number in order to place multiple, identical
layers on top of each other. For example, if the box displays a value of 59, then entering 118
would cause the machine to place 2 layers on top of each other. Other than generating
multiple layers, altering this number is not an effective way to alter fiber coverage on the part
(e.g. entering 30 instead of 59 to obtain ½ coverage), because the resulting pattern would be
very irregular and incomplete. To generate an even pattern which has gaps between fiber
bands, the user would modify the bandwidth parameter to be larger than the actual bandwidth
and execute the full program (i.e. leave the number of circuits unchanged, or perhaps enter a
multiple of the number to increase the number of layers). Similarly, entering a smaller than
actual bandwidth would generate significant overlaps in the final product.

Unlike machining, the payout system of a filament winder should never touch the part.
Therefore, the user must enter clearances indicating the distance to maintain between the
fiber payout point and the surface of the part. The fiber payout point is generally defined as
lying on the axis of eye rotation (for winders without eye rotation, it would lie inline with the
crossfeed, perpendicular to the carriage axis) at the point at which the fiber leaves the
tooling. In some simple cases, such as helical winds, clearances may be fairly tight. But
often, particularly with complex parts involving multiple axes of motion, some level of
clearance is very important to avoid having part of the winder or tooling strike the mandrel.
At present, there are three different clearance methods available:

- Constant Mandrel Clearance – here, machine motion is scaled such that the fiber
payout point is forced to lie on a curve which consists of the points closest to the part
that maintain both the side and top clearance entered by the user. Side clearance is
clearance in the carriage’s direction of travel. Top clearance is in the crossfeed’s
direction of travel. For top clearance, the user should enter the desired clearance
between the tip of the tooling / fiber payout point and the surface of the mandrel. For
side clearance, the user should enter half the width of the payout tooling plus any
desired clearance.

47
Figure 31 – shows how constant eye position is defined. This is primarily used for simple parts such
as helixes. It effectively disables the crossfeed.

- Constant Clearance II – this case is similar to the first, except the user only enters
one value which describes a clearance distance along a normal to the surface of the
mandrel. In general, Constant Mandrel Clearance (above) produces better results by
allowing tighter control along both axes.

- Constant Eye Position – in this case, the crossfeed is effectively disabled (if
crossfeed is explicitly disabled as described earlier, then this is the only available
option). Here, the user fixes the crossfeed at a given distance from the axis of mandrel
rotation. In general, this value would be the maximum radius of the mandrel plus any
additional desired clearance. This is the only option available for helix and
circumferential winds. If Constant Eye Position is selected, the user can also enable
Crossfeed Diameter Compensation. In this case, the crossfeed is gradually withdrawn
to compensate for fiber buildup on the part. If selected, another dialog box will appear
once the user clicks on “Done”, requesting information in terms of fiber build-up (i.e.
crossfeed retraction) per layer.

48
Figure 32 – shows how top and side clearances are combined to establish the possible locations of
the payout eye when using Constant Mandrel Clearance. Note that side clearance is defined from
the center of the eye and must include at least ½ the width of the payout tooling.

12.5. Machine Velocities – establishing the rate envelope


The final section of the dialog box, “Machine Velocities”, is concerned with basic motion
constraints. The first selection the user makes is the type of motion rate envelope to use. The
first of the three possible rate envelopes is based on having the mandrel operate at a constant
speed. If this option is selected, then the user can only enter a target mandrel velocity – all
other entries are grayed out. These axes will then run as fast as needed such that the mandrel
can maintain a constant speed. When the program is later run using Omniwind, a feed-rate of
100% will correspond to the mandrel speed shown here.

The second possible rate envelope is “Maximum Axis Speed”. Here, CD will evaluate the

CAUTION: When using a constant mandrel speed rate envelope, no speed limits are enforced on
the remaining axes. Caution is advised when executing a program based on constant
mandrel speed – particularly with large mandrels and high target speeds. With some
parts (particularly low-angle winds), execution at too high a feed rate will cause the
slaved axes to lose synchronization (due to axis saturation). If the resulting position error
exceeds an internal bound, the machine will execute an emergency stop. For this reason,
other rate envelopes, particularly “Maximum Axis Speed”, are recommended. Other
means of obtaining constant mandrel speed are described below.

49
speed of each axis during the wind and actual program execution speed at each point in time
will be determined by whichever axis has the most restrictive limit.

As an example, assume a top mandrel speed of 150 rpm and a top carriage
speed of 200fpm (feet per minute). If a particular portion of the wind would
require the carriage to run at 250fpm to keep up with the mandrel, then all
motion in that region would be slowed down to run at 80% of maximum,
bringing the carriage back down to 200fpm and the mandrel to 120rpm.

One way to avoid the issue described in the caution note above and still obtain constant
mandrel speed is to use “Maximum Axis Speed” as a basis for motion and to set each axis to
its top speed. Then examine the resulting motion and establish the lowest speed of the rate
envelope (see section 13.2 for information on viewing and editing motion and the rate
envelope). This rate envelope represents a proportion of mandrel top speed.

For example, if mandrel top speed were 150rpm and a particular program had
its lowest rate envelope reading at 45%, then the user would go back through
the same motion generation process, again selecting “Maximum Axis Speed”,
and enter a maximum speed for the mandrel of 67.5 rpm (45% of 150). The
other axes would remain unchanged. The resulting motion should have a
constant rate envelope indicating constant mandrel speed.

The final rate envelope is “Constant Fiber Speed”. Here the user can enter both maximum
axis velocities and a target fiber speed. The software will then use approximation (based on
the fiber path – which also forms the basis of part visualization) to calculate the length of
fiber corresponding to each portion of machine motion. The rate at which this fiber segment
is added becomes an additional, “virtual axis”.

The software then begins with a wind based on constant mandrel speed. It then uses this
fiber-based “virtual axis” to determine the proper machine rate envelope (i.e. mandrel speed)
for each portion of the wind in order to obtain the given constant fiber speed. Finally, the
software will run another check – to determine if at any time any axis is violating its speed
limit. If so, the entire rate envelope is rescaled by a factor of the worst violation found. The
resulting motion will obtain constant fiber speed, but depending on any final adjustment, the
actual fiber speed may be less than the entered value (the actual, obtained fiber speed can be
determined from the Wind Statistics dialog box, Figure 33).

As an example, assume a maximum mandrel speed of 150rpm, a maximum


carriage speed of 100fpm, and a target fiber speed of 150fpm. The software
would calculate an appropriate rate envelope to obtain 150fpm of fiber speed.
During final evaluation, the software determines that for a particular portion of
the wind, the mandrel would need to run at 200 rpm, while in a different
portion, the carriage would need to run at 140fpm. No other violations are
determined. The worst violation would be the carriage at 140/100 or 140%
overspeed. The mandrel violation is 200/150 or 133% overspeed. Therefore,
the entire rate envelope is rescaled by 100/140 or 71% resulting in an

50
average fiber speed of 107fpm. The user could determine the result from the
Wind Statistics message box (see below).

Once the user has completed all entries (remembering to select Metric Units if necessary),
pressing Done will bring the user to the “Motion Filter Parameters” dialog box. Here the
user can enter various motion constraints to make the machine operate more smoothly (and
generally faster). Motion filtering is covered in chapter 14. Once completed, a message box
will inform the user that filtered motion was generated and a second box will give some basic
feedback on the wind characteristics.

Figure 33 – Wind statistics feedback dialog box.


One important note on this dialog box – the data is shown at a feed rate of 50%, so if the
machine were run at 100%, the fiber speed would be doubled and the wind time cut in half.

51
13. Motion Editing
Once the user has generated the motion to build a part, this motion can be opened in
Composite Designer (CD) for further evaluation and editing. In general, simple parts such as
helixes and circumferential winds do not present many problems in terms of their motion
(although smooth machine motion does not guarantee a stable fiber path – some design
iterations may be needed to generate appropriate values for things like turnaround range).
With more complex parts such as bottles and especially non-linear winds, the resulting
motion may have some abrupt sections and these may require some additional editing before
execution. At the very least, the user should open up the .mmt file to do a quick “reality
check” before executing the part on a machine.

This chapter covers the many means CD offers for motion editing. The most recent release of
CD also includes automated motion filtering algorithms, which can greatly reduce or
eliminate the need to manually edit complex motion files. Filtering is covered in the next
chapter.

Caution: Filament winding is a complex process. While automated software tools often
generate files which will properly execute with little or no editing, machine operators
are cautioned to use extreme care whenever executing a particular program for the
first time. Programmers and operators should also visually inspect each program’s
trajectory before it is run to make sure there are no obvious problems. This is even
more critical whenever running manually edited motion files since clearances
may have inadvertently been reduced and/or entire segments of motion added.

13.1. Overview of motion generation process


Before getting into the details of editing motion, a brief word on how motion is constructed
in CD. This is to assist the reader with understanding some of the intricacies of motion
editing.

CD uses two separate processes for generating motion – for some special cases such as
helical winds and circumferential winds, motion is directly generated to match the
parameters entered during part creation. For example, the carriage axis motion on a helix is
as follows:
- The carriage begins at one end of the part
- It accelerates at the appropriate rate to reach the fixed speed required to generate the
desired angle at a particular mandrel speed – this acceleration rate is set by the
required speed and the turnaround range
- It then coasts at this fixed speed to the end of the constant fiber angle section
- It decelerates back to a stop over the given turnaround range
- It dwells for the necessary amount of time / mandrel degrees
- Finally, it repeats the steps above while heading in the opposite direction

This would complete one circuit.

52
The second approach is to begin with the fiber path and use various mathematic
transformations to establish the correct location of the various machine axes corresponding to
each point in the fiber path. Then the software connects these machine coordinates to
generate a complete motion trajectory. All bottles, non-linear winds, and path based chain
winds are generated in this manner.

As was mentioned before – all motion is tied to the mandrel, which represents a “master
timekeeper”. The mandrel operates at a constant rate and all other machine axis coordinates
are calculated to correspond to given positions of the mandrel axis. This becomes apparent
when editing the motion file – the mandrel axis is generally a straight line which starts at 0
degrees and ends at however many degrees are required for one complete motion circuit.

Note that it is possible to edit and alter the mandrel’s motion. In order to do this, the software
uses an additional axis called the “Virtual Mandrel” or VM. Before editing, the VM directly
corresponds to the mandrel motion. In the various motion editing screens, the horizontal (x)
axis corresponds to the VM while the vertical axis (y) corresponds to the axis being edited.

If the mandrel axis is altered, it no longer corresponds directly to the VM, but is mapped to it,
just like the other axes. In effect, the VM axis corresponds to time – with one modification:
the rate envelope. The rate envelope is used to globally scale the machine’s velocity across
all axes. This rate envelope was introduced in order to enforce various limits on machine
motion (for example when generating constant fiber speed or maximum axis speed
programs).

For example, if a machine has a top mandrel speed of 150rpm, the rate
envelope is a flat 100%, and the mandrel has not yet been edited (i.e. it
simply corresponds to the VM), then the mandrel will run at a constant
150rpm – and the other axes will track the mandrel as needed. If the rate
envelope drops to 50% at some point in the circuit, then all axes would
effectively run at 50% during that section - the mandrel would drop to 75rpm.

Finally, when running the program on Omniwind, all motion is once again scaled by the
operator through use of the increase and decrease buttons (see section 17.4).

13.2. Motion Editing, first steps


To begin the editing process, the user first opens the motion file in question – File | Open
(note that motion files are the default files on display). Figure 34 shows a typical screen – the
carriage motion of a particular file. The screen has 3 sections which share a common x-axis
representing the virtual mandrel (VM) location. The y-axis varies by section – for the top
region it displays plots axis location, the mid-region displays velocity, and the bottom region
displays acceleration. A small window also appears which displays the value at the current
pointer location. Note that velocity and acceleration are calculated against the VM (e.g.
velocity units are inches or mm per radian of VM motion). In general, the magnitude of

53
velocity and acceleration is of limited value – the screen is meant to be a graphical
representation and allows the user to quickly evaluate potential problem regions.

Probably the first command of interest is the use of the Edit Axis Motion menu header. From
this header, the user can select which axis to display. Up to 6 axes plus the rate envelope are
available (depending on machine configuration). Each axis uses the same basic format as the
figure below except for the rate envelope, which does not have velocity or acceleration
vectors. Displaying the rate envelope will also quickly calculate and display the current wind
time of the program at a 50% machine rate. One point to note – the screens are automatically
scaled so that each chart line uses up its portion of the graph. This scaling takes place each
time the user switches axes and also when data points are edited. Clicking on
Edit Axis Motion | Enable Auto Scale will cause any screen update to automatically
rescale for the displayed data. The remaining commands under this heading will be covered
later.

Figure 34 – shows a typical motion editing window (note that the graphics have been inverted for
better printing – original colors are green lines on a black background). This graph shows the
carriage motion which for bottle similar to Figure 27 (with a lower wind angle).
At this point, various tools exist to assist the user with editing the given file – many of these
are accessible through the toolbar at the top of the screen or by using the right mouse button.
Once the user has quickly scanned each axis, a typical procedure would be to check for any

54
acceleration spikes. Figure 34 shows 2 clear acceleration spikes. These would be candidates
for removal.

Generally, the first step is to zoom in on the problem region. To do this, the user clicks on the
zoom toolbar button: This will add a small magnifying glass to the cursor. The next step
is to drag a box around a region of the graph for closer inspection (press and hold the left
button in one corner of the region, then drag the mouse to move the pointer to the opposite
corner of the region). As soon as the left button is let go, CD will zoom in on the target
region. Note: to zoom in more than once requires multiple clicks on the zoom toolbar button
– the default mode of the cursor is to select points.

To select a point or points, the user once again drags a box around the region to be selected.
If the user is not happy with the selected groups, he/she can hold down the left Shift key and
press the right mouse button to release the selected points and try again. The left-shift, right
mouse button combination will cancel out of any current editing mode.

Figure 35 – shows the various steps used to reduce an acceleration spike. Top left shows original
motion with 2 high-acceleration regions and a box around zoom region. Top right shows zoomed
region with box around points to be smoothed. Bottom left shows original with smooth motion
overlaid (green line). Note about 50% reduction in acceleration peak. Bottom right shows selection of
point at peak acceleration – to be deleted. Note use of crosshair to assist with selection of point.

55
Quite a few means are available for tweaking motion in a particular region. One easy method
is to use the built-in smooth function. To do this, the user selects a group of points around the
region of interest (roughly symmetrical around the peak acceleration point). For smoothing to
work, it requires a minimum number of points – the actual number depends on the setting of
the Bézier Smoothing Factor (see page 62) and varies between 9 and 20 (low factors
generally require fewer points). Once a region is selected, the user right-clicks, then selects
Edit Range | Smooth Range. A smoothing function is then applied to the given points.

Whenever motion is edited, the new data appears as a purple, superimposed graph (note the
colors are reversed in the screen-shots for this manual). If the new data appears acceptable,
clicking on the accept new dataset toolbar button will finalize the change. Alternatively,
the discard new dataset button will revert to the previous data.

Caution: In general, editing and smoothing (and later filtering) can work quite well to
improve machine motion, although some caution is in order whenever trajectory
points are modified. The user should understand what the motion graphs represent
and the implications of any position changes – in particular, how changes to the
crossfeed and carriage affect machine to part clearances.

For bottle-like parts, typical motion consists of the carriage moving back and forth
across the length of the part and decelerating at the ends where the crossfeed
plunges in. In such a case, increasing large position values and decreasing small
ones will increase part clearance because the carriage have more overshoot at the
ends of part.

Similarly, for the crossfeed, typical bottle motion is a constant position over the length
of the part and plunging in at the ends. In this case, all reductions in crossfeed’s
position value will bring the crossfeed closer to the mandrel.

In many cases, smoothing rounds off corners which tends to reduce clearances, so
the user is advised to evaluate the amount of position change when performing any
edit. One reasonable idea is to give the machine more clearance than is necessary
during motion generation. Once motion is smooth and there is still excessive
clearance, then entire axes can be rescaled to reduce clearances at the ends (see
page 60).

While these guidelines apply to bottle-like parts, they cannot be generalized to


arbitrary, non-linear winds. The user should try to picture how the motion graphs
translate to motion on the machine and whether a particular edit will increase or
decrease clearance.

While smoothing was able to reduce the acceleration spike, in some cases, the simplest
method is to simply delete one or more key points. The best way to accomplish this is to
zoom in quite closely on the set of points near the acceleration peak. Next, turn on the cursor

56
crosshair (to do this, right click on the mouse and select “Toggle Crosshair”) – this tends to
assist in selecting the correct point. In this way, the user can align a particular coordinate
(denoted by small “x” in the position window) with the acceleration spike. Once this point
has been selected, pressing the delete key or clicking on the delete button will remove the
point and show the resulting data.

In the example (Figure 35), removing the data point at the acceleration spike, together with
smoothing, reduced the acceleration spike by about 75% without introducing significant
errors (Figure 36).

Figure 36 – shows motion after the edits from the previous graph are completed. Note that the left
(edited) acceleration spike is now much smaller than the right one – peak values have been reduced
by about 75%.

An even simpler method to smooth out spikes is to select the entire trajectory (right click and
select Edit Mode Options | Select All). Now perform smoothing operations again.
Generally the resulting data shows a marked reduction in acceleration values (but again,
caution is advised due to clearance issues). For this example, executing a smoothing
operation on the complete axis reduced acceleration spikes by over 90% but introduced some
significant position errors (Figure 37).

These are probably the most common editing steps for smoothing motion. One important
note is that smoothing the rate envelope is just as important as editing any particular axis
since it causes accelerations on all axes. Unfortunately, in many cases the rate envelope is

57
rather noisy. It can be smoothed in similar manner, but some caution is in order. In general,
reducing the rate envelope at any one point doesn’t present any issues, but increasing it may
cause one or more axes to exceed their rated limit if the machine executes the part at 100%.
One approach is to smooth the entire envelope and try the resulting motion at a low machine
feed rate - gradually increasing the speed and checking if any axis appears to approaching its
limit (this can be done by examining Omniwind’s screen).

Figure 37 – shows effect of selecting entire curve and applying filtering. Note the lack of spikes on
the green acceleration line – values were reduced by over 90%.

13.3. Additional Viewing and Editing Commands


Beyond simple point deletion and smoothing, there are quite a few tools available for motion
editing. Most of these are accessible via the pop-up menu (clicking the right mouse button),
via the toolbar, and via the main menu.

Before much motion editing can take place, a range of motion coordinates needs to be
selected. This was briefly covered in the previous section. The basic concept is common to
most Windows graphics software – the user clicks and holds the left mouse button while
dragging a box around the points to be selected. Note that selection only works in the
position portion of the window (the top graph).

58
To select the entire graph (or an entire segment of a multi-segment chain file), use the
Edit Mode Options | Select All pop-up menu item. This will select all points visible on the
screen (the entire program for a single segment, non-zoomed display). On multi-segment
files, all visible points of the segment with the greatest proportion displayed on the screen
will be the one selected – to select all points of a particular segment, use the zoom functions
covered below and ensure that the entire segment to be selected is displayed.

Range selection is the default behavior for the mouse pointer while editing the motion file
(other behavior is indicated by a different pointer). To cancel a selection (or the current
mouse pointer mode), hold the left shift key and press the right mouse button. Finally, after
any editing is complete, the screen displays the original, green motion graphs together with
purple lines representing new motion. At this point, the user can accept the changes by one of
the following: selecting the menu item Calculate | Accept New Dataset, via the toolbar
button, or via the Edit Mode Options | Accept Results? pop-up menu item. Similarly, to
reject the edit and revert to the original dataset, select Calculate | Discard New Dataset,
press the toolbar button, or select the Edit Mode Options | Discard Results? pop-up
menu item. In both cases, a pop-up window appears to verify the selection.

Another important editing function is to get the display to show the relevant region of a given
trajectory. While some commands edit the entire trajectory, often the user is only concerned
with editing a particular range. To assist with this, there are various zoom commands which
are accessible via the toolbar and via the View | Zoom Menu submenu.

The zoom function – or Zoom Window command – places the cursor into zoom mode
where the user can drag a rectangle across a range of points to indicate the region to zoom
into. Note: after zooming, the cursor reverts to point selection mode; multiple zooms require
multiple clicks on the zoom window button. Zoom Previous or will revert to the
previous zoom window, i.e. if the user zooms into a region, then zooms again and decides the
second zoom was too much, this command will revert to the first zoomed region (rather than
forcing the user to revert to the full dataset and start over). Zoom All or will show the
complete data set again (no zoom). Scroll Left or will shift the window to the left (earlier
in time) by 10% of the window at its current zoom level. Scroll Right or will shift the
window to the right by 10%.

Often, during machine testing of a wind pattern, it becomes necessary to do some minor
tweaking. For example, the clearance might be slightly inadequate – particularly once several
layers of fiber have been laid down. The Transform Dataset menu heading on the pop-up
menu contains various tools to adjust an entire axis (Figure 38 shows examples of these
commands):

- The axis can be mirrored – this results in mirroring the data horizontally (inverting
the time axis). Mirroring is useful for certain types of unusual fiber payout
configurations, although in many cases, the same results can be obtained through
some combination of inverting the mandrel rotation, inverting the eye rotation, and/or

59
starting the layer on the right side of the mandrel. Be very cautious when mirroring
– especially on the crossfeed and carriage – they generally need to be mirrored
together.

- The axis can be offset – which moves all axis positions in a particular direction.
Clicking this menu item generates another dialog box allowing the user to enter the
offset for the axis being edited. Offsetting is useful if the motion is essentially correct
but the mandrel location is slightly different than was first entered. For example the
tooling might have changed or the start of the mandrel might vary for some reason. In
cases where significant editing has already taken place, it is usually faster to add an
offset to the necessary axes rather than generating motion again with different
clearances. Offsetting the machine can also be performed in Omniwind – but by using
the Offset Dataset menu item, the change can be made permanent. Offsetting
follows the conventional axis definitions used throughout CD and Omniwind (e.g.
positive value for carriage offset would cause the program to move closer to the
tailstock).

- The axis can be rescaled – which allows the user to set different end points for the
axis and the resulting motion will be linearly interpolated to lie between the new end
points. This allows the user to rescale, offset, and vertically mirror (by reversing
maximum and minimum values) the data in one step. This is often handy when trying
to tweak clearances or, in some cases, “fool” CD. Vertical mirroring can invert
motion on most axes (do not use on the crossfeed – and as usual with such major
edits, use caution and ensure consistency between axes. Use of other inverting
options during path and motion generation is recommended instead).

For example, if the user is trying to obtain a particularly low wind angle on a bottle
but the mandrel has a large shaft – this would prevent the user from entering a small
polar opening. In some cases, it may be possible to work around this problem by
generating motion assuming the small polar opening. If this motion were run, the
crossfeed would strike the mandrel, but rescaling the crossfeed’s motion – by leaving
its maximum value unchanged and increasing its minimum value – can generate
sufficient clearance. In many cases, the resulting path is unlikely to be stable,
although pin-rings, or in some cases the mandrel shaft, can help prevent excessive
slippage.

- The axis can be converted to a second order polynomial (or “functional” motion –
i.e. each region of motion has a fixed acceleration rate). This command will attempt
to determine a reasonable second order approximation to any given trajectory;
however it is usually of limited value.

For zero-degree, circumferential, and helical winds, CD normally uses functional


motion, but for various reasons, this might have been changed to cubic or linear
interpolation. If the user wishes to restore functional motion to a particular wind, this
should be done directly via the motion table and not through the use of this command
(see section 13.5).

60
Figure 38 – Examples of the Transform Dataset commands on the carriage axis for a bottle wind:
original motion in purple, new in green. Upper left: mirroring the axis – note the alteration is
horizontal (time-based) not vertical (position-based), in some cases these produce the same result
but generally they don’t. Upper right: Offsetting the axis – for this carriage axis view, all motion has
been moved towards the tailstock (up on the screen). Bottom: rescaling the axis – new motion is
inside of old motion – the carriage won’t travel as far on either extreme.

The Edit Range pop-up submenu includes various functions for editing a range (a selection)
of points (Figure 39 shows examples of these commands). Remember that selecting a range
is as simple as dragging a box around the points. The individual commands:

- The points can be deleted (also accessible via the delete key, the toolbar button,
or the Calculate | Delete Range command on the main menu). This simply deletes
the points, maintaining whichever interpolation was in use for the axis. It is often
useful for reducing a high-acceleration point or small region.
- The range can be smoothed (see section 13.2 above more a more detailed description
of this)
- The range can be interpolated – via linear or cubic interpolation. In both cases, the
software will replace the points between the start and end points with a new number
of points defined under Edit Range | Set Parameters (see below). With cubic

61
interpolation, the new points follow the original contour (useful for reducing the
number of points) while with linear interpolation, they form a straight line between
the first and last selected points.

Figure 39 – Examples of various Edit Range commands – note: the purple line is before and the
green is after the edit. Top left: deleting the range (note how cubic interpolation between remaining
points smoothes motion); top right: smoothing the range produces tighter motion but still reduces
acceleration, bottom left: cubic interpolation follows the contour even tighter but can still generate
some smoothing by reducing the number of points; bottom right: linear interpolation produces an
abrupt change in velocity to generate a line connecting the endpoints.

The final option on the Edit Range submenu is Set Parameters. This command brings up
a dialog box allowing the user to edit various parameters for other functions on the submenu.
The topmost parameter, Bézier smoothing factor, affects the smoothing algorithm. This
algorithm requires various internal parameters and this number selects one of nine different
parameter sets. In general, larger numbers generate a greater smoothing effect and use a
larger dataset when averaging.

The rest of the box deals with linear and cubic interpolation. The use of Thresholding is not
recommended. With Uniform Calculation Intervals, the user selects how many evenly
time-spaced points the interpolation functions should generate – note: this many points will
be generated for the entire selected range regardless of its size – this can be useful for

62
generating more or less data points on any given dataset. The final selection establishes the
end-point criteria for the spline curves. Generally Parabolic is used except when editing an
entire trajectory at once, then Circuit is used.

13.4. Direct Motion Generation


So far this chapter has focused on various tools available to view and alter the existing
motion profile. It is also possible to directly edit the data, either by drawing points with the
mouse, or by editing the motion tables (see following section). Here we will deal with using
the mouse to draw data. There are two options for this – one is the Draw Data Directly
command on the pop-up menu, the other is via Calculate | Insert Points (equivalent to the
toolbar button). Before starting, the user should select an appropriate zoom level to
ensure that the newly entered points will not introduce significant position error.

Draw Data Directly is probably the easier and more powerful point entry tool. When
selected, the user is first warned of the danger of direct data entry. At this point the mouse
changes to a pencil and the user can simply add points by positioning the mouse and clicking
the button. The resulting motion will erase any existing points in the same region as those
entered. Caution: On multi-segment parts, use care at segment boundaries – the current
function does not enforce boundary conditions (if a particular segment is periodic – i.e. it has
more than one circuit – then all axes except the mandrel must begin and end at the same
location).

The Insert Points command is similar, except that existing data points are not removed – old
and new points are both combined to form the new motion – in many cases resulting in wild
oscillations. Generally, the user would manually delete any offending points later. This mode
is handy where the user specifically wants to add points. It does not pose any issue at
segment boundaries since it doesn’t delete any points.

13.5. Motion Table Editing


An alternate method to edit motion is via the motion table. This gives the user very precise
access to the motion of all axes at once. Note: only one form of entry is available at a time –
if the motion table is open, the user is unable to do any editing of the graphs. To display the
motion table, click on Edit Axis Motion | Motion Table. The table is arranged as a
spreadsheet with 10 columns, which are covered in the following text.

Segment Info: this contains basic information about each segment (on chain files, each
segment, including transitions, will have an entry in this column). This column has the
following format:
Seg. #X, "NAME", Circuits=Y / Strokes=Y
where X is a sequential segment number (note: this is not user adjustable – even if altered,
CD will auto-number the segments when the table is closed). NAME is the segment’s name,
up to 20 characters. NAME is used at various locations including the operator’s display when
running the part. “Circuits” or “Strokes” indicates how to interpret the number Y, which is a
number indicating how many times to execute the segment. It is important in determining if a

63
segment requires alignment of its start and end points (i.e. whether all axes, except the
mandrel, must return to their starting locations to begin the next circuit).

Most types of winds generate Circuits. If Y is one then the circuit only executes once so start
and end points no longer need to align. Strokes are slightly more complex – they are only
used for circumferential winds and count a single motion of the carriage either towards the
headstock or the tailstock. If Y is one, the segment executes once leaving the machine at a
different position. If Y is an even number, the entire segment executes Y/2 times. If Y is 2
then start and end points need not align, otherwise they must. If Y is odd and greater than 2
then operation depends on whether or not the program is in a chain file. For single segments,
operation will stop ½-way through the final pass, otherwise the program will automatically
generate 2 chained circumferential windings, the first having an even number of strokes and
the second having a single stroke. This permits proper alignment between segments.

Note: at all segment boundaries, the end point of the first segment is the starting point of the
second segment. Also, at these critical points, all remaining columns must contain data for all
defined axes.

Flags: these define machine behavior in this segment and also establish which type of
interpolation to use for each axis. Following format is used:

[SegFlag…], Mandrel=IF, Carriage=IF, [Elevation=IF],


[Crossfeed=IF], [Eye Yaw=IF], [Eye Rotation=IF]

where [] indicates optional entries, SegFlag… indicates one or more of the possible segment
flags. These are:
- OffMand – mandrel offset, allow the mandrel to continue from segment to segment
without returning to zero location.
- Hold – automatically hold the machine at the segment boundary.
- AutoFP – only for use on transition segments – this will automatically stop the
machine, perform a Find Path for the next segment, and start up again (depending on
whether the Hold flag is also set). The transition segment is essentially ignored.

Generally, for a multi-segment file with smooth transitions, only OffMand would be set for
each segment (but not necessarily the first segment). Note that these flags can also be set via
a more user-friendly method when creating the chain file (see section 15.1). The remaining
column entries are interpolation for each existing axis. The axis names are exactly as they are
shown above, while IF is one of the following interpolation flag options:
- Cubic – uses cubic spline interpolation, generally the most common format for
motion of any complexity.
- Functional – uses functional, second order, constant acceleration interpolation. This is
the most common format for simple motion files (helixes, circumferential, and zero-
degree winds) which are already based on functional motion. It will not produce
reasonable motion for complex, path-based motion.

64
- RFunctional – relative functional – also uses second order, but relative rather than
absolute position information. This segment is not periodic and continues relative to
its starting position. Very rarely used (never automatically generated).
- Linear – use linear, constant velocity, interpolation. This is generally only of use for
files with a very large number of points such that velocity changes between sample
points are minimal, otherwise the machine will experience very large accelerations.

For the most part, the user is unlikely to change any interpolation flags. In some cases,
motion which had functional interpolation might have accidentally been switched to cubic.
This column allows the user to restore the original setting (and use different settings in
different segments).

Indp. (ds) contains relative time entries expressed in seconds. Relative (or incremental) time
is used to ease insertion of new data. Actual program execution time is established via this
column, modified by a linearly interpolated rate envelope, see below, and further affected by
the execution rate set by the machine operator control. This column is somewhat difficult to
directly edit. It is often easier to use graphical functions to insert new motion points on the
axis of interest and the use the table to enter exact positions for those points. However, if the
user needs to add fiber length at a particular location (i.e. additional mandrel rotation), then
this usually requires new entries (or similar calculations) to be made in this column. For more
on altering this column / inserting additional mandrel rotation, see section 13.7. Note that
unlike the axis columns, each row of the time column requires an entry – this is fairly
intuitive, since the software needs to know the time for each machine coordinate. Also, this
column is used by the software to determine the end of the program – which is the first blank
entry.

The next columns (Mandrel (dø), Carriage, Crossfeed, Eye Rot., Eye Yaw, and
Elevation) indicate the machine coordinates at any given time point. The mandrel, similar to
time, uses relative (or incremental) coordinates to make editing and inserting new points
easier. The remaining axes use absolute coordinates since their motion is bounded and
cyclical. The units are degrees for rotary axes and either inches or millimeters for linear axes
(to switch systems, select Edit Mode Options | Display Metric Units from the pop-up
menu on the motion graphs).

The user can navigate through the spreadsheet, searching for a particular region of the wind,
and then directly modify the contents of these columns. As with all motion editing, caution is
advised. Also, while the mandrel can also be directly edited, this process is more complex
than for the other axes. Changing mandrel entries directly affects the fiber length of the part
and can have a significant affect on the pattern and fiber stability. This issue is covered
further in section 13.7.

Individual position cells can be left empty. Only the first row in each segment and the final
row of the entire program requires entries for each present axis (as well as the rate envelope).
The software will automatically apply the given interpolation method to generate
intermediate points where these are left empty.

65
The final column is the Rate Envelope. The rate envelope scales the time (Indp. (ds))
column. For example, if the rate envelope is at 20% and a time-column entry is 0.4, then the
motion from the previous row to the given row would take 2 seconds (if the machine is
running at 100%). The rate envelope itself is linearly interpolated from one entry to the next
– gradually accelerating or decelerating all axes along the way.

13.6. Spreadsheet Table Functionality


The motion table window is actually a type of stripped-down spreadsheet and offers many
spreadsheet-like editing functions. In addition, whenever the table is open, several additional
menu functions become available. This section covers these features.

For the most part, editing features are fairly similar to most Windows spreadsheets:

To move around the file, use standard mouse or keyboard control. Click on a cell or using the
keyboard to move to the cell selects that cell. To replace the contents of the cell, simply start
typing. Pressing the Enter key accepts the current edit, while the Esc key discards it (use
caution with the Esc key – if no cell is selected, it will discard all edits and return to the
graphical motion window!). Note: when closing the table window, the user is given an
additional opportunity to accept or reject all changes. To edit (without replacing) the contents
of a cell, double-click on it. At this point, common Windows keyboard editing commands
can be used (e.g. Ctrl-C to copy a block).

To quickly move around the file with the keyboard, the user can use the Control and arrow
keys – these will either skip over neighboring empty cells to the next occupied cell, or skip
over neighboring occupied cells to the last one. For example, positioning the cursor in the
first row and column and pressing Control + Down Arrow will place the cursor in the first
row of the second segment (also, Control + Page Up / Down will move the screen over to the
left and right, but this is of limited use since the sheet only has 10 columns).

To replace the contents of a cell, select the cell with the mouse or cursor, To delete a cell,
select the cell with the mouse and press the delete key and select “All” in the dialog box
which appears (generally, this can be done quickly by just pressing the Enter key). Multiple
cells can be deleted in the same way.

There are various options for selecting multiple cells – the user can drag the mouse to form a
box, hold the Control key down and press the left mouse button in each cell, or hold the Shift
key down and use the cursor keys (or the mouse) to select a rectangular block. Finally, the
user can click on a particular row or column heading to select the entire row/column, or in
the top left corner square to select the entire spreadsheet.

Moving, copying, and repeating cells is also accomplished with the mouse. To move a cell
or group of cells, first use the mouse or keyboard to define a block (only a single block may
be used, not multiple selections via holding down the Control key). Now place the mouse at
the boundary of a selected block – the pointer should change from a “+” to a typical arrow-
pointer. At this point, hold down the left button and move the mouse the desired number of

66
cells – the outline of the selected block will move to the new location. Finally, when the
button is released the cells are moved. Any newly exposed cells are cleared. To copy the
cells, the procedure is the same, except the user should also hold the Control key during the
move operation (note that copying does not work well if the new location overlaps the
original location). Finally, to repeat the cell, first select the cell(s) to be repeated. Next,
move the mouse pointer over the small “+” in the lower right corner of the block (the pointer
also changes to a small “+”) and drag the block in the direction to be repeated - either
vertically or horizontally, but not both in a single operation. If the block contains formulas,
these are transposed as described next.

The spreadsheet also supports common formula evaluations. Formulas can be used in any
cell – when the data is converted back into motion format, the formulas are evaluated. In
addition, any cells beyond the first empty time (Ind. (ds)) entry can be used as a “scratchpad”
(keep in mind that formulas are lost when closing the table view, see exporting and importing
below). The spreadsheet follows typical spreadsheet conventions:

- an equals sign begins a formula


- column letters and row numbers indicate cells
- functions and standard computer math notation are used calculate values
- colon notation indicates a range of cells - e.g. sum(a1:b4) would sum the 8 cells from
column 1 row 1 to column 2 row 4

As an example, if a cell contained the following formula:

=C20*4+SQRT(D4)/2

and the cell at column 3 in row 20 (or C20) contained 5, and the cell at column 4 row 4 (D4)
contained 16, then this cell would evaluate to:

=5*4+SQRT(16)/2

and display 22 after the user pressed Enter.

When cells are copied or repeated (but not when moved), they are transposed. This means
that their cell references are modified by the number of cells moved. For example, if the
formula above were copied one column to the right and one row down it would become:

=D21*4+SQRT(E5)/2

This is useful when doing calculations on blocks of values. To prevent transposition, place a
dollar sign in front of the column and/or row which should remain fixed (e.g. $C4 would
have a fixed column and transposable row).

The following is a list of all available spreadsheet formula functions:

67
List of Spreadsheet Commands

ABS ACOS ACOSH ADDRESS AND ASIN


ASINH ATAN ATAN2 ATANH AVERAGE CALL
CEILING CHAR CHOOSE CLEAN CODE COLUMN
COLUMNS COS COSH COUNT COUNTA DATEVALUE
DAY DB DDB DOLLAR ERROR.TYPE
EVEN EXACT EXP FACT FALSE FIND
FIXED FLOOR FV HLOOKUP HOUR IF
INDEX INDIRECT INT IPMT IRR ISBLANK
ISERR ISERROR ISLOGICAL ISNA ISNONTEXT ISNUMBER
ISREF ISTEXT LEFT LEN LN LOG
LOG10 LOOKUP LOWER MATCH MAX MID
MIN MINUTE MIRR MOD MONTH N
NA NOT NOW NPER NPV ODD
OFFSET OR PI PMT PPMT PRODUCT
PROPER PV RAND RATE REPLACE REPT
RIGHT ROUND ROW ROWS SEARCH SECOND
SIGN SIN SINH SLN SQRT STDEV
STDEVP SUBSTITUTE SUM SUMSQ SYD
T TAN TANH TEXT TIME TIMEVALUE
TODAY TRIM TRUE TRUNC TYPE UPPER
VALUE VAR VARP VDB VLOOKUP WEEKDAY
YEAR

This section is only intended as a brief overview of spreadsheet functionality. These features
are primarily incorporated to allow quick, simple motion editing and basic formula entry.
Note: keep in mind that the various CD file formats are all value based – any spreadsheet
formulas will be lost when the file is saved. To allow the user to track formulas and also
provide an interface to a far more powerful spreadsheet, tables can be exported and
imported in Excel® 4.0 format. This is accomplished via the Axis Motion Table menu
header and the items Import Excel 4 File and Export as Excel 4 File. Once the file is in
Excel format, the user can make use of the wide assortment of features available in Excel.
Keep in mind that the file must also be saved in version 4.0 format so that CD can import it
again.

Two additional, advanced editing functions are covered in the following sections – directly
inserting motion into the table, and merging separate motion files.

Once all modifications are complete, closing the table window will ask the user if they wish
to apply the changes. Afterwards, checking the resulting motion graphs and further graphical
editing can help to smoothly transition to any altered motion.

13.7. Inserting motion via the table


This section describes how to modify a motion table file to add fiber length. Note that doing
this will significantly alter program behavior, but it can be quite useful to generate specific

68
winds. Examples include hoops or other recurring patterns within a more complex wind such
as a bottle, or local fiber build-ups at fixed carriage locations. These are often difficult or
tedious to automatically generate and properly chain. Editing the motion file should always
be done with care. It should generally be the last step in a programming process because if
motion needs to be regenerated later, all editing is usually lost and needs to be repeated.
Finally, if the resulting file (or segment) is still expected to form a closed pattern, then any
inserted mandrel length needs to be chosen with care. Ensuring a particular pattern with
pattern closure requires some detailed analysis of the mandrel’s motion (see appendix 19),
but one simple case always maintains the original pattern: adding any number of complete
hoops (360 degrees).

Before starting to edit the program, it is helpful to have plenty of entries in the mandrel
column. If the file was generated via motion filtering, then this is already the case.
Otherwise, the user can generate mandrel entries by using linear interpolation on the mandrel
axis (see page 61). Ideally, the table will have sequential mandrel entries on both sides of the
insertion point (Figure 40).

Figure 40 – a motion table which is well suited for inserting additional mandrel rotation

The first step is calculating the mandrel’s speed (in degrees per second). To do this, divide
the change in mandrel angle (entries in the Mandrel (dø) column) by the change in time (the
Indp. (ds) column). Note – these are both incremental measures. For example, if the mandrel
has no entry in the previous 3 rows, the user would need to the sum the Independent entries
in these rows plus the row containing mandrel data and divide by this value (the spreadsheet
functions described above can assist with this step).

With this information, the user can now insert some motion. It is often easiest to insert a few
rows (as described above, page 66), although existing entries can also be altered to achieve
the same effect. When inserting rows, simply enter mandrel values which sum to the desired
additional rotation (e.g. 4 entries of 360 would add 4 hoops). In the Indp. (ds) column, enter
the duration of each motion – generally keeping with the current speed, although gradual
accelerations or decelerations are also possible. Using the example figure, the mandrel is
rotating 44.9 degrees every 0.0648 seconds or 692.5 degrees/sec. So if the user wished to
enter 4 new rows of 360 degrees each, the independent time column would contain 0.5199
seconds for each mandrel entry. This would maintain the same constant speed. If altering

69
existing segments, the user should add any changes to the current entries in those segments –
e.g. the mandrel entries in the figure would change from 44.9 degrees to 404.9 degrees and
the time entries from 0.0648 to 0.5847.

Finally, once the mandrel motion has been inserted, all editing functions can be used to
further refine, insert, smooth, and otherwise alter the remaining (and even the mandrel) axis
to obtain the desired result. As is always the case, the machine operator should be very
cautious when executing any program for the first time, particularly edited ones.

13.8. Merging Motion Files and Manual Chaining


If the user needs more direct control to chain separate files together, they can directly insert
entire segments into the motion table and manually join these. Note that the user is also
responsible for setting appropriate transition flags and ensuring that motion transitions are
sufficiently smooth. Some examples might include inserting a single-pass fraction of a
particular wind to move the machine into a specified location before commencing with
another segment, or a means to mix and match winds generated via different methods (At
present, the chain wind module doesn’t support mixing path and motion based transitions –
meaning zero degree winds cannot be chained by path). Obviously, the normal caveats apply
– always use extreme caution and very slow machine execution rates when running any
manually edited files for the first time. Also, review the resulting motion graphically to do a
quick sanity check.

We now assume the user wants to insert a particular motion file at a given location. If that
location is the end of the file, they can simply insert the new file – otherwise they first need
to ensure that there is sufficient room for insertion (existing entries are not automatically
moved – they are overwritten). To see how many rows are required, they could open up that
motion file and inspect its motion table. Moving part of the spreadsheet is covered above (see
page 66).

To break up the existing file, the user should select the block beginning with the first row
after the segment boundary entry (i.e. after a row which has data in the Segment Info column
– unless the user wants to insert at the start of the file before initial motion: then move the
entire program down). From there to the end of the file, all rows need to be moved down a
sufficient amount (usually a little more than the number of entries to be inserted).

If the new file already matches the existing file (for example, it might be a copy of an already
existing segment), then it can be inserted directly at the end of the previous segment.
Otherwise the user should probably consider including a few additional rows for transition
motion. Once the insertion location is clear, the user would position the cursor in the first
column (“Segment Info”) of the appropriate row and select the menu item
Axis Motion Table | Insert Motion File. The new file should now appear at the given
location.

If transition motion is required, the previous section gives some basic pointers for generating
it. The user would typically insert a considerable length of fiber (i.e. mandrel rotations) while

70
manually inserting reasonably smooth transitions on the other axes from the end point of one
segment to the start of the next – gradually adjusting carriage and eye-rotation speed to form
a (hopefully) stable transition (note this motion can later be tweaked and smoothed using the
graphical interface).

Keep in mind that unless both the position and velocity match at segment boundaries, the
machine is going to try to “jump” from one state to the next. Also, for cyclic segments (any
segment with a stroke count > 2 or a circuit count >1), segment start and end points must
match. To avoid this, the user will usually need to copy a particular segment and alter its
circuit count to 1 so that it can become non-cyclic. Finally, when generating transitions
consider mandrel shape and the potential for striking the surface, particularly the machine
location defined by carriage and crossfeed values.

Once the transition is done, the user may proceed with combining the endpoint of the
previous segment with the new motion (or if motion was inserted at the very start of the
program, the same process takes place at the end of the inserted block). Figure 41 shows
what a segment boundary between the existing end of file and a freshly inserted segment
(motion file) might look like. Note how all axes except the mandrel (and time/independent)
are aligned. This is as it should be. To complete the transition, lines 41 and 42 must be
combined – remember that the last line of a segment is also the first line of the next segment.
If the new file was inserted between existing segments, then line 41 would also have
Segment Info and Flags entries. These would first be moved into the last row of the freshly
inserted segment(s). Next, the Segment Info and Flags entries from row 42 must be moved to
row 41.

Figure 41 – shows a motion table with a freshly inserted file at line 42, the previous end of file. This
requires manual editing to tie the end and start points together.
The remaining axes on row 41 are now valid – they are either the same as their counterparts
on 42, or they are incremental values (for time and mandrel) which are not used on the first
line of a program. Now row 42 can be removed by moving all remaining rows in the program
up by one (starting with row 43). Important: except for the very first line in a program, no
time (Indp. (ds)) column entry should be zero! This will generate an error. Finally, if there
are additional segments after the inserted motion, the process is repeated at the end of the
inserted segment.

This would complete appending a matched motion file to the end of an existing file. Figure
42 shows the result after the insertion is completed. The user does not need to worry about
updating the segment number, but should consider setting appropriate segment and
interpolation flags.

71
Figure 42 – shows the same motion table after editing has been completed.

While this section describes the various steps required, the user may find it easier to break
the job into steps – first insert the new motion segments, then close the table to incorporate
the changes, then save the file (probably using “Save as…” and a new filename), and then
proceed with the next step (e.g. inserting motion to generate transitions) – otherwise there is
the potential for quite a bit of work to be lost if a particular insertion step fails.

Of course, this example is just one of many possible reasons and methods to directly add
segments. Some other examples include: copying an entire segment and altering the circuit
counts – this often gives the user a good starting template for generating transitions. One of
the two resulting segments would generally have their circuit count set to 1 so that it would
no longer need to start and end in the same place and could be cut into pieces as needed.

Also, quite experimental winds could be attempted – e.g. two distinct segments with different
wind angles might be merged to give complex weaving patterns. In general, these original
winds should both have the same number of circuits. Verifying whether such a compound
wind would close requires some analysis. Appendix 19 gives an overview of the math
involved in such cases.

Even though it is a powerful tool, major, direct editing of a motion file is not a simple task
and in most cases, automated alternatives can produce very similar results. For example, a
circumferential wind of a single layer with a very large bandwidth setting can often be used
to move the machine to a particular location. Motion table editing should be seen as a final
resort for either tweaking motion or generating complex chain files.

72
14. Motion Filtering
Motion filtering is a recent addition to the Composite Designer (CD) software package. In
many cases, it provides a powerful mathematical tool to automatically smooth out motion
files allowing the user to reduce noise and vibration and increase throughput on complex
parts.

The Motion Filter Parameter dialog box provides the user with many parameters to tweak
and smooth generated motion. The box is opened any time an Omniwind motion file (.chn or
.mmt) is generated. This includes whenever the user selects Calculate | Machine Motion...,
and when .seg files are saved as .mmt files. To skip the filtering step, click Cancel. If a
motion file is edited and resaved, the user may re-apply filtering. In this case, the filter
motion box will only appear the first time this edited motion is resaved – to filter any
arbitrary motion file, simply load it for editing and resave it.

The initial, displayed filter parameters are either the machine defaults, or the most recent
parameters used to generate this motion file (if they exist). Only the available machine axes
are enabled. Upon completion, filter parameters are saved in an .mfp file, while the filtered
motion file has the same name as the unfiltered file with the letters "flt" appended. For
example, a project called "bottle" would generate the files: "bottle.mmt" - unfiltered motion,
"bottleflt.mmt" - filtered motion, and "bottle.mfp" - motion filter parameters (in addition to
other file types).

14.1. Initial Filter Parameter Entry

Figure 43 shows the initial dialog box. The initial parameters are fairly straightforward -
allowing the user to set maximum velocity, acceleration, and position error levels, and also
select a unit system (Metric - if checked, else Standard). Note that filter parameters apply to
all motion currently under calculation - in the case of a chain file this means all segments
receive the same parameters.

The following topics cover the individual entries in the dialog box:

Velocity Limit and Allowable Overspeed Factor – here the user enters the maximum
allowable speed for a given axis. In general, the user is likely to adjust only the mandrel's
velocity limit according to the radius of the mandrel. Based on the resulting filtered motion,
other axes may be adjusted down or up to improve the result.

Filtering will ensure that that no axis' speed exceeds this limit times the allowable overspeed
factor. This overspeed factor is used during acceleration filtering to correct position errors -
axes may momentarily exceed their speed limit during such corrections, up to the overspeed
factor. To enforce a hard limit, reduce the axes' limit by dividing by the overspeed factor (e.g.
if a hard limit of 150rpm is desired and overspeed is set to 110%, then set the axis' limit to
150 / 1.1 or 136.36rpm). The overspeed factor itself does not normally require adjustment.

73
The motion graph shows the actual peak speed attained (at a 100% feed rate).

Figure 43 – the Motion Filter Parameter dialog box; initial, unexpanded state

Motion will follow a path in which one axis is at its velocity bound at any given time and
other axes' velocities are scaled accordingly. Currently, the filtering algorithms do not have
provisions for constant fiber speed or constant mandrel velocity, although a master axis (e.g.
constant mandrel velocity) can be simulated by setting the desired axis' speed limit
sufficiently low and the remaining axes' speed (and possibly acceleration) limits extremely
high. This effectively slaves all axes to the axis with the low speed limit.

Caution: the code does not enforce any limits on the user's entries - users should verify that
a given motion is feasible and safe by studying the motion graph. Users should check
the graph to ensure that the peak velocity on each axis does not exceed the factory
specified velocity limit for that axis by more than a few percent. Specifically, if an axis
exceeds the velocity range of the drive circuitry, then excessive position error may
result if the program is run near 100% (the drive will saturate). See section 14.4 for
more information on the motion graph.

Acceleration Limit – here the user can enter acceleration limits for each axis. In most cases,
the user would adjust the mandrel's acceleration level to reflect the size of the mandrel (more
importantly, its rotational inertia). If machine errors occur during program execution or
machine vibration is excessive, reducing this parameter will help. The carriage axis is also a
good target for reduced vibrations. Finally, reducing acceleration limits can act as a rather
limited, low-pass filter if a given axis’ trajectory is particularly noisy. Depending on the
generated motion, acceleration limits may also be raised, particularly on low-mass axes such
as eye rotation and yaw. Ideally, machine defaults are based on continuous motor torque and

74
drive settings. However, some configuration files are known to have excessively high or low
values. The following can serve as a rough guideline:

Axis Light Load Medium Load Heavy Load


Mandrel 150 rad/sec/sec 50-100 rad/sec/sec 10-20 rad/sec/sec*
Carriage 100 inch/sec/sec 100 inch/sec/sec 50 inch/sec/sec
2.5 m/s2 2.5 m/s2 1.25 m/s2
Elevation 50 inch/sec/sec 50 inch/sec/sec 30 inch/sec/sec
1.25 m/s2 1.25 m/s2 0.75 m/s2
Crossfeed 150 inch/sec/sec 100 inch/sec/sec 100 inch/sec/sec
3.75 m/s2 2.5 m/s2 2.5 m/s2
Eye Yaw 200 rad/sec/sec 200 rad/sec/sec 200 rad/sec/sec
Eye Rotation 250 rad/sec/sec 250 rad/sec/sec 250 rad/sec/sec
Table 3 – Approximate acceleration values for different scenarios. The scenarios are based on
overall machine and mandrel size and should be adjusted for additional loads on individual axes
(particularly the carriage). * - For heavy / high rotational inertia mandrels, use of constant mandrel
speed is recommended
Using these levels as baselines, the user may then raise or lower the entries based on machine
behavior.

Unlike velocity, acceleration limits are applied to each axis individually and do not generally
affect other axes (an exception is at the segment boundaries of chain files). Such multi-axis
enforcement is more complex and the resulting motion can be undesirable. Instead, during
acceleration reduction, local position errors are permitted. After a local acceleration region
has been filtered, the resulting position errors are then filtered out by applying low-level
maneuvers at the start and end of the region (these in turn can introduce small overspeed
conditions).

Position Error Limit – this limit is the tolerable path deviation from an ideal fiber pay-out
motion path. This error is required for acceleration filtering to operate well. Very low settings
can result in very slow machine operation because upon exceeding a position error limit the
approximation method will lower an axis' speed limit until acceleration and position errors
are within bounds. In general, raising acceleration limits will reduce position errors - since
this allows the axis to better track the original trajectory (but then the point of filtering is to
reduce such high level maneuvers).

Unlike typical machining, filament winding is more tolerant of position errors. On stable
paths, fibers typically move small amounts on any path which is not truly geodesic.
Furthermore, the smoothness of the motion is also important since large accelerations can
cause vibration of the fiber. Users may wish to experiment with various levels of position
error limits to evaluate tradeoffs in terms of part throughput and ultimate fiber path accuracy.

Note that position errors are not random errors. Examining the motion graph will show how
and where these errors occur - they are introduced in regions where axes experience high

75
acceleration levels. The lowered, filtered acceleration causes position error during the
maneuver and also generates residual position error at the end-points. The filtering algorithm
adjusts the start and end point of this maneuver to minimize this residual error and applies
low-level maneuvers to eliminate them.

While paths with significant position error often still generate stable fiber paths which are
nearly identical to the original fiber path, users must be cautious in setting limits and
evaluating the results.

Caution: position error represents a path deviation. Excessive position error - particularly on
the carriage and crossfeed axes - can generate a motion file in which the payout
system can strike the mandrel or other tooling. To avoid problems, users should first
examine the actual generated path and check the magnitude and location of the
position error. When running any program for the first time, operators should use a
minimal feed rate, especially any time the crossfeed is active (e.g. the ends of
bottles) and be prepared to stop the machine.

Using a bottle wind as an example, if a crossfeed begins to plunge-in slightly earlier, it may
cause the payout system to strike the mandrel. To compensate the user can do some
combination of the following:

- reduce the tolerable error on the offending axes (which tends to slow down the
program)
- when generating motion, increase the eye side clearance, eye top clearance, and/or
payout eye tooling offset
- consider using the Min. Internal Err. option (see page 78)

Some final notes on position errors:

- Position errors are non-cumulative - cycles on all axes still close properly and without
any steps in velocity or acceleration. This also applies to segment boundaries on
chained files.
- Users may note a constant position error on the mandrel in the filtered motion graph.
This is due to the mandrel's unique property which forces the mandrel to start at a
particular angle. If an acceleration is adjusted which wraps around from one cycle to
the next, then a position error is introduced at the start of the segment. The entire
trajectory is then shifted so it begins and ends at the correct mandrel angle. Note that
in almost all cases, this constant error is safely ignored.

Figure 44 shows how acceleration filtering operates and introduces position errors. This is a
fragment of a motion graph. The light blue line shows the original velocity profile. It
experiences a high-level acceleration at around 1.4 seconds (the brown line). Filtering causes
the maneuver to start earlier and at a lower acceleration level (the purple line). The yellow
line shows the resulting velocity profile. The algorithm attempts to minimize the resulting
position error (blue-green line indicates magnitude) at the maneuver end-points. On this

76
particular graph fragment, acceleration was reduced from a peak of about 10.1m/s^2 to
2.4m/s^2 and a peak position error of 1.6cm was introduced (note – scale on graph is
normalized).

Figure 44 – a graph showing acceleration filtering


Remaining Buttons
The remaining buttons deal with storing and resetting the filter parameters. The parameters
used in filtering are automatically stored in the same directory with the same name as the
motion file and extension .mfp. This file is automatically searched every time the motion
filter algorithm called – if it doesn’t exist (this file hasn’t generated motion before), then the
machine defaults are loaded. Beyond this, these buttons can further process filter files:

Load Parameters: opens a dialog box so the user can load an .mfp file into the present
parameter set. Note: if the user works with multiple machines (i.e. winders with different
.mct files), care must be taken to ensure that an appropriate .mfp file is loaded – one that was
generated using the current machine’s limits. For example, the .mfp file tracks which axes
exist.

Save Parameters: opens a dialog box so the user can save the current parameters into an
.mfp file.

Restore Defaults: returns the parameters to the defaults for the current machine. All
parameters are reset (including ones which only appear after the user clicks on More and
Advanced).

77
The final button is titled “More>>>” and expands the dialog box to introduce additional
options.

14.2. Additional Filter Parameters


After clicking the More button, an expanded list of filter settings is displayed (Figure 45).
These are less frequently required, but can be used to tweak filtering characteristics in some
cases. Only the “Reduce Mandrel Velocity Spike” option is selected by default. In general,
these options may not be appropriate for all axes – the recommended use for each option is
highlighted with a rectangle. The following topics cover the options in sequence.

Figure 45 – Motion Filter Parameter dialog box showing additional settings (after clicking on
More>>>)

Lower Acc. – this first set of checkboxes allows the user to turn on an additional
approximation algorithm which will attempt to further reduce the acceleration limit on a
given axis until it either reaches 1/8 of its original level or the position error becomes
excessive (a binary approximation algorithm is used). This can be very useful on the mandrel
and carriage axis since these tend to have the greatest affect on machine vibration. If a
motion profile consists of brief spikes in velocity, then this option is very effective, while it
tends to have no affect on an axis which is already operating near its acceleration and
velocity bounds over much of the trajectory. In such cases, if vibration is still excessive, the
user should reduce an axis’ acceleration limit (which will reduce the axis’ velocity limit until
a compliant trajectory is found).

Min. Internal Err. – the second set of checkboxes applies a different criteria during position
error compensation stage of the acceleration filtering algorithm. Normally, the algorithm
attempts to minimize the end-point errors introduced during acceleration filtering – these are
the errors which must then be removed through further maneuvering. The algorithm does not
evaluate the error levels encountered within the filtered (i.e. constant acceleration) region. If
this box is checked, after establishing the filtered region, the algorithm will also determine

78
the minimum and maximum position error encountered and adjust the start and end position
to minimize these.

In general, this will result in additional position error compensation maneuvers because the
end-point errors will increase. However, for some maneuvers, this trade-off can be useful.
This is especially the case on the carriage (and sometimes the cross-feed) axis if these are
generating peak position errors at the ends of a bottle (which often tend to reduce clearance)
– setting this box can reduce the peak errors which can yield additional surface clearance.
The following graphs show such an example:

Figure 46 – shows two motion graphs indicating the effect of minimizing the internal position error
of a high-acceleration region (Min. Internal Err. is turned on for the right graph)
The first graph shows a normal motion fragment, while in the second graph internal position
error minimization it is turned on. The pink line represents the original position information
while the purple line is the filtered position information. The blue-green line represents
position error. As is clearly visible, the pink and purple lines cross each other more often
when internal error minimization is turned on. Also, more residual error is introduced, so the
axis is in error for a longer time, although this residual error is still quite small. However, the
axis as a whole experiences significant improvement in peak position error. In this fragment,
peak error is reduced from about 1.61cm to 1.16cm (note: the blue-green line is normalized
and cannot be directly compared) – and for this particular trajectory as a whole, peak error
was reduced from 1.92cm to 1.16cm and the crossfeed axis experienced a similar
improvement from 0.68cm peak error to 0.36cm.

When applied to an appropriate trajectory, this algorithm tends to increase velocity and
position overshoot at the end of the axis’ travel – in the example case, the position went from
0.08cm undershoot to 0.96cm overshoot and velocity went from 1.8% overspeed to 3.8%
overspeed (in both cases, some overspeed was needed to eliminate position error, although
neither case came close to the 10% default margin).

79
Soft Vel. Enforce – Velocity enforcement takes place across all axes simultaneously – the
violating axis causes the remaining axes to slow down. In this way, no position error is
introduced. However, such enforcement can introduce significant acceleration spikes and
velocity reductions on the other axes.

In a few limited cases, it may be desirable to disconnect the axes during speed enforcement –
for example, at the ends of a bottle, the payout eye must do a rapid rotation of up to 180
degrees while the other axes experience little motion. Depending on the payout system, there
may be a significant level of error tolerance in this motion. Turning Soft Vel. Enforce on will
allow the given axis to attempt to correct for speed violations without slowing down the other
axes. In general, this introduces significant position error, and is not appropriate for the major
axes. However, if significant, momentary misalignment of the payout system (i.e. eye
rotation / eye yaw) does not adversely affect fiber path stability or cause problems in the
payout system, it can improve program throughput on some files. It is best suited to files
where motion nearly stops while the payout system rotates.

If turned on, the user may select which portion of the overall position error may be “used up”
during velocity enforcement (as opposed to acceleration enforcement). This value is unlikely
to require adjustment. If velocity enforcement introduces a greater error, then the method
fails and the axis reverts to “normal” velocity enforcement (i.e. across all axes).

Reduce Mandrel Velocity Spike – Some mandrels (typically bottle winds) have a tendency
to introduce velocity spikes on the mandrel axis due to rapid changes on the other axes. Such
spikes do not significantly improve the program throughput and can be a source of significant
machine vibration.

Setting this option on will cause the software to reduce the velocity limit of the mandrel by a
certain factor (based on the entry in: % velocity step) and check to see how much this extends
a program’s execution time. If the change is minimal (based on the entry in: less than %
acceptable growth per), then the procedure continues until the growth in time is too large.
This is the only algorithm which is turned on by default. It rarely needs to be turned off
unless there is some compelling reason to squeeze every last fraction of a second out of
execution time.

14.3. Advanced Filter Parameters


The dialog box (Figure 45) adds one button called Advanced. Clicking on this brings up the
final group of parameters for motion filtering. These options adjust various parameters which
affect the internal operation of the filtering algorithms. They generally do not require user
adjustment, although they may improve performance in some cases. They fall into two
categories – the first three parameters affect the oversampling algorithm while the next seven
affect the acceleration filtering algorithm. Of these, the user will probably find the first set
more useful.

Some caution is advised when adjusting these parameters. If any set of parameters cause
problems, click on “Restore Defaults” to return to a stable state.

80
The first three parameters establish how the oversampling algorithm operates. The first step
in filtering is to oversample the original trajectory. This gives filtering finer control and is
especially important for simple paths such as helixes where the original trajectory consists of
very few points. The parameters are as follows:

Max Evaluation Pts - this establishes the maximum number of trajectory evaluation points
to use when filtering. Most modern computers can handle quite a large number of points for
calculation, however, there are limits to how many points can be processed by Omniwind or
Compositrak – see note below. On simpler files, this threshold is rarely reached, although
with large files (and especially chained files), it can begin to lower the oversampling factor.
Note that regardless of the number, the oversampling algorithm will never eliminate original
points. In other cases, it will reduce the oversampling factor such that:

Original Points * Oversampling Factor < Maximum Evaluation Points

Oversample Factor - the original number of trajectory points is multiplied by this factor and
new points are generated at equal intervals between the original points. If the trajectory has 3
points at t=1, 2, and 4 seconds and the oversample factor is set to 4, then the resulting
trajectory will have points at: 1, 1.25, 1.5, 1.75, 2, 2.5, 3, 3.5, and 4. Information for these
new points is interpolated from the original data. The default value is 10, which is reasonable
in many cases. If a trajectory has a very limited number of points and the resulting filtered
trajectory shows significant overshoot at transitions, then raising this value may improve
results. Lowering this value will improve execution speed. Finally, if a trajectory is noisy
(the acceleration axis has regions with very frequent and abrupt changes in acceleration
which looks like noise on an oscilloscope) then this value should be set to 1 – oversampling
will often generate even wilder oscillations in such cases.

Pruning min dt - after filtering is complete, the algorithm will prune oversampled points.
Points closer than this threshold (in seconds) are pruned (deleted) such that the final set of
points will have an average separation of this value. Original points are never pruned. Setting
this value very low (e.g. 0.0001) will effectively turn off pruning.

A note on file sizes: Omniwind has a limited storage capacity for coordinates. The
oversample factor greatly influences how many points are in the final file. Due to the integral
nature of the oversample factor and pruning (see below) the final number of points in the
filtered .mmt file is generally less than the number entered at Max Evaluation Pts. The
actual number of points in the file can be determined from the motion graph. On a 4-axis
machine, Omniwind can process about 1,400 coordinates per file. Omniwind will warn the
operator that a motion file is too large. If so, the user may adjust the values in this dialog box,
or if the original data was already too large, the user may need to reduce the path thresholds
which generated the original data: “Cyl. Section Threshold” and “Dome Section Threshold”
are used for bottle winds and non-linear winds, and “Path File Threshold” for helixes.

81
The final seven parameters control how the acceleration filtering algorithm works. The
algorithm consists of two parts – first scanning the trajectory for larger trends and evaluating
and adjusting these. Then rescanning both these regions and the entire trajectory with a small
window, looking for local acceleration violations.

The first part scans for acceleration regions based on moving pointers along the trajectory
and checking if certain conditions are met. The pointers track points of minimum and
maximum velocity for a particular acceleration region. As long as a set of conditions is met,
one pointer is dragged along until a threshold condition is met. If this threshold is not
attained and the general trajectory trend changes (e.g. acceleration changes to deceleration),
then the pointers are reset and the process continues. Once this threshold is attained, a region
is considered to exist – it will continue to grow until another set of terminating conditions is
met.

Once all regions are established, the region with the greatest velocity change is checked for
acceleration violation. If found, the region will continue to grow until its starting and ending
velocities divided by its duration is below the acceleration threshold – then a straight-line
acceleration is applied between these points. The growth of the region is set-up to minimize
error at its endpoints (unless the “Min. Internal Err.” checkbox for the given axis is set),
and a compensating maneuver at low acceleration and velocity levels is superimposed to
eliminate this residual error.

The second type of scan passes a window over the trajectory. The algorithm verifies that the
acceleration within this window is below the given threshold. If so, the window continues
moving the length of the trajectory. Otherwise, the local region is adjusted in a similar
manner as described above.

The following parameters affect this process:

82
Minimum Traject. dv - establishes the minimum change in speed (dv) over an entire
trajectory before any acceleration enforcement occurs. This value is given as a factor of the
axis’ speed limit. The value prevents trajectories with zero or near-zero speed change from
causing problems during enforcement due to floating point issues. Trajectories with such
minimal dv’s on a particular axis often require no filtering, even if they have significant
acceleration due to noise. The default setting of 0.02 rarely requires adjustment, although if a
particular trajectory has little dv but unacceptable noise, the value can be adjusted downward
which may trigger acceleration enforcement.

dv Threshold - establishes the threshold at which an acceleration trend is established. This is


given as a factor of the total velocity change in the trajectory (i.e. maximum minus minimum
speed). An acceleration/deceleration trend must cover at least this magnitude velocity change
before being considered a region.

dv Turnaround - once a region is established, this value affects determines one of the two
terminating criteria. If acceleration changes polarity and the change in velocity exceeds this
magnitude (defined as a factor of the total velocity change in the trajectory), then the region
is fixed at its current start and end points.

Accel Hysteresis – This parameter has two functions – before a region is established, it
establishes a minimum acceleration rate between start and end points. If this rate isn’t met,
the region collapses. Once the region is established, its function is reversed – this minimum
acceleration rate must be met between end point and the new evaluation point, otherwise the
region won’t grow. It is defined as a factor of the axis’ acceleration limit.

Min Shoulder – This parameter establishes the second condition for terminating an
acceleration region – the width of its shoulder: if a velocity plateaus (i.e. it cannot grow due
to the hysteresis defined above), and this plateau exceeds the duration of the region times this
factor, then the region is fixed. For example, if an acceleration region has a duration of 0.3
seconds and Min Shoulder is 0.2, then the region would be fixed if its shoulder exceeds 0.06
seconds (assuming the turnaround condition didn’t kick in prior to this).

Local dv Threshold – the equivalent to dv Threshold for the windowing acceleration


algorithm. This combined with the acceleration limit determines the minimum width (in
seconds) of the scanning window. This scanning window then slides along the trajectory and
if the average acceleration within any given scan exceeds the limit, then the region is again
expanded and acceleration reduced in the same manner as described in the introduction
above.

In general, dv Threshold, dv Turnaround, Accel Hysteresis, and Local dv Threshold are


adjusted in tandem, because they closely interact. Reducing them all makes the acceleration
filtering algorithm more sensitive to minor velocity changes, while large values require larger
changes before filtering kicks in (which can be more effective at establishing trends on noisy
trajectories – in some cases, it can be better to use large values for all of these except Local
dv Threshold which is left small to filter noise).

83
Accel Region Growth – Acceleration regions grow in order to reduce the acceleration level
within them. Once this level is acceptable, this parameter establishes if they can grow further
in order to reduce residual error (the remaining position error at the endpoints). The
algorithm will check the resulting residual error if the region grows at either extremity by one
sample. If this error is less than the current residual error, growth continues until the duration
of these added segments exceeds this factor of the initial region’s duration. For example, if
an acceleration region requires 0.5 seconds to obtain an acceptable acceleration level, and
Accel Region Growth is set to 0.2, then it may grow up to 0.1sec more as long as such
growth continues to reduce residual position error (note that this does not ensure that peak
position error within the region is also minimized – the affect on it is indeterminate).

14.4. Using Excel® to Graph and Compare Filtered Motion


The filter algorithms include code to support detailed graphing in MS-Excel®. After filtering
is complete, the code generates a text file called “finalstg.txt” (final stage) together with the
motion (.mmt) and filter parameter files (.mfp). These are all placed in the same directory.
This file contains time, original position, and filtered position, velocity, and acceleration
information for each axis. A Visual Basic® script has been written (in Office 2000®) which
takes this data and automatically generates appropriate graphs for each axis. This is stored in
a file called: “GraphMotion.xls” which is kept in the Composite Designer directory (e.g.
“c:\Program Files\Composite Designer”). Here is an example graph:

Figure 47 – Shows a typical motion graph detailing the effects of the most recently run motion
filtering operation

84
The graph is useful for both understanding the operation of the filtering algorithms and to
analyze actual machine motion in physical units – for example, to verify velocity and
acceleration limits and, in particular, to establish the size and location of position errors. The
legend for each axis also indicates the total number of points (shown on same line as position
error) which is useful for evaluating file size with respect to Omniwind.

In typical use, the user may alter a few filter parameters and simply re-execute the macro in
Excel to see the changes (note: the original graphs will be replaced, except for any user-
modifications to the graph’s format). To store a particular graph, use “Save As…” rather than
Save. GraphMotion.xls is write-protected to prevent the original spreadsheet contents from
being accidentally overwritten. If the file ever damaged, users can obtain the original file off
the Composite Designer CD.

To use this functionality, the user should open “GraphMotion.xls”. Depending on security
settings, the user may need to enable macros to use the script. Once open, click on the menu
heading: Tools | Macro | Macro… In the dialog box which appears, click on the macro
“ProcessFile”. To study position error in detail, the user may wish to execute the macro:
“ShowPosition” – which removes all series except for position and position error (note – to
restore the original graphs, the user must re-execute “ProcessFile”).

The macro will now ask for the required data file (finalstg.txt). This allows the user to use
different directories and also store multiple text files (which are relatively compact,
compared to the large files generated once graphing is complete).

The macro will then analyze the given data and extrapolate information about machine
motion prior to acceleration filtering. The resulting graph will display position, velocity, and
acceleration for both the pre- and post- acceleration filtering (unfortunately, plotting data
prior to velocity enforcement would result in different time values). The graph also displays
the magnitude of the position error at any given point.

The graph is normalized such that filtered motion parameters occur between –1 and 1 (the
corresponding values are shown in the legend). The same scale is applied to pre-filtered
motion – which has little affect except for acceleration. The user can still use all Excel
capabilities to further adjust the graph – such as turning off individual lines or adjusting axis
scales – or generate new graphs (by studying the format of the graphed data itself. The
standard graphs plot data from columns M through T).

A few notes: in general, a graph should never have position error or velocity levels which
exceed the entered limits. In some cases, acceleration values may still experience very brief
spikes – although these should occur over minimal changes in velocity (often where data
points are extremely close together and a minor change in velocity occurs). The graph will,
of course, show the peak value, although the user should focus on the sustained peak
acceleration. The user should verify that there is no significant change in velocity occurring
at the acceleration spike. Adjusting the advanced filter setting Local dv Threshold can reduce
this effect.

85
Also, the motion shown in the graph may not fully agree with motion displayed in Composite
Designer due to differences in the use of approximating splines. This will appear in
Composite Designer in the form of some position oscillation before any major change in
velocity and is dependent on the distance between samples. In general, machine motion will
follow the profile displayed in Excel, unless the user does some subsequent editing of the
data in Composite Designer and saves this new motion.

14.5. Chain File Filtering Issues


The filtering algorithms are usually capable of smoothing chained files as well as individual
segments. Generating feasible motion in these cases is more challenging. At segment
boundaries, position and velocity values must align to both the next segment and to the start
of the present segment (if the segment is periodic – generally the case except for single pass
circumferential winds). To achieve this, both the transition-path generating code and the
filtering code inserts copies of current segments in order to establish a transition region
which does not need to meet the same criteria of periodic continuity. Note that the algorithm
keeps track of the total number of cycles of a periodic segment and adjusts this number as
required if a segment is copied.

From the user’s perspective, the steps for generating smooth motion are nearly the same. At
present, there is only one set of filtering parameters (they cannot be varied from segment to
segment). There are no special considerations for any particular settings. Filtering algorithms
are first applied to each segment in the chain, and then additional filtering occurs at segment
boundaries. In this way, one segment does not have a significant impact on the next (e.g. the
approximation algorithms may lower the velocity limit for a particular axis in a particular
segment if no solution is immediately found – but this would not affect the velocity limit on
that axis in neighboring segments).

In most cases, the user is likely to generate motion based on a transition path. In other words,
Composite Designer will calculate a fiber path which connects the end points of the chained
segments and use this to generated the required motion. In this case, the user should build the
chain file by inserting the original .mmt files, not any filtered files. For example, to chain two
segments built using the names BottleHelix and BottleCirc, the user should chain together
“BottleHelix.mmt” and “BottleCirc.mmt”, not “BottleHelixflt.mmt”… This is because the
path files (.pth) are stored under the original file name and these are used to generate actual
motion, the data in the .mmt files is mostly ignored. Once the user generates motion, two files
are generated – the original motion file with the user’s given name (e.g. “BottleChain.chn”),
and a filtered file with “flt” appended to the filename (“BottleChainflt.chn”).

If transition sections are based on motion rather than path, then it is not critical to use the
original (unfiltered) .mmt files, although this is still the recommended method (it only applies
filtering once to the final file; multiple filtering levels generates cumulative position error
which would be difficult to evaluate).

86
14.6. Some Tips on Motion Smoothing
Motion smoothing / filtering often produces reasonable results, even with a fairly fixed set of
parameters. If a particular machine is largely used to make similar parts, it may be
advantageous to save a motion filter parameter file in a fixed location and then load the file
whenever starting a new project (rather than reverting to the machine defaults).

The filtering algorithms do have some limitations – a primary one is that they only generate
files which are equivalent to a maximum axis rate envelope (i.e. no constant mandrel speed
or constant fiber speed). There are also a few geometries for which the current approximation
algorithms have difficulties – generally low-angle bottle winds. In some cases, the resulting
motion is excessively slow in the dome region. The user may wish to directly edit the rate
envelope in the dome region to reduce wind times.

Another issue is that the algorithms do not currently carry out true “filtering” (e.g. low-pass).
If a particular motion file is noisy but without excessive acceleration levels, then the output
file can also be noisy. If the resulting motion is unacceptable, the entire axis can be selected
and smoothed. See page 56.

A nice benefit to simplify further manual editing is that all output files have a fixed rate
envelope. The following tips may be of assistance when generating motion and smoothing it:

Issue: After filtering, motion is still too abrupt.


Consider: Lowering the acceleration of the offending axis. This has a tendency to increase
program run-time. Also consider use of the Lower Acc. option for that axis (see page 78).

Issue: Motion profile has some irregular or unexpected portions.


Consider: this can have several causes. Because of the mathematical transformation
involved in converting a fiber path to a machine motion trajectory, some points in a program
can require the machine to move a great deal while the fiber’s point of contact remains nearly
stationary, while in other cases, many fiber path points resolve to the same machine
coordinate. Because of this, regions of the motion file have very few points while other
regions have many points at nearly the same location. This is particularly the case in
programs with low fiber angles and also during fiber rotation at the end of a bottle. The user
may try to use a smaller value for the path thresholds during generation of the original file to
increase the number of samples – the relevant parameter depends on the fiber geometry –
“Cyl. Section Threshold” and “Dome Section Threshold” are used for bottle winds and non-
linear winds, and “Path File Threshold” for helixes.

The issue above can cause some irregular motion due to spline approximations. The software
uses cubic splines to interpolate motion between points. In regions where the distance
between samples changes abruptly, the spline can oscillate. These are visible when the user
loads an .mmt file into CD – look for regions of oscillations which don’t follow the motion
points. Figure 48 shows an example.

87
Figure 48 – shows how spline curves can introduce oscillations

Here the pink line is displayed by Composite Designer while the blue dotted line is the
motion which might be expected. When this data is then fed to the filter, the oversampling
algorithm will add points which follow these oscillations. In such cases, setting the
oversampling factor to 1 (turning it off) will often help.

Issue: Crossfeed motion is irregular on a chain file


Consider: The different files in the chain file have different mandrel geometries – in
particular, the mandrel radius changes between files. Ensure that all files use the same
mandrel geometry.

88
15. Chain / Transition Files
The final wind program module in Composite Designer (CD) is the chain/transition wind.
These winds allow users to connect several files together and execute them in sequence. In
addition, transition motion can be automatically generated to assist with the generation of
smooth and stable motion from the end of one file to the start of the next. As with all wind
files, the first step is to create a new program via the File | New | Chain/Transition Wind
command. This brings up a window (Figure 49) allowing the user to enter a list of files to be
chained together.

Figure 49 – the Chain / Transition entry window


To add a file to this list, the user first right-clicks the mouse over the bulls-eye target. This
brings up a sub-menu which has entries to Insert and Delete Segments. Clicking on insert
brings up an open-file dialog box where the user can select an .mmt file (or Compositrak-
based .seg file) to be inserted (note that existing chain files cannot themselves be chained).
To continue adding files, first left-click on the file to be deleted or on the file in front of the
insertion point (or the bulls-eye if inserting a new first file). This is required to select the
insertion point. Then right-click and use the Insert Segment command, etc. To delete a file,
again, first left-click on the file and the right-click and select the Delete Segment command.
In this way, a complex chain file can be generated fairly rapidly.

One important concept in chaining files together is the transition segment. Between each
segment, Composite Designer will automatically generate transition motion. The user can
select one of three possibilities via the Output Options portion of the window (the fourth

89
option – Build CTS File Directly deals with Compositrak controls). The following sections
deal with these in sequence.

15.1. Transition Motion Files


If this option is selected, Composite Designer will generate motion which connects the final
state of one segment with the starting state of the next segment by directly extrapolating a
trajectory based on various acceleration and velocity limited criteria (i.e. connect the
velocities and positions of all axes). The intermediate path is not based on any consideration
of either mandrel shape or fiber stability. This process tends to work well for connecting
relatively short gaps in fairly similar winds. If this method is selected, the user would enter
four parameters in the lower window portion as follows:

Transition Evaluation Points – this parameter is fairly clear. The user enters a whole
number and the software will extrapolate this many points in each transition region to be
calculated.

Transition Region Rate – this applies a limit similar to a wind angle to the transition region
– defined as limiting the carriage speed vs. mandrel speed (i.e. number of carriage position
units per revolution of the mandrel).

Payout Eye Tooling Offset – here the user can add an additional fixed offset to the
crossfeed. This might be used if the designer believes clearance in the transition region to be
inadequate (since transition motion does not consider actual mandrel shape, only smooth
machine motion). Note that this offset is applied to the entire file, so it may cause problems
in terms of path stability on some shapes.

Transition Motion Tolerance – this is a type of unit-less “smoothing” factor. The closer to
zero, the more abrupt the motion in the transition region. High values allow acceleration to
take place over the entire maneuver. Typical values are between 1 and 100.

Figure 50 – the Chain/Transition dialog box allowing user to set segment flags

90
Once the user has inserted all the files to be chained and set all the necessary parameters,
he/she can click on the Calculate button. The user is prompted to enter a filename. Next, a
dialog box appears (Figure 50) allowing the user to select the number of circuits in the wind
and also set the flags for each segment boundary (these flags apply to the start of the
segment). Note: this dialog box appears for all types of chained motion files. The following
flags can be set:

- Auto Find Path – only available on transition segments – this will automatically stop
the machine, perform a Find Path for the next segment, and start up again (unless the
Hold flag is also set). The motion in the transition segment is essentially ignored.
- Auto Hold – automatically holds the machine at the segment boundary. The user will
need to release the hold condition to continue.
- Mandrel Offset – when set the mandrel will not move to the zero degree location at
the beginning of the segment. If set in the first segment of the chain, then the mandrel
will not rotate forward to the next zero location during the initial find path. Between
segments, if not set then the machine will stop and the mandrel will rotate forward.
For this reason, it is a good idea to set this flag in all segments, especially after the
first.

In general, if the user wants a file which will execute non-stop from start to finish, they
should make sure that Auto Find Path and Auto Hold are cleared in all segments and the
Mandrel Offset is set in every segment (it can be cleared in the first segment).

In addition to segment flags, this dialog box is also used to override the current entries for
number of circuits in a given segment and also the names of each segment. Doubling the
number of circuits effectively doubles the number of layers a particular segment will
generate. The segment comment is the name which appears in Omniwind while executing the
part.

All of these entries can also be set later when editing motion (see section 13.5). If the user is
satisfied with these entries, he/she can press OK and motion is generated. As with other types
of wind, a dialog box appears allowing the user to filter the resulting motion (see chapter 14).
This may or may not be necessary if the underlying files were already fairly smooth – the
user can examine the resulting motion and decide.

Transition Motion Files can combine any type of wind, although they tend to work best on
winds which already mesh well (i.e. no major change in fiber angle, end points already
closely aligned). In some cases, they are the only option – e.g. when chaining zero degree
winds. They directly incorporate their component motion files, meaning any already edited
motion is left unchanged.

15.2. Transition Path Files


This is the other major transition option, and also the typically more complex and powerful
one. In this case, CD ignores the data contained in the motion files to be chained. Instead, it
goes and fetches path file data from .pth files with the same name and uses these as the basis

91
for generating the chain file. It uses this path data to build a model of the mandrel, and, in
turn, uses both of these to generate a transition fiber path which connects the end of one
program to the start of the next. Finally, it takes this resulting fiber path and generates
machine motion, in a similar manner to how motion is generated for bottle and non-linear
winds (but differently from circumferential and helical winds).

In general, transition path files have a much better chance at combining diverse segments
with stable transition regions – going from a low-angle bottle wind to a final outer hoop wind
is relatively straightforward.

Because it works with path files and generates a transition path, this option requires that the
.mmt files to be chained are accompanied with .pth files of the same name. This implies that
even if the user is generating filtered motion, instead of chaining the filtered motion files,
he/she should chain the original files (without the appended “flt”). Filtering can then be
applied to the resulting motion. It also implies that transition path files cannot be used for
zero-degree winds because these directly generate motion without creating an intermediate
fiber path.

Two parameters are set for this type of chain wind:


Transition Region Threshold – this should set how frequently (in terms of linear
fiber path) the software generates points in the transition region, although it is not
fully implemented at present. The user may need to try a few values for the software
to accept the wind parameters.
Transition Region Rate – this applies a limit similar to a wind angle to the transition
region – defined as limiting the carriage speed vs. mandrel speed (i.e. number of
carriage position units per revolution of the mandrel).

Once the user has entered all the files to be chained and set the above parameters, clicking on
Calculate will generate the new path and display the chain/transition feedback dialog box
(see previous section for information about its contents). One difference, if an intermediate
file includes a bottle or non-linear wind, the user will receive some information about slip
factors in the transition regions. Values near zero are more stable. The user may wish to
adjust the transition region rate to improve stability. Once the user is satisfied with the
settings in this box, he/she clicks ok and is prompted to enter a filename. At this point, a new
path has been generated, meaning the user can generate 3-D views of the part (see chapter
11). Finally, when satisfied, the user would click on Calculate | Machine Motion. This brings
up the standard motion generation dialog (see chapter 12).

15.3. Do Not Transition option


As a final option, the user can have the software simply chain files together with no
calculated, intermediate motion. The process is similar to that for Transition Motion Files
(see section 15.1) except no parameters are entered on the first screen. This motion option is
typically used in the following two cases: either the existing motion matches up extremely
well (e.g. various helical winds with only an angle variation) or the operator intends to stop

92
the machine between layers, tie off the fiber, and do a find path. In the latter case, the utility
of the chain file is primarily simplifying the execution of multiple layers.

If the layers mesh well, the user could use similar segment flag settings as with other chain-
wind types (i.e. only set the Mandrel Offset flag). Otherwise, flags should be set such that the
machine holds at the end of each layer. Even though no motion is implied, due to software
constraints, there will actually be a miniscule motion segment inserted (of about two degrees
of mandrel rotation). This can cause a need for motion editing if an axis other than the
mandrel is moving during the transition.

15.4. Chain File Tips and Troubleshooting


When generating path-based chain files, it is important to use “equivalent” mandrels for each
segment. This is because the software uses path file coordinates to reconstruct a composite
mandrel shape of all the different layers. For example, even slight differences in part
diameter can result in highly erratic crossfeed behavior because the mandrel surface will
consist of tightly spaced points with varying diameters resulting in a very jagged part surface.
Some tips for obtaining a consistent mandrel are:
- Always use the exact same bottle specifications for different layers (i.e. use the same
bottle shape type, the same diameter, cylinder length, same dome width, etc.). The
same applies to non-linear winds.
- To overlap a circumferential wind on a non-linear wind, use the circumferential
option of the non-linear wind.
- To overlap a circumferential wind on a bottle, set the start and end coordinates
appropriately. For example, if a ellipsoidal bottle has a left and right dome width of 5
inches and a cylinder length of 20 inches, the circumferential wind’s start and end
coordinates need to lie within 5 and 25 inches.

This restriction only applies to path-based chain winds. The other modules do not attempt to
reconstruct the mandrel shape.

If a particular segment / layer is to be repeated several times in sequence, it is usually a better


idea to modify the number of circuits instead. This avoids generating so many transition
regions and simplifies and additional editing. It also reduces the final file size (which can
give Omniwind more room for other tasks or adding more layers to the wind). Setting the
number of circuits per segment is discussed in section 15.1.

When connecting highly dissimilar segments, it is usually better to have their motion start at
opposite ends of the part. For example, when chaining a low-angle bottle wind to a
circumferential wrap, the user would typically start (and end) the bottle winds at one side of
the mandrel and then begin the circumferential wind at the other. This makes it easier for the
software to find a reasonably stable path. This left-right setting is typically made when
selecting a path or when entering part parameters. See the individual chapters of the wind-
types in question for more information. In rare cases, the opposite case may work better (i.e.
both segments ending on the same end of the mandrel) so the user may want to experiment
with these settings.

93
16. Auxiliary Output Files
So far this book has focused on the various modules and methods to take a part design from
concept to motion file. In addition to coordinating motion to generate a part, Composite
Designer and Omniwind support additional external controls. This auxiliary output module
allows the user to specify logical conditions which trigger voltage signals to other devices.

Auxiliary output control is encoded in an .aux file. Whenever Omniwind loads a motion file,
it searches for a similarly named file with the .aux extension and automatically executes the
two in tandem. The first step in creating an .aux file is the command File | New (or the
toolbar button ) and then Auxiliary Output Files. This brings up the following window:

Figure 51 – the auxiliary output condition entry window


The window is divided into several regions. At the top is a list-box which allows the user to
enter various conditions which should trigger a particular event. Below this are buttons which
define the polarity of the output and the Boolean operator (AND or OR) to use when
combining the conditions defined above. The center of the window consists of a large set of

94
buttons allowing the user to select a particular output and timer condition. The lower window
region allows the user to set a starting value for the current countdown timer. Finally, the
user can select metric units by checking the box at the bottom of the window.

16.1. Digital Auxiliary Outputs


If the user only needs fairly simple trigger conditions, the first step is to click on the auxiliary
output button to be edited. At this point, the user may select default behavior for the output
by clicking on the appropriate selectors just under the list-box. The Default State is the
output state when the auxiliary output’s condition evaluates to false. On implies voltage is
present at the output (typically +24VDC). When the condition evaluates true, the output state
is the inverse of the default. The Error State is the output’s state whenever the control is in
E-stop. This overrides all other conditions. The final selector, Boolean Operator, establishes
how the conditional statements are combined – either via AND or OR. All statements are
combined with the same operator. Even though more complex combinations are not
available, by selecting conditions and default states appropriately, and by the use of Boolean
math, fairly complex conditions can be generated.

The user could now enter logical conditions in the top window. The
Auxiliary Output Menu | Add Condition… menu command is used to do this. It brings up
the Add Auxiliary Output Condition dialog box (Figure 52). Here, the user can specify a
particular condition which should form part of the logical statement which triggers the
output.

Figure 52 – the dialog for adding a condition to an auxiliary output

A single condition consists of a data source (the quantity to be measured), selected via the
drop-down list-box at the top of the screen, and two values defining the range over which the
quantity evaluates to true. One important note about ranges: they always define a closed
region. As such, their starting and ending values are essentially interchangeable. For
example, if a particular axis has a position condition with a starting value of 30 inches and
ending value of 20, the condition will evaluate to true as the machine moves from 19.9 inches
to 20.1.

95
The following sources are available for measurement:

Axis position – allows the user to enter a position range for any available axis. When the axis
falls within this range, the condition evaluates to true. The range will depend on the axis and
unit system. For the rotary axes (mandrel, eye-rotation, and eye-yaw), the units are in
degrees. The mandrel is a somewhat special case since it continuously rotates in one
direction. For auxiliary output purposes, it is absolutely referenced to the axis’ home position
and its value will rollover to lie within 0 and 360. For linear axes, the units are in inches or
mm and are based on the coordinate system as displayed to the operator of Omniwind (see
chapter 17, especially page 116).

Circuit number – within each segment of a particular program, this condition will evaluate
to true if the winder is currently executing a circuit within the entered range. The range
includes the start and end circuits, so a start value of 3 and end value of 6 would evaluate to
true over a range of 4 circuits. In a chained, multi-segment program, this condition can
evaluate to true within each segment (if that segment includes circuits within the specified
range). With chain programs, see the note in the box below.

Segment number – for multi-segment programs, this condition will evaluate to true if the
currently executed segment is in the specified range. As with circuit number, the range
includes both start and end segments. See note below.

Note: When using segment and circuit based conditions with any chained motion file, the
user should first examine the motion file to determine the appropriate circuit and/or
segment number. This is because the chain module and the filter module can
generate new segments and make single-circuit copies of individual segments in
order to smoothly link motion at segment boundaries. This affects both the total
number of segments and the number of circuits within a segment. To verify these
numbers, the user would open up the motion file and examine its motion table (with
the line-graph display, very short segments may not be visible). The first column
shows the segment name and number and the number of circuits within the segment.
For more on motion table editing and navigation see sections 13.5 and 13.6.

Process time – this is the time that a particular part program has been executing in seconds.
Execution time does not include time spent: in hold, during find-path, while jogging an axis,
or while the machine is enabled but not actually running the program. It includes time
executing at a zero or negative rate. Process time is real time; it is not scaled by the current
execution rate. Process time is reset when a program is loaded and also when a program is
run to completion and then run again without reloading.

Axis velocity – allows the user to enter a velocity range for any available axis. The range will
depend on the axis and unit system. For the rotary axes (mandrel, eye-rotation, and eye-yaw),
the units are in rpm. For linear axes, the units are ft. / min or m/s. They are based on actual
velocity of the axes during the wind as displayed to the machine operator, not the value
programmed into the wind (i.e. they incorporate how fast the program is executing). They
also incorporate polarity, so a range of 1 to 2 m/s would register as true on the carriage if the

96
machine were in that speed range and heading towards the tailstock, while a range from -0.05
to +0.05 would register as true while the axis is stopped or near a stop.

Timer – allows the user to add a condition based on if a particular countdown timer is within
a certain range. See below for more information on timers.

In some cases, a user may wish to create a more complex condition. This can be
accomplished by repeatedly adding output conditions. The entire group of conditions can be
combined using a logical AND (i.e. all conditions must be true for the result to be true), or a
logical OR (i.e. one or more conditions must be true for the result to be true). At present,
condition statements cannot be directly edited, only added or deleted.

16.2. Analog Auxiliary Outputs


In addition to digital auxiliary outputs, some machines offer up to eight analog outputs as
well. These are configured in a similar manner to the digital outputs just discussed. All
conditions and ranges have the same meaning. Rather than simply evaluating true or false,
each condition includes an output value – entered under Magnitude in the Add Auxiliary
Output Condition dialog box (Figure 52). If a particular condition triggers the output, then
the voltage is typically in the range of +/-10V corresponding to magnitude entries of 100%
and –100% (although this may vary with any custom analog output circuitry).

The actual state (i.e. voltage) of the analog output depends on various factors, due to the
possibility of different magnitude entries for different conditions. One thing to bear in mind
is that condition lists are evaluated sequentially from top to bottom in the same order as they
appear on the entry screen.

If the machine is in E-stop, and the Error State of the output is set to On, then the output
maintains its most recent setting. If the Error State is off, then the output is turned off (0V). If
the machine is not in E-stop, then the Default State setting becomes relevant. It must be set
to off; otherwise the output is set to 0V (0%).

If the machine is not in E-stop and the Default State is off, then analog conditions are
evaluated. The output state depends on the Boolean Operator used. If the operator is AND,
then all conditions must evaluate to true and the output will assume the magnitude of the
final entry in the condition list. Otherwise the output will be 0V. If the operator is OR, then
the output is set to the magnitude of the final condition which evaluates to true. For example,
given the following machine state and condition list:

97
State:
Mandrel is at 39rpm and 150 degrees and process time is at
74.500seconds.

Conditions (in sequence) for Analog Output 1:


Mandrel velocity between +10 and +50 rpm, magnitude: 50%
Mandrel position between 0 and 180 degrees, magnitude –50%
Process time between 70.000 and 74.125seconds, magnitude: -100%

Boolean Operator: OR

In this case, the output will be at –50% (typically –5V) and is established as follows:
Condition 1 evaluates true, output is tentatively set to +50%. Condition 2 also evaluates true,
output tentatively –50%. Condition 3 evaluates false. Since there are no more conditions, the
output is the last accepted value of –50%. If no condition is true, then the output is set to 0%.
A simple way to alter this would be to set the first condition to a statement which would
always evaluate true (e.g. process time between 0 and a 10,000,000 seconds) and set the
magnitude of this entry to the desired “default” output value.

While the user can use AND blocks to establish fairly complex conditions for a particular
output magnitude, the use of OR blocks is often much more flexible for analog outputs. It
allows the same output to assume many different output levels corresponding to different
machine conditions.

16.3. Use of Timers


A different type of “output” is a program timer. It does not generate a physical output.
Instead, it generates an internal logical state which can be used by the condition lists of other
outputs (including other timers).

For the most part, the timer output can be thought of as another measurable quantity that is
triggered in a similar manner to a digital auxiliary output. The user can set error (E-stop) and
default state, a Boolean operator, and a list of conditions which are evaluated to control the
timer.

While other outputs always reflect the state of their condition list, a timer output is triggered
when its condition list evaluation state changes from false to true. At this point, the
countdown timer will load the value recorded in the Timer Output Setting box (see Figure
51). The timer will now start to count down. If the counter reaches zero, it stops. If the
underlying evaluation state remains true or switches to false or remains false, these all have
no effect – the timer will continue to count down to zero and then wait. However, if the
underlying state switches again from false to true, then the timer is reloaded with its starting
value, even if a previous countdown did not complete.

For example, if a timer has a condition list as follows:


Mandrel position: range 0 to 180 degrees

98
and:
Timer Output Setting: 5.100 seconds

then every time the mandrel moves from 359.9 to 0.0 degrees (or from 180.1 to 180.0 if
moving backwards), the output condition will trigger true and the counter is loaded with 5.1
seconds and will start to count down.

Now if auxiliary output 1 has the condition:


Timer 1: range 0.100 and 5.100 seconds

Then it will evaluate true whenever the timer is counting down (except for the last 0.1
seconds). In practical terms, if the mandrel is moving forwards, auxiliary output 1 will go to
true every time the mandrel hits the zero position. If the mandrel is spinning fast enough to
complete a revolution in under 5 seconds (12rpm), then auxiliary output one will always be
true.

A few final notes: after entering a value in Timer Output Setting box, be sure to press the Set
button, otherwise the value is ignored. Also, timers continue to evaluate in all conditions,
even if the machine is stopped.

16.4. Final notes on auxiliary outputs


While this chapter has covered the steps involved with generating auxiliary output programs,
there are various aspects of computer operation and program structure that can affect the
operation of the outputs.

From power up until a motion file with auxiliary outputs is loaded, analog and digital outputs
are set to 0V•. After Omniwind exits, analog outputs may maintain their previous state,
although this depends on any external circuitry. If a motion file without auxiliary outputs is
loaded, the outputs retain their last state.

Once a file with auxiliary outputs is loaded, auxiliary output conditions are evaluated during
each update cycle of Omniwind’s motion control board – about 1,000 times per second. If the
machine is in E-stop, then all outputs have their E-stop condition. Otherwise, all conditions
are evaluated regardless of current operating state. This implies that conditions, timers, etc.
are checked and updated while the machine is idle, while the operator is jogging the machine,
during a find-path maneuver, and, of course, while the machine is winding a part.

Auxiliary output programs are executed by the motion control card within the embedded PC
which runs Omniwind. Like Omniwind, their execution is independent of Windows.
However, they do share memory space with the program being executed, so with complex
parts and complex condition lists, it is possible to run out of memory. Omniwind will warn


Behavior may be different for versions of Omniwind prior to 3.0. In all cases, if output condition is important
before or after executing the motion file, the user may wish to verify machine behavior.

99
when this is the case. In general, the user is likely to return to edit the motion file to reduce
the total number of motion program coordinates to free up memory for auxiliary outputs.

Finally, while auxiliary outputs are evaluated on every update cycle of the motion card, they
are not intended to be used for high precision requirements. In particular, some conditions
may be prone to noise – especially axis velocity. This is due to the fact that axis speeds are
rarely 100% constant. As an axis accelerates past a threshold value, the resulting, calculated
velocity will often oscillate between true and false states depending on the discretely
measured distance covered over the course of one cycle.

100
17. Omniwind
Omniwind is McClean Anderson’s current hardware/software control combination for
operating its high-end, multi-axis filament winders. This chapter discusses all the steps
required to operate our winders, from start-up through part execution.

17.1. Installation issues, startup, user accounts


This manual is not intended to offer guidance on machine maintenance, physical and
electrical machine installation, or connection of external McClean Anderson hardware (e.g.
tensioners). Such installation typically occurs at machine delivery by McClean Anderson
personnel, unless other arrangements have been made. If there are any questions or issues on
this topic, please contact McClean Anderson directly for further assistance (see start of book
for contact details).

Figure 53 – typical main electrical enclosure


Connection to digital auxiliary outputs occurs by opening the main enclosure. The machine
must be off to gain access. With the panel door open, auxiliary outputs are a group of solid-
state relays mounted to a rail near the computer (typically labeled AUX#). McClean
Anderson service can provide more technical information (e.g. relay datasheets) when
installing the machine and when the customer wishes to connect to the outputs (please check
documentation provided with the machine first). Information about analog outputs should
also be obtained in a similar manner.

101
All machines are delivered with a Microsoft Windows ® operating system and the
Omniwind control software installed (as of this writing, Windows 2000 or XP and Omniwind
version 3.0). Typically, Composite Designer is also installed, although users may wish to
remove this license and use it on a separate desktop machine. Once the machine has been
installed and connected to a power source, the first step is to turn it on at the main switch
(Figure 53 shows a typical example). The machine will now begin its startup-sequence. If an
Uninterruptible Power Supply has been installed, the user may notice several beeps and a
delay before the main fans start-up. The operator would typically also turn on any separately
switched equipment at the same time (e.g. slave axes, tensioners, etc.).

The main screen will go through a typical computer power-up sequence and eventually a log-
on screen will appear. At this point, the user should type in the relevant user name and
password. If this is a new installation, the customer is requested to use the operating system
to install the desired user accounts. This manual cannot cover detailed operating system
configuration. However, for simple accounts, a few basic instructions follow (these are based
on Windows 2000 but are relatively similar to other versions):

The first step is to log-on with Administrator privileges. By default, Omniwind is configured
with the following accounts:

User Name Password Description


Administrator Administrator The default administrator account.
Programmer Programmer The default programming account.
Winding Winding The default operator account.
* * The service account•

Unless security is not an issue at all, the user should at least alter the default passwords. Once
logged on as Administrator, go to Start | Control Panel | Users and Passwords. This
brings up the following screen (Figure 54). Here, the user can click on a particular account
and then on Properties to edit any aspect of that account such as the user-group and name. To
alter the password to an account, click on the Set Password… button. Note: if altering the
Administrator’s / current user’s password, press Ctrl-Alt-Del and then select
Change Password…

At this point, the user would typically either alter the name and password of the existing
accounts, or remove existing accounts and add new ones. The meanings of the different
account types will be covered in the following text, but the user is requested to install at least
one of each account type and leave the service account unchanged. The different key-account
types are:


All machines receive a service account for use by McClean Anderson service personnel. This account can be
used to perform various debugging tasks on the machine. We suggest that administrators not alter this account
during machine configuration. Contact McClean Anderson for more information about its use.

102
Administrator – an account in the administrator group. Any given PC must have an
administrator account to perform software installation and configuration.
Administrator accounts do not have special privileges when running Omniwind.
Programming account – an account which has access to restricted portions of the
Omniwind software (see section 17.9). To become part of this group, the user name
must begin with the word “Programmer” (e.g. “Programmer_John”). Omniwind looks
at the user name when determining access to software features.
Winding account (all others) – an account without any special access. Machine
operators (unless they are also programmers) typically log in using a winding
account. This account has no specific requirements. Users, including administrators,
fall into this category when running Omniwind unless their user name matches the
programming or service account strings.

Figure 54 – the user account entry window (Windows 2000 ®)

Besides setting up user accounts, anyone performing initial computer configuration, or


software upgrades / re-installation, would also perform additional tasks. Operating system
tasks, such as network, user account permissions, and other hardware configuration tasks are
beyond the scope of this document. If there are any Omniwind specific issues, the user is
requested to contact McClean Anderson directly.

103
Note: As delivered, the winder should already have all Omniwind-related configuration
details installed. The following is only intended as an overview of Omniwind software
configuration – in case the user wants to upgrade the software version or rebuild a hard drive.

Before any fresh installation, the user should first ensure that all desired part program files
are backed up. Also ensure that the machine’s .mct file is saved. This should be of the format
JXXXX.MCT where XXXX is the machine’s serial number. It is typically located at
c:\omniwind\bin\ (where c:\omniwind is Omniwind’s typical location).

Omniwind is installed as any typical Windows® program. Once installation is complete, the
user needs to incorporate the .mct file into Omniwind’s configuration. To do this, open
“omniwind.ini” in a text editor (omniwind.ini should be located within Window’s main
directory, typically c:\winnt\ or c:\windows\). In this file, typically the 6th line requires
editing. When Omniwind is first installed it would read:


[Files]
MCT=c:\omniwind\bin\start.MCT
AuxOuts=none

Where “c:\omniwind\bin\” is the installation directory of Omniwind. This needs to be altered


to point to the relevant .mct file: c:\omniwind\bin\JXXXX.mct. The user can now save the
.ini file.

Finally, the relevant .mct file (the one backed up in the first step, or an .mct file from an
installation CD or floppy) needs to be copied into the location set in the .ini file (e.g.
c:\omniwind\bin\jXXXX.mct). This completes Omniwind configuration.

At this point, the user would typically log-out and then log-in again using a programming
account. Omniwind is now ready to run.

17.2. Software/User Interface Overview


Omniwind is started like any other Windows® program. After installation, the Start menu
will include an entry for Omniwind. Clicking on this will start the program. The software
will first display an information window, letting the user know that it is initializing the
underlying hardware. When completed, the main Omniwind control screen appears. Figure
55 shows a typical Omniwind control panel after first loading Omniwind.

The control panel consists of the following objects (refer to the photo for locations):
A – the computer display
B – the sealed keyboard
C – the sealed pointing device, a ruggedized, red pointing-stick / mouse
replacement (with left and right buttons to either side)
D – the mandrel jog switch, used to keep the mandrel moving at a fixed rate
with no constant operator input. Typically used for things like mandrel
cleaning or excess resin removal (see section 17.5).
E – the illuminated emergency stop button

104
F – the keyboard and machine lock switches. Both switches need to be set to
“ENABLED” for normal operation. The keyboard switch will stop all
keyboard (but not mouse or pushbutton) input. The machine lock switch
will prevent the operator from clearing an emergency stop condition.
G – the file/program selection pushbutton; used for fast and/or restricted
access to a fixed parts-program list
H – the axis selection pushbuttons, used to manually jog individual axes. On
this particular photo, the machine has 4 axes: Mandrel, Carriage,
Crossfeed, and Eye-rotation; the Eye-Yaw pushbutton has been replaced
with a switch to control an optional digital tensioning system; the Elevation
pushbutton-hole is plugged.
I – the control pushbuttons, the main machine control functions; these are:
Enable, Reference, Find Path, Inc(rease), Dec(rease), Hold, and Reset
J – the rate-control pushbuttons: Inc(rease) and Dec(rease); allow the user to
control execution and jogging speeds

Figure 55 – Typical Omniwind control panel. The description of each of the objects labeled in this
photo is given below.

105
The remaining text in this chapter will refer to these letter labels (A-J) in bold Arial.

Now turning to the Omniwind window (Figure 56): it is broken up into several key regions.
Across the top of the screen are various buttons that give the user access to control optional
equipment (the T-button for the tensioner, the D-button for the Dr. Blade), and generate a log
file entry (the Lg-button). The OFFSET button in the upper right allows the operator to add
a fixed position offset to any combination of axes (see section 17.6). This is useful if a
particular program isn’t quite aligned with the mandrel: for example, if the mandrel doesn’t
always clamp in the same location.

In the upper left region, each axis location and velocity is displayed, together with a velocity
bar graph. For the mandrel, the display is in degrees and full revolutions from a configurable
point. The other rotary axes are shown in degrees from a reference location (since these don’t
have continuous rotation). The linear axes are displayed in inches or mm from a reference
location. See section see 17.9 for info on configuration settings, and 17.3 for axis definitions
and zero locations. Along the right side is a column which displays the current offset of each
axis.

In the center of the window is a Message line. This line is used to display instructions, as
well as errors. Normally, the user can verify which pushbuttons they should press to proceed
(e.g. in the figure: “ESTOP: press <RESET> to recover. Emergency stop string broken”).
Below the message line is a line displaying the File (currently) Loaded. This includes the
file’s path and also any supplemental files loaded to control the auxiliary outputs, the
tensioner, or the Dr. Blade. Any supplemental files appear after the main file and simply
display a “+” and the extension of the files loaded (i.e. .aux, .ten, and .bld). So
“c:\parts\helix1.mmt +.AUX +.TEN” implies that helix1 is loaded together with an
accompanying auxiliary output file and tensioner file.

Below this is a line called Segment Comment which displays the name of the motion
segment currently executing. Segment names can be read/set in Composite Designer in two
locations: when generating chain files (section 15.1), and by editing the motion table (13.5),
the latter method gives greater access to all generated segments and transitions. To the right
of the segment name is the Status box which mimics the machine’s Light Tower. In the
figure, the machine is in E-Stop and the light tower, the E-stop button, and this status box all
indicate red. See section 17.8 for the different color meanings of the light tower. The status
window may also display the following two icons:

- the current motion file does not have the mandrel offset flag set. In this case,
the mandrel will always rotate to zero degrees before starting the wind.

- this means the current motion file includes an auxiliary output file which has
also been loaded.

106
Figure 56 – a typical Omniwind window for a programmer user when the software is first run
In the center right of the screen, there are several icon buttons:

Access Omniwind help

Access various Omniwind configuration settings (only accessible if logged in as


a Programmer)

Load a part file (only accessible if logged in as a Programmer; Operators should


use the Select pushbutton – G)

The CD button beneath these allows the operator to change the Current Directory which the
Select pushbutton accesses. Access to this button can be set via the configuration settings.

Along the bottom of the window are various status display boxes – the leftmost one shows
the circuit or stroke number in the current segment, the next one shows the segment number
in the current file (see the note on page 96 for more info on real circuit and segment
numbers). The next one, “Time Elapsed”, displays process time – this is the length of time
that the current file has been physically executing – i.e. the time that the machine has been in

107
motion, executing the file. This does not include time spent finding the program path/starting
point or time the machine is stopped, and this value is not scaled based on the rate of
program execution (this is the process time quantity used in the auxiliary output module, see
page 96). The rightmost box is the current execution Rate. Motion files generated by
Composite Designer include time-information specifying a target rate of execution. Any time
the user generates a motion file in Composite Designer, a dialog box displays total execution
time based on a machine rate of 50%. Using the Inc(rease) and Dec(rease) pushbuttons, J,
the operator can control how quickly the machine will execute a given file.

This completes the overview of Omniwind’s screen and physical interface.

17.3. Initial Machine Motion


After Omniwind completes initialization, it will have control of the machine and the
machine’s state will be set to emergency stop (E-stop). Typically, the user will clear this state
and then home the machine. Before proceeding, the user should first carry out a visual
inspection of the machine to ensure that all axes are clear to move (this need not imply
removing any mandrel). Also, any machine operator should be thoroughly familiar with axis
names and orientations. Figure 57 is a photo of a 6-axis filament winder showing McClean
Anderson’s conventions on naming and axis orientation. The axis coordinates and
orientations displayed by Omniwind are defined as follows (refer to photo for axis names):

Axis Number/Name Zero Location Positive Motion Direction


0. Mandrel Fixed to a particular mandrel point Counter-clockwise when
observing headstock from
mandrel
1. Carriage Such that fiber payout line is Away from headstock
tangential to surface of
headstock*
2. Elevation Such that fiber payout line Up
intersects mandrel’s axis of
rotation
3. Crossfeed Such that tooling mounting flange Away from mandrel
at end of crossfeed is tangential
to mandrel’s axis of rotation*
4. Eye Yaw Such that tooling mounting flange Clockwise when viewed
at end of crossfeed is parallel to from top
mandrel’s axis of rotation
5. Eye Rotation Such that fiber payout plane is Counter-clockwise when
level (to ground) viewed from mandrel

The arrows marked “+” in the photo denote the positive direction for the axis – the direction
obtained by using the Inc button.

*
Definition assumes that attached rotary axes are also are at their zero location

108
Figure 57 – picture showing a six-axis winder, with axis labels and lines of movement – “+”
indicates direction of positive motion.

During the homing cycle, a standard machine will home and position the axes it has in the
following sequence:

1. Crossfeed – move away from the mandrel center line – remain nearly
fully retracted
2. Eye Yaw – move counter-clockwise when observed from the top, return to
zero: tooling mounting flange parallel to carriage & mandrel center line
3. Eye Rotation – move clockwise when eye-yaw is at zero and observer is
at mandrel center line, then return to zero: the tooling should payout level
to the mandrel center line
4. Elevation – move down, then return to zero: the tooling fiber-payout line
should intersect the mandrel center line
5. Carriage – move towards headstock, then reverse and move to a fixed
location – varies based on machine geometry

109
6. Mandrel – rotate clockwise when looking at face of headstock; behavior
after finding zero switch varies, either slow-down to zero and stop or
reverse to a fixed location.

The sequence of axes is designed to minimize any chance of a machine/mandrel strike. Of


the axes, typically the crossfeed, carriage, and eye-yaw (rarely present) pose the greatest
danger of a strike, although the user will still want to ensure that no rotary axis is prevented
from moving (e.g. chucks are clear and guards are in place).

In addition to visually checking the axis paths, the operator should also quickly check that
Emergency-stop string is closed (i.e. nothing is causing an E-stop condition). The E-stop
string will vary from machine to machine. Besides the main E-stop button (E), it may include
whisker switches on large linear axes or slaved axes, and supplemental hardware to protect
optional (and even customer installed) hardware. It also includes various hardware safeties.
Generally, the operator should not check hardware, although if the machine cannot clear E-
stop and no switch appears to be tripped, this could indicate more serious problems
(McClean Anderson service should be contacted in such an event). To clear E-stop, the
operator should press the “Reset” pushbutton (bottom of button group I).

Note: Anytime the machine is in E-stop, no motion (and many other program functions such
as loading a file) can take place. Also, releasing a machine from E-stop should not generate
renewed motion (the machine will still be disabled). Both of these conditions may not apply
to external devices attached to Omniwind.

Once E-stop is cleared, the operator can home the machine. To do this, press the Enable
pushbutton (top of button group I) followed by the Reference button (2nd from top of button
group I). The machine becomes enabled and begins to execute the homing sequence as
described in the text above.

A few notes on homing: A machine only needs to be referenced once per execution of the
Omniwind program. The hardware has the ability to track machine motion, even through an
E-stop event. So, after the initial reference sequence, anytime the machine is placed in E-
stop, a new reference sequence is unnecessary (although the machine will need to backup the
distance covered during the E-stop to the last executed coordinate – this is a “Find Path”
maneuver). The hardware is reset every time Omniwind is executed, so at this point, a
renewed reference sequence is required. Also note: if the user needs to stop the machine
during homing for any reason, they need to use the E-stop button (E); the Hold pushbutton
will not work.

Once the machine is referenced, it will be aware of all axes’ positions and will be able to
enforce limits on their motion. Using the machine configuration file, Omniwind will enforce
position limits on all linear axes and generally on the eye-yaw axis (if present). The mandrel
can obviously move continuously in one direction while eye-rotation can typically do the
same on most machines (although it need not). Generally, Omniwind will either stop the axis
or throw an E-stop condition whenever a software or hardware limit is encountered. On

110
machines with adjustable tailstocks mounted on the carriage’s rails, the machine is unaware
of the tailstock’s position so these use a movable limit-trip device which engages the limit
switch. In general, the program and/or operator would typically not move the axis to the
point where a software or hardware limit is engaged. Note: the machine is not aware of its
own envelope or the mandrel’s envelope. Beyond axis limits, the operator should be aware
that it is generally possible for the machine to strike the mandrel and other machine
components and should use caution when jogging the machine and when executing a
program (especially an unfamiliar one).

In general, many commands require the machine to be enabled. To do this, the operator can
either press and hold the “Enable” button while pressing the other button(s) of the command,
or release the “Enable” button and press the next command button within about two seconds.
If no activity takes place, the enable state will time out (the yellow light will go out) and the
Enable button must be pressed again.

17.4. Loading and Executing Files


At this point the machine should be homed and ready to execute the first program. If the
operator is logged in as a programmer, the open file button will go from displaying a gray-
file icon to a yellow file icon. By clicking on this icon, a typical file-open dialog box will
appear and the programmer can navigate the attached drives and load a motion file (with an
.mmt or .chn extension). Any auxiliary output files (.aux) and/or Coordinator files (.ten or
.bld) with the same name, at the same location, are automatically loaded together with the
main motion file. If the user wishes to disable auxiliary output, tensioner, or Dr. Blade
control in a particular wind, they should rename or move the corresponding files.

The second method to load a file (the only method available to non-programmer accounts) is
via the Select pushbutton (G). When the user presses this button, a dialog box appears with a
list of motion programs in the current program directory. Use the Inc and Dec pushbuttons
(group J) to move the selected file up and down the list, and press Select again to choose the
file or Reset (bottom button in group I) to cancel the file load. If the CD button in the
Omniwind window is not grayed out, the operator may use it to change the directory used by
the Select button.

Depending on an Omniwind configuration setting, the user may be asked if the program
should start at the beginning of the program or at any other segment and circuit number. This
can be useful if a particular wind was interrupted or if a programmer wishes to evaluate the
motion quality of a particular transition. By default (or if this dialog box is disabled), the
machine will start execution at circuit 1 of segment 1.

Once the file has been loaded, the operator may start machine execution. The first step is to
synchronize the machine’s position to match the fiber path at the desired execution point
(either the start of the motion file or the segment selected in the step above). This is known as
a “Find Path” maneuver. To do this, press the Enable and Find Path pushbuttons (top and
third buttons in button group I). A find path maneuver must always be executed before
starting or continuing program execution. This includes after any E-stop, after any manual
machine motion, after changing an axis offset, anytime a new file is loaded, and a file has

111
completed execution and is restarted. The only exception to this is when program execution
is held.

Note: as with machine referencing, if the user needs to stop the machine for any reason
during a find path maneuver, they must use the E-stop button, the hold button will not work.
It is always a good idea to be ready to E-stop the machine whenever executing a part for the
first time, in case entered clearances are insufficient.

Once the find path maneuver has completed, the machine will be “on path”. This is indicated
by the green tower light (either constantly lit or flashing if execution is held). The user can
now begin executing the motion program. To do this, press the Enable and Inc(rease)
buttons (top buttons in groups I and J). Generally, when first executing the file, the operator
will only tap the Inc pushbutton. The longer Inc is held, the faster the machine will execute
the program, until a rate of 100% is reached. To slow down execution, press the Dec(rease)
button (just below Inc). If Dec is held beyond a rate of 0%, the machine will start to execute
the program in reverse, up to a rate of about –25%. This can be useful to move back small
amounts to correct a problem. When dry-winding with a digital tensioner, it can also be used
to unwind a part during initial part program testing. One important limit of winding
backwards: the software can only wind backwards through the current segment and should be
stopped before a segment boundary is reached, especially if unwinding a non-cyclic segment
(it will try to re-execute the same segment).

When winding a part, the user has various options to control execution. Inc and Dec have
already been described. It is a good idea to use them to cautiously wind a first part (e.g. to
slow the machine down when approaching the domes of a bottle and execute that region at
5% or less). However, the rate at which they alter speed can be rather slow (this is
configurable, see 17.9). If a program appears to be running out of clearance, the Hold
pushbutton (second from bottom in button group I) will stop the machine more rapidly. The
Emergency stop button (E) is, of course, the most rapid method to stop the machine. Note:
when a machine is executing a part, it is enabled, so the user does not need to press Enable
before any other button. However, only a limited number of buttons (and program features)
will function: Inc, Dec, Hold, and E-Stop.

The Hold button is generally used whenever the user wishes to stop a wind (it only stops part
program execution, no other form of motion). Once the machine stops, it is disabled, which
causes the motor-brakes to clamp. At this point, the operator has various options. He/she can:

- Continue the wind, either using the Enable + Inc method described above or by
pressing Enable and Hold (note: Enable + Dec won’t start a wind in reverse). In the
latter case, the machine will return to the execution rate it had before Hold was
pressed.
- The operator can load a new file using the method described at the start of this
section. In this case, the user will be prompted to make sure they wish to abandon the
current wind. Note: reloading the current file is the only way to restart execution at
the start of the program (without finishing the wind).

112
- The machine can be jogged (see section 17.5). The operator has the option of using
this jog to generate a position offset from the original motion, otherwise the user must
Find Path which will return the machine to the state it had before jogging.
- An offset can be added to the machine’s location (see section 17.6).

Remember that if any machine motion takes place or new axis offsets are made, a new Find
Path must be carried out prior to resuming the wind.

Typically, after a few conservative program executions (and possibly minor alterations to the
program’s motion), the operator becomes more familiar with the motion and can run the
machine at a high feed rate until part completion, and then start the next wind.

17.5. Manual Operation/Jogging and Manual Offset


Often, the machine operator will want to move/jog a particular axis. For example, after a
wind, each axis might be moved away from the part to make mandrel insertion/removal
easier. The mandrel is a special case – it is often rotated for extended periods as the operator
performs various tasks on the part (e.g. removing excess resin). To manually move the
machine, Omniwind provides various pushbuttons to select a particular axis. Note: only one
axis can be manually moved at a time.

To jog an axis, the user first presses the Enable pushbutton (top of group I), then presses and
holds the desired axis button (a button in group H), and finally presses the Inc or Dec button
(group J) to control that axis’ speed. Inc and Dec are used to increase and decrease speed in
a positive direction (holding Dec will move the axis in an increasingly negative direction).
Once Inc or Dec is released, the axis will stop accelerating / decelerating and motion
continues while the axis button is held. Once the axis button is released, the axis will
decelerate to a stop and eventually the machine will be disabled (unless the operator chooses
another axis to jog while the machine is still enabled).

If, prior to jogging, there was a file loaded and the machine was on-path (either a Find Path
command was executed or the machine was held during winding), then the operator has the
option of continuing motion from the new, jogged location. To do this, press the Reference
pushbutton (2nd from top of button group I). The new coordinates will be accepted as the
current path location, the resulting offset will be displayed in the right-most column, and the
user can begin / continue winding via Enable + Inc (or Hold). The blue light will indicate
that the machine is using an offset. If the user does not wish to incorporate this jogged
motion and wants to return to the most recent location on the fiber path, he/she should
perform another Find Path. To get rid of an offset, the user can either set it to zero (as
described in the following section) or press Reference + Reset (bottom button in I).

The machine can be jogged any time it is not actively executing a program and not in an E-
stop state. This includes when a program is held and prior to the initial homing of the
machine. If an axis is jogged prior to machine referencing, Omniwind will not display valid
axis positions and the machine will not use software limit enforcement – the operator will be
able to jog axes until a limit switch is encountered which will trigger an E-stop. Remember

113
that if the machine is jogged in the middle of part execution, it must return to the previously
held position (via a Find Path) before execution can continue.

The mandrel axis includes a special switch to allow it to be continuously jogged without
requiring the operator to hold the mandrel switch. To do this, the operator would jog the
mandrel as described above. Once the mandrel is moving, the Mandrel Jog switch (D) is set
to “On”. This switch is equivalent to holding down the mandrel pushbutton. The Inc and Dec
pushbuttons will continue to work. The mandrel will now continuously rotate until the switch
is turned off or an E-stop occurs.

17.6. Use of Offsets


In some cases, the operator may need to make minor adjustments in the machine’s position to
account for irregularities in the mandrel’s mounting location or clearance issues in the
motion file. One method of doing this was described in the previous section. This section
describes an alternative.

Figure 58 – offset entry dialog box


To use offsets, the machine must first be on a program path and not actively executing. At
this point, the Offset button in the upper right corner of the screen becomes enabled. By
clicking on this, the operator is given a dialog box where he/she can enter offsets for one or
more axes (Figure 58). Offsets are not cumulative, so applying a 0.2-inch offset twice would
cause no motion the second time. Offsets follow the standard axis orientations (see Figure
57) and the units are also displayed. In general, unless a mandrel has significant variations in
mounting location, offsets are only used during program development. In production, any

114
adjustments to motion should be done via Composite Designer. The offset dialog box also
has a provision to zero all offsets, returning the machine to the original program path.
If any offsets were changed, the user will need to perform a new Find Path (i.e. Enable +
Find Path pushbuttons) before continuing with the wind. This is when the motion actually
takes place.

Any applied offset will appear in the right-most column of the main Omniwind window and
the blue tower light will light.

Note: offsets are maintained until the operator removes them (e.g. when re-running the same
file or loading a new file). The operator can make use of this fact to add an offset to a
program before running it. Since offsets cannot be set until after the machine completes a
Find Path, this poses a problem if the Find Path itself brings the payout system too close to
the mandrel. To avoid this, a programmer may wish to install a program for which the find-
path moves the machine to a safe location where some adjustment can be carried out. The
operator would load this file, execute a find path, then apply an offset, and finally load the
desired file to be executed.

17.7. Shutting Down


Once the operator is finished using the machine, he/she would shut it down. There are no
particular requirements before a machine can be shutdown. The only common practice is to
stop the machine first and close Windows. Omniwind is similar to many Windows programs
– it can be closed via clicking the “X” in the upper right corner of its window or via the
keystroke Alt-F4. In both cases, a window will popup asking the user to verify this, and then
the program exits. When Omniwind exits, the machine is placed into E-stop and no further
pushbutton control is accepted. Because of this E-stop, the user is encouraged to first stop the
machine prior to exiting Omniwind.

Note that in general, all direct machine motion is carried out by the on-board motion control
board and not by the industrial computer – this means the machine can remain operational
even if Windows crashes.

For all other purposes, the computer functions just as any typical Windows-based PC would,
and is capable of running standard Windows software. To shut down the entire system, the
user would go to the Start menu in the bottom left corner of the screen, and select “Shut
Down…” at the bottom of menu. After selecting “Shut Down” again in the window which
appears, Windows will shut down and a new screen will appear telling the user the computer
is ready to have power removed (the industrial PC does not use an auto-power-down ATX
style power supply). Finally, the operator can throw the main power switch on the machine to
turn off the system (and also turn off any independently powered systems such as the
tensioners).

115
17.8. Light Tower
Above each winder is a light tower with 4 colored lights
(Figure 59). These have the following meaning(s) if lit:
Red – the machine is in E-stop – motion is not possible until
E-stop is cleared
Yellow – the machine is enabled – it is either moving or is
clear to move
Green – if lit, the machine is on path – it is ready to wind a
part (if yellow is also lit, then a program is currently
executing); if flashing, machine is currently held (via the
Hold pushbutton)
Blue – if constantly lit, the machine currently has an offset
applied – one or more axes has been adjusted from its
programmed position; if flashing, the machine has not yet
been homed, no program can be loaded or run until a
reference cycle has been carried out.
Figure 59 – a light tower

17.9. Additional Programming Features / Configuration


If the user has logged in with a programmer user name (see section 17.1), then some

additional Omniwind features are available: the flag and file buttons in the center
right of the window. The file icon permits the operator to load any file accessible to the
computer using a standard, Windows open file dialog box. A file can only be loaded after the
machine has been referenced (see 17.3) and when it is not in motion (i.e. enabled).

When the user clicks on the flag button, the Omniwind configuration screen is brought up
(Figure 60).

Going through the screen sections from top to bottom:


Display Units – here, the user can select from one of four possible units of measurement
settings. Each setting indicates the units to be used for linear position, linear velocity, angular
position, and rotational velocity (always rpm). These are the units used throughout
Omniwind.

Pushbutton File Loading Path – this sets the default directory used by the Select
pushbutton (G). To alter this location, either type in the desired directory or use click on the
Browse… button, bringing up a file load dialog box. Here the user would navigate to the
desired directory and complete the process by actually selecting (i.e. double-clicking) a file.
No file is actually loaded, this simply indicates the directory to use. Note: this default
directory (and all other parameters on this screen) is stored in an initialization file, used
whenever Omniwind starts. If the operator changes the directory via the CD button, the
change only lasts until Omniwind is closed.

116
Figure 60 – Omniwind configuration screen, available when logged in as a programmer

Current System Files – here the present version of the internal motion-control card (DSP)
code and the current machine configuration file (.mct) are displayed. These are for reference
only. To alter the .mct file, the programmer needs to directly modify Omniwind.ini file (see
section 17.1). Changing the internal DSP code file is rarely required and McClean Anderson
will provide instructions in such an event. For reference, in the figure, the current DSP code
version is 2.4. It is customary to install a different version of Omniwind to update this file.

Machine Rate Modifiers – these are two parameters affecting machine acceleration rates:
Button Sensitivity determines how quickly the machine rate changes when the user holds
down the Inc or Dec buttons. Stopping Torque determines how rapidly the machine
decelerates during machine-controlled stops (e.g. end of file). In both cases, larger numbers
imply more aggressive acceleration levels. The figure shows the initial settings of 50% and
200% respectively.

Crossfeed Find Path Behavior – establishes crossfeed behavior during a Find Path
maneuver. If it is set to retract, the crossfeed will retract to its home position any time the
carriage moves more than about ½” (about 1.25cm) during a find path. In other words, unless
the new machine position is very close by, the crossfeed will first retract, then the other axes

117
will be moved, and finally the crossfeed will extend. In general, setting this to retract greatly
reduces the likelihood of a machine/mandrel strike during the find path behavior, although it
slows down the find path process. Typically, the only time it would be set to Do Not Retract
is on production machines where the find path cannot cause a problem. Even here, caution is
advised: for example: A bottle is being wound and the machine is stopped at the far end while
plunged in. If the wind is abandoned and started over, a find path may attempt to move the
payout system through the mandrel to the starting location.

Crossfeed After Path Behavior – similar to Crossfeed Find Path Behavior – this establishes
crossfeed behavior at the end of a program. If set to retract, this can be useful to move the
machine out of the way for easier access during mandrel removal. It may also reduce cycle
times because the crossfeed is already retracted when the next Find Path is initiated.

Segment/Circuit Prompting – establishes behavior whenever Omniwind loads a new


motion file. If set to Prompt, Omniwind will display a dialog box asking the operator to select
the segment and circuit number where they wish to start the wind. Otherwise, Omniwind will
always start at the first segment and circuit.

Mandrel Position Display Type – indicates how mandrel position should be displayed. The
format for the mandrel is degrees and full rotations. This selector determines when this
display is reset to zero: at the start of each circuit, of each segment, or of each program.

Data Logging – Omniwind incorporates the ability to generate automatic data logging. This
consists of sampling various values at regular (or operator established) intervals. These values
are written to a text file. Omniwind currently only handles one log file at a time and this file
is restarted every time a part program is loaded and executed. In this part of the dialog box,
the user can turn logging on or off, set a filename (enter the name and click the Change
button), set the types of data to log from any combination of three sources – winder position
data, tensioner data, and Dr. Blade data, and set the log frequency. If the frequency is set to
manual, then log entries are made whenever the operator clicks on the Lg button at the top of
Omniwind’s main screen. Even on automatic, the Lg button will always generate an entry.
Below is a text excerpt from a typical data log file:

0 1 2 3 4 5

Winder at time:10:40:09 of 03/27/2003


0.0864004 3.206795 185.190323 0.000030 139.703308 0.000240 0.000779

Tensioner at time:10:40:09 of 03/27/2003


T01 T02 T03 T04 T05 T06
00.000 00.000 00.000 00.000 00.000 00.000
T07 T08 T09 T10 T11 T12
00.000 00.000 00.000 00.000 00.000 00.000
T13 T14 T15 T16 T17 T18
00.000 00.000 00.000 00.000 00.000 00.000
T19 T20 T21 T22 T23 T24
00.000 00.000 00.000 00.000 00.000 00.000

Dr.Blade at time:10:40:09 of 03/27/2003


Op01 Op02
0.00000 0.00000

Winder at time:10:40:19 of 03/27/2003

118
0.72832 26.358404 177.819717 0.000030 139.699646 0.000199 0.000874

Tensioner at time:10:40:19 of 03/27/2003 ...

The file has the following structure:


o the first line records the numbers of the axes present (in order from 0 to 5: mandrel,
carriage, elevation, crossfeed, eye-yaw, and eye-rotation). In this case, all axes are
present.
o The remaining file consists of various entry types, each with a time/date stamp and
current state information
o For winder position entries, the information is scaled process time followed by a
position entry for each axis present. Time is based on motion file structure and rate of
execution and cannot be readily converted to absolute units; but provides a relative
measure of speed (e.g. in the file above, time goes from 0.09 to 0.73 over 10 real
seconds – if the machine were run at twice the speed, these entries would read 0.17
and 1.46). Position is given in the same units used for position on the Omniwind
screen (degrees and either inches or mm). For the mandrel, the entry further depends
on the Mandrel Position Display Type (see description of this option above) – except
the log file doesn’t track revolutions separately, so 2 revolutions + 60 degrees would
be entered as 780.
o For Dr. Blade entries, the values correspond to the current blade openings. These are
typically calibrated in inches, although custom scaling is possible.
o For tensioner entries, the values correspond to the current readouts of the load cell for
each tensioner unit. These readings reflect the calibration done while configuring the
tensioners. For more on tensioner configuration consult the relevant manual.

Event Logging – in addition to data logging, Omniwind also tracks significant events
regarding the machine and stores them to an event log. Logging generates a time/date stamp
for each entry and includes things such as Omniwind startup/shutdown and Username of
person logged into Windows, program loaded, various pushbutton sequences (e.g. Find Path,
Reference), clearing and tripping of E-stop, etc. Below is a text excerpt from a typical event
log file. Unlike data logging, event log entries are always appended to any existing log file
(the file simply grows). This is generally not a significant problem given modern hard drive
sizes. If the user wishes to restart the log, they should simply delete the current log file.

Date:03/07/2003
omni2 is logged in.
09:05:40 = Event logging started.
09:05:40 = COM8 is not found for Dr.Blade Group1
09:05:40 = COM6 is not found for serial Digital IO
09:05:40 = Emergency stop occurred.
09:05:43 = Emergency stop recovered.
09:06:26 = Homing sequence completed.
10:07:54 = File <C:\Wind Programs\part1.mmt> loaded.
10:09:33 = INI configuration saved.
10:09:54 = Find path completed.
10:09:55 = Winding initiated via INC button.
10:12:13 = Machine held.
10:30:30 = Event logging stopped.
Date:03/27/2003

119
omni2 is logged in.
10:30:34 = Event logging started.

The event log is in plain text and fairly easy to understand. The entries about COM8 and
COM6 refer to Omniwind attempting to establish communications with external devices
(tensioner, Dr. Blade). In this case, the machine was not hooked up to anything. The entry
about INI configuration is generated when Omniwind’s configuration is edited (Figure 60)
and the user clicks “OK” to accept the settings.

Omniwind System Memory – this is used to give the programmer an idea of how large a
particular program (and associated files) are in terms of DSP/motion card memory resources.
On board memory is sufficient to handle typical motion files, although if these become very
large (well over 1,000 coordinates), and if additional auxiliary / tensioner / Dr. Blade
programs are loaded then memory can run out. To use this feature, the programmer should
first load the program to be evaluated for size issues before accessing this screen. If memory
is an issue, the programmer might consider means to reduce the points count in motion files
and/or breaking apart chain files (see note on page 81).

Enable CD button – this allows the programmer to allow or deny access to the CD button on
the right side of the main Omniwind window. The CD button is used to change the directory
accessed via the Select pushbutton (G). If this box is left unchecked, then a user without a
programmer account will restricted to loading files which lie in the default Pushbutton File
Loading Path directory (see description of this setting above).

Once the programmer is satisfied with all configuration parameters, he/she clicks on OK and
the parameters are accepted and incorporated into Omniwind’s initialization file. Some
parameters take immediate effect while others require Omniwind to shut down and restart.

17.10. Interfacing to Tensioner and Dr. Blade


Omniwind control computers are capable of interfacing to two additional pieces of McClean
Anderson hardware: the digital fiber tensioning system and the Digital Dr. Blade. Their
detailed operation is covered in the two subsequent chapters. In general, these devices can be
controlled via a keypad at the device (this is the only interface for advanced, configuration
commands), via the Omniwind software, and during program execution via supplemental
winding files (see Coordinator software, chapter 20). In this section, we cover the Omniwind
interface to these devices.

The physical connection to the devices occurs via an RS-232 link. Once the devices are
connected, the RS-232 connection must also be configured. These steps are typically done
during initial installation by McClean Anderson service personnel. If any physical
installation or interface configuration issues remain, please contact McClean Anderson
directly.

Note: when using Omniwind to control a Dr. Blade unit, power-up sequence is important. To
properly establish communications, first turn-on the winder and start Omniwind, then turn on

120
the Dr. Blade control via the main switch (set it to RUN). For the tensioners, the power-up
sequence is not critical.

Once the system is up and running, access to the Dr. Blade gap and digital tensioner settings
is provided via the and buttons respectively in the upper right corner of the
Omniwind window (Figure 56). Pressing the button brings up the following window:

Figure 61 – the Dr. Blade control window. In this case, it provides access for up to
two Dr. Blade units, although only one is connected. Its current gap is 0.069 inches.

In this dialog box, the operator can monitor the current gap opening and also set a new gap
size. To set a gap size, simply enter its value and press the “Set Now” button. Pressing “Hide
Dialog” or the “X” – close button in the upper right corner will simply close this dialog box,
it has no affect on Dr. Blade operation.

Digital tension control is similar to Dr. Blade control – pressing the button brings up the
Quick Tension Control dialog box (Figure 62). Here, the operator can monitor current
tension measurements and also set new values. To set values for an individual tensioner,
simply move the mouse over the corresponding unit’s “Set” entry box, left-click, and enter
the new value. To actually execute the change, click on the “Set Tension Now” button at the
bottom of the window. This sends the command sequence to the tensioner machine – all set
values are sent over together.

To change a bank of units at once, use the “Set input from ___ to ___ as ___” entry boxes.
Enter the first unit in the bank into the first box, the last unit into the second box, and the
desired tension into the third box. When done, press the “Change Input” button to copy the
values to the individual units’ set boxes, and finally press “Set Tension Now” to actually
execute the change on the machine.

Finally, the “Hide Dialog” button or the “X”-close window button in the upper right corner
both close this window without having any affect on the tension settings.

In addition to setting values via these dialog boxes, supplemental files can be added to the
winding programs themselves to automatically control tensioner and Dr. Blade settings.
Generating these files is done using Coordinator software and is covered in chapter 20. When
such supplemental files are loaded, the “File Loaded” portion of the main Omniwind window
(Figure 56) will indicate this via the string “+.bld” and/or “+.ten” for Dr. Blade and tensioner
files respectively. Once such files are in use, the corresponding control dialog boxes (Figure

121
61 and Figure 62) will still display the current settings of the Dr. Blade gap or tension
measurement but the user will no longer be able to alter any controlled unit’s setting.
Individual tensioner / Dr. Blade units not configured / controlled in the given file(s) can still
be set via the dialog boxes.

Figure 62 – the tensioner control dialog box. In this case 16 tensioners are available. The current
load-cell tension measurement is displayed for each unit after the word “Current” and a new target
setting is displayed after the word “Set”. In this case, no tensioner is enabled at the machine so all
load-cell readings are near zero.

Note: control of the Dr. Blade and digital tensioners is non-hierarchical – requests are
executed in sequence. For example, if a particular wind program sets tension levels on a
repeating basis and the operator manually sets different levels at the tensioner, those manual
levels will be used until the next time the wind-program triggers the condition and generates
a new request.

17.11. Troubleshooting

Problem: at the end of a wind, the various machine axes behave erratically, typically during
a bottle or non-linear wind executing at high speed.
Solution: This effect is due to how Omniwind completes motion at the end of a file. Upon
completion, all axes are decelerated simultaneously at acceleration values set in the
machine’s configuration file (.mct). If these values are set too low, this deceleration can take

122
some time (and the effect becomes much more pronounced at higher feed rates). Contact
McClean Anderson about making changes to the .mct file.

Problem: the pushbutton panel is behaving erratically. For example, machine homes, etc. but
will not start the wind.
Solution: The machine may be connected to a device which has a link to the hold
pushbutton. This is used to stop the machine under certain conditions (e.g. when a tensioner
faults). Try to establish if this is the case (e.g. look for tensioner faults) and resolve this
problem (see section 18.6 for specifics on tensioner troubleshooting). If not, read the next
section on pushbutton diagnostics and contact McClean Anderson for further assistance.

17.12. Advanced Troubleshooting


In general, Omniwind controls are quite robust, but like any machine, individual components
are subject to wear-out and failure. Also, some machines may be subject to a wide variety of
operating conditions (e.g. mandrel size) where some control adjustments may improve
performance. If a machine is behaving in an unexpected manner (e.g. it cannot home or axes
are not moving as they should), it may be possible to perform some more advanced
diagnostics to troubleshoot and in some cases correct the problem.

Before proceeding, please contact the McClean Anderson service department for further
advice and also to obtain the necessary information to gain access to the diagnostic mode of
Omniwind.

Warning: Filament winders and peripheral hardware consist of moving machinery controlled
by high-voltage devices as well as pressurized air and hydraulic devices. All
troubleshooting should only be carried out by personnel trained to handle such
hazards. Within the winder cases, various components (main switches, drives,
transformers, etc.) may be at hazardous voltage levels. Before opening any cabinets,
please contact the McClean Anderson service department for further advice. Please
read this section in full, especially other warning messages, before attempting any
diagnostics.

When running in diagnostic mode, Omniwind provides several additional controls. Key
among these is the “DB” button added in the upper left portion of the screen and the small,
unlabeled buttons added to the right of each axis to allow on-the-fly gain adjustment of the
individual axes. The additional buttons on the top are used for checking/setting
communication port control to the Dr. Blade and Tensioners (these should not normally
require any adjustment in the field).

Testing Switches
To begin troubleshooting, the operator would typically start by pressing the “DB” button.
This will display the debugging screen (Figure 63). Looking at the various portions of the
window – the upper left region with the headings “Status DWords”, “Status Floats”, and

123
“MState” is not intended for end-user diagnostics. To the right of this is the pushbutton panel
can control switch status, and the lower left screen portion is for axis debugging.

Warning: Before testing any pushbuttons or control switches, first stop the machine and
then place it into E-Stop by pressing the main E-Stop switch and leaving the switch
depressed. All buttons will continue to function while in debug mode and keeping the
E-Stop switch pressed ensures that the machine cannot be accidentally enabled and
moved. Also switch off / disable all peripheral devices (e.g. Dr. Blade and digital
tensioner) whenever working around the machine to test switches.

Once the main E-stop switch is pressed, the technician may begin testing the various
pushbuttons and end switches located around the machine.

Figure 63 – the debugging dialog box. The upper left region (Status DWords, Status Floats, and
MState) are not intended for end-user diagnostics. The right side shows pushbutton and control
switch states, the lower left shows current axis data.
The debug screen will update to display the current state of all switches (note: the display is
not instantaneous, please hold the switches down for some time to verify operation). Most
switches in the system are normally open – i.e. during normal operating conditions when the
button is not pushed or the axis is not near its limit or home location, the display should be
blank. When the contact is activated, the screen should display a small blue dot next to the
label (e.g. EStop Str in the screen shot).

If a particular pushbutton appears to have failed, try verifying its operation on this screen by
pressing and releasing the pushbutton and checking that the blue dot appears / vanishes.

124
The pushbutton labels and their debug screen names are:

Machine Panel Label Location• Debug Screen Label


Enable I Enable
Reference I Reference
Find Path I Find Path
Inc J Increase
Dec J Decrease
Hold I Hold
Reset I Reset
Mandrel H M Jog
Carriage H C Jog
Crossfeed H X Jog
Eye Rotation H R Jog
Eye Yaw H Y Jog
Elevation H E Jog
Select G Select

The debug window also displays switch settings for various home and overtravel limits. The
home switches are also normally open and close (display the blue dot) when the particular
axis is at its reference position. To manually test these switches, the user can physically press
the switch or place a piece of metal near it (for proximity switches). Again, make sure the
machine is in E-stop before attempting such a test. Depending on machine size, this operation
may be easier to do with two technicians. Some switches are easily accessible without any
disassembly while others are more difficult to test. Layout varies from machine to machine.
Please contact McClean Anderson for advice if switch location is not obvious.

Alternatively, the operator may jog the corresponding axes to their corresponding reference
locations. In this case, the technician would obviously clear E-Stop and then move the
machine (and set E-stop again before testing other switches). The reference locations may
vary somewhat from machine to machine, but generally, they are located at:

Axis Debug Screen Label Typical Reference Location••


Mandrel M Home At 0°
Carriage C Home Near headstock
Crossfeed X Home Nearly fully retracted (away from mandrel)
Eye Rotation R Home Near -90°
Eye Yaw Y Home Near -90°
Elevation E Home Slightly below 0 position


Refer to Figure 55,p. 105, for panel photo and location labels
••
Coordinate values assume machine has successfully referenced – this may be impossible if a home switch is
broken (presumably when such a test is carried out); but a technician familiar with the machine should have an
idea where most of these reference locations are, except perhaps the mandrel. Refer to Figure 57, p. 109, for
axis orientation photo and sections 17.3 and 17.5 on homing and jogging.

125
Generally, the operator would jog the machine as slowly as possible as the switch is
approached due to the low update rate on the debug screen.

In a similar vein, the technician can verify operation of the overtravel switches. These are
normally closed switches which open upon contact. On the debug screen, a red dot is
displayed next to their screen entries which disappears upon switch activation. During
normal operation, these switches are not encountered because the machine also utilizes
software limits that are based on the machine’s reference point.

In general, the overtravel limit switches should be manually tested – with the machine in E-
Stop a technician should press the switches. If there is a suspected failure, then either the
machine would fail to move the corresponding axis in the direction of the switch (if it fails
open), or the machine would fail to stop the axis and permit the machine to strike the hard-
stop (if it fails closed).

To test the switches via jogging, the operator would not reference the machine. In this case,
the machine can be jogged with no software limits enforced and would be able to encounter
the switches. Once a switch is encountered, the machine goes into E-stop and the user would
be able to press Reset to clear and then jog the axis in the direction away from the limit
(jogging towards the limit is disabled at this point). Again, if the switch were to fail, the
machine may strike the hard-stop so caution is advised.

The overtravel limits are labeled as follows:

Debug Screen Label Typical Overtravel Switch Location


C– OT Carriage overtravel at headstock
C+ OT Carriage overtravel at tailstock
X– OT Crossfeed overtravel near mandrel axis
X+ OT Crossfeed overtravel away from mandrel
E– OT Elevation overtravel at low limit
E+ OT Elevation overtravel at high limit

Please contact McClean Anderson service to replace a defective switch.

In addition to the various switches, the E-Stop string state is also displayed (label: EStop Str).
This is normally open but closes and latches when any E-Stop component is triggered.
Triggers include the main E-Stop switch, any protective switches, and some intelligent
componentry such the Omniwind computer itself and motor drives. The E-Stop string is
latched so that once triggered, it remains so until all items in the string are clear to proceed
and an explicit signal is issued (by pressing Reset) to clear the state. When in E-Stop, the
string is closed and the display will show a blue dot (as in Figure 63).

126
Motion Debugging Data
The lower left portion of the screen is dedicated to displaying current and peak axis motion
data. The primary value of interest is the position error (labeled Pe) – this indicates the
current, maximum, and minimum (i.e. negative) position errors encountered on the particular
axis since the last time these values were zeroed. If the machine ever goes into E-stop on an
irregular basis and gives a message indicating excessive position error, this screen can be
used to obtain more information about the axis in question (note that the user would need to
log-in with debugging privileges before executing the problem program). The section also
includes data on axis commanded position, actual position, commanded velocity, actual
velocity, and velocity error (Ve). The values are displayed in inches, inches / second, radians,
or radians / second as applicable. Note that the displayed coordinates are based on a machine
internal reference system of the home switches and typically do not match those displayed on
the main Omniwind screen (especially the crossfeed on which the orientation is also
reversed).

To select a particular axis, click on the down arrow next to the axis list-box. This opens a
small list-box with two arrows – click on the arrows to scroll through the available axes and
click on the axis to select it. The remaining data will be updated. To test a particular program
region, the operator may wish to press the zero button before starting to clear the current
values. Next to the zero button is a drop-down list-box where the user can select if the screen
should show maximum, minimum, or actual (current) values.

There are several possible reasons why a particular file may be causing problems – the file
may have excessively high acceleration rates which exceed the torque rating of the given
axis, causing it to fall behind and eventually trigger an error – this type of condition is
apparent while executing the program due to the abrupt nature of the acceleration. The file
may also have an axis overspeed condition - in this case, the file may execute quite well up to
a certain rate of execution and abruptly trigger an E-stop when it is run too fast. This
condition can be seen on the main Omniwind screen by checking if the axis’ velocity is
running near 100% in the problem region. Finally, the controller gains of the axis may not be
set appropriately. If a winder is subject to a wide variety of loads, particularly ones with high
inertias and/or unbalanced loads, there will be some difficulty in properly tuning the system.
Usually this is only a problem for the mandrel axis. Gains set too low will cause a sluggish
response, while excessively high ones will cause buzzing which also wastes energy and heats
the motors and drives.

Adjusting Controller Gains


If the technician suspects the controller gains require adjustment, this can be done on the fly
using the debug mode’s extra features. On the main Omniwind screen, small buttons should
appear to the right of each axis. Clicking on these buttons will display the current
proportional (Ksa) and integral (Kisa) controller gains.

To begin, the technician should load a file which accelerates the relevant machine axes. If a
particular program is causing problems, it would be a good candidate, especially to test the
mandrel axis with the mandrel loaded. Begin executing the program and examine the actual

127
error values displayed on the debug screen for the axis in question. In general, target error
values are in the range of 0.002 inches or radians. Actual values may be significantly higher
during high acceleration maneuvers due to torque limits, but otherwise, this is a good target.

Next, the technician can begin to adjust the gains. The procedure followed during machine
tuning is to set the integral gain to zero and the proportional gain to a fairly low number (say
20). Now gradually increase the proportional gain (a reasonable increment is in the range of
10) and observe the position error – it should gradually decrease to a point – and eventually
the axis will start to hum or oscillate and the error will begin to increase again. When this
point is reached, reduce the gain value again by a margin of 25-50%. Now increase the
integral gain. This helps to eliminate position error in constant velocity regions. Typical
increments are on the order of 10. Again, some reduction in position error should be visible
to a point until the gains become too high and humming begins.

While there are no fixed values which work well on all machines, ballpark gain settings are
on the order of 50-200 for both proportional and incremental gains. If the technician is
satisfied with the error levels displayed during a particular test at a reasonable machine
speed, then there may be no need to increase the gains to the stability threshold as this is
somewhat harsher on the motors and other componentry (they will run hotter).

When done tuning, the gain values will remain in use until Omniwind is shut down.
Permanently incorporating these gains requires editing of the machine’s configuration file.
Contact McClean Anderson service for more information.

128
18. Digital Tensioning
Some McClean Anderson winders include an optional, digital fiber tensioning system. This
gives the designer / operator excellent control of fiber tension during a wind. Digital
tensioners also provide great flexibility through features such as remote programmability via
off-line software as well as from the operator console of Omniwind (see chapter 20 and
section 17.10). They also offer unlimited fiber take-up capability.

Tensioner operation is described in this chapter. One note: the terms “motor” and “tensioner”
are used interchangeably to designate an individual tensioning unit within a tensioning
system.

18.1. Safety
Safety is a primary concern in the design, manufacture, sale, and use of McClean Anderson
winders and digital tensioning systems. We would like to remind users of basic safety rules
using a tensioning system. Tight, moving fiber poses a significant hazard to machine
operators and bystanders and failure to follow these guidelines can result in serious injury or
death.

IT IS ESSENTIAL that everyone involved in the operation, and maintenance, of this


equipment is aware, concerned, prudent, and properly trained in safety.

Following these safety rules, as well as others identified in the owner's manual and in product
safety signs, will help minimize the possibility of accidents and increase productivity:

• Before operating a tensioning system, an operator must read and understand all of the
information in the owner's manual and the safety signs attached to the product.

• Wear appropriate safety gear for the task at hand – including: gloves (for fiber and
resin protection), safety eyewear, and possibly respiratory protection.

• Be sure the emergency stop button on the tensioning unit is pressed whenever
changing or getting close to the fiber path or spools.

• Always check surroundings before turning on the tensioning system. Verify that there
is no one working around the creel or in the fiber path.

• To change a fiber spool during a wind, follow these steps (refer to Figure 64 through
Figure 66 for machine photos):
1) Turn individual tensioner enable switches off and place the tensioner and winder
into E-stop by pressing the appropriate buttons (the winder can recover from this
without losing position)
2) Put on appropriate gloves before handling the fiber.
3) Open the creel door and turn off the air switch on the spool to be changed
4) Replace the spool making sure that fiber pays out on the correct side

129
5) Thread the fiber correctly over the load cell and the remaining distance to
complete any splice – try to avoid letting the fiber get too loose (the tensioner
motor/spool can be backed up by hand after the splice is done and before
restarting the machine)
6) Turn the air back on and close the creel door
7) Enable the tensioner system and turn the individual tensioners back on; resuming
the wind typically requires clearing E-stop (pulling out the button and pressing
“Reset”), then performing a Find Path, and finally using Enable and Inc to resume
winder motion
Warning: changing an individual fiber spool without putting the tensioner into E-
stop (i.e. maintaining tension on the remaining spools) is hazardous and not
recommended.

• Do not operate tensioner when fiber redirect pulleys are loose, worn or sticking.

• Never touch the load cell or manually move the spool when the tensioner is on

• Do not bend or put a heavy load on the air-chuck assembly.

• Do not directly wrap the air-chuck with fiber, it could cut or damage the air-chuck

• Never inflate an air-chuck without a spool – this can damage or rupture the bladder

• Use extra caution when winding with carbon fiber, which is very conductive. It is
critical that the creel doors remain closed while winding it. Failure to do so could
cause electrical system short or failure of surrounding equipment. All electrical
systems surrounding the tensioning system must be sealed.

18.2. Tensioner Overview


Figure 64 shows a tensioner control panel with the various components labeled. Once power
is applied and the tensioner computer system completes its boot-up sequence, a cursor will
appear on each keypad / display unit. An individual tensioning computer can operate up to 8
tensioning motors.

Note: the remainder of this chapter assumes only a single tensioner computer,
although the same procedures apply regardless of the number of tensioners. However,
each tensioner computer is a separate entity and functions largely independently of
the others. For example, in Figure 64 the user could only modify parameters for
tensioners 1-8 – the leftmost eight – by using the left computer. Any editing changes
which affect all tensioners would only affect tensioners 1-8. The main E-stop and
enable buttons apply to all tensioners and when using external control (through
Omniwind), the use of multiple tensioner computers is largely transparent.

130
From the user’s perspective, the tensioner computer consists of an integrated keypad and
display. Here the user can set tension levels and also configure various control parameters. A
few notes on using the keyboard (Figure 66 provides a reference):

In this manual, keystrokes are denoted by Bold Arial writing.

The SHIFT key alternates between the upper and lower legend on each key. The current
shift-state is indicated by the cursor. If it is a flashing block (symbolized by „ in the text),
then the upper (blue) keys are being accessed; if no cursor is displayed (symbolized by … in
the text) then the lower (white) keys are being accessed. Note: some machines may display a
flashing underline when accessing the lower character set. Also, the ENTER key is at the
lower position.

To correct a typing error, use the left arrow key to delete the mistyped character just like the
Backspace key on a PC keyboard. Press ENTER to accept an input. If the user presses
multiple keys which are not valid for the current query (for example, a character when asked
for a numeric entry), the terminal will beep to warn of the error.

There are two ways to cancel an input – either press the ESC key or allow the computer to
timeout and automatically cancel after 10 seconds. However, for some critical operations like
calibration, the second method is disabled.

Figure 64 – a tensioner control panel with various components labeled. Note how this particular
machine has 16-units on two separate tensioner computers (each computer handles up to 8)

131
Figure 65 – inside a tensioner cabinet. Two air-chucks and their air-supply control switches are
shown on the right. Fiber from the carbon spool on the lower chuck is threaded over a redirect
wheel, a load cell (the middle set of wheels), and over another redirect wheel before leaving the
cabinet and making its way to the resin bath and mandrel.

18.3. Basic Tensioner Operation


The first step when setting up the tensioner is to disable all machinery (i.e. winder, tensioner
and any other additional componentry) by pressing the relevant E-stop button(s). Next, load
spools into the tensioner as needed and carefully thread the fiber from the spool,
through/around any guides, over the load cell, and on through any fiber bath to the mandrel.
Remember to turn air supply to the air-chucks on and off when changing spools. Once the
fiber is secured, the operator can proceed to manually set tension levels via these steps
(assuming the tensioner is powered up):

1) Turn off all individual tensioner enable switches (they are off when down – away
from the enable and fault lights).
2) Select the first tensioner to be set using the µ and ¶ keys. The display will indicate
which tensioner is currently selected.
3) Press the F1 key.
4) Use the numeric keys (and “.” key) to set the tension level. Press the Enter key when
finished. Note: tension force units depend on the calibration of the machine and are
preset as desired for machine location (e.g. lbf, kg or N).

132
5) Repeat steps 2 – 4 for each tensioner to be used.
6) When all tensions are set, press the main enable button (the green button above the
red e-stop button).
7) Finally, turn on the individual tensioners enable switches of the tensioners which
were set in the previous steps. The operator should notice the tautness in the lines as
each tensioner comes up.
Note: leaving the individual tensioners switches enabled and using the main enable switch to
turn on all tensioners at once is not recommended. It generates more abrupt motion and has
greater potential for operator error.

Once the drives have been enabled, the operator may use the individual enable switches to
remove tension from an individual tensioner. Cycling these switches on and off can also be
used to clear a tensioner fault (but this method is not recommended when replacing a fiber
spool or splicing a broken fiber).

Figure 66 – close-up of the tensioner keypad/display and individual tensioner enable switches across
the top with their enable (green) and fault (red) lights. In the picture, all enable switches are off:
down, away from the lights.

Pressing the E-stop button (see Figure 64) will remove power from all drives in an
emergency. Note that the motors do not incorporate any brakes and will drift to a stop
(assuming the mandrel has stopped). To recover, we suggest first disabling all individual
tensioners, then pressing the main, green enable button, and finally enabling the individual
tensioners.

133
Pressing F2 will cause the computer to start displaying the current tension of the currently
selected tensioner/motor. The value will be displayed for 100 times, then it will automatically
stop.

18.4. Advanced Tensioner Controls


The final section of this chapter (18.7) is a table providing a detailed list of all the tensioner
keypad commands. Before attempting any advanced operation, be sure to read all the notes in
this section. In general:

- Be aware of the current cursor shift-state: flashing „ for upper (blue) keys or … (no
display) for lower (white) keys. In the table, each key is preceded by one of the above
symbols to remind you. After the first command key, the machine will generally
switch shift mode as appropriate to assist with entry.

- The table indicates the sequence of commands to enter to complete the given
procedure. The software may not always indicate an error input (e.g. if password
entry fails, the software will display the string “<DONE>”). If the command prompts
do not appear to follow the sequence, then the sequence has probably failed, generally
due to an invalid input. To restart a sequence, try pressing ESC a few times and then
press the µ or ¶ key which will display a message about the currently selected
tensioner. Then restart the sequence.

- The software generally displays a confirmation message once a procedure has


completed.

Password – all operations which permanently record data on the tensioner require entry of a
password. The factory default password is: 1234 (number keys are shift insensitive). Be
careful when changing the password. If the password is lost, contact McClean Anderson
service for information on restoring it.

Calibration – The load cells can be recalibrated to compensate for drift over time or to alter
unit systems (see note below on unit systems). IMPORTANT NOTE: remove power to the
drives by pressing the E-Stop button and turning off the tensioner enable switches (Figure
64) before calibrating!

The tensioning system itself is essentially unitless – units are established based on the
number the user enters to represent the force applied to the system. Note that “set tension”
commands are based on this calibration setting – so if the system is calibrated in lbf, then
commands issued via the tensioner control keypad or Omniwind would generate a tension in
lbf). For example, assume the user applies a force corresponding to a 5lb weight along the
fiber path. The following calibration entries correspond to different units of force:
5 – the system is calibrated in lbf
2.268 – the system would be calibrated in kgf (where 1kgf = 2.205lbf)
22.25 – the system would be calibrated in Newtons (where 9.81N = 1kgf)

134
Important Note: in the present generation of code, a calibration setting in lbf is strongly
recommended due to internally applied limits to protect the load cell from tension overload.
On standard, 10lbf tensioners, the range of allowable tension units is from 0 to 12 (the user
should only set up to 10lbs, the additional margin is for dynamic response) – if the device
sustains tension above 12units, it will error out and disable the unit (and put the winder in
Hold). Calibration in kgf would allow an overload condition and prevent the safety measure
from engaging. This is because the safety feature doesn’t apply until 12kg, which is beyond
the load cell’s range – it will saturate before reaching 12 units so the machine will never fault
out. A setting in Newtons would not allow full use of the available tension range, causing a
fault once the device reaches 12N (and also preventing the user from entering larger values).
This should be remedied in a later firmware release which will incorporate additional unit
information.

To calibrate the tensioner, the first step is to obtain a means of generating a calibrating force.
This can simply be a known weight. To improve accuracy, select a weight at the upper end of
the tensioner’s range (10lb. for standard machines). Begin at the spool end: fix the fiber by
tying it around the spool. Then thread the fiber through the tensioner rollers and load cell as
it would be routed during operation (it is important that the fiber enter and exit the roller on
the load-cell in the same manner as during operation because this will affect the measured
value). Finally, redirect the fiber path so that it becomes vertical. Depending on the layout of
the tensioning system, this might be possible by using rollers which are already part of the
system – such as rollers on other tensioners. The path should be kept as low-friction as
possible (e.g. use low-friction rollers, not a rounded bar to redirect the fiber path) to improve
calibration accuracy. Finally, affix the known weight to the end of the fiber. Note that the
procedure requires two readings – an unloaded and a loaded cell. The software provides
sufficient time and keystroke sequences for a single operator to load and unload the cell at
the appropriate times, although the procedure is easier with two operators.

The individual command sequences are covered in the table (see section 18.7). Command F5
initiates the calibration sequence. During the sequence, the operator is instructed to unload
the tensioner (remove the weight). The device will then take measurements and produce a
D0[#] calibration value (where # is the number of the tensioner being calibrated). The
operator is then instructed to load the tensioner (apply the weight) and another series of
measurements is carried out. This time the tensioner will display two additional calibration
values D1[#] and C[#]. The operator may record D0[#] and C[#] for later manual entry if
desired.

The new calibration values are put to immediate use once the machine is enabled (of course
this requires the operator to first remove the calibration equipment and rethread fiber for
normal use). These values are lost when the machine is shut down, which is useful if the
operator is concerned about their validity. To make the new calibration values permanent, a
save calibration command sequence is executed (K command), which records current
calibration settings on all tensioner units. The user can also enter previously recorded
calibration values manually using the E command (these would also need to be saved to
make them permanent).

135
Kp and Ki gain adjustment – The user can alter the gains to fine-tune the performance of
the tensioner. The proportional (Kp) and integral (Ki) controller gains are available. These
gains may be increased by trial and error to achieve a faster response. One approach is to
start with Kp and Ki set to zero. Then bring Kp up to achieve reasonable motion
performance, and finally increase Ki gradually (order of 0.01) until a satisfactory response is
obtained. Performance can be checked by doing an actual test wind. If either gain is set too
high, the system may become unstable and oscillate.

Pressing F3 will display the current values of Kp and Ki for each tensioner. These can be
used as a reference for tuning. Ki will affect the tension ramp-up time and Kp will affect the
instantaneous response of the tensioner. When increasing Ki to reduce the tension ramp-up
time, consider decreasing Kp first to avoid an unstable condition. As a rule, tuning a control
system requires patience and experience. Sometimes, when the range of tension values, fiber
type, or type of winding programs change, the controller gains may require adjustment as
well.

Tensioner fault levels – the tensioner software uses two methods to detect fiber breakage
and throw a fault:
- The first is a low-tension threshold. That means if the tension feedback from the
sensor stays below the set threshold value for longer than the adjustable time-out
interval, then it will error out. Note: this value is entered in seconds, but when the
operator saves the fault threshold settings, the software will display the time-out
interval in terms of sample counts. For example, if the sampling frequency is set to
1,000 Hz then a value of 500 would correspond to 0.5seconds. So once the computer
sees load-cell values below the threshold for more than 0.5 seconds, the given
tensioner would fault-out.
- The second method is the tension-drop criteria. This performs a sample-by-sample
evaluation of the load-cell checking for major, near-instantaneous changes in the
load, likely to signal a disruption in the fiber. This is set via a fixed factor. For
example, if the factor were 0.8, then if any sample were less than 80% of its
predecessor, the tensioner would fault-out. In practice, the low-frequency mechanical
characteristics of the system tend to limit the practicality of this method.

Increasing the low-tension threshold level, decreasing the time-out interval value, and
increasing the tension-drop factor all work towards faster and more frequent tensioner faults.
Decreasing the time-out interval value by itself can speed up how quickly the tensioner is
able to detect a break which can be quite valuable at limiting the amount of fiber take-up and
subsequent rethreading/clean-up.

18.5. Automated Operation with Omniwind


Connecting a tensioning system to an Omniwind control greatly enhances its capabilities.
Omniwind is able to both directly control tension settings on the tensioners, and to also
gather telemetry data from the tensioners and record these to a log file. Furthermore, tension
levels can also be directly incorporated into wind programs through use of Coordinator

136
software. For more information on these topics see section 17.10 on Omniwind and chapter
20 on Coordinator.

One important note: the tensioning control system is non-hierarchical – requests are
executed in sequence. For example, if a particular wind program sets tension levels on a
repeating basis and the operator manually sets different levels at the tensioner, those manual
levels will be used until the next time the wind-program triggers the condition and generates
a new request. When using wind-program based control (via Coordinator), the Omniwind
dialog box control (Figure 62) is disabled for any unit which is controlled in the wind
program. Control is always available via the tensioning computer/keypad.

18.6. Troubleshooting
Problem: The tensioner computer locks up.
Solution: This may be caused by corrupted control file settings (e.g. a zero for an error out
interval which generates a divide by zero exception). Contact McClean Anderson to resolve
this problem.

Problem: Violent motion


Solution: This may be caused by incorrect calibration settings which causes the tensioner to
misinterpret the sensor’s feed back signals. Another possibility is that the Kp and Ki gain
values are either too high or the files containing these values have become corrupted. Try to
recalibrate the tensioner(s) in question and/or adjust the gains. If these steps fail, please
contact McClean Anderson service.

Problem: Slow ramp-up speed to new tension setting


Solution: This may indicate that Ki is too small. Try decreasing Kp first and then increasing
Ki gradually.

Problem: Tensioner faults-out, a red light appears above its enable switch, Omniwind
behaves erratically
Solution: in general, this is a fairly normal occurrence due to the fiber spool running out. In
such a case, a new spool must be loaded (see instructions for this in section 18.3). Note that
in most tensioning systems, the fault condition is linked to Omniwind’s Hold pushbutton so
that when a fault occurs, the machine automatically stops. If the operator is unaware of this,
this can cause some confusion because Omniwind will no longer wind but many other
functions will continue to work.

If the fault is not caused by the end-of-spool condition, this may be a sign that the fiber break
sensing algorithms have overly sensitive settings. First, manually remove any slack in the
problem tow by rewinding the spool / motor (remembering the safety guidelines about first
putting the tensioner in EStop). Then restart the system & problem tow. If this is successful,
try to proceed with the wind at gradually higher speeds. If the problem resurfaces, consider
adjusting the tensioner fault levels and/or increasing the controller gains to improve
performance (see section 18.4 for more details on both).

Problem: Fiber has excessive vibration

137
Solution: In some cases, a particular wind and machine orientation may generate high fiber
acceleration rates which are challenging to track. As a first step, the operator may simply try
a higher tension. If that is unacceptable or does not improve the situation, the system may
require higher gain settings. See section 18.4 for more details.

138
18.7. Tensioner Command Table
Remember „ and … indicate shift key state („ for upper, “blue” keys, … - no display - for lower, “white” keys)
Key Function Steps Notes
µ Change current tensioner Press Up arrow key Lowers current tensioner number, stops at the first tensioner
¶ Change current tensioner Press Down arrow key Increases current tensioner number, stops at the last tensioner
F1 Set tension 1. Select motor (via µ,¶) Select motor via µ,¶ before pressing F1. See commands above and
2. Press F1 section 18.3.
3. Input tension value
F2 Display measured tension Press F2 The value will be displayed for 100 times in the format: “Motor #:
value Tension”
F3 Display gains Kp and Ki 1. Press F3
for each tensioner 2. Press…Enter to display values for each
tensioner in sequence
F4 Set gains Kp and Ki for 1. Press …Y to confirm Any input error will cancel the operation. New values take effect but
one tensioner 2. Input tensioner number are not saved to a file (see instructions for D below). * - When
3. Input Kp finished, if all individual tensioners are currently disabled, computer
4. Input Ki will ask if new gains should apply to all tensioners - enter …Y if this is
5. Press …Y to make setting global – see * desired.
F5 Do load-cell calibration 1. Turn off all tensioners Keep all tensioners off during calibration sequence. D0[#] and C are
for one tensioner 2. Press F5 calibration values. Record these for future reference if desired. During
3. Press …Y to confirm calibration the computer will sample the load cell 500 times for the
4. Press …Y again after prompt zero and the maximum force settings and average the results. The data
5. Input tensioner number will take affect immediately, but will not be stored unless a save
6. Remove any load from the tensioner command is executed (see instructions for K). If you feel the
7. Press …S calibration is incorrect, turn off the power for 5 minutes and then back
8. Record D0[#] value for future reference on. The control will revert to the last saved values. To manually enter
if desired (# is tensioner number) the load cell calibration values (D0[#] & C), see instructions for E.
9. Press any key
10. Apply a known force to the load-cell
(e.g. hanging a weight or pulling fiber with
a precision tension gauge)
11. Input known tension applied to be
calibrated
12. Press …S
13. Record C value for future reference if
desired
14. Press any key to complete sequence

139
Key Function Steps Notes
A Change Password 1. Press „A Passwords are always 4 characters. New password is permanently
2. Press …Y to confirm saved (i.e. no separate save sequence necessary).
3. Type in current password
4. Type in new password
5. Press …Y to confirm and save password
B Change basic control 1. Press „B Max sampling frequency is 1.5 KHz. We recommend 1KHz. This
settings for tensioner 2. Press …Y to confirm value does not need to be changed. If all inputs are valid, then the new
3. Input password settings will be saved to a file immediately. Tension ramping time is
4. Input sampling frequency used to pull the fiber tight at startup. Recommended value is 12
5. Input tension ramping up time seconds. Telemetry delay value determines how quickly F2 command
6. Input delay value for telemetry display displays load-cell readings. A value of 5000 is recommended. The
7. Press …Y to save changes to file larger the count, the longer the delay between measurement updates.
L Change error thresholds 1. Press „L These values are used to check for tensioner faults (e.g. fiber
for Fiber breakage 2. Press …Y to confirm breakage). If tension levels drop to less than the entered fraction of
3. Input tensioner number target settings for longer than the time-out interval, the tensioner will
4. Input time-out interval (in seconds) fault. * - When finished, if all individual tensioners are currently
5. Input low tension error threshold (% of disabled, computer will ask if values should apply to all tensioners -
set tension) enter …Y if this is desired.
6. Press …Y to make setting global – see *
M Save error thresholds for 1. Press „M The computer allows the user to verify each time-out delay and error
all tensioners 2. Press …Y to confirm threshold value before committing them. When displaying the time-out
3. Input password delay, the value is shown in sample intervals (i.e. 1000 = 1second at
4. Press …Enter to display values for each typical sampling frequency of 1kHz).
tensioner in sequence
5. Press …Y to save the values to file
D Save gain values for all 1. Press „D The computer allows the user to verify each Kp (proportional) and Ki
tensioners 2. Press …Y to confirm (integral) gain value before committing (or discarding) them.
3. Input password
4. Press …Enter to display values for each
tensioner in sequence
5. Press …Y to save the values to file
E Input calibration data for 1. Press „E See instructions on F5 above for information on calibrating the load-
one tensioner 2. Input tensioner number cells and generating appropriate calibration data. New values take
3. Input D0[#] value recorded for this effect immediately but are not saved to a file (see instructions for K).
tensioner
4. Input C value recorded for this tensioner

140
Key Function Steps Notes
K Save calibration data for 1. Press „K The computer allows the user to verify calibration values for each
all tensioners 2. Press …Y to confirm tensioner load cell before committing (or discarding) them. A
3. Enter password confirmation message is displayed upon sequence completion.
4. Press …Enter to scroll through
calibration data
5. Press …Y to save the values to file
U Set tension for all 1. Press „U (for Universal)
tensioners at once 2. Input tension value for all tensioners
( Input sample interval 1. Press ( Pdrop is evaluated against the current sampled tension value divided
tension drop for fiber 2. Press …Y to confirm by the previous sampled tension value and must be set between 0 and
breakage detection 3. Input tensioner number 1. So 0.5 will trigger a fault if the measured tension drops by 50%
4. Input tension drop percentage threshold between two samples. * - When finished, if all individual tensioners
(Pdrop) are currently disabled, computer will ask if values should apply to all
5. Press …Y to make setting global – see * tensioners - enter …Y if this is desired.
) Save Pdrop variables for 1. Press ) The computer allows the user to verify Pdrop values for each tensioner
all tensioners 2. Press …Y to confirm before committing (or discarding) them.
3. Enter password
4. Press …Enter to display values for each
tensioner in sequence
5. Press …Y to save the values to file
N Input start-up, fault 1. Press „N This timeout value applies when the tensioner is turned ON at the
evaluation delay value 2. Press …Y to confirm toggle switch. The low-tension fault check (see commands L and M) is
3. Input tensioner number not carried out over this initial delay to allow the tensioners to remove
4. Input delay value (seconds) any slack in the system. * - When finished, if all individual tensioners
5. Press …Y to make setting global – see * are currently disabled, computer will ask if values should apply to all
tensioners - enter …Y if this is desired.
O Save the error checking 1. Press „O The computer allows the user to verify Pdrop values for each tensioner
delay times 2. Press …Y to confirm before committing (or discarding) them.
3. Enter password
2. Press Enter to display values for each
tensioner in sequence
3. Press …Y to save the values to file
, Toggle Backlight of LCD Press “,” (comma key) Does not apply to VFD-type displays (Vacuum Fluorescent Display –
these have a bright, greenish-blue readout).

141
19. Digital Dr. Blade
Some McClean Anderson winders include an optional, Digital Dr. Blade (Figure 67). The
Digital Dr. Blade provides automated control of resin thickness on the surface of the resin-
bath drum. This allows the designer/operator to fine-tune fiber wet-out for different
conditions. Like the tensioners, the Dr. Blade can be controlled manually at its terminal,
through the Omniwind software, and also via the wind program itself using the Coordinator
package (see section 17.10 on Omniwind and chapter 20 on Coordinator).

Manual Dr. Blade operation is described in this chapter. One note: the terms “motor” and
“Dr. Blade” are used interchangeably to designate an individual unit within a Dr. Blade
control system – the Dr. Blade controller can operate multiple units at once.

Figure 67 – picture of a Dr. Blade unit. The motor and transmission are visible in the foreground
with the blade itself on the left side of the drum.

19.1. Basic Operation


Operation of the Dr. Blade unit is fairly straightforward (see Figure 68). The unit is
connected to a power source, and the main switch is set to ON or RUN (machine will only
move in RUN mode). The unit will display an initial prompt. At this point, the machine is
ready for automatic or manual operation (note: for automatic operation, be sure to start

142
Omniwind before turning the Dr. Blade on). Before proceeding with manual operation, a few
points on the command entry and the keypad.

Figure 68 – the Dr. Blade control panel and main switch

Keystrokes are denoted in this manual via Bold Arial writing. To correct a typing error, use
the Backspace key (note: the computer will ignore incorrect keystrokes). Press Enter to
accept an input. Press the Escape key to cancel data entry.

At this point, the operator can set value for the gap between the Dr. Blade wiper and the
drum of the resin bath. Note: the Dr. Blade uses inches for the gap opening unit and the
standard opening range is 0.001” – 0.065” (0.03 – 1.65 mm). To set the opening, use the
Increase motor # and Decrease motor # keys to select the target Dr. Blade (if only one
Dr. Blade is present, this step can be skipped). Next, press the Set opening key, and finally
input the opening value for the corresponding channel. The command is immediately carried
out.

Press the Telemetry key to start displaying the openings of all Dr. Blades in the system.

143
19.2. Dr. Blade Command List

Keys Function Steps Notes


Increase Change current Press Increase Motor # Stops at the final motor
Motor # Dr. Blade
Decrease Change current Press Decrease Motor # Stops at the first motor
Motor # Dr. Blade
Set Sets gap size of Press Set Opening Opening value is entered
Opening current Dr. Enter opening value in inches with valid
Blade values from 0.001” to
0.065”.
Telemetry Display current Press Display stops if another
openings for all Telemetry command key is pressed
Dr. Blades or unit receives an
opening command from
Omniwind
PID Setup Input Kp and 1. Press PID Setup Use F1 to display
Ki gains for all 2. Enter current password current values before
motors 3. Enter Kp then Ki for first making changes.
channel (display is “Kp[0]”
4. Repeat for remaining
channels
5. Press Enter to save
Change Change 1. Press Change Password The Password is always
Password password for 2. Input the current password four characters on the
password 3. If correct, input the new keypad except the Enter
protected password key.
functions 4. Press Enter to save change
Geometry Input geometry see note ´ For use by McClean
Setup data for Dr. Anderson service
Blade personnel.

19.3. Gain Adjustment


The operator can alter two controller gains affecting motion performance: the proportional
gain and integral gain. Increasing these generates a faster response. One approach is to start
with Kp and Ki set to zero. Then bring Kp up to achieve reasonable motion performance, and
finally increase Ki gradually (order of 0.01) until a satisfactory response is obtained. If either
gain is set too high, the system may become unstable and oscillate. As a rule, tuning a control
system requires patience and experience.

19.4. Automated Operation with Omniwind


Connecting a Dr. Blade unit to an Omniwind control greatly enhances its capabilities.
Omniwind is able to directly control blade gap settings and also gather and display telemetry

144
data and record these to a log file. Furthermore, gap levels can also be directly incorporated
into wind programs through use of Coordinator software. For more information on these
topics see section 17.10 on Omniwind and chapter 20 on Coordinator.

Important notes: the Dr. Blade system is non-hierarchical – requests are executed in
sequence. For example, if a particular wind program sets the gap opening on a regular basis
and the operator manually sets a different opening at the Dr. Blade computer, those manual
levels will be used until the next time the wind-program triggers the condition and generates
a new request. When using wind-program based control (via Coordinator), the Omniwind
dialog box control (Figure 61) is disabled for any unit which is controlled in the wind
program. Control is always available via the Dr. Blade computer/keypad.

Also, when controlling a Dr. Blade through Omniwind, the power-up sequence is important
to properly establish a communications link. The correct sequence is:
- begin with Dr. Blade off and winder off
- turn on winder
- log-on to Windows and start Omniwind software
- turn on Dr. Blade and set main switch to RUN

19.5. Trouble Shooting


Problem: Omniwind is unable to control Dr. Blade or receive telemetry data
Solution: see note above. If the Dr. Blade was turned on before Omniwind was started, it
may not properly establish communications. This may be a recoverable problem – try to turn
the Dr. Blade off and then on (to RUN) again. If this does not resolve the problem, recovery
is possible via a shut-down and start-up following the start-up sequence described in the note
above.

145
20. Coordinator Software
The Coordinator software package allows the user to generate supplemental winding files
which are automatically loaded into Omniwind and are used to automatically operate the
tensioning system and Dr. Blade while the machine is winding. The software is similar to the
Auxiliary Output module of Composite Designer (Chapter 16): both use a tree-like hierarchy
for programming and both generate additional files using the same filename with different
extensions. For Auxiliary outputs, .aux files are used; for Coordinator .ten and .bld files are
compiled output files for use with Omniwind, and .tre files are used store tree hierarchy
information for future editing.

Figure 69 – the Coordinator window – the top region does general setup and is used for creating
groups, the center region – “Program Tree” – shows the hierarchical main tree-list-box with various
levels of statements, and the bottom region is used for entering condition statements. In this
example, a group of 4 tensioner motors (1-4) has been defined and is set to have a default tension of
3lbs., an E-stop tension of 0lbs., and when the program is executing the second and third segments
a tension of 5lbs.

146
Coordinator is similar to typical Windows® software. To begin execution, double-click on its
icon (Figure 69 shows the Coordinator window). Once Coordinator is up and running, the
following steps describe Coordinator file generation:

1. Click on the type of hardware to be controlled (under “Program Type”:


either Dr. Blade or Tensioner)
2. Click on the measurement units (English or Metric)
3. Enter the default and error values for the first group of motors
4. Click on “Add New Group”
5. Click on the “+” next the DrBlade / Tensioner entry in the list box
6. Click on the newly created group which appeared after step 5
7. Add motors to the group via “Add motor ID to group” and “Add Motor ID
Range buttons”
8. Repeat steps 3-7 as required (step 5 is no longer needed)
9. Click on a group entry in tree-list-box for which a conditional statement
should be added
10. Enter the “Output value for current statement” – used when statement
evaluates true
11. Select logical operator for statement (OR / AND)
12. Click on “Add the Statement to Group” button
13. Click on the “+” next to the selected group to display the statement
14. Click on the newly added statement in tree-list-box
15. Select the first condition to be added to statement from the Condition
drop-down list-box.
16. Enter in range values over which condition should evaluate true
17. Click on “Add Condition To Statement”
18. Repeat steps 15-17 until statement is complete (click on “+” in front of
statement to view conditions)
19. Repeat steps 9 - 18 to add other statements to same or other groups
20. Click on “Save Program…” and give program same name as
corresponding motion file to which it should be joined (see note on
filenames on p. 149).

Going through the steps in more detail:

The first step in the process is to select the type of control file desired – either Tensioner or
Dr. Blade – by clicking on the appropriate device in the upper left corner of the screen. Only
one type of control can be edited at a time – each generates a unique file type of either .ten
for tensioner or .bld for Dr. Blade). The user then selects a measurement unit system – this
can only be changed before editing begins (although the unit system is not critical for the
tensioner – the selection only affects the units displayed on screen, actual tension is based on
the units used during tensioner calibration; the selection is important for the Dr. Blade).

System operation is controlled by dividing the tensioner or Dr. Blade system into motor
groups (i.e. groups of single tensioner motors/spools, single Dr. Blades/resin baths). Within a
group, all units have the same behavior. To create a group, first select the default and error

147
values for the group (i.e. default tension / opening, tension / opening during E-stop). Note: in
general, a winder E-stop does not shut down these independent controllers; their behavior can
be configured. With a tensioner, the user may wish to effectively turn off tension (set to 0 lb./
kg).

Next, the operator clicks on the “Add New Group” button. The computer prompts for a group
name – the user can replace the default name, if desired. The program then makes an upper
level entry called “DrBlade” or “Tensioner” in the Program Tree list-box in the center of the
window. A “+” appears to the left of this entry. To proceed, click on this “+” to expand the
listing and display the newly created group. Then click on the group itself. Next, motors are
added to the group: either individually by selecting a number and clicking on the “Add motor
ID to group” button; or as a block by typing the first and last motors to add and then clicking
on the “Add Motor ID Range” button. The group and its default behavior are now set up.

The next step is to add one or more statements to the group. A statement consists of an output
value, a logical operator, and a group of conditions. The selected motor group will assume
this output value if its group of conditions combined with either an AND or OR operator
evaluates to true•. To begin, click on the group for which a statement should be added, enter
the desired output value for the statement (i.e. gap size or tension), select the logical operator
to be used, and click on the “Add the Statement to Group” button. A new statement should
appear under the selected motor group in the list box.

To begin adding conditions, click on the newly added statement, then move to the
“Activating Condition” region at the bottom of the window. Here the user can select the
desired condition. The available data sources are similar to the auxiliary outputs except the
timers are unavailable (refer to page 96 for more detailed information on these individual
data sources). The measurements fall in the following groups:

Axis Position – allows the user to enter a position range for any available axis. When the
axis falls within this range, the condition evaluates to true. Note that axis position is based on
machine coordinates and reflects any clearances and offsets added.

Circuit / Segment Number – defines a range based on the current program execution point
(a range of circuits and/or segments). See note on page 96 for more information when using
this condition. One difference between Coordinator and Auxiliary output files: the final
circuit / segment is not included in the range (e.g. a range of circuits 2 to 4 would evaluate to
true whenever the software was executing circuit 2 or 3; for aux. output, it would evaluate
true for 2, 3, or 4).

Process Time – this is the real time (not scaled by current execution rate) that the machine
has been in motion executing a particular part program, excluding time spent on find-paths.

Axis Velocity – allows the user to enter a velocity range for any available axis. Actual
velocity (not scaled by execution rate) is used and value is polarity sensitive.


Omniwind evaluates Coordinator statements in the same sequence they appear on the screen, so if multiple
statements evaluate to true on the same motor, the last true one will determine the output value.

148
There are several important differences between Auxiliary Outputs and Coordinator based
control files:
- Auxiliary output programs execute on the motion card on every update cycle of the
card. They are low-latency (about 1ms). Coordinator files execute on the PC itself
under Windows and control of the machines is through an RS-232 port. Both of these
features add significant latency (100’s of ms). For the task at hand this is generally
not a significant issue. Note that if any other software or driver is installed which
affects Windows’ ability to schedule tasks (i.e. it significantly slows down computer
operation) or interferes with the serial ports, then this will have a direct affect on
operation of the tensioner and Dr. Blade.
- Because they don’t run on the motion card, Coordinator files do not require any of its
memory resources.
- The Coordinator tree structure is quite a bit more flexible than the Auxiliary Output
structure. A motor group can have many different statements, and each one is
executed independently and can use different logical operators.

Any line in the Program Tree window can also be deleted and this deletes all lower-level,
dependent lines as well.

When the user is satisfied with a particular control file, he/she can save this file. Both Dr.
Blade and Tensioner Coordinator files are saved with the extension .tre (for program tree).
These files cannot be directly executed on Omniwind. Instead, they are compiled. This
compilation takes place automatically when the file is saved and generates either a .ten file
for tensioner control, or a .bld file for Dr. Blade control.

The user can also load an existing .tre file for further editing. However, at present
Coordinator has limited editing capabilities. Since .tre files are text files, users familiar with
computer programming and file editing may find it easier to directly edit the .tre file in a text
editor such as Notepad™. Changing individual values is quite straightforward. When
finished, simply save the file with the .tre extension, load it into Coordinator, and resave it to
generate new .ten or .bld files.

Here is an example .tre file of the program shown in Figure 69 – it is virtually a copy
of the text shown in the “Program Tree” list box (the caption of that figure on p.146
further describes the program):

Tensioner(English Units)
G1,output{default(3.0000),error(0.0000)},motor{1,2,3,4}
S1,out(5.0000),OR
Segment Number,start(2.0000),end(4.0000)

One note on filenames: when Omniwind loads a file, it searches for files with the same name
and different extensions to operate the tensioner, Dr. Blade, and auxiliary outputs. If a
particular wind program is controlling both a Dr. Blade and a tensioning system, it will
require two files – one with the .bld extension and one with the .ten extension. Since

149
Coordinator does not combine tensioner and Dr. Blade programs into a single file and both
file types use .tre files to store program structure, the user will need to create different
filenames for the tensioner and Dr. Blade files. To operate these files on Omniwind, the
resulting .bld and/or .ten files will need to be renamed to match the name of the
corresponding motion file (e.g. “testmotion.mmt”, “testmotion.bld”, and “testmotion.ten”
would form a complete set of files).

150
A. Verifying Part Coverage and Pattern Closure
This appendix gives a brief mathematical overview on how to verify that a particular
program covers the mandrel and generates a closed pattern. In general, the winding software
takes care of these issues automatically. However, advanced users who directly edit the
motion table may use this as a reference when creating specialized winds.

For purposes of this manual, full part coverage implies a mandrel will be fully covered in
fiber, assuming that its pattern also closes. A closed pattern implies that the fiber is evenly
distributed around the mandrel (e.g. there are no filled in areas with large gaps between
them). Note that in reality, full coverage actually implies two layers of fiber at each location
– one running at the positive fiber angle and the other running at the negative one.

A quick estimate of the critical angle for coverage is the arccosine of the fiber bandwidth
multiplied by the number of circuits and divided by the circumference of the part.

For example, a 6 inch diameter part with a 1 inch bandwidth and 7 circuits for
coverage would yield 1 inch times 7 circuits divided by six and then divided by
pi resulting in 0.37136. The arccosine of this is 68.2 degrees – angles higher
than this would begin to overlap, lower angles would gap.

When using the software to generate a part, the process is somewhat reversed – the user
specifies diameter, bandwidth, and angle and the software establishes how many circuits are
required (note: the solution winds will have two different number of circuits – one rounding
up and one rounding down).

A similar method is useful for estimating wind angles for constant coverage on non-linear
winds. In this case, given some initial target angle (t) at a particular radius (r1), the
appropriate angle (b) at a different radius (r2) would be determined by taking the ratio of r1
over r2, dividing this by the cosine of t, and taking the arccosine of the result. If this is
impossible (trying to take an arc-cosine of a value greater than 1), the resulting angle is zero
and there will still be overlap. Note that in practical terms this is useful for parts with a
limited change in diameter – for very large differences, the resulting angles tend to vary to
such a degree that the resulting structural changes and fiber instability make this attempt at
constant coverage everywhere of limited use. Also note that obtaining constant coverage runs
counter to the goal of obtaining a stable fiber path (for constant coverage, as the diameter
grows, the fiber angle increases, while for a stable path, as the diameter grows the fiber angle
decreases).

To determine if a particular wind closes, the first step is to sum the angle column for a
circuit. The SUM() spreadsheet function works well for this (remember that the first delta
mandrel line of any particular segment belongs to the previous segment). The resulting
number should then be multiplied by the number of circuits. This should yield a whole
number which is divisible by 360 (the first test). This number should then be divided by 360
and then by the number of circuits. We are interested in the remainder (or modulus) of this
second division. To obtain the remainder, drop the whole number portion and multiply the

151
fraction by the number of circuits. We now need to compare this remainder with the number
of circuits. If these numbers have a common divisor (i.e. they both can be evenly divided by
the same number other than one), then the pattern will not properly close, otherwise it will. If
the remainder is zero, the pattern will also fail to close. The resulting wind pattern can be
determined by the modulus and the number of circuits. Unfortunately, a detailed description
of how to obtain the pattern type from this data is beyond the scope of this manual. As an
example:

A particular wind requires 789.6774292 degrees per circuit. The wind also
requires 31 circuits to complete. So, the first step is to multiply 789.677 by 31
giving 24480. Dividing by 360 gives 68 (evenly). 68 divided by 31 is
2.193548387. Subtracting 2 and then multiplying by 31 gives a modulus of 6,
so our two numbers are 6 and 31. The divisors of 6 are 2 and 3 while 31 in a
prime number. Since there are no common divisors, this wind pattern closes.
The pattern would generally be described as a 5 lead pattern (after 5 circuits,
the mandrel is located at 5*6/31, or 30/31, of a revolution from its start, or one
bandwidth before – leading – the initial band).

As an example of failure and correction:

A particular segment has 895 degrees of mandrel rotation and a target of 24


circuits to complete the pattern. The first step is to multiply 895 by 24 giving
21480. This is not divisible by 360 – the division result would be 59.6667.

The first correction is to add (or subtract) enough motion per circuit to attain a pattern
divisible by 360. If we take the division result and increase (or decrease) it to the next whole
number, and multiply this by 360, we obtain a target angle for the complete segment.
Dividing this by the number of circuits gives us the target rotation per circuit – the original
motion needs to be adjusted to this value. This could be obtained via scaling, direct insertion
of motion, etc.

In the example, we would try for 60 rotations or 21600 degrees. Dividing this
by 24 gives 900 degrees per circuit, or an additional 5 degrees of motion
required. Continuing with the evaluation, our complete wind is 21600. Dividing
by 360 gives 60 rotations. 60 divided by 24 is 2.5. Subtracting the 2 and
multiplying by 24 yields 12. Our critical numbers are 12 and 24. These
obviously have many common divisors (2, 3, 4, 6, and 12) so our wind pattern
would not complete (after 2 circuits, the pattern would overlap itself – we
would move the mandrel 1800 degrees and be back at the starting point).
Again, we need to increase (or decrease) the wind by enough degrees to
properly close.

To increase (or decrease) a wind by an appropriate amount, the increment (decrement) is 360
divided by the number of circuits.

152
In the example, the increment would be 360 divided by 24 or 15 degrees. We
could try for 885 or 915 degrees. Using 885 (closer to the starting value), we
would obtain a total mandrel motion of 885 times 24 or 21240. Divided by 360
yields 59. 59 divided by 24 yields 2.458333. Subtracting 2 then multiplying by
24 yields 11. 11 and 24 have no common divisors (had we added 15 degrees
per circuit, the result would have been 24 and 13 – which also closes – the
increment/decrement generally solves the problem). The resulting part would
have an 11-lag pattern.

These are the types of calculations done automatically in Composite Designer. However, if
the user is experimenting with sophisticated, direct editing of machine motion, then they
need to be aware of these concepts to assist with appropriate motion generation.

153

Вам также может понравиться