ISO 9001 · 14001 · 45001

An Advanced Water Treatment Equipment Company

Manual Bar Screen

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

Low-cost screening for smaller plants and standby channels

Adroit’s Manual Bar Screen is a simple and reliable way to remove floating and solid waste from sewage, industrial effluent and storm water. There are no motors or moving parts. The screen is made to fit your channel, installed at an incline and cleaned with a rake.
We make manual bar screens in SS 304 or SS 316 with bar spacing from 6 mm upwards. They are commonly used as the main screen in smaller STPs and ETPs, and as the standby or bypass screen alongside a mechanical screen in larger plants.

Where a manual bar screen fits

Application

The first step in treating wastewater is to remove rags, plastics and floating debris that could damage pumps and obstruct downstream units. In plants where the flow and debris load are low to moderate, a manual bar screen provides a simple screening solution with lower initial investment than a mechanical screen.
In larger plants, a manual screen is usually installed in the bypass channel next to the mechanical screen, so the plant keeps running while the mechanical screen is being serviced.

How a manual bar screen works

Operation

The screen is a row of parallel bars fixed in a frame, installed across the channel at an inclined angle so the operator can rake it easily. Water passes between the bars and debris larger than the bar spacing is held on the screen.

An operator cleans the screen at regular intervals with a rake, pulling the debris up the bars on to a platform or tray at the top, from where it is removed for disposal. The bar spacing decides what size of debris is removed.

Where manual bar screens are used

Application areas

Municipal and industrial treatment plants

Main inlet screen in small plants; bypass screen in large ones.

Power plants and cooling water systems

Removes larger debris before pumps.

Food processing industries

Simple pre-screening of process wastewater.

Textile and paper industries

Removes rags, fibres and coarse debris from effluent.

Storm water and drainage systems

Screens floating waste in drains and nalas.

Why choose Adroit's manual bar screen

Features & advantages

Stainless steel construction

SS 304 or SS 316 for durability and corrosion resistance in wastewater.

Effective screening

Removes rags, plastics, floating solids and other debris before they reach pumps.

Easy cleaning

Cleaned with a simple rake; no power, no controls.

Made to your channel

Bar spacing, bar size, width and depth are made to suit each site.

Low cost to buy and run

Low initial investment and very low maintenance compared with mechanical screens.

Manual bar screen dimensions and construction

Dimensions & manufacturing

6 mm and above

Bar spacing

Stainless Steel 304 / 316

Material of construction

As per client requirement

Channel width and depth

Inclined, in channel

Installation

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

Automatic Grab Screen

Screening & Conveying

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

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 Manual Bar 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();
  }
})();