{"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\/da\/crane-hoist-wire-rope-replacement-calculator\/","title":{"rendered":"Beregner for udskiftning af kranhejswire"},"content":{"rendered":"<div id=\"calculator\">\n\n  <div class=\"calc-group\">\n    <label for=\"calculator-ropeType\">St\u00e5ltovstype<\/label>\n    <select id=\"calculator-ropeType\" class=\"calc-input\">\n      <option value=\"fc\">Enkeltlagsreb med fiberkerne (FC)<\/option>\n      <option value=\"iwrc\">Enkeltlagsreb med st\u00e5lkerne (IWRC)<\/option>\n      <option value=\"rotation\">Rotationsbestandigt reb<\/option>\n    <\/select>\n  <\/div>\n\n  <div class=\"calc-group\">\n    <label for=\"calculator-nominalD\">Nominel 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\">Indtast venligst et gyldigt positivt tal<\/div>\n  <\/div>\n\n  <div class=\"calc-group\">\n    <label for=\"calculator-refD\">Referencediameter 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\">Indtast venligst et gyldigt positivt tal<\/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\">Indtast venligst et gyldigt positivt tal<\/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\">Nulstil<\/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\">Diameterreduktion:<\/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\">Skadeniveau:<\/span>\n      <span class=\"result-value\" id=\"result-level\"><\/span>\n    <\/div>\n    <div class=\"result-item\">\n      <span class=\"result-label\">Brugsstatus:<\/span>\n      <span class=\"result-value\" id=\"result-status\"><\/span>\n    <\/div>\n    <div class=\"result-item\">\n      <span class=\"result-label\">Anbefalet 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 til udskiftning af kranhejswire<\/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>: referencediameteren<\/li>\n\n\n\n<li><strong>d<sub>m<\/sub>: <\/strong>den m\u00e5lte diameter<\/li>\n\n\n\n<li><strong>d:<\/strong> den nominelle diameter<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Vigtige bem\u00e6rkninger og sikkerhedstips<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dette v\u00e6rkt\u00f8j er designet som et hj\u00e6lpevurderingsv\u00e6rkt\u00f8j, der skal give hurtige, forel\u00f8bige referencedata.<\/li>\n\n\n\n<li>Regelm\u00e6ssig, omfattende inspektion er p\u00e5kr\u00e6vet for at sikre l\u00f8fteudstyrets sikkerhed.<\/li>\n\n\n\n<li>Stop driften \u00f8jeblikkeligt, n\u00e5r den kritiske kasseringsstandard n\u00e5r.<\/li>\n\n\n\n<li>Undg\u00e5 overbelastning, skarpe b\u00f8jninger og kraftig udpresning under rebdrift.<\/li>\n\n\n\n<li>Regelm\u00e6ssig sm\u00f8ring kan effektivt bremse slid p\u00e5 st\u00e5lwirer.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Anvendelsesomr\u00e5de<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Elektriske wirel\u00f8ftere<\/li>\n\n\n\n<li>Manuelle wirehejs<\/li>\n\n\n\n<li>Spil<\/li>\n\n\n\n<li>Skiveaggregater<\/li>\n\n\n\n<li>L\u00f8ftekraner<\/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\u00f8fteudstyr uden kran<\/strong>Elevatorer, forlystelser, arbejdsplatforme (separate standarder g\u00e6lder)<\/li>\n\n\n\n<li><strong>Specielle syntetiske fiberrebsystemer<\/strong>Syntetiske fiberstropper, webbingstropper (forskellige materialeegenskaber)<\/li>\n\n\n\n<li><strong>Enkeltlags opviklingstromler med syntetiske remskiver eller remskiveforinger<\/strong><\/li>\n\n\n\n<li><strong>Ikke-l\u00f8ftende applikationer<\/strong>Kabelbaner, h\u00e6ngebroer, kraftledninger (forskellige sp\u00e6ndingsmekanismer)<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"Kranhejsens st\u00e5lwireudskiftningsberegner, udviklet i overensstemmelse med ISO 4309:2017, overholder fuldt ud branchespecifikationerne. Den kan hurtigt og pr\u00e6cist beregne st\u00e5lwirens diameters slidhastighed, automatisk matche skrotniveauet, forenkle overensstemmelsesinspektionsprocessen og hj\u00e6lpe dig med at bestemme udskiftningspunkter hurtigt for at undg\u00e5 tab under nedetid og sikkerhedsrisici.","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\/da\/wp-json\/wp\/v2\/posts\/16986"}],"collection":[{"href":"https:\/\/www.dgcrane.com\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dgcrane.com\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/da\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/da\/wp-json\/wp\/v2\/comments?post=16986"}],"version-history":[{"count":8,"href":"https:\/\/www.dgcrane.com\/da\/wp-json\/wp\/v2\/posts\/16986\/revisions"}],"predecessor-version":[{"id":16998,"href":"https:\/\/www.dgcrane.com\/da\/wp-json\/wp\/v2\/posts\/16986\/revisions\/16998"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/da\/wp-json\/wp\/v2\/media\/16988"}],"wp:attachment":[{"href":"https:\/\/www.dgcrane.com\/da\/wp-json\/wp\/v2\/media?parent=16986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dgcrane.com\/da\/wp-json\/wp\/v2\/categories?post=16986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dgcrane.com\/da\/wp-json\/wp\/v2\/tags?post=16986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}