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
When should I choose a grab screen instead of a raking screen?
A grab screen is suited to large or heavy debris such as logs, branches and vegetation, and to deep or wide channels where intermittent cleaning is appropriate. For continuous sewage screening with regular debris loads, a mechanically raked screen such as Rakeflow® may be considered depending on the project requirement.
What kind of debris can a grab screen remove?
Logs, branches, rags, plastics, water hyacinth and other large floating or suspended material.
Can one grab clean more than one screen?
Yes. Mounted on a travelling trolley, a single grab can serve several bar racks across a wide intake.
Can it be fitted to an existing intake?
Yes. The grab, trolley and lifting arrangement are designed around the existing screen width, channel depth and site layout.
Where do the screenings go?
The grab discharges into a chute, a belt or screw conveyor, a compactor or a skip, depending on the site.
Brochures, datasheets & media
Downloads
Documents
files
Photos
photos
Videos
videos
Explore more solutions
Related technologies
Belt Conveyor
Troughed belt conveyors that carry screenings, grit and sludge over long distances with low power and minimal spillage.
Screw Conveyor
Enclosed shafted and shaftless screw conveyors that move screenings, grit and dewatered sludge without spillage and with minimal odour.
J-Type Manual Screen
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.
Manual Bar Screen
Simple, rugged stainless steel coarse bar screen for STPs, ETPs and drains, with bar spacing from 6 mm upwards.
Rotary Drum Screen
Compact fine screen with a slowly rotating drum, continuous spray or brush cleaning and apertures from 1 mm to 6 mm.
Rakeflow® Multi-Rake Mechanical Bar Screen
Heavy-duty mechanical bar screen for STP inlets, pumping stations and storm water drains, with several rakes cleaning the screen at once.
Stepflow® Step Screen
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.
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.
Call us
+91 70248-48383Email
[email protected]
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();
}
})();