ISO 9001 · 14001 · 45001

An Advanced Water Treatment Equipment Company

Automatic Grab Screen

Heavy-duty grab cleaner for coarse bar racks at intakes, pumping stations and treatment plants, built for logs, vegetation and bulky debris.

Coarse screening for bulky debris and deep channels

Adroit’s Grab Screen removes large floating and suspended debris from intake channels, pumping stations and treatment plant inlets. A grab bucket lowers into the channel, closes on the debris held against the bar rack, and lifts it out. It is built for places where a raking screen would be damaged or cannot reach: deep channels, wide intakes, and water carrying logs, branches, water hyacinth and heavy plastics.
The grab screen can be supplied for manual, semi-automatic or fully automatic operation, depending on how much debris the site gets and how much operator time is available.

Where a grab screen makes sense

Application

Grab screens are used on coarse bar racks, where the debris is too big or too heavy for a continuously running rake. Because the grab works intermittently, it can deal with sudden heavy loads, such as vegetation arriving at a river intake after rain, without running all day.

The same arrangement is used at sewage pumping stations to protect pumps from bulky solids, and at dams, canals and irrigation structures with large open water surfaces.

How the grab screen works

Operation

The grab mechanism hangs from a trolley or hoist above the channel. To clean the screen, the open grab is lowered along the bar rack to the bottom of the channel. It closes on the accumulated debris and is lifted out of the water.
At the top, the grab travels to the discharge point and releases the debris into a chute, a conveyor or a collection bin. It then returns and lowers for the next cycle. On a travelling trolley, one grab can serve several screen bays across a wide intake.
Cycles can be started by an operator, by a timer, or automatically from a level-difference signal across the bar rack.

Where grab screens are installed

Application areas

Removes logs, vegetation and floating debris at raw water intake structures.

Sewage treatment plants and pumping stations

Protects pumps from bulky solids and rags in deep wet wells.

Industrial effluent treatment plants

Coarse screening where large debris can enter the inlet.

Power plants

Keeps raw water and cooling water intake channels clear.

Dams, canals and irrigation projects

Handles vegetation and large floating debris on open water bodies.

Why choose Adroit's grab screen

Features & advantages

Handles bulky and irregular debris

Designed for logs, rags, plastics, vegetation and other bulky debris.

Deep and hard-to-reach channels

Works in deep channels and difficult installations without anyone going into the channel.

Choice of automation

Manual, semi-automatic or fully automatic operation to suit site staffing and debris load.

Heavy-duty construction

Built for long service life and low maintenance.

Designed around your structure

Grab size, lifting height and trolley travel are matched to screen width, channel depth and site layout.

Integrates with waste handling

Discharges to conveyors, compactors or bins.

Design basis

Dimensions & manufacturing

Designed to suit the project

Screen width and channel depth

Trolley or hoist

Grab suspension

Manual / semi-automatic / fully automatic

Operation

Chute, conveyor or collection bin

Discharge

Debris type and quantity, channel geometry, lifting height, number of bays, disposal arrangement

Design inputs

Frequently asked questions

FAQ

Brochures, datasheets & media

Downloads

Documents

files

No documents are available for this product.

Photos

photos

No media available for this product.

Videos

videos

No videos are available for this product.

Explore more solutions

Related technologies

Belt Conveyor

Screening & Conveying

Troughed belt conveyors that carry screenings, grit and sludge over long distances with low power and minimal spillage.

View product

Screw Conveyor

Screening & Conveying

Enclosed shafted and shaftless screw conveyors that move screenings, grit and dewatered sludge without spillage and with minimal odour.

View product

J-Type Manual Screen

Screening & Conveying

Lift-out coarse screen for large debris in deep channels and sumps. Raised by hoist, emptied and lowered back, with no one entering the channel.

View product

Manual Bar Screen

Screening & Conveying

Simple, rugged stainless steel coarse bar screen for STPs, ETPs and drains, with bar spacing from 6 mm upwards.

View product

Rotary Drum Screen

Screening & Conveying

Compact fine screen with a slowly rotating drum, continuous spray or brush cleaning and apertures from 1 mm to 6 mm.

View product

Rakeflow® Multi-Rake Mechanical Bar Screen

Screening & Conveying

Heavy-duty mechanical bar screen for STP inlets, pumping stations and storm water drains, with several rakes cleaning the screen at once.

View product

Stepflow® Step Screen

Screening & Conveying

A high-performance, reliable fine-screening solution for municipal and industrial water and wastewater primary treatment. Overlapping fixed and moving lamellae remove fine solids and waste — self-cleaning, with low head-loss.

View product

Need fine screening sized for your inlet works?

Send us your flow rate, channel dimensions and the fine-solids you need to capture — our engineers will recommend the right Stepflow configuration.

    Enquire about Automatic Grab Screen

    Product enquiry

    Tell us about your requirement and we’ll respond with specifications, references and pricing.

Request a quotation

Fields marked * are required. We typically respond within one business day.

