Patent Description:
One auto-indexing system is described in <CIT>. This system includes optical scanning, cleaning and inspecting tubes of a tube bundle in a heat exchanger. It involves use of a laser or LED optical scanner for scanning the surface of the tube sheet to locate the holes or locate holes from a predetermined map. Once the hole location is determined, the cleaner is positioned over the hole and the tube cleaned.

Another apparatus for a tube sheet indexer is disclosed in <CIT>. This indexer utilizes a pre-learned hole pattern to identify location of subsequent holes once a particular hole location is sensed. This is because tube sheet hole penetrations are typically spaced apart at known locations from each other in either or both an x direction or y location. However, in some circumstances a hole location may be plugged or capped. Hence not always are the hole locations accurate or precise for accurate positioning of a flexible lance drive. Furthermore, an interference sensor must be used in addition to displacement sensors in order to ascertain accurate hole locations.

In some cases a camera may be utilized to optically learn and map the tube sheet faceplate arrangement in advance. However, such optical sensors require an unobstructed view of the tube sheet face and therefore cannot be utilized while the apparatus is in use. Further, optical sensors are very sensitive to light and shadows which can significantly affect the reliability of such scanning in adverse lighting conditions. The tube sheet face may also be caked with built up carbon, bitumen or other materials and therefore must be cleansed of such substances prior to use of optical sensors. Hence the tube sheet must first be cleaned of debris and the mapping must be done prior to tube cleaning operations. What is needed, therefore, is a system that can accurately sense and position a flexible lance drive apparatus in registry with each of a plurality of unplugged tube sheet holes without need of camera or an optical sensor for hole location and without resort to referencing to a predetermined map.

Conventional high pressure waterblasting equipment and systems also require an operator to activate high pressure fluid dump valves to divert high pressure fluid safely in the event of an equipment malfunction. Such systems often include a "deadman" switch or foot operated lever that must be actuated to stop the high pressure pump and/or dump/divert high pressure fluid to atmosphere or to a suitable container. These switches typically must be continuously depressed or held in order to permit high pressure fluid to be directed through the lance hose to the object being cleaned. When an event occurs requiring diversion or dump of high pressure fluid, it may take a second or two for the operator to react and release such a switch. Furthermore, it takes a finite amount of time for high pressure fluid pressure to decrease to atmospheric pressure. During such reaction and decay time, the high pressure fluid may still cause damage in the event of an unexpected malfunction. Therefore, there is a need for a smart system that can sense such events and dump or divert high pressure fluid pressure quickly in order to reduce these delays as much as possible. <CIT> discloses a heat exchanger-tube cleaning apparatus positioning system controlled by image analysis according to the preamble of claim <NUM>.

<FIG> is a diagram of the major components of one autoindexing lance positioning apparatus in accordance with an exemplary embodiment of the present disclosure. The autoindexing lance positioning apparatus <NUM> includes a lance hose tractor drive <NUM>, an x-y drive positioner frame <NUM>, a flexible lance guide tube assembly <NUM>, an electrical controller or control box <NUM> and an air-electric interface box known as a "tumble box" <NUM> connected together as described below. The lance hose tractor drive <NUM> is fastened to a vertical positioner rail <NUM> of the x-y positioner frame <NUM>. This x-y positioner frame <NUM> has an air motor <NUM> that horizontally moves the vertical positioner rail <NUM> on a horizontal upper rail <NUM>. The x-y positioner frame <NUM> also includes another air motor <NUM> that moves a carrier, or trolley <NUM> mounted on the vertical rail <NUM> of the x-y positioner frame <NUM>. This trolley <NUM> supports the drive <NUM> and a guide assembly <NUM> for movement vertically on the rail <NUM>.

The lance hose drive <NUM> and the guide assembly <NUM> are separately shown in <FIG>. The lance hose drive <NUM> may be configured to drive any number of flexible lances <NUM>, each comprising a lance hose <NUM> coupled to a nozzle <NUM>. The drive <NUM> may be a one, two, or three lance drive such as a ProDrive, an ABX2L or ABX3L available from StoneAge Inc. One example, an ABX3L, is described and shown here. The guide assembly <NUM> includes, in this exemplary embodiment <NUM>, a set of three guide tubes <NUM> adjustably fastened to a bracket <NUM> fastened to the trolley <NUM> along with a sensor amplifier block <NUM> beneath the tubes <NUM> and fastened to the bracket <NUM>. The tractor drive <NUM> is fastened to the bracket <NUM> via a hose stop collet or crimp encoder block <NUM> fastened to a rear end of the set of three guide tubes <NUM>.

Each of the guide tubes <NUM> is an elongated cylindrical tube, preferably made of a metal, such as stainless steel, aluminum, brass, a durable plastic, or other rigid material with a high electrical resistivity. An AC pulse sensor <NUM> in accordance with the present disclosure is mounted at the distal end of each guide tube <NUM>. An enlarged distal end of the tractor drive <NUM> and guide assembly <NUM> is shown in <FIG>, showing the component arrangement of the AC pulse sensor <NUM>. The distal end <NUM> of each tube <NUM> is fitted with a radial flange <NUM> having set of eight cup shaped receive coil locating cups <NUM> formed therein and arranged around the flange <NUM> with four cups <NUM> at cardinal positions (N, S, E, W) and four equidistantly spaced intermediate positions, thus each being <NUM> degrees displaced from each other around the distal end <NUM> of the tube <NUM>. For a tube inside diameter of <NUM> inch, for example, the inside diameter of each of the cups <NUM> is about. <NUM> inch or smaller.

Each of the cups <NUM> carries therein a receive coil <NUM>. Alternatively, the receive coils <NUM> may each be wrapped around a locating pin on the flange <NUM> rather than being disposed in a cup <NUM> as shown. A transmit coil <NUM> is wound around the distal end of each tube <NUM> and adjacent the receive coil cups <NUM> such that the transmit coil <NUM> and receive coils <NUM> are closely coupled. One embodiment of each guide tube <NUM> may have a ceramic portion that interfaces with the metal of the guide tube <NUM> toward the distal end of the guide tube. This non-interfering ceramic portion distances the transmit coil <NUM> from the metal of the guide tube <NUM>.

A simplified drawing of the coil arrangement is shown in <FIG>. A <NUM> AC pulse injected sensor array based around a single transmit coil <NUM> and multiple receive coils <NUM> is used in this exemplary embodiment. The transmit coil <NUM> is fed with an AC current pulse such that it generates a magnetic field <NUM> around it (shown in <FIG>). When this pulse is removed, the magnetic field <NUM> collapses. When field <NUM> collapses, eddy currents are formed in any conductive material in the volume of the produced magnetic field <NUM>. These eddy currents cause a magnetic field of a reverse polarity to be generated in the receive coils which creates a voltage differential therein, generating a current, which is sent via wire to the sensor amplifier block <NUM>. The transmit coils <NUM> are large so as to create eddy currents in poorly conductive materials in a volume that is proportional to the size of the guide tube <NUM>. The receive coils <NUM> are much smaller than the transmit coil and are placed so as to detect only the eddy currents directly in front of them. The circular array of receive coils thereby creates a magnetic flux density image based on the array arrangement of receive coils <NUM>.

The receive coils <NUM> are placed in specific balancing zones of the transmit coil's magnetic field. These zones are selected such that no induced voltage is generated in the receive coils <NUM> if no other conductive material or magnetic fields are in the proximity of the sensor head <NUM>. The coils <NUM> can be tilted to increase sensitivity to eddy currents in specific locations of the sensed volume as shown in <FIG>. In the left view, the receive coils <NUM> are arranged parallel to the axis of the transmit coil. In the middle view in <FIG>, the receive coils are arranged tilted inward toward the axis through the transmit coil <NUM>. This arrangement increases center resolution of the receive coil array. This allows the sensor array to be able to detect with resolution what is in front of the tube <NUM> at the end <NUM> of the guide tube <NUM> as well as baffles and obstructions perpendicular to the face of the transmit coil <NUM>. The right view in <FIG> shows the receive coils tilted out away from the centerline of the transmit coil. In this arrangement, the receive coils <NUM> are tilted off the plane of the transmit coil. This increases resolution in areas not directly in front of the transmit coil <NUM>.

An exemplary embodiment of one receive coil <NUM> arrangement is illustrated in <FIG>. Eight receive coils <NUM> are positioned around the end of the guide tube <NUM>. As described above, the receive coils may be disposed within cups <NUM>, as shown in <FIG>, or each may be wrapped around a locating pin on the flange <NUM>.

In an alternative embodiment, the receive coils <NUM> may be printed on one or more printed circuit boards (PCBs) <NUM>. The PCBs <NUM> containing the receive coils <NUM> are attached to the distal end of the guide tube <NUM> adjacent the transmit coil <NUM>. The use of PCBs <NUM> allows for a variety of receive coil <NUM> shapes and lengths to be manufactured. The PCB <NUM> also provides mechanical stability to the potentially fragile receive coils <NUM>.

Various exemplary embodiments of receive coils <NUM> on PCBs <NUM> are shown in <FIG>. <FIG> illustrates four receive coils <NUM> each configured in an essentially flat spiral shape. <FIG> illustrates four receive coils <NUM> printed as curved lines. <FIG> illustrates four receive coils <NUM> each printed in a plane to form zig-zag lines with an overall trapezoidal shape. <FIG> illustrates four receive coils <NUM> each printed in a plane as zig-zag lines to form an overall rectangular shape. The receive coils <NUM> may also be printed in multiple layers within the PCB and can be printed in many additional shapes, and any number of receive coils <NUM> may be used. Preferably each receive coil <NUM> has a corresponding opposite receive coil <NUM> located across the from it on the PCB <NUM> (e.g. North-South and East-West positions). In preferred embodiments, four or eight receive coils <NUM> are used on a PCB mounted in a plane around the distal end of each guide tube <NUM>.

