{"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\/sv\/crane-hoist-wire-rope-replacement-calculator\/","title":{"rendered":"Kalkylator f\u00f6r utbyte av vajer f\u00f6r kranlyft"},"content":{"rendered":"<div id=\"calculator\">\n\n  <div class=\"calc-group\">\n    <label for=\"calculator-ropeType\">Typ av st\u00e5lvajer<\/label>\n    <select id=\"calculator-ropeType\" class=\"calc-input\">\n      <option value=\"fc\">Enkelskiktsrep med fiberk\u00e4rna (FC)<\/option>\n      <option value=\"iwrc\">Enkelskiktsrep med st\u00e5lk\u00e4rna (IWRC)<\/option>\n      <option value=\"rotation\">Rotationsbest\u00e4ndigt rep<\/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\">Ange ett giltigt positivt tal<\/div>\n  <\/div>\n\n  <div class=\"calc-group\">\n    <label for=\"calculator-refD\">Referensdiameter d<sub>referens<\/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\">Ange ett giltigt positivt tal<\/div>\n  <\/div>\n\n  <div class=\"calc-group\">\n    <label for=\"calculator-measuredD\">Uppm\u00e4tt 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\">Ange ett giltigt positivt tal<\/div>\n  <\/div>\n\n  <div class=\"calc-buttons\">\n    <button type=\"button\" id=\"calculator-calculate\" class=\"calc-btn primary\">Ber\u00e4kna och bed\u00f6ma<\/button>\n    <button type=\"button\" id=\"calculator-reset\" class=\"calc-btn reset\">\u00c5terst\u00e4lla<\/button>\n  <\/div>\n\n  <div class=\"calc-result\" id=\"calculator-result\" style=\"display: none;\">\n    <div class=\"result-title\">Bed\u00f6mningsresultat<\/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\">Skadeniv\u00e5:<\/span>\n      <span class=\"result-value\" id=\"result-level\"><\/span>\n    <\/div>\n    <div class=\"result-item\">\n      <span class=\"result-label\">Anv\u00e4ndningsstatus:<\/span>\n      <span class=\"result-value\" id=\"result-status\"><\/span>\n    <\/div>\n    <div class=\"result-item\">\n      <span class=\"result-label\">Rekommenderad \u00e5tg\u00e4rd:<\/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 f\u00f6r utbyte av vajer f\u00f6r kranlyft<\/h2>\n\n\n\n<p><strong>Q=[(d<sub>referens<\/sub>-d<sub>m<\/sub>) \/d ]*100%<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>d<sub>referens<\/sub><\/strong>: referensdiametern<\/li>\n\n\n\n<li><strong>d<sub>m<\/sub>: <\/strong>den uppm\u00e4tta diametern<\/li>\n\n\n\n<li><strong>d:<\/strong> den nominella diametern<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Viktiga anm\u00e4rkningar och s\u00e4kerhetstips<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Detta verktyg \u00e4r utformat som ett hj\u00e4lpverktyg f\u00f6r att ge snabb, prelimin\u00e4r referensdata.<\/li>\n\n\n\n<li>Regelbunden omfattande inspektion kr\u00e4vs f\u00f6r lyftutrustningens s\u00e4kerhet.<\/li>\n\n\n\n<li>Stoppa driften omedelbart n\u00e4r den kritiska kasseringsstandarden uppn\u00e5s.<\/li>\n\n\n\n<li>Undvik \u00f6verbelastning, skarp b\u00f6jning och kraftig utpressning under linans anv\u00e4ndning.<\/li>\n\n\n\n<li>Regelbunden sm\u00f6rjning kan effektivt bromsa slitage p\u00e5 vajern.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Till\u00e4mpningsomr\u00e5de<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Elektriska vajertelfer<\/li>\n\n\n\n<li>Manuella vajerlyftar<\/li>\n\n\n\n<li>Vinschar<\/li>\n\n\n\n<li>Skivaggregat<\/li>\n\n\n\n<li>Luftkranar<\/li>\n\n\n\n<li>Gantry kranar<\/li>\n\n\n\n<li>Mobilkranar<\/li>\n\n\n\n<li>Hamnkranar<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Ol\u00e4mpliga produkter och scenarier<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lyftutrustning utan kran<\/strong>Hissar, \u00e5kattraktioner, arbetsplattformar (separata standarder g\u00e4ller)<\/li>\n\n\n\n<li><strong>Speciella system av syntetiska fibrer<\/strong>Syntetfiberslingor, bandslingor (olika materialegenskaper)<\/li>\n\n\n\n<li><strong>Enkelskiktade lindningstrummor med remskivor av syntetmaterial eller remskivsp\u00e5rfoder<\/strong><\/li>\n\n\n\n<li><strong>Icke-lyftande applikationer<\/strong>Linbanor, h\u00e4ngbroar, kraftledningar (olika sp\u00e4nningsmekanismer)<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"Kalkylatorn f\u00f6r utbyte av vajer f\u00f6r kranlyft, utvecklad i enlighet med ISO 4309:2017, uppfyller alla branschspecifikationer. Den kan snabbt och noggrant ber\u00e4kna slitagehastigheten f\u00f6r vajerdiametern, automatiskt matcha skrotniv\u00e5n, f\u00f6renkla efterlevnadsinspektionsprocessen och hj\u00e4lpa dig att snabbt fastst\u00e4lla utbytespunkter f\u00f6r att undvika f\u00f6rluster vid driftstopp och s\u00e4kerhetsrisker.","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\/sv\/wp-json\/wp\/v2\/posts\/16986"}],"collection":[{"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/comments?post=16986"}],"version-history":[{"count":8,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/posts\/16986\/revisions"}],"predecessor-version":[{"id":16998,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/posts\/16986\/revisions\/16998"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/media\/16988"}],"wp:attachment":[{"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/media?parent=16986"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/categories?post=16986"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dgcrane.com\/sv\/wp-json\/wp\/v2\/tags?post=16986"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}