Pillar 3 Microbial Control

The pillar of cooling tower control which steals headlines is the Biological Control Pillar. Cooling towers have the potential to cause serious health issues and disease. Water is a catalyst for life; we cannot tell water, “You are being used in a cooling process; do not harbor lifeforms”. Fortunately, we can make the water in cooling towers less inviting to unwanted guests. Preventing mold, bacteria, biofilm and other contaminants from interfering with process efficiency and community health brings us to the third pillar of cooling tower control.

Cooling tower treatment is an ever-evolving process. Recent events, breaking news, and, eventually, legislation exert pressure on the market to reinvent themselves. When new standards and legislations are released and enforced, facilities become noncompliant, and potentially face some serious charges. An outbreak of Legionnaires’ disease in South Bronx resulted in a sizeable investigation, which uncovered 2 cooling towers which tested positive for a “…Legionella strain indistinguishable … from the 26 patient isolates” (Chamberlain, 2017). An untreated cooling tower can be an ideal incubator for legionella. The induced draft through cooling water is a dangerous storm to make Legionella airborne, where it could be inhaled. It is for these reasons and more that Cooling towers are often scapegoats whenever outbreaks arise. Therefore, water treatment professionals need to be absurdly diligent when it comes to preventing microbial growth for liability and, most importantly, safety.

Current Regulations

New York City, in response to the issue in South Bronx, has implemented a few standard operating procedures in an attempt to help mitigate the probability of Legionella specifically in cooling towers. Notable requirements are the registration of all cooling towers with the state and a report submitted annually to the Department of Buildings, outlined in local law 77. Chapter 8 requires two annual cleans of cooling towers, the Department of health requires “quarterly” test samples for legionella, tower inspections to verify equipment functionality, weekly dip slides for general bacteria count, verification of chemical feed, and on-site testing three times per week of pH, chlorine levels/halogen, temperature, and conductivity. These aggressive requirements are quite labor intensive, having online visibility to your equipment helps reduce some of the manual processes and can expedite the report requirements.

There is no proven correlation between a dip slide general bacteria count and traces of legionella.
Bradly Levitt – The Metro Group Inc.

Biological Control Equipment

There are many biocides out there. Oxidizing and non-oxidizing biocides are just two high level categories to start profiling biocides. It is important to select the correct biocides, dosage, and schedule to ensure a complete microbial “kill profile”.

Liquid chemical feed is the most common method of controlling biological growth in a cooling loop. Alternating oxidizing and non-oxidizing biocide feed is a very common approach, typically administered on a time-based schedule. When selecting a pump for liquid chemical feed, always consider the following factors: pump output, pressure rating, chemical compatibility, and any special fluid handling considerations (such as a degassing function). Another method of feeding biocides and controlling biological growth is to use either brominators or chlorinators. These are physical vessels which contain chlorine or bromine tablets. Process solution can be directed into these devices with the use of solenoid valves to regulate feed. Other notable technologies in this space are ultraviolet (UV) light, copper-silver ionization, and ozonation; however, these technologies have difficulty being effective in open cooling loops.

Demand-Based Biocide Feed

How can you tell if you are safe? More and more people are implementing demand-based treatment, which can adjust to changes to the system. Inline measurement devices, such as ORP probes or ion-specific probes, like free chlorine, provide useful system data which can be used to adjust treatment dosage based on demand, optimizing chemical usage. Unfortunately, there is no consensus on the optimum halogen levels to maintain. There is no substitute for routine manual tests. Regular dip slides, ATP testing, and even laboratory sample testing are important to quantify and validate the effectiveness of your microbial control program.

28-Day Timer Programming

There is an interesting balance which water treatment professionals face, you must maximize efficiency and equipment life while minimizing microbial life and system debris. If you want to disinfect water from microbiological growth you might opt to feed chlorine, however, higher levels of chlorine will accelerate corrosion and it may also oxidize your other treatment chemistry. Equipment is designed with the unique needs of water treatment professional in mind. Often a shock-like program is leveraged to get an effective kill of the system and then oxidizing biocide levels are dropped to minimize corrosion until the next shock cycle. Many industry controllers offer the 28-day biocide timer, a 4-week schedule for biocide feed. However, I often see many features of this timer style not utilized.