(() => {
  if (window.adroitEnquiryButtonsReady) return;

  window.adroitEnquiryButtonsReady = true;

  const rootSelector = ".adroit-contact-form";

  const buttonSelector = [
    "#wsf-1-field-38",
    "#wsf-1-field-39",
  ].join(", ");

  const values = {
    "wsf-1-field-38": "Product Enquiry",
    "wsf-1-field-39": "Service Request",
  };

  function getFormRoot(element) {
    return element.closest(rootSelector);
  }

  function getHiddenField(form) {
    let field = form.querySelector(
      'input[data-enquiry-type-field="true"]'
    );

    if (!field) {
      field = document.createElement("input");
      field.type = "hidden";
      field.name = "inquiry_type";
      field.dataset.enquiryTypeField = "true";

      form.appendChild(field);
    }

    return field;
  }

  function getErrorRow(formRoot) {
    let errorRow = formRoot.querySelector(
      '[data-enquiry-error-row="true"]'
    );

    if (errorRow) return errorRow;

    const fieldsGrid = formRoot.querySelector(".wsf-fields");
    const firstField = formRoot.querySelector(
      "#wsf-1-field-wrapper-20"
    );

    if (!fieldsGrid || !firstField) return null;

    errorRow = document.createElement("div");
    errorRow.className =
      "wsf-extra-small-12 wsf-tile wsf-field-wrapper";
    errorRow.dataset.enquiryErrorRow = "true";
    errorRow.hidden = true;

    const errorMessage = document.createElement("div");
    errorMessage.className = "wsf-invalid-feedback";
    errorMessage.textContent = "This field is required.";
    errorMessage.setAttribute("aria-live", "polite");

    errorRow.appendChild(errorMessage);

    fieldsGrid.insertBefore(errorRow, firstField);

    return errorRow;
  }

  function showError(formRoot) {
    const errorRow = getErrorRow(formRoot);

    if (!errorRow) return;

    errorRow.hidden = false;

    const errorMessage = errorRow.querySelector(
      ".wsf-invalid-feedback"
    );

    if (errorMessage) {
      errorMessage.style.display = "block";
    }

    formRoot.querySelectorAll(buttonSelector).forEach((button) => {
      button.classList.add("is-invalid");
      button.setAttribute("aria-invalid", "true");
    });
  }

  function clearError(formRoot) {
    const errorRow = formRoot.querySelector(
      '[data-enquiry-error-row="true"]'
    );

    if (errorRow) {
      errorRow.hidden = true;
    }

    formRoot.querySelectorAll(buttonSelector).forEach((button) => {
      button.classList.remove("is-invalid");
      button.removeAttribute("aria-invalid");
    });
  }

  function hasSelection(formRoot) {
    return Boolean(
      formRoot.querySelector(
        "#wsf-1-field-38.is-selected, #wsf-1-field-39.is-selected"
      )
    );
  }

  function validateEnquiry(formRoot) {
    if (hasSelection(formRoot)) {
      clearError(formRoot);
      return true;
    }

    showError(formRoot);
    return false;
  }

  function selectButton(button) {
    const formRoot = getFormRoot(button);
    const form = button.closest("form");

    if (!formRoot || !form) return;

    formRoot.querySelectorAll(buttonSelector).forEach((item) => {
      const isSelected = item === button;

      item.classList.toggle("is-selected", isSelected);
      item.setAttribute("aria-pressed", String(isSelected));
    });

    getHiddenField(form).value = values[button.id] || "";

    clearError(formRoot);
  }

  /*
   * Window capture runs before WS Form's button click handler.
   * This stops WS Form AJAX submission only when enquiry type is missing.
   */
  window.addEventListener(
    "click",
    (event) => {
      const enquiryButton = event.target.closest(
        `${rootSelector} #wsf-1-field-38, ${rootSelector} #wsf-1-field-39`
      );

      if (enquiryButton) {
        selectButton(enquiryButton);
        return;
      }

      const submitButton = event.target.closest(
        `${rootSelector} button[type="submit"], ${rootSelector} input[type="submit"]`
      );

      if (!submitButton) return;

      const formRoot = getFormRoot(submitButton);

      if (!formRoot) return;

      if (validateEnquiry(formRoot)) return;

      event.preventDefault();
      event.stopImmediatePropagation();
    },
    true
  );

  /*
   * Covers pressing Enter in a form field.
   */
  window.addEventListener(
    "submit",
    (event) => {
      const form = event.target;

      if (!(form instanceof HTMLFormElement)) return;

      const formRoot = getFormRoot(form);

      if (!formRoot) return;

      if (validateEnquiry(formRoot)) return;

      event.preventDefault();
      event.stopImmediatePropagation();
    },
    true
  );

  function initialize() {
    document.querySelectorAll(rootSelector).forEach((formRoot) => {
      const form = formRoot.querySelector("form");

      formRoot.querySelectorAll(buttonSelector).forEach((button) => {
        button.classList.remove("is-selected", "is-invalid");
        button.removeAttribute("aria-invalid");
        button.setAttribute("aria-pressed", "false");
      });

      clearError(formRoot);

      if (form) {
        getHiddenField(form).value = "";
      }
    });
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initialize, {
      once: true,
    });
  } else {
    initialize();
  }
})();