{"id":2870,"date":"2026-05-13T09:42:35","date_gmt":"2026-05-13T09:42:35","guid":{"rendered":"https:\/\/masstechx.com\/?page_id=2870"},"modified":"2026-05-13T09:50:42","modified_gmt":"2026-05-13T09:50:42","slug":"feedwater-ro-fit-checker","status":"publish","type":"page","link":"https:\/\/masstechx.com\/pt\/water-treatment-system\/feedwater-ro-fit-checker\/","title":{"rendered":"Verificador RO-Fit de \u00e1gua de alimenta\u00e7\u00e3o"},"content":{"rendered":"<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-4fd2d63\" data-block-id=\"4fd2d63\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-4fd2d63-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-c24d0d9\" data-v=\"4\" data-block-id=\"c24d0d9\"><style>.stk-c24d0d9-container{margin-top:30px !important;margin-right:30px !important;margin-bottom:30px !important;margin-left:30px !important;}<\/style><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-c24d0d9-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-c24d0d9-inner-blocks\">\n<h1>Verificador RO-Fit de \u00e1gua de alimenta\u00e7\u00e3o<\/h1>\n<\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-546a8b9\" data-block-id=\"546a8b9\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-546a8b9-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-971d45b\" data-v=\"4\" data-block-id=\"971d45b\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-971d45b-container stk--no-background stk--no-padding\"><div class=\"has-text-align-center stk-block-content stk-inner-blocks stk-971d45b-inner-blocks\"><div class=\"ct-breadcrumbs\" data-source=\"rankmath\" ><nav aria-label=\"p\u00e3o ralado\" class=\"rank-math-breadcrumb\"><p><span class=\"last\">Casa<\/span><\/p><\/nav><\/div><\/div><\/div><\/div>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-stackable-columns alignfull stk-block-columns stk-block stk-f5cc2f6\" data-block-id=\"f5cc2f6\"><div class=\"stk-row stk-inner-blocks stk-block-content stk-content-align stk-f5cc2f6-column alignfull\">\n<div class=\"wp-block-stackable-column stk-block-column stk-column stk-block stk-b6c58fd\" data-v=\"4\" data-block-id=\"b6c58fd\"><div class=\"stk-column-wrapper stk-block-column__content stk-container stk-b6c58fd-container stk--no-background stk--no-padding\"><div class=\"stk-block-content stk-inner-blocks stk-b6c58fd-inner-blocks\">\n<div id=\"mass-ro-fit-module\">\n  <style>\n    \/* ==========================================================================\n       Mass Technology - Feedwater RO-Fit Checker (Strictly Scoped)\n       ========================================================================== *\/\n    \n    \/* 1. Highest Level of Scope: Variables & Reset *\/\n    #mass-ro-fit-module {\n      --brand: #0078C0;\n      --brand-hover: #005A91;\n      --accent: #7860A8;\n      --accent-hover: #5e4691;\n      --ink: #1a1f29;\n      --muted: #6b7280;\n      --bg-alt: #f5f7fa;\n      --line: #e4e7ec;\n      --warn: #b45309;\n      --ok: #0f766e;\n      --err: #b91c1c;\n      \n      width: 100% !important;\n      background-color: var(--bg-alt) !important; \/* Full-Bleed Background *\/\n      font-family: inherit !important;\n      color: var(--ink) !important;\n      line-height: 1.6 !important;\n      box-sizing: border-box !important;\n      display: block !important;\n    }\n\n    #mass-ro-fit-module * {\n      box-sizing: inherit !important;\n    }\n\n    \/* 2. Anchored Content (Container) *\/\n    #mass-ro-fit-module .m-container {\n      width: 100% !important;\n      max-width: 1600px !important;\n      margin: 0 auto !important;\n      padding: 40px 70px !important; \/* \u5f39\u6027\u951a\u5b9a padding *\/\n    }\n\n    \/* 3. Tool Card Layout *\/\n    #mass-ro-fit-module .m-tool-card {\n      max-width: 920px !important;\n      margin: 0 auto !important;\n      background: #ffffff !important;\n      border-radius: 10px !important;\n      box-shadow: 0 4px 18px rgba(15,30,60,0.08) !important;\n      overflow: hidden !important;\n    }\n\n    \/* 4. Semantic Headings *\/\n    #mass-ro-fit-module .m-tool-head {\n      background: linear-gradient(135deg, var(--brand) 0%, var(--accent) 130%) !important;\n      color: #ffffff !important;\n      padding: 32px 40px !important;\n      text-align: center !important;\n    }\n\n    #mass-ro-fit-module h2.m-h2-title {\n      color: #ffffff !important;\n      font-size: 28px !important;\n      font-weight: 700 !important;\n      margin: 0 0 12px 0 !important;\n      line-height: 1.3 !important;\n      border: none !important;\n      padding: 0 !important;\n    }\n\n    #mass-ro-fit-module h4.m-h4-subtitle {\n      color: rgba(255, 255, 255, 0.92) !important;\n      font-size: 15px !important;\n      font-weight: 400 !important;\n      margin: 0 !important;\n      line-height: 1.5 !important;\n    }\n\n    \/* 5. Form Fields & Grid *\/\n    #mass-ro-fit-module .m-tool-body {\n      padding: 40px !important;\n    }\n\n    #mass-ro-fit-module .m-grid {\n      display: grid !important;\n      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;\n      gap: 20px !important;\n      margin-bottom: 24px !important;\n    }\n\n    #mass-ro-fit-module .m-field label {\n      display: block !important;\n      font-weight: 600 !important;\n      margin-bottom: 8px !important;\n      font-size: 14px !important;\n      color: var(--ink) !important;\n    }\n\n    #mass-ro-fit-module .m-field input {\n      width: 100% !important;\n      padding: 12px 14px !important;\n      border: 1px solid var(--line) !important;\n      border-radius: 6px !important;\n      font-size: 15px !important;\n      background: #ffffff !important;\n      color: var(--ink) !important;\n      font-family: inherit !important;\n      box-shadow: none !important;\n      transition: border-color 0.2s ease, box-shadow 0.2s ease !important;\n    }\n\n    #mass-ro-fit-module .m-field input:focus {\n      outline: none !important;\n      border-color: var(--brand) !important;\n      box-shadow: 0 0 0 3px rgba(0, 120, 192, 0.12) !important;\n    }\n\n    #mass-ro-fit-module .m-hint {\n      font-size: 12.5px !important;\n      color: var(--muted) !important;\n      margin-top: 6px !important;\n      display: block !important;\n    }\n\n    #mass-ro-fit-module .m-btn {\n      display: inline-flex !important;\n      justify-content: center !important;\n      align-items: center !important;\n      width: 100% !important;\n      padding: 16px !important;\n      background: var(--brand) !important;\n      color: #ffffff !important;\n      border: none !important;\n      border-radius: 6px !important;\n      font-size: 16px !important;\n      font-weight: 600 !important;\n      cursor: pointer !important;\n      transition: background 0.2s ease !important;\n      font-family: inherit !important;\n    }\n\n    #mass-ro-fit-module .m-btn:hover {\n      background: var(--brand-hover) !important;\n    }\n\n    \/* 6. Results Section *\/\n    #mass-ro-fit-module .m-result-box {\n      display: none !important;\n      margin-top: 30px !important;\n      padding: 28px !important;\n      background: var(--bg-alt) !important;\n      border-left: 4px solid var(--brand) !important;\n      border-radius: 6px !important;\n      animation: msFadeIn 0.4s ease forwards !important;\n    }\n\n    #mass-ro-fit-module .m-result-box.show {\n      display: block !important;\n    }\n\n    @keyframes msFadeIn {\n      from { opacity: 0; transform: translateY(10px); }\n      to { opacity: 1; transform: translateY(0); }\n    }\n\n    #mass-ro-fit-module h3.m-h3-title {\n      margin: 0 0 16px 0 !important;\n      color: var(--brand) !important;\n      font-size: 18px !important;\n      font-weight: 700 !important;\n      border: none !important;\n      padding: 0 !important;\n    }\n\n    \/* 7. Checklist Styling *\/\n    #mass-ro-fit-module .m-check {\n      padding: 12px 16px !important;\n      margin: 10px 0 !important;\n      border-radius: 6px !important;\n      font-size: 14px !important;\n      display: flex !important;\n      justify-content: space-between !important;\n      align-items: center !important;\n    }\n\n    #mass-ro-fit-module .m-check.pass { background: #ecfdf5 !important; border-left: 4px solid var(--ok) !important; color: var(--ok) !important; }\n    #mass-ro-fit-module .m-check.warn { background: #fef3c7 !important; border-left: 4px solid var(--warn) !important; color: var(--warn) !important; }\n    #mass-ro-fit-module .m-check.fail { background: #fee2e2 !important; border-left: 4px solid var(--err) !important; color: var(--err) !important; }\n\n    #mass-ro-fit-module .m-check strong {\n      display: block !important;\n      color: var(--ink) !important;\n      font-size: 14.5px !important;\n    }\n\n    #mass-ro-fit-module .m-check small {\n      color: var(--muted) !important;\n      font-size: 12.5px !important;\n      display: block !important;\n      margin-top: 4px !important;\n    }\n\n    #mass-ro-fit-module .m-check-value {\n      text-align: right !important;\n      font-weight: 500 !important;\n    }\n\n    \/* 8. Stack Recommendation Box *\/\n    #mass-ro-fit-module .m-stack {\n      margin-top: 24px !important;\n      padding: 20px !important;\n      background: #ffffff !important;\n      border: 1px solid var(--line) !important;\n      border-radius: 6px !important;\n    }\n\n    #mass-ro-fit-module h4.m-h4-stack-title {\n      margin: 0 0 14px 0 !important;\n      font-size: 14px !important;\n      color: var(--brand) !important;\n      text-transform: uppercase !important;\n      letter-spacing: 0.04em !important;\n      font-weight: 700 !important;\n      border: none !important;\n      padding: 0 !important;\n    }\n\n    #mass-ro-fit-module .m-stack ol {\n      margin: 0 !important;\n      padding-left: 24px !important;\n      font-size: 14px !important;\n      color: var(--ink) !important;\n    }\n\n    #mass-ro-fit-module .m-stack ol li {\n      margin-bottom: 6px !important;\n    }\n\n    #mass-ro-fit-module .m-verdict {\n      margin-top: 20px !important;\n      font-size: 15px !important;\n      font-weight: 600 !important;\n      line-height: 1.5 !important;\n    }\n\n    \/* 9. CTA Button *\/\n    #mass-ro-fit-module .m-cta {\n      display: inline-flex !important;\n      justify-content: center !important;\n      margin-top: 20px !important;\n      padding: 14px 24px !important;\n      background: var(--accent) !important;\n      color: #ffffff !important;\n      text-decoration: none !important;\n      border-radius: 6px !important;\n      font-weight: 600 !important;\n      font-size: 14px !important;\n      transition: background 0.2s ease !important;\n    }\n\n    #mass-ro-fit-module .m-cta:hover {\n      background: var(--accent-hover) !important;\n    }\n\n    \/* Responsive *\/\n    @media (max-width:690px) {\n      #mass-ro-fit-module .m-container { padding: 30px 20px !important; }\n      #mass-ro-fit-module .m-tool-body { padding: 24px !important; }\n      #mass-ro-fit-module .m-tool-head { padding: 24px !important; }\n      #mass-ro-fit-module .m-check { flex-direction: column !important; align-items: flex-start !important; }\n      #mass-ro-fit-module .m-check-value { text-align: left !important; margin-top: 8px !important; font-size: 13.5px !important;}\n    }\n  <\/style>\n\n  <div class=\"m-full-bleed-bg\">\n    <div class=\"m-container\">\n      \n      <div class=\"m-tool-card\">\n        <div class=\"m-tool-head\">\n          <h2 class=\"m-h2-title\">Verificador RO-Fit de \u00e1gua de alimenta\u00e7\u00e3o<\/h2>\n          <h4 class=\"m-h4-subtitle\">Digite sua an\u00e1lise de \u00e1gua bruta N\u00f3s fazemos benchmark contra os limites de \u00e1gua de alimenta\u00e7\u00e3o DOW FilmTec BW30 e recomendamos a pilha de pr\u00e9-tratamento que seu RO precisa.<\/h4>\n        <\/div>\n        \n        <div class=\"m-tool-body\">\n          <div class=\"m-grid\">\n            <div class=\"m-field\">\n              <label for=\"ms-fit-tds\">TDS (ppm)<\/label>\n              <input type=\"number\" id=\"ms-fit-tds\" value=\"800\" min=\"50\" max=\"40000\">\n              <span class=\"m-hint\">S\u00f3lidos Total Dissolvidos<\/span>\n            <\/div>\n            <div class=\"m-field\">\n              <label for=\"ms-fit-hardness\">Dureza (ppm como CaCO3)<\/label>\n              <input type=\"number\" id=\"ms-fit-hardness\" value=\"250\" min=\"0\" max=\"2000\">\n            <\/div>\n            <div class=\"m-field\">\n              <label for=\"ms-fit-chlorine\">Cloro Livre (mg\/L)<\/label>\n              <input type=\"number\" id=\"ms-fit-chlorine\" value=\"0.4\" min=\"0\" max=\"10\" step=\"0.1\">\n            <\/div>\n            <div class=\"m-field\">\n              <label for=\"ms-fit-turbidity\">Turbidez (NTU)<\/label>\n              <input type=\"number\" id=\"ms-fit-turbidity\" value=\"2.5\" min=\"0\" max=\"50\" step=\"0.1\">\n            <\/div>\n            <div class=\"m-field\">\n              <label for=\"ms-fit-iron\">Ferro (mg\/L)<\/label>\n              <input type=\"number\" id=\"ms-fit-iron\" value=\"0.15\" min=\"0\" max=\"5\" step=\"0.01\">\n            <\/div>\n            <div class=\"m-field\">\n              <label for=\"ms-fit-sdi\">IDE estimado<\/label>\n              <input type=\"number\" id=\"ms-fit-sdi\" value=\"6\" min=\"0\" max=\"20\" step=\"0.1\">\n              <span class=\"m-hint\">Do teste densidade lodo<\/span>\n            <\/div>\n          <\/div>\n          \n          <button class=\"m-btn\" onclick=\"msCheckFeedwaterFit()\">Verifique o ajuste da \u00e1gua de alimenta\u00e7\u00e3o<\/button>\n\n          <div id=\"ms-fit-result\" class=\"m-result-box\">\n            <h3 class=\"m-h3-title\">Relat\u00f3rio de compatibilidade de \u00e1gua de alimenta\u00e7\u00e3o<\/h3>\n            <div id=\"ms-fit-checks\"><\/div>\n            \n            <div class=\"m-stack\">\n              <h4 class=\"m-h4-stack-title\">Pilha de pr\u00e9-tratamento recomendada<\/h4>\n              <ol id=\"ms-fit-stack\"><\/ol>\n            <\/div>\n            \n            <div id=\"ms-fit-verdict\" class=\"m-verdict\"><\/div>\n            \n            <a class=\"m-cta\" href=\"#ct-popup-813\" onclick=\"event.preventDefault(); window.location.hash = 'ct-popup-813';\">Solicite revis\u00e3o completa de engenharia<\/a>\n          <\/div>\n        <\/div>\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n  <script>\n    \/* Scoped Vanilla JS Function *\/\n    function msCheckFeedwaterFit() {\n      const tds = +document.getElementById('ms-fit-tds').value;\n      const hardness = +document.getElementById('ms-fit-hardness').value;\n      const chlorine = +document.getElementById('ms-fit-chlorine').value;\n      const turbidity = +document.getElementById('ms-fit-turbidity').value;\n      const iron = +document.getElementById('ms-fit-iron').value;\n      const sdi = +document.getElementById('ms-fit-sdi').value;\n\n      const checksDiv = document.getElementById('ms-fit-checks');\n      const stackEl = document.getElementById('ms-fit-stack');\n      checksDiv.innerHTML = ''; \n      stackEl.innerHTML = '';\n\n      function addCheck(label, value, target, status, note){\n        const div = document.createElement('div');\n        div.className = 'm-check ' + status;\n        div.innerHTML = '<div><strong>'+label+'<\/strong><small>'+note+'<\/small><\/div><div class=\"m-check-value\">'+value+'<br><span style=\"font-size:12px;opacity:0.8;\">target '+target+'<\/span><\/div>';\n        checksDiv.appendChild(div);\n      }\n      \n      function addStage(text){\n        const li = document.createElement('li'); \n        li.textContent = text; \n        stackEl.appendChild(li);\n      }\n\n      \/\/ TDS check (DOW BW30 standard: tested at 2,000 ppm NaCl; BWRO for higher)\n      let tdsStatus, tdsNote;\n      if (tds < 2000) { tdsStatus = 'pass'; tdsNote = 'Within BW30 standard test range'; }\n      else if (tds < 5000) { tdsStatus = 'warn'; tdsNote = 'Use BWRO config (higher pressure)'; }\n      else { tdsStatus = 'fail'; tdsNote = 'Requires seawater RO (SWRO) \u2014 separate config'; }\n      addCheck('TDS', tds+' ppm', '<2000 (BW30)', tdsStatus, tdsNote);\n\n      \/\/ Hardness \u2014 must be reduced below 1 ppm before RO\n      let hardStatus = hardness > 1 ? 'warn' : 'pass';\n      addCheck('Hardness', hardness+' ppm', '<1 (post-softener)', hardStatus,\n        hardness > 1 ? 'Cation softener required upstream of RO' : 'Already RO-ready');\n\n      \/\/ Chlorine \u2014 DOW BW30 destroyed by Cl. Max <0.1 mg\/L feedwater.\n      let clStatus = chlorine >= 0.1 ? 'fail' : 'pass';\n      addCheck('Free Chlorine', chlorine+' mg\/L', '<0.1 (post-carbon)', clStatus,\n        chlorine >= 0.1 ? 'Activated carbon filter required \u2014 membrane oxidation risk' : 'RO-safe');\n\n      \/\/ Turbidity \u2014 should be <0.5 NTU post-sand\n      let turbStatus = turbidity > 1 ? 'warn' : 'pass';\n      addCheck('Turbidity', turbidity+' NTU', '<0.5 (post-sand)', turbStatus,\n        turbidity > 1 ? 'Multi-media sand filter required' : 'Low turbidity');\n\n      \/\/ Iron \u2014 should be <0.1 mg\/L\n      let feStatus = iron > 0.1 ? 'warn' : 'pass';\n      addCheck('Iron', iron+' mg\/L', '<0.05 (post-treat)', feStatus,\n        iron > 0.1 ? 'Iron removal media or oxidation needed' : 'Acceptable');\n\n      \/\/ SDI \u2014 must be <5 before RO\n      let sdiStatus;\n      if (sdi <= 3) sdiStatus = 'pass';\n      else if (sdi <= 5) sdiStatus = 'warn';\n      else sdiStatus = 'fail';\n      addCheck('SDI (Silt Density Index)', sdi.toFixed(1), '<3 (RO-ready)', sdiStatus,\n        sdi > 5 ? 'High fouling risk \u2014 UF pretreatment recommended' : 'Standard pretreatment sufficient');\n\n      \/\/ Build recommended stack\n      if (turbidity > 0.5) addStage('Stage 1: Multi-Media Quartz Sand Filter (NTU \u2192 <0.5)');\n      if (chlorine >= 0.1) addStage('Stage 2: Activated Carbon Filter (free Cl \u2192 <0.1 mg\/L)');\n      if (hardness > 1) addStage('Stage 3: Cation Resin Softener (hardness \u2192 <1 ppm)');\n      addStage('Stage 4: 5 \u03bcm Cartridge Micron Filter (SDI \u2192 <3)');\n      if (sdi > 5 || iron > 0.3) addStage('Stage 5 (recommended): Hollow-fiber UF (PVDF, 0.01\u20130.1 \u03bcm)');\n      addStage('Main: DOW FilmTec ' + (tds >= 2000 ? 'BWRO variant' : 'BW30') + ' RO membrane stack');\n      addStage('Post-RO: UV Sterilizer (XP-UVC) + Ozone Generator (MS-AF)');\n\n      \/\/ Verdict\n      const verdict = document.getElementById('ms-fit-verdict');\n      const fails = checksDiv.querySelectorAll('.fail').length;\n      const warns = checksDiv.querySelectorAll('.warn').length;\n      \n      if (fails > 0) {\n        verdict.style.color = 'var(--err)';\n        verdict.textContent = '\u26a0 Feedwater requires customized RO configuration. Engineering review recommended before quoting.';\n      } else if (warns > 0) {\n        verdict.style.color = 'var(--warn)';\n        verdict.textContent = '\u25cb Standard Mass pretreatment stack handles this profile with the recommended stages above.';\n      } else {\n        verdict.style.color = 'var(--ok)';\n        verdict.textContent = '\u2713 Clean feedwater \u2014 minimal pretreatment required. RO operates at optimal recovery.';\n      }\n      \n      const resultBox = document.getElementById('ms-fit-result');\n      resultBox.classList.add('show');\n      \n      \/\/ Smooth scroll\n      setTimeout(() => {\n        resultBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n      }, 50);\n    }\n  <\/script>\n<\/div>\n<\/div><\/div><\/div>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Feedwater RO-Fit Checker Enter your raw water analysis. We benchmark against DOW FilmTec BW30 feedwater limits and recommend the pretreatment stack your RO needs. TDS (ppm) Total Dissolved Solids Hardness (ppm as CaCO\u2083) Free Chlorine (mg\/L) Turbidity (NTU) Iron (mg\/L) Estimated SDI From silt density test Check Feedwater Fit Feedwater Compatibility Report Recommended Pretreatment Stack [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":0,"parent":1410,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_gspb_post_css":"","footnotes":""},"class_list":["post-2870","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/masstechx.com\/pt\/wp-json\/wp\/v2\/pages\/2870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/masstechx.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/masstechx.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/masstechx.com\/pt\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/masstechx.com\/pt\/wp-json\/wp\/v2\/comments?post=2870"}],"version-history":[{"count":0,"href":"https:\/\/masstechx.com\/pt\/wp-json\/wp\/v2\/pages\/2870\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/masstechx.com\/pt\/wp-json\/wp\/v2\/pages\/1410"}],"wp:attachment":[{"href":"https:\/\/masstechx.com\/pt\/wp-json\/wp\/v2\/media?parent=2870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}