Biocide Disable Features

The other timers on most feed equipment typically have visibility to any active 28-day timer. Due to undesired chemical interaction between biocides and other chemicals, you may want to adjust the other chemical feed timers with this feature.

Sometimes the pre-bleed setting is skipped and with a long bleed lock out configured which could result in conductivity much higher than the configured set point, sometimes as much as 2 cycles. Also, skipping a bleed lock out might mean biocides simply get dumped down the drain and are not given sufficient time to circulate and effectively kill microbials. These features in cooling tower controllers are powerful tools in maintaining the delicate balance of water treatment.

Biofilm

Under suitable conditions, biologicals can attach to surfaces and generate communities. These microbial cities develop a protective slimy film around them which can make it difficult for standard biocides to penetrate. Biodispersants are playing an increasing role in a biological prevention regiment. These chemicals specifically work to loosen microbial deposits and are complementary to a biocide regiment at killing stubborn bacteria. Biofilm is problematic at reducing heat transfer efficiency and at harboring dangerous microbials. People are even actively monitoring biofilm with inline probes.

Conclusion

Biological challenges have the most outward visibility out of any of the 4 pillars in cooling tower control. Headlines are not made from chiller tubes lasting 25% longer due to an excellent inhibitor feed regiment. The third pillar also has the most regulation and potential for costly fines, depending on where you are located. Implementing a strong biological growth control regiment, inclusive of active system treatment and routine handheld testing while keeping other system parameters within acceptable ranges, is another key to successful cooling tower control.

References

Chamberlain, Allison T., et al. Journal of Public Health Management and Practice, Wolters Kluwer Health, Inc., 25 May 2017, www.ncbi.nlm.nih.gov/pmc/articles/PMC5466019/.

