{"id":16986,"date":"2026-05-07T09:24:56","date_gmt":"2026-05-07T09:24:56","guid":{"rendered":"https:\/\/www.dgcrane.com\/?p=16986"},"modified":"2026-05-07T10:01:24","modified_gmt":"2026-05-07T10:01:24","slug":"crane-hoist-wire-rope-replacement-calculator","status":"publish","type":"post","link":"https:\/\/www.dgcrane.com\/no\/crane-hoist-wire-rope-replacement-calculator\/","title":{"rendered":"Kalkulator for utskifting av st\u00e5ltau for kranheis"},"content":{"rendered":"<div id=\"calculator\">\n\n  <div class=\"calc-group\">\n    <label for=\"calculator-ropeType\">St\u00e5ltautype<\/label>\n    <select id=\"calculator-ropeType\" class=\"calc-input\">\n      <option value=\"fc\">Enkeltlags tau med fiberkjerne (FC)<\/option>\n      <option value=\"iwrc\">Enkeltlags tau med st\u00e5lkjerne (IWRC)<\/option>\n      <option value=\"rotation\">Rotasjonsbestandig tau<\/option>\n    <\/select>\n  <\/div>\n\n  <div class=\"calc-group\">\n    <label for=\"calculator-nominalD\">Nominell diameter d (mm)<\/label>\n    <input type=\"number\" step=\"0.1\" id=\"calculator-nominalD\" class=\"calc-input\" data-required=\"true\">\n    <div class=\"error-msg\" id=\"error-nominalD\">Vennligst skriv inn et gyldig positivt tall<\/div>\n  <\/div>\n\n  <div class=\"calc-group\">\n    <label for=\"calculator-refD\">Referansediameter d<sub>ref.<\/sub> (mm)<\/label>\n    <input type=\"number\" step=\"0.1\" id=\"calculator-refD\" class=\"calc-input\" data-required=\"true\">\n    <div class=\"error-msg\" id=\"error-refD\">Vennligst skriv inn et gyldig positivt tall<\/div>\n  <\/div>\n\n  <div class=\"calc-group\">\n    <label for=\"calculator-measuredD\">M\u00e5lt diameter d<sub>m<\/sub> (mm)<\/label>\n    <input type=\"number\" step=\"0.1\" id=\"calculator-measuredD\" class=\"calc-input\" data-required=\"true\">\n    <div class=\"error-msg\" id=\"error-measuredD\">Vennligst skriv inn et gyldig positivt tall<\/div>\n  <\/div>\n\n  <div class=\"calc-buttons\">\n    <button type=\"button\" id=\"calculator-calculate\" class=\"calc-btn primary\">Beregn og vurder<\/button>\n    <button type=\"button\" id=\"calculator-reset\" class=\"calc-btn reset\">Tilbakestill<\/button>\n  <\/div>\n\n  <div class=\"calc-result\" id=\"calculator-result\" style=\"display: none;\">\n    <div class=\"result-title\">Vurderingsresultat<\/div>\n    <div class=\"result-item\">\n      <span class=\"result-label\">Diameterreduksjon:<\/span>\n      <span class=\"result-value\" id=\"result-q\"><\/span>\n    <\/div>\n    <div class=\"result-item\">\n      <span class=\"result-label\">Skadeomr\u00e5de:<\/span>\n      <span class=\"result-value\" id=\"result-percent\"><\/span>\n    <\/div>\n    <div class=\"result-item\">\n      <span class=\"result-label\">Skadeniv\u00e5:<\/span>\n      <span class=\"result-value\" id=\"result-level\"><\/span>\n    <\/div>\n    <div class=\"result-item\">\n      <span class=\"result-label\">Bruksstatus:<\/span>\n      <span class=\"result-value\" id=\"result-status\"><\/span>\n    <\/div>\n    <div class=\"result-item\">\n      <span class=\"result-label\">Anbefalt handling:<\/span>\n      <span class=\"result-text\" id=\"result-action\"><\/span>\n    <\/div>\n  <\/div>\n\n  <style>\n    #calculator {\n      --primary-color: #0a3487;\n      --primary-hover: #F58423;\n      --error-color: #e53935;\n      --bg-color: #EAEEF7;\n      --text-color: #4a4a4a;\n      max-width: 545px;\n      padding: 30px;\n      background: var(--bg-color);\n      font-family: Arial, sans-serif;\n      color: var(--text-color);\n    }\n    #calculator * {\n      margin: 0;\n      padding: 0;\n      box-sizing: border-box;\n      transition: all 0.2s ease;\n    }\n    #calculator .calc-header {\n      font-size: 18px;\n      font-weight: bold;\n      text-align: center;\n      margin-bottom: 15px;\n      color: var(--primary-color);\n    }\n    #calculator .calc-formula {\n      text-align: center;\n      font-size: 14px;\n      margin-bottom: 20px;\n    }\n    #calculator .calc-group {\n      margin-bottom: 18px;gap:inherit;\n    }\n    #calculator label {\n      display: block;\n      font-size: 14px;\n      margin-bottom: 6px;\n      font-weight: 500;\n    }\n    #calculator .calc-input {\n      width: 100%;\n      height: 36px;\n      border-radius: 0;\n      border: 1px solid #ccc;\n      padding: 0 10px;\n      font-size: 16px;\n      outline: none;\n    }\n    #calculator .calc-input:focus {\n      border: 2px solid var(--primary-color);\n    }\n    #calculator .calc-input.error {\n      border: 2px solid var(--error-color) !important;\n    }\n    #calculator .error-msg {\n      display: none;\n      font-size: 12px;\n      color: var(--error-color);\n      margin-top: 4px;\n    }\n    #calculator .error-msg.show {\n      display: block;\n    }\n    #calculator .calc-buttons {\n      display: flex;\n      gap: 12px;\n      margin: 25px 0;\n    }\n    #calculator .calc-btn {\n      flex: 1;\n      height: 34px;\n      line-height: 34px;\n      border-radius: 0;\n      border: none;\n      font-size: 14px;\n      cursor: pointer;\n      text-align: center;\n    }\n    #calculator .calc-btn.primary {\n      background: var(--primary-color);\n      color: #fff;\n    }\n    #calculator .calc-btn.primary:hover {\n      background: var(--primary-hover);\n    }\n    #calculator .calc-btn.reset {\n      background: #ccc;\n      color: var(--text-color);\n    }\n    #calculator .calc-btn.reset:hover {\n      background: #bbb;\n    }\n    #calculator .calc-result {\n      border-top: 1px solid #ccc;\n      padding-top: 20px;\n    }\n    #calculator .result-title {\n      font-size: 18px;\n      font-weight: bold;\n      text-align: center;\n      margin-bottom: 15px;\n      color: var(--primary-color);\n    }\n    #calculator .result-item {\n      display: flex;\n      margin-bottom: 10px;\n      align-items: center;\n    }\n    #calculator .result-label {\n      width: 180px;\n      font-size: 14px;\n      font-weight: 500;\n    }\n    #calculator .result-value {\n      font-size: 16px;\n      font-weight: bold;\n    }\n    #calculator .result-text {\n      font-size: 14px;\n      line-height: 1.4;\n    }\n    #calculator .level-normal { color: #2e7d32; }\n    #calculator .level-warning { color: #f57f17; }\n    #calculator .level-danger { color: var(--error-color); }\n\n    @media (max-width: 768px) {\n      #calculator {\n        padding: 20px;\n      }\n      #calculator .calc-input,\n      #calculator .calc-btn {\n        height: 0.7rem;\n        font-size: 0.28rem;\n      }\n      #calculator .calc-buttons {\n        flex-direction: column;\n        gap: 10px;\n      }\n      #calculator .calc-btn {\n        width: 100%;\n      }\n      #calculator label,\n      #calculator .result-label,\n      #calculator .result-text {\n        font-size: 0.28rem;\n      }\n      #calculator .result-value {\n        font-size: 0.32rem;\n      }\n      #calculator .calc-header,\n      #calculator .result-title {\n        font-size: 0.36rem;\n      }\n    }\n  <\/style>\n\n  <script>\n    (function() {\n      const standards = {\n        fc: [\n          { min:0, max:6, percent:0, level:\"No Damage\", status:\"Safe for Use\", action:\"Routine inspection\" },\n          { min:6, max:7, percent:20, level:\"Slight\", status:\"Safe for Use\", action:\"Increase inspection frequency\" },\n          { min:7, max:8, percent:40, level:\"Medium\", status:\"Close Monitoring\", action:\"Prepare replacement plan\" },\n          { min:8, max:9, percent:60, level:\"Severe\", status:\"Close Monitoring\", action:\"Control load strictly\" },\n          { min:9, max:10, percent:80, level:\"Severe\", status:\"Recommended Discard\", action:\"Replace as soon as possible\" },\n          { min:10, max:Infinity, percent:100, level:\"Severe\", status:\"Must Discard\", action:\"Stop use immediately\" }\n        ],\n        iwrc: [\n          { min:0, max:3.5, percent:0, level:\"No Damage\", status:\"Safe for Use\", action:\"Routine inspection\" },\n          { min:3.5, max:4.5, percent:20, level:\"Slight\", status:\"Safe for Use\", action:\"Increase inspection frequency\" },\n          { min:4.5, max:5.5, percent:40, level:\"Medium\", status:\"Close Monitoring\", action:\"Prepare replacement plan\" },\n          { min:5.5, max:6.5, percent:60, level:\"Severe\", status:\"Close Monitoring\", action:\"Control load strictly\" },\n          { min:6.5, max:7.5, percent:80, level:\"Severe\", status:\"Recommended Discard\", action:\"Replace as soon as possible\" },\n          { min:7.5, max:Infinity, percent:100, level:\"Severe\", status:\"Must Discard\", action:\"Stop use immediately\" }\n        ],\n        rotation: [\n          { min:0, max:1, percent:0, level:\"No Damage\", status:\"Safe for Use\", action:\"Routine inspection\" },\n          { min:1, max:2, percent:20, level:\"Medium\", status:\"Safe for Use\", action:\"Increase inspection frequency\" },\n          { min:2, max:3, percent:40, level:\"Medium\", status:\"Close Monitoring\", action:\"Prepare replacement plan\" },\n          { min:3, max:4, percent:60, level:\"Severe\", status:\"Close Monitoring\", action:\"Control load strictly\" },\n          { min:4, max:5, percent:80, level:\"Severe\", status:\"Recommended Discard\", action:\"Replace as soon as possible\" },\n          { min:5, max:Infinity, percent:100, level:\"Severe\", status:\"Must Discard\", action:\"Stop use immediately\" }\n        ]\n      };\n\n      const el = (id) => document.getElementById(`calculator-${id}`);\n      const err = (id) => document.getElementById(`error-${id}`);\n      const inputs = ['nominalD', 'refD', 'measuredD'];\n\n      function setError(fieldId, msg) {\n        const input = el(fieldId);\n        const errorEl = err(fieldId);\n        input.classList.add('error');\n        errorEl.textContent = msg;\n        errorEl.classList.add('show');\n      }\n\n      function clearError(fieldId) {\n        const input = el(fieldId);\n        const errorEl = err(fieldId);\n        input.classList.remove('error');\n        errorEl.classList.remove('show');\n      }\n\n      function validateInput() {\n        let valid = true;\n        inputs.forEach(field => {\n          const val = parseFloat(el(field).value);\n          if (isNaN(val) || val <= 0) {\n            setError(field, 'Please enter a valid positive number');\n            valid = false;\n          } else {\n            clearError(field);\n          }\n        });\n        return valid;\n      }\n\n      function bindInputClear() {\n        inputs.forEach(field => {\n          el(field).addEventListener('input', () => clearError(field));\n        });\n      }\n\n      function calculate() {\n        if (!validateInput()) return;\n        const type = el('ropeType').value;\n        const d = parseFloat(el('nominalD').value);\n        const dRef = parseFloat(el('refD').value);\n        const dM = parseFloat(el('measuredD').value);\n\n        const Q = Math.abs(((dRef - dM) \/ d) * 100);\n        const qFixed = Q.toFixed(2);\n        const rules = standards[type];\n        let res = rules.find(r => Q >= r.min && Q < r.max) || rules[rules.length - 1];\n\n        const resultEl = document.getElementById('calculator-result');\n        document.getElementById('result-q').textContent = `${qFixed}%`;\n        document.getElementById('result-percent').textContent = `${res.percent}%`;\n        document.getElementById('result-level').textContent = res.level;\n        document.getElementById('result-status').textContent = res.status;\n        document.getElementById('result-action').textContent = res.action;\n\n        const levelCls = res.status.includes('Safe') ? 'level-normal' : res.status.includes('Monitoring') ? 'level-warning' : 'level-danger';\n        document.getElementById('result-level').className = 'result-value ' + levelCls;\n        document.getElementById('result-status').className = 'result-value ' + levelCls;\n\n        resultEl.style.display = 'block';\n      }\n\n      function resetForm() {\n        inputs.forEach(field => {\n          el(field).value = '';\n          clearError(field);\n        });\n        el('ropeType').selectedIndex = 0;\n        document.getElementById('calculator-result').style.display = 'none';\n      }\n\n      function init() {\n        bindInputClear();\n        el('calculate').addEventListener('click', calculate);\n        el('reset').addEventListener('click', resetForm);\n      }\n\n      window.addEventListener('DOMContentLoaded', init);\n    })();\n  <\/script>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Formel for erstatning av st\u00e5ltau for kranheis<\/h2>\n\n\n\n<p><strong>Q=[(d<sub>ref.<\/sub>-d<sub>m<\/sub>) \/d ]*100%<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>d<sub>ref.<\/sub><\/strong>referansediameteren<\/li>\n\n\n\n<li><strong>d<sub>m<\/sub>: <\/strong>den m\u00e5lte diameteren<\/li>\n\n\n\n<li><strong>d:<\/strong> den nominelle diameteren<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Viktige merknader og sikkerhetstips<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dette verkt\u00f8yet er utformet som et hjelpevurderingsverkt\u00f8y for \u00e5 gi raske, forel\u00f8pige referansedata.<\/li>\n\n\n\n<li>Regelmessig omfattende inspeksjon er n\u00f8dvendig for \u00e5 sikre l\u00f8fteutstyrets sikkerhet.<\/li>\n\n\n\n<li>Stopp driften umiddelbart n\u00e5r den kritiske kasseringsstandarden n\u00e5r.<\/li>\n\n\n\n<li>Unng\u00e5 overbelastning, skarp b\u00f8ying og kraftig ekstrudering under taubruk.<\/li>\n\n\n\n<li>Regelmessig sm\u00f8ring kan effektivt redusere slitasje p\u00e5 st\u00e5ltauet.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">S\u00f8knadsomfang<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Elektriske vaierl\u00f8ftere<\/li>\n\n\n\n<li>Manuelle st\u00e5ltautaljer<\/li>\n\n\n\n<li>Vinsjer<\/li>\n\n\n\n<li>Skivemonteringer<\/li>\n\n\n\n<li>Overhead kraner<\/li>\n\n\n\n<li>Gantry kraner<\/li>\n\n\n\n<li>Mobilkraner<\/li>\n\n\n\n<li>Havnekraner<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Uegnede produkter og scenarier<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>L\u00f8fteutstyr uten kran<\/strong>Heiser, forn\u00f8yelsesattraksjoner, arbeidsplattformer (separate standarder gjelder)<\/li>\n\n\n\n<li><strong>Spesielle syntetiske fibertausystemer<\/strong>Syntetiske fiberstropper, webbingstropper (forskjellige materialegenskaper)<\/li>\n\n\n\n<li><strong>Enkeltlags viklingstrommer med trinser eller foringer av trinsespor i syntetisk materiale<\/strong><\/li>\n\n\n\n<li><strong>Ikke-l\u00f8ftende applikasjoner<\/strong>Kabelbaner, hengebroer, kraftoverf\u00f8ringslinjer (forskjellige spenningsmekanismer)<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"Kalkulatoren for utskifting av st\u00e5ltau for kranheis, utviklet i samsvar med ISO 4309:2017, er i samsvar med bransjespesifikasjoner. Den kan raskt og n\u00f8yaktig beregne slitasjehastigheten p\u00e5 st\u00e5ltaudiameteren, automatisk matche skrapniv\u00e5et, forenkle samsvarsinspeksjonsprosessen og hjelpe deg med \u00e5 bestemme utskiftingspunkter raskt for \u00e5 unng\u00e5 tap ved nedetid og sikkerhetsrisikoer.","protected":false},"author":8,"featured_media":16988,"parent":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"single-onlinetools.php","format":"standard","meta":{"_acf_changed":false,"rank_math_lock_modified_date":false,"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[63],"tags":[],"class_list":["post-16986","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-other"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/posts\/16986"}],"collection":[{"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/comments?post=16986"}],"version-history":[{"count":8,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/posts\/16986\/revisions"}],"predecessor-version":[{"id":16998,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/posts\/16986\/revisions\/16998"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/media\/16988"}],"wp:attachment":[{"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/media?parent=16986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/categories?post=16986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dgcrane.com\/no\/wp-json\/wp\/v2\/tags?post=16986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}