The magnetic field <NUM> generated by the transmit coils <NUM> wrapped around the distal end of the tube <NUM> is illustrated in <FIG>. The eddy currents formed in the receive coils <NUM> by the lines of flux generated by the single transmit coil <NUM> are conducted by a pair of wires (not shown) through a protective channel or sleeve <NUM> alongside and fastened to an underside of the tube <NUM> to an analog signal processor circuit within the sensor amplifier block <NUM> mounted on the bracket <NUM> beneath the tubes <NUM>. Preferably the type of object sensed by the sensor array <NUM> is identified and categorized by the analog signal processor circuit within the amplifier block <NUM>, and thence sent to the electric control box <NUM> for subsequent signal processing and use as described more fully below with reference to <FIG> and the process flow diagrams of <FIG>.

Referring now to <FIG>, an enlarged view of the rear end of the guide assembly <NUM> and front end of the tractor drive <NUM> is shown with the internal components of the hose stop or crimp collet block <NUM> visible. The collet block <NUM> includes three transducers <NUM> that each sense the presence of a hose clamp or crimp (not shown) fastened to a lance hose (not shown) adjacent its nozzle. This hose crimp is clamped tightly to the lance hose near the distal end of the lance hose and physically interferes with hose passage through the collet opening within the collet block <NUM> so as to prevent withdrawal of the high pressure hose back through the drive <NUM>. These crimps and closely sized collets in the collet block <NUM> act as a safety measure to prevent inadvertent withdrawal of the lance hose.

The transducers <NUM> preferably magnetically sense presence of a crimp and send a control signal therefore to control circuitry for the lance drive <NUM> to de-energize the "retract" lance drive motors when a crimp is sensed. In addition, the transducer <NUM> signal indicates full withdrawal of a lance hose and therefore its signal can be used to zero out hose position of the lance hose as determined by the hose travel transducers further described below. Furthermore, in these multi-lance systems, these transducers <NUM> may be used together to synchronize lance position. The lance tractor drive <NUM> may be driven until all lance footballs (indicating full lance insertion) or crimps (indicating full lance withdraw from the heat exchanger) are detected.

Turning now to <FIG>, a rear perspective view of the lance hose drive <NUM> is shown with the outer surface transparent and internal components of the rear collet block assembly <NUM> visible. In the embodiment of the hose drive <NUM> shown, there are three stop collet football transducers <NUM> located in this rear collet block assembly <NUM>. Each of these transducers <NUM> sense the presence of a hose stop football, again a C shaped fitting fastened tightly to a lance hose and positioned on the hose to indicate maximum travel of the lance hose through the drive <NUM> when the stop football abuts against or is in close proximity to the transducer <NUM>. Each of these transducers <NUM> preferably includes a magnetic switch operable to close when the football contacts the transducer <NUM>. This switch then sends a signal to control circuitry that can be utilized to de-energize the lance drive <NUM> and or automatically reverse the lance drive <NUM> as may be needed. The rear stop collet assembly <NUM> also has three hose travel transducer sets. In this exemplary embodiment these transducers are friction wheel sensors <NUM> for indicating incremental passage of a lance hose through the collet assembly <NUM>.

<FIG> is a separate enlarged view of one of these friction wheel sensors <NUM>. Each sensor <NUM> includes a friction wheel <NUM> that engages a lance hose <NUM> and rolls along the hose <NUM> as it is fed into, through and out of the lance drive <NUM> and through one of the guide tubes <NUM>. This wheel <NUM> has a pair of transducers <NUM> and <NUM> that count angular rotation of the wheel <NUM> and hence are representative of the distance of hose travel into and out of the drive <NUM>. These transducers <NUM> and <NUM> send signals proportional to hose drive distance traveled to the electrical control box <NUM> for further processing. The sensors <NUM> may be Hall effect sensors and the wheel <NUM> may be outfitted with a plurality of magnets such that rotation of the wheel <NUM> with passage of the magnets by the sensor <NUM> generates a current signal which is converted to a hose distance travel. The hose travel distance determined thereby is transmitted to the control box <NUM>. In this manner, the tractor drive <NUM> is a smart tractor, providing distance traveled information for each lance. Furthermore, the transducers <NUM> in concert with the sensors <NUM> can be used to repetitively count and track lance insertions. This lance position information may also be utilized in conjunction with expected lance travel information determined from a sensor located on the lance drive motor to automatically apply lance reversals, called "autostroke" to "peck" away at internal tube obstructions. Such autostroke functionality is disclosed in greater detail below with reference to <FIG>.

All of the components that are mounted on the positioner frame <NUM> including the air motors, <NUM>, <NUM>, the sensor head <NUM> and guide assembly <NUM>, and the lance hose drive tractor <NUM> may be subjected to environmental conditions which could include flammable gases as well as copious amounts of water. Hence any electrical currents present in the various sensors must be minimized and must be in an air and water tight containment.

Electrical power may not be readily available at a location where the apparatus of this disclosure is needed. Compressed air is much more available many in industrial settings and is acceptable to users. Compressed air is also intrinsically safe to use. It is therefore a part of the design of the present apparatus <NUM> in accordance with the present disclosure that a tumble box <NUM> be included, which provides a pneumatic electrical generator to supply needed electrical voltage to components typically at no more than 12V. Thus the only external power required by the apparatus <NUM> in accordance with the present disclosure is a supply of <NUM> psi air pressure. All electrical wiring and circuitry is hermetically sealed or contained in waterproof and airtight sealed housings.

The tumble box <NUM> takes pneumatic pressure and converts it to electrical power for all the sensors, and electrical controls of the apparatus <NUM>. The tumble box <NUM> includes a sealed pneumatic to electrical power generator as well as all the operational air control valves for selectively supplying air pressure to air motors <NUM>, <NUM>, and to the forward and reverse air motors within the tractor drive <NUM>, as well as emergency high pressure water dump valve control and other pneumatic functions.

The tumble box <NUM> also self generates electrical power for the control circuitry located in the electric control box <NUM> for overall operation of the apparatus <NUM> and automated process software. The tumble box <NUM> and electric control box <NUM> are typically located out away from the area of high pressure, such as <NUM>-<NUM> feet from the components <NUM>, <NUM> and <NUM>. For example, the tumble box <NUM> may be <NUM>-<NUM> feet from the X-Y positioner frame <NUM> and the control box <NUM> another <NUM>-<NUM> feet from the tumble box <NUM>. Furthermore, this arrangement permits an operator to optionally utilize a remote control console such as a joystick control board or panel that communicates with the electric control box <NUM> via a wireless signal such as a Bluetooth signal, for example, permitting the operator to even further remove himself or herself from the vicinity of the heat exchange tube sheet area.

Referring back now to <FIG>, a simplified electrical schematic of the apparatus <NUM> is shown. The lance drive tractor <NUM> carries front collet block <NUM> which includes three hose stop or crimp encoders <NUM>. The tractor <NUM> also carries the rear encoder block <NUM> which has three hose stop encoders <NUM> along with lance hose position sensors <NUM> and <NUM> for tracking the distance traveled by the lances as they are driven by the tractor <NUM> into and out of tubes being cleaned. The tractor drive <NUM> also feeds the sensor head <NUM> position signals from the sensor amplifier block <NUM> through the tumble box <NUM> to the control box <NUM>.

The electric control box <NUM> signals and controls the air valves in the tumble box <NUM> to provide pneumatic power to the vertical drive air motor <NUM> and horizontal drive motor <NUM>. In turn, each of these pneumatic drive motors <NUM> and <NUM> has a pair of position encoders that feed through the tumble box <NUM> to the control circuitry in the control box <NUM> to provide x and y coordinate position data to the control circuitry. Each of the sensor amplifier block <NUM>, the front hose stop collet block <NUM> and rear hose stop block <NUM>, the tumble box <NUM> and the x-y positioner drives <NUM> and <NUM> has an internal master control unit (MCU) for processing signals needed to communicate position information to the software resident in the control box <NUM>. Furthermore, the control box <NUM> contains a database and memory for a position monitor/map of the tube sheet to which the apparatus <NUM> is attached.

<FIG> shows a plan view of an exemplary tube sheet <NUM>, with an array of tube penetrations or holes <NUM> indicated by clear circles. Initially the apparatus <NUM> is positioned via the x-y positioner frame <NUM> over an approximately central position on the tube sheet <NUM> with the sensors <NUM> spaced from the face of the tube sheet <NUM> by a distance less than about <NUM> inch, preferably about. <NUM> inch. As the apparatus <NUM> moves the lance drive <NUM> over the surface of the tube sheet <NUM>, the sensors <NUM> operate to sense one of four defined types of objects. A hole <NUM> is defined as a gap in the measured surface corresponding to a tube which needs to be cleaned. An exemplary obstacle <NUM> is a protrusion from the surface that needs to be avoided. A plug <NUM> is an anomaly in the composition of the surface which must be passed over. An edge <NUM> is the point on the surface beyond which further measurement need not be taken. Typically this means the outer margin or edge of the tube sheet <NUM>.

The detection system utilizing sensors <NUM> traverses the tube sheet <NUM> until an "event" is detected by an abrupt change in eddy current sensed by the receive coils <NUM>. Then an algorithm determines whether the event detected is an object and categorizes it as a hole, an obstacle, a plug or an edge, or undefined. This detection system utilizes two pairs of receive coil sensors <NUM>, each aligned on the x and y axis respectively of the tube sheet <NUM>. Thus, an Rx N and Rx S receive coils <NUM> are analyzed as the Rx Y axis pair. An Rx E and Rx W receive coils <NUM> are analyzed as the Rx X axis pair. The Rx X and Rx Y pairs send a signal to the sensor amplifier and processor. When the signal processed indicates the presence of an object event by either of the pairs, the event is categorized as one of a Hole, Plug, Edge, or Obstacle or Undefined (like an obstacle, i.e. to be avoided).

