{"id":17279,"date":"2026-07-27T08:56:14","date_gmt":"2026-07-27T08:56:14","guid":{"rendered":"https:\/\/www.dgcrane.com\/?p=17279"},"modified":"2026-07-27T08:56:17","modified_gmt":"2026-07-27T08:56:17","slug":"overhead-and-gantry-crane-actual-traveling-speed-calculator","status":"publish","type":"post","link":"https:\/\/www.dgcrane.com\/vi\/overhead-and-gantry-crane-actual-traveling-speed-calculator\/","title":{"rendered":"C\u00f4ng c\u1ee5 t\u00ednh to\u00e1n t\u1ed1c \u0111\u1ed9 di chuy\u1ec3n th\u1ef1c t\u1ebf c\u1ee7a c\u1ea7n c\u1ea9u tr\u00ean cao v\u00e0 c\u1ea7n c\u1ea9u gi\u00e0n."},"content":{"rendered":"<div id=\"calculator\">\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            color: var(--text-color);\n            box-sizing: border-box;\n            transition: all 0.2s ease;\n        }\n        #calculator .calc-row {\n            margin-bottom: 18px;\n        }\n        #calculator label {\n            display: block;\n            font-size: 14px;\n            margin-bottom: 6px;\n        }\n        #calculator input,\n        #calculator select {\n            width: 100%;\n            height: 36px;\n            font-size: 16px;\n            border: 1px solid #ccc;\n            border-radius: 0;\n            padding: 0 10px;\n            box-sizing: border-box;\n            transition: all 0.2s ease;\n        }\n        #calculator input:focus,\n        #calculator select:focus {\n            border: 2px solid var(--primary-color);\n            outline: none;\n        }\n        #calculator input.error,\n        #calculator select.error {\n            border: 2px solid var(--error-color);\n        }\n        #calculator .error-msg {\n            color: var(--error-color);\n            font-size: 12px;\n            margin-top: 4px;\n            display: none;\n        }\n        #calculator .btn-group {\n            display: flex;\n            gap: 12px;\n            margin-top: 24px;\n        }\n        #calculator button {\n            flex: 1;\n            height: 34px;\n            line-height: 34px;\n            font-size: 14px;\n            border-radius: 0;\n            border: none;\n            cursor: pointer;\n            transition: all 0.2s ease;\n        }\n        #calculator #calc-submit {\n            background: var(--primary-color);\n            color: #fff;\n        }\n        #calculator #calc-submit:hover {\n            background: var(--primary-hover);\n        }\n        #calculator #calc-reset {\n            background: #ffffff;\n            color: var(--primary-color);\n            border: 1px solid var(--primary-color);\n        }\n        #calculator .result-wrap {\n            margin-top: 24px;\n            text-align: center;\n        }\n        #calculator #calc-result {\n            font-size: 40px;\n            font-weight: bold;\n            color: var(--primary-color);\n        }\n        @media (max-width: 768px) {\n            #calculator label,\n            #calculator button {\n                font-size: 0.28rem;\n            }\n            #calculator input,\n            #calculator select {\n                height: 0.7rem;\n                font-size: 0.28rem;\n            }\n            #calculator button {\n                height: 0.7rem;\n                line-height: 0.7rem;\n            }\n            #calculator .btn-group {\n                flex-direction: column;\n            }\n            #calculator button {\n                width: 100%;\n            }\n        }\n    <\/style>\n\n    <!-- Motor Rated Speed -->\n    <div class=\"calc-row\">\n        <label for=\"calculator-motorSpeed-select\">T\u1ed1c \u0111\u1ed9 \u0111\u1ed3ng b\u1ed9 c\u1ee7a \u0111\u1ed9ng c\u01a1 (v\u00f2ng\/ph\u00fat)<\/label>\n        <select id=\"calculator-motorSpeed-select\">\n            <option value=\"\" selected>\u2014 Ch\u1ecdn t\u1ed1c \u0111\u1ed9 ti\u00eau chu\u1ea9n ho\u1eb7c nh\u1eadp gi\u00e1 tr\u1ecb t\u00f9y ch\u1ec9nh b\u00ean d\u01b0\u1edbi \u2014<\/option>\n            <option value=\"3000\">3000 v\u00f2ng\/ph\u00fat, 2 c\u1ef1c (50Hz)<\/option>\n            <option value=\"1500\">1500 v\u00f2ng\/ph\u00fat, 4 c\u1ef1c (50Hz)<\/option>\n            <option value=\"1000\">1000 v\u00f2ng\/ph\u00fat, 6 c\u1ef1c (50Hz)<\/option>\n            <option value=\"750\">750 v\u00f2ng\/ph\u00fat, 8 c\u1ef1c (50Hz)<\/option>\n            <option value=\"600\">600 v\u00f2ng\/ph\u00fat, 10 c\u1ef1c (50Hz)<\/option>\n            <option value=\"3600\">3600 v\u00f2ng\/ph\u00fat, 2 c\u1ef1c (60Hz)<\/option>\n            <option value=\"1800\">1800 v\u00f2ng\/ph\u00fat, 4 c\u1ef1c (60Hz)<\/option>\n            <option value=\"1200\">1200 v\u00f2ng\/ph\u00fat, 6 c\u1ef1c (60Hz)<\/option>\n            <option value=\"900\">900 v\u00f2ng\/ph\u00fat, 8 c\u1ef1c (60Hz)<\/option>\n            <option value=\"720\">720 v\u00f2ng\/ph\u00fat, 10 c\u1ef1c (60Hz)<\/option>\n        <\/select>\n        <input type=\"number\" id=\"calculator-motorSpeed\" placeholder=\"Nh\u1eadp t\u1ed1c \u0111\u1ed9 \u0111\u1ecbnh m\u1ee9c th\u1ef1c t\u1ebf c\u1ee7a \u0111\u1ed9ng c\u01a1 kh\u00f4ng \u0111\u1ed3ng b\u1ed9\">\n        <div class=\"error-msg\" id=\"error-motorSpeed\">Vui l\u00f2ng ch\u1ecdn ho\u1eb7c nh\u1eadp m\u1ed9t gi\u00e1 tr\u1ecb t\u1ed1c \u0111\u1ed9 d\u01b0\u01a1ng h\u1ee3p l\u1ec7.<\/div>\n    <\/div>\n\n    <!-- Wheel Diameter -->\n    <div class=\"calc-row\">\n        <label for=\"calculator-wheelDiam\">\u0110\u01b0\u1eddng k\u00ednh b\u00e1nh xe (cm)<\/label>\n        <input type=\"number\" step=\"0.01\" id=\"calculator-wheelDiam\" placeholder=\"V\u00ed d\u1ee5: 25\">\n        <div class=\"error-msg\" id=\"error-wheelDiam\">Vui l\u00f2ng nh\u1eadp gi\u00e1 tr\u1ecb \u0111\u01b0\u1eddng k\u00ednh d\u01b0\u01a1ng h\u1ee3p l\u1ec7.<\/div>\n    <\/div>\n\n    <!-- Reduction Ratio -->\n    <div class=\"calc-row\">\n        <label for=\"calculator-reduction\">T\u1ef7 l\u1ec7 gi\u1ea3m t\u1ed5ng th\u1ec3<\/label>\n        <input type=\"number\" step=\"0.01\" id=\"calculator-reduction\" placeholder=\"V\u00ed d\u1ee5: 32,5\">\n        <div class=\"error-msg\" id=\"error-reduction\">Vui l\u00f2ng nh\u1eadp gi\u00e1 tr\u1ecb t\u1ef7 l\u1ec7 d\u01b0\u01a1ng h\u1ee3p l\u1ec7.<\/div>\n    <\/div>\n\n    <div class=\"btn-group\">\n        <button id=\"calc-submit\">T\u00ednh to\u00e1n t\u1ed1c \u0111\u1ed9 di chuy\u1ec3n<\/button>\n        <button id=\"calc-reset\">\u0110\u1eb7t l\u1ea1i t\u1ea5t c\u1ea3<\/button>\n    <\/div>\n\n    <div class=\"result-wrap\">\n        <div>T\u1ed1c \u0111\u1ed9 di chuy\u1ec3n th\u1ef1c t\u1ebf \u0111\u01b0\u1ee3c t\u00ednh to\u00e1n (m\/ph\u00fat)<\/div>\n        <div id=\"calc-result\">0.00<\/div>\n        <small style=\"color:#666;\">\n    <\/div>\n\n    <script>\n        const CraneSpeedCalc = {\n            fields: [\"motorSpeed\", \"wheelDiam\", \"reduction\"],\n            setError: function(fieldName) {\n                const input = document.getElementById(\"calculator-\" + fieldName);\n                const errMsg = document.getElementById(\"error-\" + fieldName);\n                input.classList.add(\"error\");\n                errMsg.style.display = \"block\";\n            },\n            clearError: function(fieldName) {\n                const input = document.getElementById(\"calculator-\" + fieldName);\n                const errMsg = document.getElementById(\"error-\" + fieldName);\n                input.classList.remove(\"error\");\n                errMsg.style.display = \"none\";\n            },\n            getMotorSpeed: function() {\n                const select = document.getElementById(\"calculator-motorSpeed-select\");\n                const custom = document.getElementById(\"calculator-motorSpeed\");\n                if (select.value !== \"\") {\n                    return parseFloat(select.value);\n                } else if (custom.value.trim() !== \"\") {\n                    return parseFloat(custom.value);\n                }\n                return NaN;\n            },\n            validateInput: function() {\n                let isValid = true;\n                const motorSpeed = this.getMotorSpeed();\n                const wheelDiamCm = parseFloat(document.getElementById(\"calculator-wheelDiam\").value);\n                const reduction = parseFloat(document.getElementById(\"calculator-reduction\").value);\n\n                this.fields.forEach(f => this.clearError(f));\n\n                if (isNaN(motorSpeed) || motorSpeed <= 0) {\n                    this.setError(\"motorSpeed\");\n                    isValid = false;\n                }\n                if (isNaN(wheelDiamCm) || wheelDiamCm <= 0) {\n                    this.setError(\"wheelDiam\");\n                    isValid = false;\n                }\n                if (isNaN(reduction) || reduction <= 0) {\n                    this.setError(\"reduction\");\n                    isValid = false;\n                }\n                return isValid;\n            },\n            calculate: function() {\n                if (!this.validateInput()) return;\n                const n = this.getMotorSpeed();\n                const wheelDiamCm = parseFloat(document.getElementById(\"calculator-wheelDiam\").value);\n                const D = wheelDiamCm \/ 100;\n                const i = parseFloat(document.getElementById(\"calculator-reduction\").value);\n                const pi = 3.1415926;\n                const speed = (pi * n * D) \/ i;\n                document.getElementById(\"calc-result\").textContent = speed.toFixed(2);\n            },\n            resetAll: function() {\n                this.fields.forEach(f => {\n                    const input = document.getElementById(\"calculator-\" + f);\n                    input.value = \"\";\n                    this.clearError(f);\n                });\n                document.getElementById(\"calculator-motorSpeed-select\").selectedIndex = 0;\n                document.getElementById(\"calc-result\").textContent = \"0.00\";\n            },\n            bindEvents: function() {\n                const self = this;\n                document.getElementById(\"calc-submit\").addEventListener(\"click\", () => self.calculate());\n                document.getElementById(\"calc-reset\").addEventListener(\"click\", () => self.resetAll());\n                this.fields.forEach(f => {\n                    const input = document.getElementById(\"calculator-\" + f);\n                    input.addEventListener(\"input\", () => self.clearError(f));\n                });\n                document.getElementById(\"calculator-motorSpeed-select\").addEventListener(\"change\", () => {\n                    self.clearError(\"motorSpeed\");\n                });\n            },\n            init: function() {\n                this.bindEvents();\n            }\n        };\n        CraneSpeedCalc.init();\n    <\/script>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f4ng th\u1ee9c t\u00ednh t\u1ed1c \u0111\u1ed9 di chuy\u1ec3n th\u1ef1c t\u1ebf c\u1ee7a c\u1ea7n c\u1ea9u tr\u00ean cao v\u00e0 c\u1ea7n c\u1ea9u gi\u00e0n<\/h2>\n\n\n\n<div id=\"calculator-formula\">\n    <style>\n        #calculator-formula {\n            --primary-color: #0a3487;\n            --text-color: #4a4a4a;\n            text-align: left;\n            font-family: Arial, sans-serif;\n            font-size: 20px;\n            margin: 16px 0 24px;\n            color: var(--text-color);\n        }\n        #calculator-formula .frac {\n            display: inline-block;\n            vertical-align: middle;\n            text-align: center;\n        }\n        #calculator-formula .frac-top {\n            border-bottom: 2px solid var(--text-color);\n            padding: 0 10px;\n        }\n        #calculator-formula .frac-bottom {\n            padding: 0 10px;\n        }\n    <\/style>\n    <div>\n        V\u2080 =\n        <span class=\"frac\">\n            <div class=\"frac-top\">\u03c0 \u00d7 n \u00d7 D<\/div>\n            <div class=\"frac-bottom\">T\u00f4i<\/div>\n        <\/span>\n    <\/div>\n<\/div>\n\n\n\n<ul class=\"wp-block-list\">\n<li>V<sub>0<\/sub>T\u1ed1c \u0111\u1ed9 di chuy\u1ec3n th\u1ef1c t\u1ebf c\u1ee7a c\u1ea7n c\u1ea9u tr\u00ean cao v\u00e0 c\u1ea7n c\u1ea9u gi\u00e0n (\u0111\u01a1n v\u1ecb: m\/ph\u00fat)&nbsp;<\/li>\n\n\n\n<li>\u03c0: M\u1eb7c \u0111\u1ecbnh l\u00e0 3,1415926.<\/li>\n\n\n\n<li>n: L\u1ef1a ch\u1ecdn s\u01a1 b\u1ed9 t\u1ed1c \u0111\u1ed9 \u0111\u1ed9ng c\u01a1 (\u0111\u01a1n v\u1ecb: v\u00f2ng\/ph\u00fat)&nbsp;<\/li>\n\n\n\n<li>D: \u0110\u01b0\u1eddng k\u00ednh b\u00e1nh xe (\u0111\u01a1n v\u1ecb: m)<\/li>\n\n\n\n<li>i: L\u1ef1a ch\u1ecdn s\u01a1 b\u1ed9 t\u1ef7 s\u1ed1 truy\u1ec1n c\u1ee7a h\u1ed9p gi\u1ea3m t\u1ed1c<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Ghi ch\u00fa<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Khi t\u00ednh to\u00e1n t\u1ed1c \u0111\u1ed9 di chuy\u1ec3n th\u1ef1c t\u1ebf c\u1ee7a c\u1ea7n c\u1ea9u tr\u00ean cao v\u00e0 c\u1ea7n c\u1ea9u gi\u00e0n, gi\u00e1 tr\u1ecb th\u01b0\u1eddng \u0111\u01b0\u1ee3c l\u00e0m tr\u00f2n \u0111\u1ebfn hai ch\u1eef s\u1ed1 th\u1eadp ph\u00e2n.<\/li>\n\n\n\n<li>Ng\u01b0\u1eddi d\u00f9ng c\u00f3 th\u1ec3 nh\u1eadp tr\u1ef1c ti\u1ebfp d\u1eef li\u1ec7u t\u1ed1c \u0111\u1ed9 \u0111\u1ed9ng c\u01a1 v\u00e0 t\u1ef7 s\u1ed1 truy\u1ec1n h\u1ed9p s\u1ed1 do nh\u00e0 s\u1ea3n xu\u1ea5t cung c\u1ea5p.<\/li>\n\n\n\n<li>N\u1ebfu \u0111\u01b0\u1eddng k\u00ednh b\u00e1nh xe \u0111\u01b0\u1ee3c t\u00ednh b\u1eb1ng centimet, b\u1ea1n c\u00f3 th\u1ec3 nh\u1eadp tr\u1ef1c ti\u1ebfp v\u00e0 h\u1ec7 th\u1ed1ng s\u1ebd t\u1ef1 \u0111\u1ed9ng chuy\u1ec3n \u0111\u1ed5i sang m\u00e9t.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">C\u1ea7n c\u1ea9u \u00e1p d\u1ee5ng<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>C\u1ea7n c\u1ea9u tr\u00ean cao m\u1ed9t d\u1ea7m<\/li>\n\n\n\n<li>C\u1ea7n c\u1ea9u c\u1ea7u tr\u1ee5c d\u1ea7m \u0111\u00f4i<\/li>\n\n\n\n<li>C\u1ea7n c\u1ea9u gi\u00e0n m\u1ed9t d\u1ea7m<\/li>\n\n\n\n<li>C\u1ea7n c\u1ea9u gi\u00e0n hai d\u1ea7m<\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"C\u00f4ng c\u1ee5 t\u00ednh to\u00e1n t\u1ed1c \u0111\u1ed9 di chuy\u1ec3n th\u1ef1c t\u1ebf c\u1ee7a c\u1ea7n c\u1ea9u tr\u00ean cao v\u00e0 c\u1ea7n c\u1ea9u gi\u00e0n gi\u00fap \u0111\u00e1nh gi\u00e1 xem hi\u1ec7u su\u1ea5t c\u1ee7a c\u1ea7n c\u1ea9u c\u00f3 ph\u00f9 h\u1ee3p v\u1edbi h\u1ec7 th\u1ed1ng truy\u1ec1n \u0111\u1ed9ng hay kh\u00f4ng v\u00e0 hi\u1ec7u qu\u1ea3 ho\u1ea1t \u0111\u1ed9ng th\u1ef1c t\u1ebf c\u00f3 \u0111\u00e1p \u1ee9ng c\u00e1c th\u00f4ng s\u1ed1 k\u1ef9 thu\u1eadt thi\u1ebft k\u1ebf hay kh\u00f4ng. T\u1ed1c \u0111\u1ed9 di chuy\u1ec3n qu\u00e1 ch\u1eadm d\u1eabn \u0111\u1ebfn hi\u1ec7u qu\u1ea3 th\u1ea5p, l\u00e0m gi\u00e1n \u0111o\u1ea1n ho\u1ea1t \u0111\u1ed9ng s\u1ea3n xu\u1ea5t v\u00e0 chu\u1ed7i cung \u1ee9ng. Ng\u01b0\u1ee3c l\u1ea1i, t\u1ed1c \u0111\u1ed9 qu\u00e1 cao t\u1ea1o ra qu\u00e1n t\u00ednh qu\u00e1 l\u1edbn trong qu\u00e1 tr\u00ecnh ho\u1ea1t \u0111\u1ed9ng, l\u00e0m t\u0103ng nguy c\u01a1 h\u01b0 h\u1ecfng c\u00e1c b\u1ed9 ph\u1eadn c\u01a1 kh\u00ed v\u00e0 kh\u1ea3 n\u0103ng x\u1ea3y ra tai n\u1ea1n. Do \u0111\u00f3, vi\u1ec7c ki\u1ec3m so\u00e1t \u0111\u00fang t\u1ed1c \u0111\u1ed9 di chuy\u1ec3n th\u1ef1c t\u1ebf c\u1ee7a c\u1ea7n c\u1ea9u tr\u00ean cao v\u00e0 c\u1ea7n c\u1ea9u gi\u00e0n gi\u00fap n\u00e2ng cao hi\u1ec7u qu\u1ea3 v\u00e0 an to\u00e0n v\u1eadn h\u00e0nh c\u1ee7a c\u1ea7n c\u1ea9u, \u0111\u1ed3ng th\u1eddi k\u00e9o d\u00e0i tu\u1ed5i th\u1ecd c\u1ee7a n\u00f3.","protected":false},"author":8,"featured_media":17285,"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":[1059],"tags":[],"class_list":["post-17279","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-online-tools"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/posts\/17279"}],"collection":[{"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/comments?post=17279"}],"version-history":[{"count":6,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/posts\/17279\/revisions"}],"predecessor-version":[{"id":17287,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/posts\/17279\/revisions\/17287"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/media\/17285"}],"wp:attachment":[{"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/media?parent=17279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/categories?post=17279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dgcrane.com\/vi\/wp-json\/wp\/v2\/tags?post=17279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}