ISO 9001 · 14001 · 45001

An Advanced Water Treatment Equipment Company

Chain Flight Sludge Scraper

Continuous sludge and scum collection for rectangular settling tanks, driven slowly and steadily by heavy-duty chains.

Sludge collection for rectangular tanks

Adroit’s Chain Flight Sludge Scraper collects settled sludge and floating scum in rectangular sedimentation tanks. Scraper flights, carried by chains along the tank, push sludge on the floor to a hopper and move scum on the surface to a scum trough, in one continuous movement.

It is used in water treatment plants, sewage treatment plants and industrial effluent plants that use rectangular clarifiers, including layouts where adjoining tanks share common walls.

Where a chain and flight scraper is used

Application

Rectangular tanks need a different collector from circular ones. A chain and flight scraper covers the whole floor of a long tank, moving sludge steadily to one end without stirring up the settled layer. It is used for primary and secondary sedimentation tanks and for settling basins in process industries.

How the chain flight scraper works

Operation

Heavy-duty chains run in a loop around sprockets fixed to the tank walls. Scraper flights are attached across the tank between the chains.

On the bottom run, the flights travel slowly along the tank floor and push settled sludge towards the hopper. On the return run near the surface, the same flights push floating scum towards the scum trough. The chains move slowly so the settled sludge is moved without being disturbed and carried back into suspension. A low-speed drive keeps power use and wear low.

Where chain flight scrapers are used

Application areas

Municipal sewage treatment plants

Primary and secondary rectangular sedimentation tanks.

Water treatment plants

Rectangular sedimentation tanks.

Industrial effluent treatment plants

Sludge and scum removal in ETP settling tanks.

Process industries

Clarifiers and settling basins.

Why choose Adroit's chain flight scraper

Features & advantages

Sludge and scum in one system

Floor sludge and surface scum removed by the same flights.

Continuous operation

Steady sludge collection without batch cleaning.

Corrosion-resistant chains and flights

Heavy-duty components for long life in wastewater.

Low speed, low energy

Less wear and lower power consumption.

Easy maintenance

Minimal downtime for routine checks.

Made to fit

Designed for rectangular tanks of different lengths, widths and depths.

Design basis

Dimensions & manufacturing

Rectangular sedimentation tank / clarifier

Tank type

Chains, sprockets and scraper flights

Arrangement

Low-speed geared drive

Drive

Designed to suit the tank

Tank dimensions

Corrosion-resistant chains and flights

Materials

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

Grit Mechanism (Detritor)

Clarification & Separation

Square detritor with rotating scraper and reciprocating rake classifier that settles, collects and washes grit before it can wear out pumps and fill up tanks.

View product

Clarifier

Clarification & Separation

Scraper mechanisms for circular primary and secondary clarifiers, with bridge and drive arrangements matched to tank size.

View product

Clariflocculator

Clarification & Separation

Flocculation and clarification in one circular tank, designed to CPHEEO guidelines, in full bridge, half bridge, central and peripheral drive versions up to 60 m diameter.

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 Chain Flight Sludge Scraper

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