This identification and classification is similar for the intermediate sensors <NUM>. Thus, the Rx NW and Rx SE sensor coils are analyzed as the Rx NW pair. The Rx NE and Rx SW sensor coils are analyzed as the Rx NE pair. Whenever an event is indicated, the coordinates of the event location queried to ascertain the object, and the coordinates are then stored in a digital Position Map for later use.

This analysis may include comparing the waveform of the sensor pair to identify the waveform as representative of one of the four types of objects defined above. For example, if the waveform represents a hole, the position monitor is appropriately updated. If the waveform is identified as an obstacle, a further inquiry is made whether the obstacle is of a known type and, if so, categorized accordingly. On the other hand, if the waveform is of unknown type, the user is prompted to identify, such as raised edge, raised plug, barrier, etc. and the position monitor map updated accordingly.

In <FIG>, a plan view of an exemplary tube sheet <NUM> is shown. A Plug <NUM> is shown as a black circle. An obstacle <NUM> is shown as a square. An edge <NUM> is shown as the perimeter of the tube sheet <NUM>. The pitch of the tube spacing is the horizontal distance between adjacent tubes. The height "h" is the vertical separation of the rows of holes <NUM>. This information is detected, stored and built up in the Position Map database "on the fly" through the processes described below with reference to <FIG>.

<FIG> is a process diagram showing the user input required to begin the autoindexing process utilizing the apparatus <NUM>.

The program begins in operation <NUM> where the user turns the system on. Control transfers to Display message block <NUM> which shows the user the instruction to position the guide tube assembly in a central location over the tube sheet <NUM> and centered over a hole <NUM> (or series of <NUM> holes) and press enter. Control then transfers to Start operation <NUM>. The user is then asked to confirm the lances are fully retracted in operation <NUM>. If the lances are fully retracted their position will be sensed by the transducers <NUM> sensing the footballs of all three lances indicating full retraction of the lance hoses. If so, query is then asked of the user in operation <NUM> whether to proceed. If so, in operation <NUM>, the Position Map is then initialized with the apparatus <NUM> given or set at the present location and this location is initialized as location c (<NUM>,<NUM>). Control then passes to The Initial Hole Jog sequence <NUM> shown in <FIG>. Then the overall process proceeds to the Clean Tubes sequence <NUM> shown in <FIG>.

The overall High Level operation sequence shown in <FIG> includes, in sequence, establishing Initial position sequence <NUM>, Clean tubes sequence <NUM>, and Find Tubes sequence <NUM>. <FIG> also illustrates the content of the Position Monitor database.

Referring now to <FIG>, the initial jog sequence <NUM> begins in operation <NUM>. Control then invokes the Identify Object sequence <NUM>. This sequence is performed until control returns to operation <NUM>. Control then passes to operation <NUM> which queries the position Monitor for objects. Assuming no object is found at the starting position (<NUM>,<NUM>), control then transfers to concurrent-move left and up operation <NUM>. This operation <NUM> directs a jog left and up command sent to air motors <NUM> and <NUM> to incrementally move the lance drive <NUM> a predetermined distance in the -x and +y direction. Control then transfers to operation <NUM>, in which the Position Monitor database is again queried for whether a Hole or an Obstacle is identified in the database based on the new position of the lance drive <NUM>. If a hole is identified, control transfers to operation <NUM> where the position monitor database is updated. On the other hand, if in operation <NUM> the object is an obstacle, control transfers to the user via a prompt <NUM> to move around the obstacle. Upon completion of the move around obstacle the Position Monitor database is again queried in operation <NUM> whether the new position is a hole or an obstacle. If a hole, control passes to operation <NUM>. If not, it is an obstacle and control passes back to the manual jog around obstacle operation <NUM>. Once the position monitor database is updated in operation <NUM>, control passes through the Identify object sequence <NUM> to an end operation <NUM>. At this point an initial hole has been identified. Control then passes to the Clean Tubes sequence shown in <FIG>.

The Clean Tubes sequence <NUM> begins in operation <NUM> where the lance drive <NUM> feeds three lances into the tubes to be cleaned until the hose stops are detected by the rear football transducers <NUM>. Control then transfers to query operation <NUM> which asks whether all lances are through the tubes <NUM> such that all rear football transducers <NUM> indicate receipt of a football. If not, lance drive <NUM> continues to feed lances until all transducers <NUM> sense football presence. Control then transfers to operation <NUM>. In operation <NUM>, the lance drive <NUM> reverses direction and feeds the lances out. Control transfers to query operation <NUM> which asks whether all transducers <NUM> indicate the presence of a football or hose crimp. If so, control transfers to stop tractor operation <NUM>. If not, lance drive <NUM> continues to feed the lances out until all hose footballs are sensed by transducers <NUM>. Control then transfers to operation <NUM> where the position monitor is updated to indicate the tubes cleaned. Control then transfers to return or end operation <NUM>. Control then returns to the high level operations shown in <FIG>.

Once the first set of <NUM> tubes are cleaned in sequence <NUM>, control transfers to Find Tubes sequence <NUM> shown in <FIG>. Find Tubes sequence <NUM> begins with Jog Sequence <NUM> shown in <FIG>. Jog Sequence <NUM> begins with an Identify Object sequence <NUM> shown in <FIG>. If the Identify Object routine is not required, control moves to query operation <NUM> which asks the Position Monitor whether there are any unexplored directions (up, down, right, or left). Assuming the answer is yes, control transfers to query <NUM> which asks whether a move left is available. If yes, control transfers to operation <NUM> and a signal is sent to the air motor <NUM> to jog the drive <NUM> left.

If a move left operation is not available control transfers to query operation <NUM> which asks whether a move right is available. If yes, control transfers to operation <NUM> in which a signal is sent to the air motor <NUM> to jog the drive <NUM> right. If the answer in operation <NUM> is no, control transfers to query operation <NUM> which asks if a move up available. If yes, control transfers to operation <NUM> in which a signal is sent to the air motor <NUM> to jog the drive <NUM> up.

If the answer in query operation <NUM> is no, control transfers to query operation <NUM> which asks whether a move down is available. If the answer is yes, control transfers to operation <NUM> in which a signal is sent to the air motor <NUM> to jog the drive <NUM> down.

If the answer in query operation <NUM> is no, control transfers to operation <NUM> which logs that no moves are available. Control then transfers to query <NUM> which then asks the user whether the jog sequence operation is complete, and, if so, updates the position monitor log in process operation <NUM>. If the query <NUM> answer is no, control transfers to query operation <NUM>. The user has ultimate control such that if system cannot find tubes, and the user confirms that there are none then the auto-indexing operations stop, reverting to manual control.

Once a jog operation is complete in one of operations <NUM>, <NUM>, <NUM> or <NUM>, control transfers to a query process operation <NUM>, <NUM>, <NUM> or <NUM> respectively where, in each case, the Position Monitor database is queried whether the location just jogged to is either a previously identified hole or whether the location is an obstacle. If the answer is an obstacle, control transfers to query operation <NUM>. If the answer is a hole, control transfers to operation <NUM> where the position monitor database is updated. Control then transfers from operation <NUM> to end the Identify Object process <NUM>.

In query operation <NUM>, the question is asked whether the location is a new or known obstacle. If the answer is a known obstacle, control transfers to query operation <NUM> which asks the position monitor whether the obstacle may be automatically jogged around. If yes, control transfers to auto-jog operation <NUM> where either the air motor <NUM> or <NUM> is instructed to move a predetermined distance to move past the known area. Control then transfers to operation <NUM> where the position monitor is again queried for either a hole or obstacle identified at the new location. If the answer is a hole, control transfers to operation <NUM>. If the answer in operation <NUM> is an obstacle, control transfers back to query operation <NUM>. Once the position monitor is updated in operation <NUM>, control passes to the end Identify Object process <NUM>.

If the answer in query operation <NUM> is that the obstacle is new, control transfers to operation <NUM> where the user is prompted for a manual jog around the obstacle. When a manual Jog is completed, control transfers to operation <NUM> which queries the position monitor for that new position, whether the new position is a hole or obstacle. If the position monitor indicates a hole, control again passes to operation <NUM> where the position monitor is updated. If the position monitor indicates an obstacle, control passes back to query operation <NUM>.

The process <NUM> is shown in <FIG>. This process <NUM> begins in operation <NUM>. Control then transfers to operation <NUM> where the analog output of the position sensors <NUM> is processed. Control then transfers to a wave form ID algorithm in operation <NUM>. This wave form ID algorithm analyzes the analog output to categorize the signal from the sensors <NUM> into one of two types, either a hole is indicated or an obstacle. Control then transfers to query operation <NUM> which asks what is the object type. If the output is determined to be a hole, control transfers to process operation <NUM> which in turn directs an update of the position monitor for the location coordinates in operation <NUM>. If the output waveform is determined to be an obstacle in operation <NUM>, control transfers to query operation <NUM> which asks whether the obstacle is new or known. If new, the control transfers to operation <NUM> where the user is prompted to identify the obstacle. Control transfers to operation <NUM> where the user examines the waveform signal to classify the waveform signal and selects from a predetermined list of obstacles such as either an Edge, a Raised Edge, a Plug, or a Raised Plug obstacle. In order to conform the results of the waveform processing, and aid in the learning of what signal results equate to what type of obstacle is experienced in each instance, the user then inputs the result and control passes to operation <NUM> where the position monitor database for the location coordinates is updated with the type of object, i.e. hole, Edge, Raised Edge, Plug or Raised Plug. Control then returns in End operation <NUM> to whatever process called the Identify Object process <NUM>.