var canvas = document.getElementById("28_day_bio"); var ctx = canvas.getContext("2d"); var dpi = window.devicePixelRatio; var boarder = (canvas.width * 0.025); var counter = boarder; var relay_height = (canvas.height * 0.1); var width_c = canvas.width - (2 * boarder); var height_c = canvas.height - (2 * boarder); var first_frame_width = boarder+(0.1*width_c); var second_frame_width = first_frame_width + (0.15*width_c); var third_frame_width = second_frame_width + (0.15*width_c); var fourth_frame_width = third_frame_width + (0.4*width_c); var fifth_frame_width = fourth_frame_width + (0.1*width_c); var meas_bleed_bottom = (height_c * 0.25) + boarder; var meas_ORP_top = (height_c * 0.15) + meas_bleed_bottom; var meas_ORP_bottom = (height_c * 0.4) + meas_ORP_top; var bleed_bottom = height_c - relay_height; var bleed_top = height_c - (2 * relay_height); var bio_bottom = canvas.height - boarder; var bio_top = canvas.height - boarder - relay_height; var init_bleed = (height_c * 0.1) + boarder; var init_ORP = ((meas_ORP_bottom - meas_bleed_bottom - (boarder*2))*0.75) + meas_bleed_bottom; var final_first_frame_bleed; var final_second_frame_bleed; var final_fourth_frame_bleed; var final_fifth_frame_bleed; var i = 0; var bleed_old = init_bleed; var bleed_new = init_bleed; // Cross browser, backward compatible solution (function( window, Date ) { // feature testing var raf = window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || window.oRequestAnimationFrame; window.animLoop = function( render, element ) { var running, lastFrame = +new Date; function loop( now ) { if ( running !== false ) { raf ? raf( loop, element ) : // fallback to setTimeout setTimeout( loop, 16 ); // Make sure to use a valid time, since: // - Chrome 10 doesn't return it at all // - setTimeout returns the actual timeout now = now && now > 1E4 ? now : +new Date; var deltaT = now - lastFrame; // do not render frame when deltaT is too high if ( deltaT < 160 ) { running = render( deltaT, now ); } lastFrame = now; } } loop(); }; })( window, Date ); function fix_dpi() { let style = { height() { return +getComputedStyle(canvas).getPropertyValue('height').slice(0,-2); }, width() { return +getComputedStyle(canvas).getPropertyValue('width').slice(0,-2); } } canvas.setAttribute('width', style.width() * dpi); canvas.setAttribute('height', style.height() * dpi); } function conductivity_line_draw(xpos, ctx){ ctx.beginPath(); //set origional value for bleed if(counter == (boarder+1)){ bleed_old = init_bleed; bleed_new = init_bleed; } //set initial slope for transition if(counter < first_frame_width){ bleed_new = ((boarder-init_bleed)/(first_frame_width-boarder))*(counter-boarder)+init_bleed; bleed_new = bleed_new + ((Math.random() * 4)-2); ctx.moveTo(xpos-1,bleed_old+0.5); ctx.lineTo(xpos,bleed_new+0.5); final_first_frame_bleed = bleed_new; }else if(counter < second_frame_width && counter >= first_frame_width){ bleed_new = ((meas_bleed_bottom-final_first_frame_bleed)/(second_frame_width-first_frame_width-boarder))*(counter-first_frame_width)+final_first_frame_bleed; bleed_new = bleed_new + ((Math.random() * 4)-2); ctx.moveTo(xpos-1,bleed_old+0.5); ctx.lineTo(xpos,bleed_new+0.5); final_second_frame_bleed = bleed_new; }else if (counter < fourth_frame_width && counter >= second_frame_width){ bleed_new = ((boarder-final_second_frame_bleed)/(fourth_frame_width-second_frame_width-boarder))*(counter-second_frame_width)+final_second_frame_bleed; bleed_new = bleed_new + ((Math.random() * 4)-2); ctx.moveTo(xpos-1,bleed_old+0.5); ctx.lineTo(xpos,bleed_new+0.5); final_fourth_frame_bleed = bleed_new; }else if (counter < fifth_frame_width && counter >= fourth_frame_width){ bleed_new = ((meas_bleed_bottom-final_fourth_frame_bleed)/(second_frame_width-first_frame_width-boarder))*(counter-fourth_frame_width)+final_fourth_frame_bleed; bleed_new = bleed_new + ((Math.random() * 4)-2); ctx.moveTo(xpos-1,bleed_old+0.5); ctx.lineTo(xpos,bleed_new+0.5); final_fifth_frame_bleed = bleed_new; }else if(counter >= fifth_frame_width){ bleed_new = ((boarder-final_fifth_frame_bleed)/(fourth_frame_width-second_frame_width-boarder))*(counter-fifth_frame_width)+final_fifth_frame_bleed; bleed_new = bleed_new + ((Math.random() * 4)-2); ctx.moveTo(xpos-1,bleed_old+0.5); ctx.lineTo(xpos,bleed_new+0.5); }else{ } bleed_old = bleed_new; ctx.closePath(); // Stroke Style ctx.lineWidth = 1.5; ctx.strokeStyle = '#000000'; ctx.stroke(); } function ORP_line_draw(xpos,ctx){ ctx.beginPath(); //set origional value for ORP if(counter == (boarder+1)){ ORP_old = init_ORP; ORP_new = init_ORP; } //set initial slope for transition if(counter < second_frame_width){ ORP_new = ORP_new + ((Math.random() * 4)-2); ctx.moveTo(xpos-1,ORP_old); ctx.lineTo(xpos,ORP_new); final_second_frame_ORP = ORP_new; }else if(counter < third_frame_width && counter >= second_frame_width){ ORP_new = ((meas_ORP_top-final_second_frame_ORP)/(third_frame_width-second_frame_width-boarder))*(counter-second_frame_width)+final_second_frame_ORP; ORP_new = ORP_new + ((Math.random() * 2)-1); ctx.moveTo(xpos-1,ORP_old); ctx.lineTo(xpos,ORP_new); final_third_frame_ORP = ORP_new; }else{ ORP_new = (((meas_ORP_bottom+(height_c*0.1))-final_third_frame_ORP)/(width_c))*(counter-third_frame_width)+final_third_frame_ORP; ORP_new = ORP_new + ((Math.random() * 2)-1); ctx.moveTo(xpos-1,ORP_old); ctx.lineTo(xpos,ORP_new); } console.log(xpos); ORP_old = ORP_new; ctx.closePath(); // Stroke Style ctx.lineWidth = 1.5; ctx.strokeStyle = '#FF0000'; ctx.stroke(); } function bleed_relay(xpos, ctx){ ctx.beginPath(); if(counter < first_frame_width){ ctx.moveTo(xpos-1,bleed_bottom); ctx.lineTo(xpos,bleed_bottom); }else if(counter >= first_frame_width && counter < (first_frame_width + 1)){ ctx.moveTo(xpos-1,bleed_bottom); ctx.lineTo(xpos,bleed_top); }else if(counter > first_frame_width && counter < second_frame_width){ ctx.moveTo(xpos-1,bleed_top); ctx.lineTo(xpos,bleed_top); }else if(counter >= second_frame_width && counter < (second_frame_width + 1)){ ctx.moveTo(xpos-1,bleed_top); ctx.lineTo(xpos,bleed_bottom); }else if(counter > second_frame_width && counter < fourth_frame_width){ ctx.moveTo(xpos-1,bleed_bottom); ctx.lineTo(xpos,bleed_bottom); }else if(counter >= fourth_frame_width && counter < (fourth_frame_width + 1)){ ctx.moveTo(xpos-1,bleed_bottom); ctx.lineTo(xpos,bleed_top); }else if(counter > fourth_frame_width && counter < fifth_frame_width){ ctx.moveTo(xpos-1,bleed_top); ctx.lineTo(xpos,bleed_top); }else if(counter >= fifth_frame_width && counter < (fifth_frame_width + 1)){ ctx.moveTo(xpos-1,bleed_top); ctx.lineTo(xpos,bleed_bottom); } else{ ctx.moveTo(xpos-1,bleed_bottom); ctx.lineTo(xpos,bleed_bottom); } ctx.closePath(); // Stroke Style ctx.lineWidth = 1.5; ctx.strokeStyle = '#000000'; ctx.stroke(); } function bio_relay(xpos, ctx){ ctx.beginPath(); //set initial slope for transition if(counter < second_frame_width){ ctx.moveTo(xpos-1,bio_bottom); ctx.lineTo(xpos,bio_bottom); }else if (counter >= second_frame_width && counter < (second_frame_width + 1)){ ctx.moveTo(xpos-1,bio_bottom); ctx.lineTo(xpos,bio_top); }else if(counter < third_frame_width && counter > second_frame_width){ ctx.moveTo(xpos-1,bio_top); ctx.lineTo(xpos,bio_top); }else if (counter >= third_frame_width && counter < (third_frame_width + 1)){ ctx.moveTo(xpos-1,bio_top); ctx.lineTo(xpos,bio_bottom); }else{ ctx.moveTo(xpos-1,bio_bottom); ctx.lineTo(xpos,bio_bottom); } ctx.closePath(); // Stroke Style ctx.lineWidth = 1.5; ctx.strokeStyle = '#FF0000'; ctx.stroke(); } function prebleed(){ $('#text28').html("- Prebleed Event: A pre-bleed event allows water treaters to blow down water ahead of time in order to reduce conductivity ahead of a biocide event. This pre-bleed can be configured for a specific time, a lowered conductivity value, or a combination of both.
Biocide Feed Event: The amount of time biocide is actively dosed into the process. Conductivity will begin to rise and ORP should spike.
Bleed Lockout: While feeding biocide, many water treatment professionals do not want to bleed water from the cooling tower. After injecting biocide, it is often desirable to keep that chemistry in the system to allow for an effective kill cycle. ORP begins to fall, conductivity continues rising.
End Biocide Event: Bleed lockout expires and blowdown valve resumes normal operation."); setTimeout(function(){ window.requestAnimationFrame(draw); }, 1500); } function bio_feed(){ $('#text28').html("Prebleed Event: A pre-bleed event allows water treaters to blow down water ahead of time in order to reduce conductivity ahead of a biocide event. This pre-bleed can be configured for a specific time, a lowered conductivity value, or a combination of both.
- Biocide Feed Event: The amount of time biocide is actively dosed into the process. Conductivity will begin to rise and ORP should spike.
Bleed Lockout: While feeding biocide, many water treatment professionals do not want to bleed water from the cooling tower. After injecting biocide, it is often desirable to keep that chemistry in the system to allow for an effective kill cycle. ORP begins to fall, conductivity continues rising.
End Biocide Event: Bleed lockout expires and blowdown valve resumes normal operation."); setTimeout(function(){ window.requestAnimationFrame(draw); }, 2000); } function bleed_lockout(){ $('#text28').html("Prebleed Event: A pre-bleed event allows water treaters to blow down water ahead of time in order to reduce conductivity ahead of a biocide event. This pre-bleed can be configured for a specific time, a lowered conductivity value, or a combination of both.
Biocide Feed Event: The amount of time biocide is actively dosed into the process. Conductivity will begin to rise and ORP should spike.
- Bleed Lockout: While feeding biocide, many water treatment professionals do not want to bleed water from the cooling tower. After injecting biocide, it is often desirable to keep that chemistry in the system to allow for an effective kill cycle. ORP begins to fall, conductivity continues rising.
End Biocide Event: Bleed lockout expires and blowdown valve resumes normal operation."); setTimeout(function(){ window.requestAnimationFrame(draw); }, 2000); } function bio_end(){ $('#text28').html("Prebleed Event: A pre-bleed event allows water treaters to blow down water ahead of time in order to reduce conductivity ahead of a biocide event. This pre-bleed can be configured for a specific time, a lowered conductivity value, or a combination of both.
Biocide Feed Event: The amount of time biocide is actively dosed into the process. Conductivity will begin to rise and ORP should spike.
Bleed Lockout: While feeding biocide, many water treatment professionals do not want to bleed water from the cooling tower. After injecting biocide, it is often desirable to keep that chemistry in the system to allow for an effective kill cycle. ORP begins to fall, conductivity continues rising.
- End Biocide Event: Bleed lockout expires and blowdown valve resumes normal operation."); setTimeout(function(){ window.requestAnimationFrame(draw); }, 2000); } function pause(){ setTimeout(function(){ window.requestAnimationFrame(draw); }, 2000); } function init_text(){ ctx.font = '8pt Arial'; ctx.save(); ctx.translate((2.5*boarder)/2,meas_bleed_bottom); ctx.rotate(-0.5*Math.PI); ctx.fillText('uS/cm' , 0, 0); ctx.restore(); ctx.save(); ctx.translate((2.5*boarder)/2,(meas_ORP_top+(0.15*height_c))); ctx.rotate(-0.5*Math.PI); ctx.fillText('ORP' , 0, 0); ctx.restore(); ctx.save(); ctx.translate((2.5*boarder)/2,bleed_bottom); ctx.rotate(-0.5*Math.PI); ctx.fillText('Bleed' , 0, 0); ctx.restore(); ctx.save(); ctx.translate((2.5*boarder)/2,bio_bottom); ctx.rotate(-0.5*Math.PI); ctx.fillText('Bio' , 0, 0); ctx.restore(); } function fix_dpi() { //create a style object that returns width and height let style = { height() { return +getComputedStyle(canvas).getPropertyValue('height').slice(0,-2); }, width() { return +getComputedStyle(canvas).getPropertyValue('width').slice(0,-2); } } //set the correct attributes for a crystal clear image! canvas.setAttribute('width', style.width() * dpi); canvas.setAttribute('height', style.height() * dpi); } function draw(){ if(counter > (width_c + boarder)){ counter = boarder+(0.05*width_c); ctx.setTransform(1, 0, 0, 1, 0, 0); ctx.clearRect(0,0, canvas.width, canvas.height); init_text(); } counter++; conductivity_line_draw(counter,ctx); ORP_line_draw(counter,ctx); bleed_relay(counter,ctx); bio_relay(counter,ctx); if(counter >= first_frame_width && counter < (first_frame_width + 1)){ prebleed(); }else if(counter >= second_frame_width && counter < (second_frame_width + 1)){ bio_feed(); }else if(counter >= third_frame_width && counter < (third_frame_width + 1)){ bleed_lockout(); }else if(counter >= fourth_frame_width && counter < (fourth_frame_width + 1)){ bio_end(); }else if(counter >= fifth_frame_width && counter < (fifth_frame_width + 1)){ pause(); }else{ window.requestAnimationFrame(draw); } i++; } fix_dpi(); init_text(); draw();
Watermark Equipment Tips

FREE
VIEW