On the other hand, if the answer in query operation <NUM> is that the obstacle type is classified as known on query <NUM>, control transfers to operation <NUM> where the obstacle type is recognized. Control then transfers to operation <NUM> where the position monitor database is updated with the recognized type. Control then passes to End operation <NUM>. Control then passes back to whatever process called the Identify Object process <NUM>.

When the initial set of three holes have been cleaned in process <NUM>, control transfers to Find Tubes process <NUM>, which is shown in <FIG>. This process begins in operation <NUM> which invokes jog operational sequence <NUM> shown in <FIG> and described above. Upon completion of Jog sequence <NUM>, control returns to query operation <NUM> which asks whether the number of available hoes located equals the number of lances. In the illustrated embodiment shown in <FIG>, this is three. If yes, control transfers to the Center on Holes process <NUM>. From there, control transfers to update the position monitor in operation <NUM>. Once the position monitor is updated, the process control returns to the calling control sequence. On the other hand, if the query operation <NUM> answer is no, control transfers to operation <NUM> to determine whether the position monitor database recognizes that a tube sheet edge <NUM> has been reached. If no, control returns to jog sequence <NUM>. If the answer in operation <NUM> is yes, an edge has been recognized, then control transfers to operation <NUM> where the position monitor database is queried whether all holes in the current row have been cleaned. If the answer in operation <NUM> is yes, then the position monitor is updated in operation <NUM>, and the process control ends, with control returning to whichever process called sequence <NUM>.

On the other hand, if the answer in operation <NUM> is no, not all the holes in the current row have been cleaned according to the position monitor database, control transfers to the Reverse Jog Row sequence <NUM> shown in <FIG>. This Reverse Jog Row sequence <NUM> is needed to finish cleaning a row where there is an incomplete set of three holes available. The process sequence <NUM> begins in operation <NUM> which calls operation sequence Identify Object sequence <NUM>. When the Identify Object sequence <NUM> is completed, control transfers to operation <NUM>. Operation <NUM> queries the Position Monitor database for the coordinates of the last tube position cleaned and the direction of motion required. Control then transfers to operation <NUM> wherein either the air motor <NUM> or air motor <NUM>, or both, is instructed to move in the opposite direction to the move direction identified in operation <NUM>. Control then transfers to query operation <NUM> where the Position Monitor is asked whether that last position was or was not a Hole. If not a hole, control transfers back to operation <NUM> for another jog in the reverse direction to that determined in operation <NUM>. If in query operation <NUM> the position Monitor database indicates that the current position is a previously identified hole, control transfers to query operation <NUM>. Query operation <NUM> asks whether the now available holes equals the number of active lances. If the answer is yes, control transfers to operation <NUM> where the position Monitor database is updated. Control then passes back to the Identify Object process <NUM> and thence returns to operation sequence <NUM> and the set of holes available is cleaned. In this instance, one or two holes would be cleaned twice such that the entire row is now clean. Control then passes to the Find Tubes operational sequence <NUM>.

The Center on Holes sequence <NUM> is shown in <FIG>. This sequence is invoked whenever a hole is initially located in the Jog Sequence <NUM> in order to precisely position the lance drive <NUM> and three hose guide tubes <NUM> directly over the tube set of <NUM>. This sequence begins in operation <NUM> where the analog position input: N, S, E, W, receive coil signals are retrieved from the sensor amplifier block <NUM>. The pairs of signals are separated. The NorthSouth signal pair is then compared in query operation <NUM>. If the signals are equal, then control transfers to operation <NUM>. The EastWest signal pair signals are compared in operation <NUM>. If the signals from the EastWest pair are equal, control also passes to operation <NUM>. However, if the NorthSouth pair signals differ, operation transfers to operation <NUM> where a difference jog signal is sent to the air motor <NUM> to vertically move the positioner <NUM> by the difference between the two NorthSouth signals. Similarly, if the EastWest pair signals differ as determined in operation <NUM>, a difference jog signal is determined in operation <NUM> and is sent to the air motor <NUM> to adjust position by the difference between the signals. Control then reverts back to query operations <NUM> and <NUM> until the signals are equal. Control then transfers to operation <NUM> where each other pair of receive coil signals (NW/SE, NE/SW) are processed in a similar manner until adjustment is no longer needed, i.e. all are equal. Control then transfers to operation <NUM> where the position monitor database is updated with the precise coordinates for the identified hole. Control then reverts in end operation <NUM> to return to whatever process called the Center on Holes process <NUM>.

In the process flow diagram descriptions described above, an error sequence is not included. However, if a non-standard event is encountered, for instance, there are timeout defaults. If a football fell off or a sensor failed, the control system would stop driving after a predetermined time and notify the user of an error state for manual intervention. In the event of a position sensor failure, for example, the drive <NUM> would continue to drive for <NUM> more seconds and then stop, informing the user by indication display to correct the situation, for example, check for stuck hose, football damaged, or sensor failure.

<FIG> are electrical block diagrams of each of the major blocks of the apparatus <NUM> shown in <FIG> and <FIG>. <FIG> is a block diagram of the control box <NUM> which includes a visual display such as an LCD <NUM> that is fed by a single board computer module, or SBC/SOM <NUM>. The exemplary control box <NUM> includes a dump trigger switch <NUM>, a soft stop switch <NUM>, a left joystick <NUM>, and a right joystick <NUM> for an operator to manipulate in order to provide input commands to control the apparatus <NUM>. This control box <NUM> may include a battery if wirelessly connected to the apparatus <NUM> or may include electrical power from the tumble box <NUM> generated by the air motor generator contained therein. The SBC/SOM <NUM> may incorporate the position monitor database operably described above. The display <NUM> may include a circular representation of the tube sheet <NUM> as shown in <FIG>, which indicates plugs, obstacles and holes as they are identified during the auto-indexing process described above.

<FIG> is an electrical block diagram of the tumble box <NUM>. The tumble box includes an air valve driver board <NUM> along with an air valve manifold that directs air pressure to the vertical drive motor <NUM> and horizontal drive motor <NUM> as well as air pressure to the reversible air motor in the tractor drive <NUM> and the air cylinder (not shown) that provides hose clamp pressure and hence a clamping force applied to the drive and follower rollers in the tractor drive <NUM>. The tumble box <NUM> also include an air motor generator (AMG) <NUM> that generates electrical power for use throughout the apparatus <NUM>. This AMG <NUM> preferably also supplies power to the rechargeable battery in the control box <NUM> when wired thereto. The Tumble box <NUM> also includes an Emergency stop switch <NUM> to divert pneumatic pressure in the event of an unanticipated event. The tumble box <NUM> also includes two pressure transducers <NUM> and <NUM>. Pressure transducer <NUM> monitors supply air pressure, typically <NUM> psi. Pressure transducer <NUM> monitors clamp pressure.

<FIG> shows the electrical block diagram for the sensor head <NUM> and guide assembly <NUM> amplifier block <NUM>. The amplifier block <NUM> contains a sensor transmit coil driver <NUM> that produces a <NUM> signal that is fed to each of the transmit coils <NUM>. The receive coils <NUM> each transmit coupled eddy current signals received from the transmit coils to a receive analog processor <NUM> which in turn provides input to the main computation unit module (MCU) <NUM>. This MCU <NUM> sends its output to the control SBC/SOM <NUM> in the control box <NUM>.

<FIG> shows the electrical block diagram for the rear encoder block <NUM>. The signals from the position sensors <NUM> and reverse encoders <NUM> are fed to an encoder board <NUM> and thence through the tractor <NUM> and the tumble box <NUM> to the control box <NUM>.

<FIG> shows the rear hose stop encoders <NUM> also feed an encoder board <NUM> prior to being sent to the encoder block <NUM>.

<FIG> shows the electrical block diagram for the forward encoder block <NUM> which sends the signals from the hose stop encoders <NUM> through an encoder board <NUM> via the analog processor <NUM> to the control box <NUM>.

<FIG> and <FIG> provide position indication from vertical and horizontal drives <NUM> and <NUM> through encoder boards <NUM> and <NUM> through the rear encoder block <NUM> and thence to the control box <NUM> for use in recording and tracking the positions determined via tractor <NUM> position and hence hole positions on the X-Y frame <NUM>. These electrical distribution block diagrams <FIG> reflect merely exemplary electrical routings. It is to be understood that many other configurations may also be implemented.

In addition, many changes may be made to the apparatus described above. For example, electric stepper motors may be utilized instead of the air motors <NUM> and <NUM> and the air motors in the lance tractor drive <NUM> in an all electrical version of the apparatus <NUM>. The lance hoses (not shown) may be configured with coding such as RFID tags so that the position transducers or encoders <NUM> and friction wheel encoders <NUM> and <NUM> may be other than specifically as above described. In an all electrical design of the apparatus <NUM>, the tumble box <NUM> may be eliminated and/or the sensor amplifier block <NUM> may be relocated, miniaturized, or incorporated into the electrical control box <NUM> or the hose stop collet block <NUM>. The apparatus <NUM> may require less than three sensors <NUM>, or less than eight receive coils <NUM> in each sensor head <NUM>. Thus the above description is merely exemplary.

One exemplary embodiment of a controller box <NUM> is a handheld remote controller <NUM> shown in perspective top and bottom views in <FIG> and <FIG>. This controller <NUM> is designed to be held in both hands by an operator standing a safe distance remotely from the apparatus <NUM>. The controller <NUM> has a left hand grip <NUM> and a right hand grip <NUM> sandwiching an LCD display screen <NUM> therebetween. On the top of the left hand grip <NUM> is a menu navigation thumb joystick <NUM> for the operator to switch between various views and menus on the display screen <NUM> by moving the joystick up, down, left and right. The joystick may also be momentarily pressed inward to make a particular selection on the display screen <NUM>. The left hand grip <NUM> also has a separate kill switch button <NUM> next to the joystick <NUM> for normally dumping high pressure fluid pressure from the lances by operating the high pressure dump valve (not shown).

The left hand grip <NUM> also has a safety dump lever <NUM> mounted on its underside and visible in <FIG>. This dump lever <NUM> is spring loaded and must at all times be depressed by the operator's left hand fingertips gripping the controller <NUM>. This dump lever <NUM> must be depressed in order to complete the electrical circuit to turn the high pressure fluid pump on via high pressure pump start/stop switch <NUM> also mounted on the left handgrip <NUM> in a position spaced ahead or in front of the menu navigation joystick <NUM>. This switch <NUM> may be actuated by the operator's index finger while holding the controller <NUM> in his or her left hand, and depressing the dump lever <NUM>. In addition, this dump lever <NUM> must be continuously depressed to keep the dump valve (not shown) closed in order to supply fluid pressure to the lance nozzle. This dump lever <NUM> operates as a "deadman" switch to dump high pressure fluid to atmosphere in the event that the operator were to let go of the left hand grip of the controller <NUM>.

The right hand grip <NUM> has an X/Y positioner joystick <NUM> for operating the air motors of the vertical and horizontal drive motors <NUM> and <NUM> on the X-Y frame <NUM>. In addition, the right hand grip <NUM> has two spring loaded momentary switches <NUM> and <NUM> located in front of the X/Y positioner joystick <NUM>. These are positioned for easy access by the operator's right hand index finger while the joystick <NUM> is manipulated. The controller <NUM>, as a remote version of the control box <NUM> described above, also contains the SBC/SOM processor <NUM> and has a controller power switch <NUM>. The controller <NUM> carries a cable connector <NUM> that funnels electrical wire communication between the tumble box <NUM> and the other components of the system <NUM> such as the tractor <NUM>, the encoders <NUM>, <NUM>, <NUM>, <NUM> and the analog processor <NUM>.

Turning now to <FIG>, operation of the system <NUM> via controller <NUM> will now be described. Prior to operation of the system <NUM> via controller <NUM>, a measurement of the target tube sheet pitch and the pattern type is preferably made. This can be done manually, by physically determining the center to center distance between tubes, the edge to edge distance, and whether or not a triangle tube pattern or square tube pattern is used by the tube sheet. This information is entered into the controller <NUM> when the settings screen is selected by maneuvering the menu selection joystick <NUM> to highlight the settings menu, as shown in <FIG>, and selecting it. The Settings menu (not shown) permits the operator to indicate screen brightness, contrast, vibration level for emergency warnings, etc. The operator then selects Auto Jog, as highlighted in <FIG>. The screen will advance to that shown in <FIG>. If the operator selects the highlighted Settings tab, a Job Settings screen, shown in <FIG> will appear. The measured pitch and hole pattern can then be selected from a dropdown menu. After the pitch and hole pattern are entered, the operator selects "Back" to return to the Auto Jog screen in <FIG>.

Alternatively, a Pitch Learning mode may be used. In <FIG> a plan view of the controller <NUM> showing screen <NUM> after an operator turns on the system <NUM> by having pressed the controller power switch <NUM> is shown. The operator then selects the Auto Jog option by selecting the highlighted option in <FIG>. This brings up the AutoJog screen shown in <FIG>. The user then selects the highlighted "Drive: Auto" selection and toggles it to show "Pitch Learn". (This Drive selection scrolls between "Auto", "Pitch Learn", and "Manual". ) The operator then selects the number of tubes to be cleaned at a time, typically <NUM> if <NUM> lances are simultaneously being used, and enters this in the "Moves" selection.

When in Pitch Learn mode, next the operator depresses the dump lever <NUM> with his left hand and presses the high pressure water button <NUM>. The operator then presses the tractor forward button <NUM> to feed the lances into the first <NUM> tubes, then withdraws them using the tractor Reverse button <NUM>. The controller <NUM> will record <NUM> tubes in the "Tube Count" register. The operator then taps the X/Y positioner joystick <NUM> in the direction of the next tubes to be cleaned. The system <NUM> will automatically senses tubes via sensors <NUM>, described in detail above, and advance the number of "Moves" indicated on the screen. The operator then repeats pressing the tractor forward button <NUM> and reverse button <NUM>. This process is repeated until either the last tubes are cleaned in the row or there is a different number of moves left to complete the row. In the latter case, the operator must then change the "Moves" as appropriate to complete operations on the row. The operator then taps the X/Y positioner joystick up or down to move to a new row of tubes. The positioner will automatically move up, down, or diagonally in accordance with the entered Pitch (square or triangular, and the learned pitch distance. The next row of tubes is cleaned in the same fashion. As this process is done, in the Learn mode, the detected Pitch is learned, refined and displayed on the screen as shown in <FIG>.

After the Pitch is learned, the operator can select Auto in the AUTOJOG menu screen and proceed with automatic cleaning with the learned pitch and depth information. The operator simply taps the joystick <NUM> to the right, and the controller will automatically move to the right three sensed holes. The operator then presses the tractor forward button <NUM> to move the lances <NUM> into the aligned set of three tubes to be cleaned, followed by pressing the reverse button <NUM> to withdraw the lances. The operator then taps the joystick <NUM> again to the right to automatically move the lance drive again <NUM> holes. The process is then repeated until cleaning of the row of tubes is completed. The operator then taps joystick <NUM> up or down to move to the next row and the process sequence is then repeated.

The information processed by controller <NUM>, including heat exchanger name, location, number of tubes, date and time cleaned, etc. number of tubes cleaned, number and location of tube blockages, obstructions encountered and removed, and the status of each tube is important information. This information may be automatically compiled, stored and tracked via external communication from the controller <NUM> to external databases. The information can be utilized to track condition of the heat exchanger over time. This information may be utilized to establish replacement schedules, and identify process issues for asset owners, as well as track efficiencies from crew to crew and identify training opportunities. Finally the collection of such data can be effectively utilized as a permanent record of unbiased data to ensure regulatory compliance.

A multiple lance drive apparatus <NUM> incorporating an autostroke functionality for each lance driven by the drive apparatus is shown in <FIG>. Referring now to <FIG>, a belt side view of the apparatus <NUM> is shown with its side cover removed. The drive apparatus <NUM> is a modified version of the lance drive <NUM> shown in <FIG>. This drive apparatus <NUM> has a rectangular box housing <NUM> that includes a flat top plate <NUM>, a bottom plate <NUM>, front and rear walls <NUM> and <NUM>, and two C shaped carry handles <NUM>, one on each of the front and rear walls <NUM> and <NUM>. In <FIG>, sheet side covers (not shown) are removed so that internal components of the apparatus <NUM> are visible.

Fastened to the front wall <NUM> is an exit hose guide manifold <NUM>. Fastened to the rear wall <NUM> below the carry handle <NUM> is a hose entrance guide manifold <NUM>. Each of these manifolds <NUM> and <NUM> includes a set of hose guide collets <NUM> for guiding one to three flexible lance hoses <NUM> (shown in <FIG> and <FIG>) into and out of the housing <NUM>. Each guide collet set <NUM> is sized to accommodate a particular lance hose diameter. Hence the collet sets are changeable depending on the lance size to be driven by the apparatus <NUM>. Each of the manifolds <NUM> and <NUM> includes a sensor, typically a hall effect sensor (not shown) for detecting presence or absence of a metal hose stop element that is fastened to each flexible lance hose <NUM>. These sensors are used to stop the apparatus <NUM> when presence of a hose stop element is sensed. One hose stop element is preferably integrated into the threaded hose ferrule to which a nozzle is attached, at the end of each of the lance hoses. This particular hose stop element is configured to prevent inadvertent withdrawal of the flexible lance <NUM> out of the heat exchanger tube sheet <NUM> and into the drive apparatus <NUM>. The forward manifold <NUM> may also include a physical collet assembly to mechanically prevent flexible lance nozzle <NUM> withdrawal into the drive apparatus <NUM>. Another hose stop element is removably fastened to each of the lance hoses <NUM> short of the rear manifold <NUM> to prevent over insertion of a flexible lance <NUM> beyond the tube being cleaned. These removable hose stop elements may pairs of C shaped metal clamps that are fastened to the hose at a predetermined hose length from the nozzle end to indicate full insertion of the flexible lance through a target tube sheet and tube being cleaned.

A motor side view of the apparatus <NUM> is shown in <FIG> with its outer side cover removed. The housing <NUM> includes an inner vertical support partition wall <NUM> fastened to the front and rear walls <NUM> and <NUM> and the top and bottom plates <NUM> and <NUM>. This vertical support partition wall <NUM> divides the housing into a first portion and a second portion. The first portion primarily houses hose fittings and splined belt drive motors <NUM> and <NUM>. The second portion is a belt cavity <NUM> through which flexible lance hoses (not shown in <FIG>) are driven, and is shown at least in <FIG>, <FIG> and <FIG>.

In this exemplary embodiment <NUM>, the inner vertical support wall <NUM> carries a pair of pneumatic drive motors <NUM> and <NUM> mounted such that their drive shafts <NUM> and <NUM> protrude laterally through the support wall <NUM> into the second portion, or belt cavity <NUM>, between the inner vertical wall <NUM> and an outer vertical lower support wall <NUM>, shown in <FIG> and <FIG>. Each of the drive motors <NUM> and <NUM> is connected to pneumatic forward feed line <NUM> and reverse feed line <NUM> through a feed manifold <NUM> fastened to the top plate <NUM>. A clamp pressure feed line fitting <NUM> also passes through this feed manifold <NUM> to a hose clamp assembly <NUM> described below. Each of the drive motors <NUM> and <NUM>, shown in <FIG>, is preferably a compact radial piston pneumatic motor. However, hydraulic or electric motors could alternatively be used.

On the belt side view shown in <FIG> and <FIG>, the belt cavity <NUM> is defined between the inner vertical wall <NUM> and the outer lower support wall <NUM>. A separate upper outer support wall <NUM> aligned with the lower outer support wall <NUM> provides a rigid joint between the front and rear walls <NUM> and <NUM> while providing a visible space between the entrance and exit guide manifolds <NUM> and <NUM>. This spacing helps an operator thread up to three lances laterally into and through the belt cavity <NUM> between an endless drive belt <NUM> and a vertically arranged hose clamp assembly <NUM>. Each of the support walls <NUM>, <NUM> and <NUM> is preferable a flat plate of a lightweight material such as aluminum or could be made of a structural polymer with sufficient strength and rigidity to handle the motor operational stresses involved.

The upper outer support wall <NUM> carries a set of electrical connectors <NUM> for communication of sensed hose position, hose stop presence and belt position via the drive motor direction and position sensors described below, and a set of <NUM> LED lights <NUM> to indicate the status of each of these elements during drive apparatus operation.

A perspective view of the apparatus <NUM> with the upper and lower outer vertical support walls <NUM> and <NUM> removed is shown in <FIG>. Each of the motor drive shafts <NUM> and <NUM> has an axial keyway fitted with a complementary key (not shown) that engages a corresponding keyway in a cylindrical splined drive roller <NUM>. Thus, each drive roller <NUM> is slipped onto and keyed to the drive shaft so as to rotate with the drive shaft <NUM> or <NUM>. Each splined drive roller <NUM> has its outer cylindrical surface covered with equally spaced splines extending parallel to a central axis of the roller <NUM>. The distal ends of each of the drive shafts <NUM> and <NUM> extends through the lower outer support wall <NUM> and are primarily laterally supported from plate <NUM>. Additional lateral support for the distal ends of each of the drive shafts <NUM> and <NUM> is provided by the lower outer support wall <NUM> via cone point set screws engaging a V groove (not shown) in each of the shafts <NUM> and <NUM>.

Each of the drive shafts <NUM> and <NUM> may extend fully through the splined drive rollers <NUM> or the drive motors <NUM> and <NUM> may each be fitted with a stub drive shaft which fits into a bearing within the proximal end of each of the splined drive rollers <NUM>. A separate bearing supported drive shaft <NUM> or <NUM> extends out of the distal end of each drive roller <NUM> and is fastened to the support wall <NUM> via cone point set screws. In such an alternative, the drive rollers <NUM> become part of the drive shafts <NUM> and <NUM>.

Spaced between the two splined drive rollers <NUM> is a set of four cylindrical guide rollers <NUM> that are supported by the lower outer support wall <NUM> via a vertical plate <NUM> and a pair of rectangular vertical spacer blocks <NUM> that are through bolted to both the lower outer support wall <NUM> and inner vertical wall <NUM> through the vertical plate <NUM> via bolts <NUM>. While the bolts <NUM> pass through the vertical plate <NUM>, their distal ends extend further through, and are threaded into holes through the inner vertical wall <NUM>.

Tension on the endless belt <NUM> is preferably provided by a tensioner roller <NUM> between the spacer blocks <NUM> that is supported from the inner vertical plate <NUM> on an eccentric shaft <NUM>, and accessed through an opening <NUM> in the inner vertical wall <NUM>, shown in <FIG>. Rotation of this eccentric shaft <NUM> essentially moves the tensioner roller <NUM> through a slight arc downward or upward to provide more or less tension on the belt <NUM>.

To replace the belt <NUM>, the four bolts <NUM> are loosened and screws holding the outer lower wall <NUM> to the front and rear walls <NUM> and <NUM> are removed. The cone point set screws engaging a V groove (not shown) in each of the shafts <NUM> and <NUM> are then removed. The assembled structure including the vertical plate <NUM>, spacer blocks <NUM>, belt <NUM>, drive rollers <NUM>, and guide rollers <NUM> can then be removed as a unit by sliding the drive rollers <NUM> off of the keyed shafts <NUM> and <NUM>.

Each of the splined drive rollers <NUM> preferably has equally spaced alternating spline ridges and grooves around its outer surface which are rounded at transition corners so as to facilitate engagement of the complementary shaped lateral spline ridges and grooves in the inner side or surface of the endless belt <NUM>. Elimination of sharp transitions at both ridge corners and groove corners lengthens belt life while ensuring proper grip between the rollers and the belt. The outer surface portion or cover of the endless belt <NUM> is preferably flat and smooth to prevent undesirable hose abrasion and degradation and is preferably formed of a suitable friction material such as polyurethane. The inner side portion of the belt <NUM> is preferably a harder durometer polyurethane material bonded to the outer side cover. For applications with significant hydrocarbons or high lubricity products, grooves machined across the cover at <NUM>° to the direction of belt travel may be utilized for improved traction performance against the flexible lance hose.

Spaced above the belt <NUM> in the belt cavity is a lance hose clamp assembly <NUM> including an idler roller assembly <NUM>. This exemplary clamp assembly <NUM> includes a multi-cylinder frame <NUM> fastened to the top plate <NUM> of the housing <NUM>. The multi-cylinder frame <NUM> carries two or three single acting pneumatic cylinders with pistons <NUM> (shown in <FIG>) that are each connected to a carrier block <NUM> and connected together via a pair of parallel spaced idler carrier frame rails <NUM>. Six idler roller sets <NUM> are carried by the frame rails <NUM>, each vertically positioned directly above either one of the drive rollers <NUM> or one of the guide rollers <NUM>. Each piston <NUM> may be spring biased such that without pneumatic pressure, the pistons <NUM> are all withdrawn or retracted fully into the multi-cylinder frame <NUM> so as to provide access space between the idler roller sets <NUM> and the drive belt <NUM> for insertion and removal of flexible lance hoses.

One set of idler rollers <NUM> is made up of three independent spool shaped bearing supported rollers <NUM> shown in the sectional view through the apparatus <NUM> shown in <FIG>. This particular set <NUM> of idler rollers <NUM> is positioned adjacent hall effect sensors <NUM>, <NUM>, and <NUM>, mounted on a circuit board <NUM> fastened to the underside of the carrier block <NUM>, to detect distance traveled by each hose being driven through the drive apparatus <NUM>. Each roller <NUM> is a spool shaped roller having a central concave, or U shaped, groove bounded by opposite circular rims <NUM>. One of the rims <NUM> of each roller <NUM>, preferably an inboard rim <NUM>, carries a series of <NUM> magnets embedded around the rim <NUM>, each having an opposite polarity in series facing radially outward.

The printed circuit board <NUM> fastened to the underside surface of the upper support block <NUM> carries <NUM> hall effect sensors <NUM>, <NUM>, and <NUM> each arranged adjacent one of the rims <NUM>. As each roller <NUM> rotates, for example, by <NUM> degrees, one of the magnets passes beneath its adjacent sensor <NUM>, <NUM>, or <NUM> on the pcb <NUM> and a polarity change is detected. These changes are counted and converted to precise relative lance distance traveled for that particular lance (not shown). In this way, very precise distance traveled by the lance can be determined irrespective of the distance traveled by an adjacent lance driven by the drive apparatus <NUM>.

Each idler roller set <NUM> is carried on a stationary axle <NUM> fastened between the idler frame rails <NUM>. Only one idler roller set <NUM> needs to have separate rollers <NUM>. The other <NUM> idler roller sets <NUM> each preferably is a bearing supported cylindrical body having three axially spaced annular spool shaped concave grooves each being complementary to the anticipated lance hose size range. These annular grooves may be V shaped, semicircular, partial trapezoidal, rectangular, or smooth U shaped so as to provide a guide through the apparatus <NUM> and keep the flexible lances each in desired contact with the endless belt <NUM> during transit. Preferably the idler rollers <NUM> and the individual rollers <NUM> are made of aluminum or other lightweight material capable of withstanding bending loads and each groove has a concave arcuate cross-sectional shape. Each groove may alternatively be a wide almost rectangular slot with corners having a radius profile to allow the hoses to have limited lateral movement as they are fed through the apparatus <NUM>. This latter configuration is preferred in order to accommodate several different lance hose diameters in the drive apparatus <NUM>.

In use, the drive apparatus <NUM> may be utilized with one, two, or three flexible lances simultaneously. In the case of driving one lance, such a lance would be preferably fed through the center passage through the inlet manifold <NUM> and beneath the center groove of the idler rollers <NUM>. When two lances are to be driven, the inner and outer passages through collets <NUM> would be used. If three lances are to be driven, one would be fed through each collet <NUM> and corresponding groove of each idler roller <NUM>.

In alternative embodiments, more than three lance drive paths may be provided such as <NUM>, <NUM> or five. Electrical or hydraulic actuators and motors may be used in place of the pneumatic motors shown and described. Although a toothed or spline endless belt is preferred as described and shown above, alternatively a smooth belt or grooved belt with wider spline spacing could be substituted along with appropriately configured drive rollers. The guide rollers <NUM> are shown as being smooth cylindrical rollers. They may alternatively be splined rollers similar to the drive rollers <NUM>.

One of the splined belt drive motors, motor <NUM> in the illustrated embodiment <NUM>, is configured with a differential hall effect sensor <NUM> to monitor speed and direction of rotation of the drive motor <NUM>, and hence lance travel along the belt <NUM> through the drive apparatus <NUM>. A separate plan view of drive motor <NUM> is shown in <FIG>, with its outer cover shown transparent. An annular notched target disc <NUM> is fastened to the motor rotor inside the motor housing <NUM>, having spaced notches forming, in this illustrated embodiment, <NUM> teeth <NUM>. The differential hall sensor <NUM> fastened to the housing <NUM> senses passage of each of these teeth <NUM> and outputs a voltage change signal for each edge transition as a tooth passes beneath the sensor <NUM>. The signal output is indicative of direction of rotation and speed, which mathematically equates to belt position and hence lance travel distance, assuming no slip between belt and lance hose.

By comparing the position of the lance hoses, i.e. distance traveled as sensed from the follower roller set sensors <NUM>, <NUM>, and <NUM>, for each of the lance hoses, with the belt drive motor speed and direction sensed distance from the signal output of sensor <NUM>, any mismatch is correlated to lance to belt slippage. For example, when driving three lances, if a large mismatch on only one lance occurs, in a three lance drive operation, this is typical of a blockage or restriction in that particular tube being cleaned.

If all the lances, <NUM> in the illustrated case, have a similar mismatch with respect to the belt drive motor sensed position and/or feed distance, this will be indicative of insufficient clamp pressure. In this instance the operator can simply increase clamp pressure to compensate for the mismatch. The operator can then re-zero the lance position and look for subsequent mismatch. Alternatively, an automatic control system can perform this function, as is described in more detail below. In such a case the clamp pressure may be automatically increased to minimize slippage, up to a predetermined maximum applied pressure applied to the follower rollers <NUM>.

In the event of a single lance hose mismatch, as first described above, this indicates a restriction, or blockage, occurring in the tube being cleaned. The sensed mismatch preferably is used to trigger an autostroke sequence of motor <NUM> instigating reversals as generally described above, to move the lance hoses back and forth in the tubes being cleaned, until the blockage or restriction is reduced or eliminated, as determined by re-zeroing the position of the mismatched lances and continuing the cleaning operation as needed, until another mismatch above an operator determined threshold occurs.

The drive apparatus <NUM> preferably includes the comparator circuitry to compare the signals from each of the sensors <NUM>, <NUM>, and <NUM> with the signal from the drive motor sensor <NUM>. The drive apparatus <NUM> may also include a comparator that compares the signals between each of the sensors <NUM>, <NUM> and <NUM>, as the lance position of each lance should be relatively close to each other since the only drive force is from the contact with the drive belt <NUM>. Alternatively, the comparator circuitry may be handled via microprocessor in a system controller such as hand held controller <NUM>, separate from the apparatus <NUM>. In either case, an exemplary signal processing circuit is shown, in simplified block diagram form in <FIG> and process flow diagrams <FIG>, <FIG> and <FIG>.

A simplified functional block diagram <NUM> for autostroke control for the apparatus <NUM> is shown in <FIG>. Motor sensor <NUM> feeds an input into three comparators <NUM> each of which in turn send an input to controller <NUM>. At the same time, the sensors <NUM>, <NUM> and <NUM> also send signals to the comparators <NUM>. The controller <NUM> serves three major functions: autostroke <NUM> to remove tube blockages, clamp pressure control <NUM>, and emergency dump valve actuation. The autostroke functionality is described below with reference to <FIG> and <FIG>. The clamp pressure may be adjusted manually or may be controlled automatically as described in <FIG>.

The emergency dump signal actuation function of controller <NUM> simply sends a signal to the valve driver board MCU in the tumble box <NUM> if the controller <NUM> receives a signal through the comparators <NUM> that exceeds a second threshold from any one of sensors <NUM>, <NUM> or <NUM>. This second threshold is indicative of a reversal of count direction from the sensors <NUM>, <NUM>, or <NUM> or an excessive rate of lance speed. If any one lance hose reverses direction while the drive motor sensor <NUM> is sensing forward motion of the motor, this indicates that the lance hose is being pushed backward, which should not ever happen unless a catastrophic event such as nozzle breakage or hose rupture during system operation is occurring. If such an event is sensed, a signal is sent to the valve driver board in the tumble box <NUM> to immediately divert high pressure cleaning fluid pressure to atmosphere by de-energizing the dump valve. Utilizing the follower roller position sensors <NUM>, <NUM>, and <NUM> for this purpose permits very fast response times, on the order of milliseconds, to initiate an automatic dump action which can greatly diminish the chances of such an unanticipated event from resulting in injury to an operator of the apparatus <NUM> or <NUM>.

Operational control of the apparatus <NUM>, basically called a smart tractor, begins in operation <NUM>, when a feed forward operation is selected by the operator on a cleaning system control box <NUM>. This control box <NUM> may be floor mounted or may be the hand-held controller <NUM>, described above with reference to <FIG><NUM>, that communicates either wired or wirelessly with the apparatus <NUM>. For ease of explanation here, the hand held controller <NUM> is described. Once feed forward operation is selected, control transfers to tractor forward operation <NUM> which queries in operation <NUM> whether the Drive forward button <NUM> has been pressed. If the answer is yes, control transfers to comparator operation <NUM>. If, however, in query operation <NUM>, the Drive button <NUM> has not been pressed, control immediately transfers to stop operation <NUM> where tractor forward operation is stopped.

Assuming the Drive button <NUM> has been pressed, forward operation <NUM> energizes the drive motors <NUM> and <NUM> causing the endless belt <NUM> to pull <NUM>, <NUM> or <NUM> lances along the pathway between inlet manifold <NUM> and outlet manifold <NUM> through the apparatus <NUM>. As the lances move along the endless belt <NUM>, their movement causes the follower rollers <NUM> to rotate, sending signals, picked up by sensors <NUM>, <NUM> and <NUM>, to comparators <NUM>. At the same time, sensor <NUM> on motor <NUM> sends a similar signal to each of the comparators <NUM>.

Operation <NUM> receives linear lance position information from sensors <NUM>, <NUM>, and <NUM> via the circuit board <NUM> for each lance. Comparator operation <NUM> also receives belt position information from the sensor <NUM> on the drive motor <NUM>. In operation <NUM>, the received signals are converted to actual lance feed distances and the expected feed distance is compared to the actual feed distance of each lance.

Control then transfers to query operation <NUM> where the question is asked whether expected feed to actual feed of each lance differs over time. In other words, whether there is a mismatch between expected feed distance and actual distance fed. If below a user settable difference, the answer is NO, a "continue drive" control signal is sent back to operation <NUM> and the tractor continues to drive the lances forward. On the other hand, if there is a substantial difference in expected to actual feed for any one of each individual lance, then the answer is Yes, control transfers to Autostroke subroutine operation <NUM>, shown in detail in <FIG>. On the other hand, if there is a substantial difference in expected to actual feed, i.e. a mismatch, for more than one individual lance detected in operation <NUM>, this is indicative of insufficient clamp pressure, and the controller <NUM> transfers control to clamp pressure operational sequence <NUM> described in <FIG>.

An autostroke routine <NUM> begins in operation <NUM>. Control then transfers to reset operation <NUM> where the lance to motor difference for each lance is set to zero and an incrementing counter is set to zero. Control then transfers to operation <NUM> where the increment counter is advanced by <NUM>. Control then transfers to operation <NUM> where drive apparatus <NUM> is signaled to drive backward for N increments. Control then transfers to operation <NUM>, where the drive apparatus <NUM> is signaled to drive forward N+<NUM> increments. Control then transfers to query operation <NUM>.

Query operation <NUM> asks whether the counter value is greater than or equal to <NUM>. If the answer is no, control transfers back to operation <NUM> where the counter is incremented again and the process operations <NUM>, <NUM> and <NUM> are repeated. If the answer in query operation <NUM> is yes, the counter is greater than or equal to <NUM>, control transfers to query operation <NUM> which asks whether a mismatch between lance position and motor position counts still exists. If the answer is yes, a mismatch is still present, this indicates that there is still a blockage or restriction in the target tube or tubes. Control transfers to operation <NUM>.

In query operation <NUM>, the question is asked whether the apparatus <NUM> feed rate is at a minimum. If the answer is yes, control transfers to stop operation <NUM>. This indicates that an unremovable obstruction has been encountered, requiring manual operator action to mark the tube as blocked or take other appropriate action. In query operation <NUM>, if the answer is no, feed rate is not yet at minimum, control transfers to operation <NUM>.

In operation <NUM>, the tractor feed rate of apparatus <NUM> is reduced. Control then transfers back to operation <NUM> where the lance to drive position mismatch is set to zero and the incrementing counter are set to zero, and the iterative process of operations <NUM> through <NUM> is repeated.

On the other hand, if in query operation <NUM>, there is no mismatch present, this means that either no obstacle is now sensed, i.e. the obstacle has been cleared, and control returns to operation <NUM>, where normal tractor drive forward operation is resumed, until the drive button in operation <NUM> is released, which stops tractor forward feed in operation <NUM>.

A process flow diagram <NUM> of the controller <NUM> is shown in <FIG> for adjusting the clamp pressure of pistons <NUM> applying force against the follower rollers <NUM> to press follower rollers <NUM> against a set of one or more hoses (not shown) being driven along the endless belt <NUM>. Basically, if there is a mismatch as determined by comparators <NUM> for more than one lance hose, this is potentially indicative of insufficient clamp pressure or force, and hence the position of lances <NUM> are not together. The process begins in operation <NUM>. The controller <NUM> senses if a lance hose registers a mismatch in operation <NUM>. Control then transfers to query operation <NUM>, which asks if there is more than one lance comparator signaling a mismatch. If so, control transfers to query operation <NUM>. If not, control transfers back to operation <NUM> described above.

In query operation <NUM>, the query is made whether clamp pressure is at or above a predetermined maximum pressure. If the answer is yes, control transfers to operation <NUM> where a flag is sent and clamp pressure control may be transferred to manual for the operator to assess and take appropriate action. If the answer in query operation <NUM> is no, pressure is not at maximum, control transfers to operation <NUM>, where clamp pressure is increased by a predetermined amount, such as <NUM> psi. Control then transfers back to query operation <NUM> and operations <NUM>, through <NUM> are repeated until the mismatch determined in operation <NUM> is less than or equal to <NUM>. Control then transfers back to operation <NUM> described above.

Controller <NUM> may also be configured via process <NUM> to automatically synchronize position of all lance hoses <NUM> being driven by the drive <NUM> and maintain synchronization between these lance hoses <NUM>. For example, during lance insertion into the heat exchanger tubes, if a mismatch between the several lance positions is less than the maximum, but exists, they will not be together. When a first lance encounters its full insertion hose stop the controller <NUM> continues to drive apparatus <NUM> until all three lances <NUM> are at full insertion as sensed by contact with the hose stops. When the operator instructs the controller to reverse direction, the lances <NUM> will begin withdrawal in synchronization. During reverse direction of the lance hoses <NUM> if a mismatch between the sensed positions of each lance hose is again sensed, less than the maximum, which would indicate an obstruction, the controller <NUM> continues to withdraw the lance hoses <NUM> until all of the hose crimps are detected. Controller <NUM> signals the drive motors to stop, with all lance hoses <NUM> resynchronized in the fully withdrawn position. The drive <NUM> may then be repositioned to clean another set of tubes.

<FIG> is an exemplary control/power distribution diagram of an alternative embodiment of an apparatus <NUM> in accordance with the present disclosure similar to apparatus <NUM> shown in <FIG> and described above. Apparatus <NUM> includes a smart tractor drive <NUM> that is mounted on an X-Y positioner <NUM> that is in turn fastened to a tube sheet <NUM>. The tractor <NUM> receives pneumatic power and optionally electrical power from a tumble box <NUM>. This tumble box <NUM> includes a valve driver board, connections from a high pressure pump (not shown), connections from a pneumatic pressure source such as an air compressor (not shown), and various pneumatic valves for controlling air pressure to and from the horizontal drive <NUM> and vertical drive <NUM>, and optionally may house a pneumatic/electrical motor generator, e.g. an air motor generator (AMG) to provide control power and sensor power for the various elements of the apparatus <NUM>. Alternatively, electrical power may be conventionally supplied through external connection.

The tumble box <NUM> communicates with a control box <NUM> which may be floor mounted as illustrated in <FIG> or preferably may be a hand held remote controller <NUM> as described with reference to <FIG> above. This control box <NUM>, or controller <NUM> includes a display <NUM>, a kill button <NUM>, left joystick <NUM>, right joystick <NUM>, dump trigger <NUM>, forward and reverse feed controls <NUM> and <NUM>, a battery, and a haptic feedback motor for generating a vibrational signal to the operator holding the controller <NUM>.

The tractor <NUM> carries a belt drive sensor <NUM> and three lance position sensors <NUM> as above described, and at the rear of the tractor <NUM> a hose stop sensor <NUM> and at the front end a set of hose crimp sensors <NUM>. These hose crimp and hose stop sensors may be as above described or each may be any suitable metal sensing device that can indicate the presence or absence of either a hose crimp (that indicates a connection to a nozzle at the end of each of the lance hoses <NUM>), or a physical stopper such as a conventional "football" fastened to the lance hose <NUM> that signifies full insertion of the lance hose through the target heat exchanger tubes. Each of these sensors <NUM> or <NUM> may each optionally be a physical switch.

This alternative apparatus <NUM>, shown in <FIG>, does not include the sensor heads <NUM> and analog processor <NUM> as above described. The bracket <NUM> attached to the X-Y positioner <NUM>, and guide tubes <NUM> are, however provided, and the hole locating sensor heads <NUM> may optionally be added.

Many variations are envisioned as within the scope of the present disclosure. For example, all processing circuit components of the control box <NUM> may be physically housed therein. Alternatively, the components within the control box <NUM> could be integrated into the drive apparatus <NUM> or into the housing of the drive apparatus <NUM>. In the case of drive apparatus <NUM>, the control circuitry may be housed in the separate hand-held controller <NUM> described above. The number of drive reversals in the Autostroke sequence may be any number. A value of >= <NUM> was chosen as merely exemplary. In alternative embodiments, electrical or hydraulic actuators and motors may be used in place of the pneumatic motors shown and described herein. Different automated routines and subroutines than as described above may be utilized to control the operation of the apparatus <NUM>. In addition, the apparatus <NUM> may be configured with physical status lights to indicate to the operator mismatches between lances and the drive motor, lance relative position, as well as such things as feed rate and other indications of proper operation. These may include lance withdrawal stop indicators and lance insertion stop indicators positioned on the inlet and outlet manifolds <NUM> and <NUM> or on the side of the housing <NUM> as shown in <FIG>. Alternatively, these indicators may be reflected in popup warnings displayed on the LCD screen <NUM> of the hand-held controller <NUM>. The belt drive sensor <NUM> described above, may, instead of being mounted on the drive motor <NUM>, may instead be mounted to any one of the guide rollers <NUM>. These indicators, or indications, may be utilized by the operator to monitor and adjust synchronization of the lances being driven by the apparatus <NUM> when they reach the fully inserted position by contact with the lance insertion stop, and vice versa, when the lances are fully withdrawn, via contact with the hose crimps. This permits the operator to adjust the lance positions such that they all start from an aligned position together, and the operator can adjust for and reposition one of the lances that gets out of alignment with the other lances during either an insertion or retraction operation.

The hose clamping pressure, or force may be created and managed as above described. Alternatively, the hose position sensing may be accomplished using a separate assembly in the tractor housing using a spring biased set of follower rollers and position sensors rather than the set specifically as above described.

The handheld controller <NUM> may be shaped differently than as is shown in <FIG>. The embodiment illustrated is merely one exemplary configuration. The controller <NUM> may be configured with a memory to store and recall a plurality of maps of various tube sheet configurations and layouts such that operation of the sensor head(s) <NUM> can be utilized more as an assist to help generate a map. The control box <NUM> may not be or may not include a hand held controller <NUM>. The connections between the control box <NUM> or hand held controller <NUM> and the tumble Box <NUM> may be via wireless communication such as via Bluetooth. The present disclosure describes a guide assembly <NUM> with three guide tubes. However, a set of five guide tubes or one single guide tube may be used instead of three guide tubes. Regarding the arrangement of receive coils <NUM> on PCBs <NUM>, in addition to the options shown above, the annular PCB <NUM> containing the receive coils <NUM> may be divided in to two symmetrical C-shaped portions. Each C-shaped portion may be mounted to one end of the three guide tubes <NUM>. This configuration of PCBs <NUM> can accommodate smaller pitches in the tube sheets <NUM>. Furthermore, while three AC pulse sensors <NUM> are described herein, other embodiments may be configured to utilize only one, on only one guide tube <NUM>, or may be configured to utilize one on each of the outer guide tubes <NUM>.

The apparatus <NUM> described above includes an X/Y positioner frame <NUM>. However, other configurations of such a smart drive positioner are also within the scope of the present disclosure. For example, a positioner that essentially utilizes a rotator fastened to one side or edge of the tube sheet <NUM> and having an extensible arm that radially extends from the rotator, and carries the smart tractor drive apparatus <NUM> along the arm could also be utilized in accordance with the present disclosure. In such an alternative, the controller <NUM> would be essentially the same, except that the joystick <NUM> right tilt would simply rotate the rotator clockwise, the left tilt would simply rotate the rotator counterclockwise, and the forward and rearward tilt would move the smart tractor drive apparatus <NUM> along the arm. The conversion between X/Y coordinates and essentially polar coordinates is a simple mathematical calculation and easily accomplished in software for use in such an arrangement.

Claim 1:
An apparatus for cleaning tubes (<NUM>) in a heat exchanger comprising:
a lance positioner frame (<NUM>) configured to be fastened to a heat exchanger tube sheet (<NUM>);
a flexible lance drive (<NUM>, <NUM>) fastenable to the positioner frame (<NUM>), the flexible lance drive having one or more lance guide tubes (<NUM>) positionable adjacent and perpendicular to a face of the tube sheet each for guiding a flexible lance hose (<NUM>) into and out of a tube (<NUM>) penetrating the tube sheet (<NUM>);
a controller (<NUM>, <NUM>, <NUM>) communicating with motors (<NUM>, <NUM>) on the positioner frame (<NUM>) and the lance drive (<NUM>, <NUM>) for controlling the lance drive (<NUM>, <NUM>); and
a tumble box (<NUM>) for converting air pressure to electrical power and manipulating air valves contained therein, wherein the electrical power is provided to components within the controller and lance drive (<NUM>, <NUM>); and
an air pressure supply connected to the tumble box;
an inductive sensor fastened to a distal end of at least one of the one or more lance guide tubes for detecting presence of holes in the tube sheet;
characterized in that the lance drive (<NUM>, <NUM>) includes a front collet block (<NUM>) fastened to a front portion of the lance drive (<NUM>, <NUM>) facing the tube sheet (<NUM>) carrying one or more lance hose stop transducers (<NUM>) operable to sense presence of hose clamp or crimp fastened to a lance hose adjacent to its nozzle (<NUM>), said clamp or crimp being clamped tightly to the lance hose near the distal end of the lance hose and physically interferes with hose passage through a collet opening within the collet block (<NUM>) so as to prevent withdrawal of the high pressure hose back through the drive (<NUM>).