Design Manual › Instrumentation & control › Loop & cable sizing
FREE ENGINEERING TOOL · I&C UNIT 1

4–20 mA Loop & Signal-Cable Sizing

Will that instrument actually work at the end of the cable? Voltage-drop budget for two-wire (loop-powered) transmitters, load-capability check for self-powered 4–20 mA outputs, the HART 230–600 Ω window, IS-barrier budget, and copper cable sizing with tropical temperature correction. Built for Southeast-Asian plants.

1Instrument & run

2Loop loads & supply

Vendor-convention converter — "16.6 V incl. 250 Ω" vs terminal voltage
Enter the number printed on your datasheet; the tool converts it so the two conventions never get double-counted.
—

Results — is the loop viable?

Cable R (2L)
—Ω
Total loop R
—Ω
V at instrument
—V
ItemValueUnit
Given this cable, the loop is viable to:
Cross-section0.50.751.01.52.5 mm²
Max one-way run (m)—————

Instrumentation this loop settles on

DutyInstrumentBasis

Quote this loop's instruments at factory price

Analysers, the 24 V supply and cable at the manufacturer's ex-works price — our margin comes solely from the export tax rebate. Signal cable is normally bought locally; we size it here so your local purchase has a number behind it. RS-485 surges on this loop are covered by the LW-10 (Unit 2 of the I&C manual).

Request a quote for this duty ← Design Manual home
Response within 24 hours · Inputs stay in your browser — nothing is uploaded.

Sources & parameter basis

[1]Emerson/Rosemount load limitation — R_max = 43.5·(Vsupply−10.5); HART ≥250 Ω; a 250 Ω loop needs ≥16.6 V. Terminal minimum 10.5–12 V.
[2]Chinhui Automation cable guide — EJA "16.6 V incl. 250 Ω" convention; I_check 24.4 mA; ρ 0.0188 @35 °C, 0.0217 @75 °C; 300 Ω load ceiling.
[3]Multicalci instrumentation calculators — ρ_20 0.0168 Ω·mm²/m, α_Cu 0.00393 /K, R_max formula, 1.3× safety on V_tx_min.
[4]IEC 60228 conductor resistance maxima at 20 °C (Ω/km).
[5]HART Foundation / Endress+Hauser — total loop load window 230–600 Ω for HART signalling.
[6]Jiuyuhub published product data (jiuyuhub.com) — 4–20 mA outputs rated into loads <750 Ω (DO6000Y / MS6000SG / PH6000C); SE10A 24 V DC, HART/Modbus.
Full derivation, worked examples and the two-vendor convention note: Instrument-Loop-Power-Cable-Calculation-Sheet.md (calculation book, Unit 1 of the I&C manual).
'; return html; } /* ================= PDF (jsPDF via CDN, loaded on demand) ================= */ var _pdfShown=false; function lineHeight(){ return 5; } var _atLoaded=false; function buildPdf(d, lead, jsPDF){ var doc = new jsPDF({unit:'mm', format:'a4'}); var M = 12, W = 186; var GREEN=[15,107,82], DARK=[22,32,43], BLUE=[26,95,143], GREY=[123,139,154]; function text(txt, x, y, size, style, color){ doc.setFontSize(size||9); doc.setFont('helvetica', style||'normal'); doc.setTextColor.apply(doc, color||DARK); doc.text(sanitizeForPdf(txt), x, y); } text('JIYUHUH - FREE ENGINEERING TOOL', M, 14, 9, 'bold', GREEN); text(d.title, M, 22, 16, 'bold', DARK); text('Calculation record - ' + d.date + (lead&&lead.email?' - prepared for '+lead.email:'') + (lead&&lead.company?' ('+lead.company+')':''), M, 28, 8, 'italic', GREY); var y = 34; function spacer(){ y += 2; if (y > 280){ doc.addPage(); y = 14; } } function blockTitle(t){ spacer(); text(t, M, y, 11, 'bold', GREEN); y += 3; } function note(txt, size, color){ doc.setFontSize(size||7.5); doc.setFont('helvetica','italic'); doc.setTextColor.apply(doc, color||[120,120,120]); var lines = doc.splitTextToSize(sanitizeForPdf(txt), W); lines.forEach(function(ln){ if (y > 285){ doc.addPage(); y = 14; } doc.text(ln, M, y); y += 4; }); } blockTitle('Inputs & assumptions'); doc.autoTable({ startY: y, margin:{left:M, right:M}, head: [['Parameter','Value']], body: d.inputs.map(function(r){ return [sanitizeForPdf(r.name), sanitizeForPdf(r.value)]; }), styles:{fontSize:8, cellPadding:1.6, lineColor:[226,232,238], lineWidth:0.1}, headStyles:{fillColor:GREEN, textColor:[255,255,255], fontSize:8}, columnStyles:{1:{halign:'right', fontStyle:'bold'}}, theme:'grid', tableWidth:W }); y = doc.lastAutoTable.finalY + 4; d.results.forEach(function(b){ if (b.kpis.length){ if (y > 278){ doc.addPage(); y = 14; } text(b.kpis.join(' | '), M, y, 8.5, 'italic', BLUE); y += 4; } if (!b.rows.length) return; var maxc = Math.max.apply(null, b.rows.map(function(r){ return r.cells.length; })); if (!maxc) return; var headCells = (b.head && b.head.length === maxc) ? b.head : Array.apply(null, Array(maxc)).map(function(_,i){ return 'Item '+(i+1); }); blockTitle(b.title); var colStyles = {}; for (var i=1;iDownload your calculation record as a printable sheet / PDF. ' +'We will also email a copy to this address, and our engineering team follows up within 24 hours. Your address is used only for this and never shared.
' +'' +'' +'
' +'' +'' +'
' +'' +'
' +'' +'' +'' +'
' +'' +'
Company emails get priority review. Your data stays in your browser — nothing is uploaded.
'; ov.appendChild(box); document.body.appendChild(ov); var email=box.querySelector('#jxEmail'), go=box.querySelector('#jxGo'), htm=box.querySelector('#jxHtml'), err=box.querySelector('#jxErr'), comp=box.querySelector('#jxCompany'), cty=box.querySelector('#jxCountry'); function close(){ css(ov,{display:'none'}); state.open=false; } ov.addEventListener('click',function(e){ if(e.target===ov) close(); }); box.querySelector('#jxClose').addEventListener('click',close); function lead(){ var e=email.value.trim(), c=comp.value.trim(), cy=cty.value.trim(); if(!validEmail(e)){ err.textContent='Please enter a valid work email.'; err.style.display='block'; return null; } if(isTempMail(e)){ err.textContent='Disposable addresses are not accepted — use a company or real domain email.'; err.style.display='block'; return null; } err.style.display='none'; var l={email:e,company:c,country:cy,page:location.pathname,time:new Date().toISOString()}; try{ var arr=JSON.parse(localStorage.getItem('jiuyu_leads')||'[]'); arr.push(l); localStorage.setItem('jiuyu_leads',JSON.stringify(arr)); }catch(_){} return l; } function dlHtml(){ var l=lead(); if(!l) return; var d=scanTool(); var blob=new Blob([buildCalcHtml(d,l)],{type:'text/html;charset=utf-8'}); var a=document.createElement('a'); a.href=URL.createObjectURL(blob); a.download=(d.title.replace(/[^a-z0-9]+/gi,'-').toLowerCase()||'calculation')+'-record.html'; document.body.appendChild(a); a.click(); setTimeout(function(){URL.revokeObjectURL(a.href);a.remove();},400); sendRecordEmail(d,l); state.done&&state.done(l); close(); } function dlPdf(){ var l=lead(); if(!l) return; var d=scanTool(); if (window.jspdf && window.jspdf.jsPDF && _atLoaded){ sendRecordEmail(d,l); downloadPdfNow(d,l); close(); return; } go.disabled=true; go.textContent='loading PDF engine...'; var s=document.createElement('script'); s.src='/tools/vendor/jspdf.umd.min.js'; s.onload=function(){ var a=document.createElement('script'); a.src='/tools/vendor/jspdf.plugin.autotable.min.js'; a.onload=function(){ _atLoaded=true; go.disabled=false; go.textContent='Download PDF'; downloadPdfNow(d,l); sendRecordEmail(d,l); close(); }; a.onerror=function(){ sendRecordEmail(d,l); go.disabled=false; go.textContent='PDF engine unavailable'; err.textContent='PDF table plugin could not load (offline?) - use HTML sheet instead.'; err.style.display='block'; }; document.head.appendChild(a); }; s.onerror=function(){ sendRecordEmail(d,l); go.disabled=false; go.textContent='PDF engine unavailable'; err.textContent='PDF engine could not load (offline?) - use HTML sheet instead.'; err.style.display='block'; }; document.head.appendChild(s); } function sendRecordEmail(d,l){ try{ var html = buildCalcHtml(d,l); fetch('/api/send-calc', {method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify({email:l.email, company:l.company||'', country:l.country||'', title:d.title, html:html, source:location.pathname})}); }catch(_){} } function downloadPdfNow(d,l){ var J = window.jspdf.jsPDF; var doc = buildPdf(d,l,J); doc.save((d.title.replace(/[^a-z0-9]+/gi,'-').toLowerCase()||'calculation')+'-record.pdf'); } go.addEventListener('click',dlPdf); htm.addEventListener('click',dlHtml); var mail=box.querySelector('#jxMail'); function mailEngineers(){ var e=email.value.trim(), c=comp.value.trim(), cy=cty.value.trim(); if(!validEmail(e)){ err.textContent='Enter a valid work email first — we reply to it with the review.'; err.style.display='block'; return; } if(isTempMail(e)){ err.textContent='Disposable addresses are not accepted — use a company or real domain email.'; err.style.display='block'; return; } err.style.display='none'; var d=scanTool(); var subj='Calculation review request — '+d.title; var body='Hi Jiuyuhub team,\n\n' +'Please review the calculation I generated with your tool and advise on matching instruments at factory ex-works pricing (no markup; margin = export tax rebate).\n\n' +'My details:\n' +' Email: '+e+'\n' +' Company: '+(c||'-')+'\n' +' Country: '+(cy||'-')+'\n' +' Tool: '+d.title+' ('+location.href+')\n\n' +'I have downloaded the PDF/HTML sheet as my local record.\n\n' +'Thanks,\n'+e+'\n'; var href='mailto:sales@jiuyuhub.com?subject='+encodeURIComponent(subj)+'&body='+encodeURIComponent(body); try{ var arr=JSON.parse(localStorage.getItem('jiuyu_leads')||'[]'); arr.push({email:e,company:c,country:cy,page:location.pathname,time:new Date().toISOString(),channel:'mailto'}); localStorage.setItem('jiuyu_leads',JSON.stringify(arr)); }catch(_){} window.location.href=href; state.done&&state.done({email:e,company:c,country:cy,page:location.pathname,time:new Date().toISOString()}); close(); } if(mail) mail.addEventListener('click',mailEngineers); email.addEventListener('keydown',function(e){ if(e.key==='Enter') dlPdf(); }); state._close=close; return ov; } function openExport(){ var m=mkModal(); css(m,{display:'flex'}); var e=m.querySelector('#jxEmail'); state.open=true; if(e){ e.focus(); } } function install(){ // 1) header button var header=document.querySelector('header'); if (header){ var b=document.createElement('button'); b.id='jxOpen'; b.type='button'; b.textContent='Get this calculation (PDF)'; css(b,{display:'inline-block',marginTop:'10px',background:'#fff',border:'1.5px solid #0f6b52',color:'#0f6b52', fontWeight:'700',fontSize:'13px',padding:'9px 16px',borderRadius:'8px',cursor:'pointer'}); b.addEventListener('click',openExport); header.appendChild(b); } // 2) wire any placeholder CTA (href="#", return false) document.querySelectorAll('.cta a[href="#"]').forEach(function(a){ a.addEventListener('click',function(ev){ ev.preventDefault(); openExport(); }); a.removeAttribute('onclick'); }); // 3) design-chain bridging bridgeApply(); bridgeRefresh(); // keep chain links live as inputs change (bubble phase: the page's own calc() // runs first, so derived bridge values such as hidden WAS outputs are fresh) ['input','change'].forEach(function(evt){ document.addEventListener(evt,function(){ bridgeRefresh(); }); }); // 4) robustness & shareability injectGuardStyle(); addShareButton(); initInvalidGuard(); ['input','change'].forEach(function(evt){ document.addEventListener(evt,function(){ invalidGuardScan(); }); }); } /* ============ invalid-input guard (NaN / empty-field sentinel) ============ * Engine-independent safety net: if any result cell ever shows NaN / Infinity, * or a primary numeric field is left empty, we surface a red banner and flag the * offending cells — instead of quietly showing garbage numbers. */ var _gStyleInjected=false; function injectGuardStyle(){ if (_gStyleInjected || typeof document==='undefined') return; _gStyleInjected=true; var st=document.createElement('style'); st.textContent='.jx-bad{outline:2px solid #c0453b !important;outline-offset:1px;border-radius:3px}'+ '#jxGuardBar{display:none;background:#c0453b;color:#fff;font-size:13px;font-weight:700;'+ 'padding:9px 16px;border-radius:8px;margin:0 0 14px;line-height:1.5}'+ '#jxShareBtn{background:#fff;color:#1a5f8f;border:1.5px solid #1a5f8f;font-weight:700;font-size:13px;'+ 'padding:9px 16px;border-radius:8px;cursor:pointer;margin-top:10px;margin-left:8px}'+ '#jxShareBtn.ok{color:#0f6b52;border-color:#0f6b52}'; (document.head||document.documentElement).appendChild(st); } var _barEl=null; function guardBar(){ if (_barEl) return _barEl; _barEl=document.createElement('div'); _barEl.id='jxGuardBar'; _barEl.setAttribute('role','alert'); _barEl.textContent='Some results are invalid — a flow, ratio or strength above is zero, negative or empty. '+ 'Results stay hidden (flagged red) until every field has a valid number.'; var header=document.querySelector('header, .crumb'); if (header && header.parentNode) header.parentNode.insertBefore(_barEl, header.nextSibling); else document.body.insertBefore(_barEl, document.body.firstChild); return _barEl; } function invalidGuardScan(){ if (typeof document==='undefined') return; var BAD=/NaN|Infinity|−∞|∞/; var bad=[]; // 1) result cells showing NaN / Infinity document.querySelectorAll('.res *,.kpis *').forEach(function(el){ if (el.children.length===0 && BAD.test(el.textContent||'')) bad.push(el); }); // 2) primary numeric inputs left empty (avoid flagging fields in
that are off-path) document.querySelectorAll('.f input[type="number"],.card > .row input[type="number"]').forEach(function(inp){ var inDetails=!!inp.closest('details'); if (!inDetails && (inp.value==='' || inp.value===null)) bad.push(inp); }); var bar=guardBar(); if (bad.length>0){ bad.forEach(function(el){ el.classList.add('jx-bad'); }); bar.style.display='block'; } else { document.querySelectorAll('.jx-bad').forEach(function(el){ el.classList.remove('jx-bad'); }); bar.style.display='none'; } } function initInvalidGuard(){ invalidGuardScan(); if (typeof MutationObserver!=='undefined'){ var mo=new MutationObserver(function(){ invalidGuardScan(); }); mo.observe(document.body,{subtree:true,childList:true,characterData:true}); } } /* ============ copy a shareable link carrying the current duty ============ */ function makeShareUrl(){ var cfg=window.BRIDGE; var base=location.href.split('?')[0]; if (!cfg || !cfg.in) return base; var qs=[]; for (var k in cfg.in){ if(!Object.prototype.hasOwnProperty.call(cfg.in,k)) continue; var el=document.getElementById(cfg.in[k]); if(!el) continue; var v; try{ v=(el.type==='checkbox')?(el.checked?'1':'0'):String(el.value); }catch(e){ continue; } if (v!=='') qs.push(encodeURIComponent(k)+'='+encodeURIComponent(v)); } return base+(qs.length?'?'+qs.join('&'):''); } function addShareButton(){ if (typeof document==='undefined') return; var host=document.querySelector('header'); var ref=(host&&host.querySelector('#jxOpen'))||null; var b=document.createElement('button'); b.id='jxShareBtn'; b.type='button'; b.textContent='Copy share link'; b.addEventListener('click',function(){ var url=makeShareUrl(); function done(){ b.textContent='Copied ✓'; b.classList.add('ok'); setTimeout(function(){ b.textContent='Copy share link'; b.classList.remove('ok'); },1800); } function fallback(){ var ta=document.createElement('textarea'); ta.value=url; ta.style.position='fixed'; ta.style.opacity='0'; document.body.appendChild(ta); ta.select(); try{ document.execCommand('copy'); done(); }catch(e){ prompt('Copy this link:', url); } document.body.removeChild(ta); } if (navigator.clipboard && navigator.clipboard.writeText){ navigator.clipboard.writeText(url).then(done,fallback); } else fallback(); }); if (host){ host.appendChild(b); } } /* ================= design-chain parameter bridging ================= * A page opts in with window.BRIDGE = { * in: { urlKey: 'elementId', ... } — params it accepts from ?urlKey=value * chain: { key: { page:'target.html', map:{ srcElId:'dstUrlKey', ... } } } — live "continue" links * Mark a link with class="jx-chain" data-chain="key" and it gets re-pointed as the user edits. * URL keys equal the target page's own input ids, so dstUrlKey is usually the id there. */ function bridgeApply(){ if (typeof window==='undefined' || !window.location || !window.location.search) return 0; var s=window.location.search.replace(/^\?/,''); if (!s) return 0; var qs={}; s.split('&').forEach(function(p){ if(!p) return; var kv=p.split('='); try{ if(kv[0]) qs[decodeURIComponent(kv[0])]=decodeURIComponent((kv[1]||'').replace(/\+/g,' ')); } catch(e){} }); var cfg=window.BRIDGE; if(!cfg || !cfg.in) return 0; var touched=[]; for (var k in cfg.in){ if(!Object.prototype.hasOwnProperty.call(cfg.in,k) || qs[k]===undefined) continue; var el=document.getElementById(cfg.in[k]); if(!el) continue; try{ if (el.type==='checkbox') el.checked=(qs[k]==='1'||qs[k]==='true'||qs[k]==='on'); else el.value=qs[k]; }catch(e){ continue; } touched.push(el); } touched.forEach(function(el){ try{ el.dispatchEvent(new Event('input',{bubbles:true})); el.dispatchEvent(new Event('change',{bubbles:true})); }catch(e){} }); return touched.length; } function bridgeRefresh(){ if (typeof document==='undefined') return; var cfg=window.BRIDGE; if(!cfg || !cfg.chain) return; document.querySelectorAll('a.jx-chain').forEach(function(a){ var key=a.getAttribute('data-chain'); if(!key) return; var c=cfg.chain[key]; if(!c || !c.page) return; var q=[]; for (var src in c.map){ if(!Object.prototype.hasOwnProperty.call(c.map,src)) continue; var el=document.getElementById(src); if(!el) continue; var spec=c.map[src]; var dst=spec, scale=1; if (spec && typeof spec==='object' && spec.to){ dst=spec.to; scale=(spec.scale!=null)?spec.scale:1; } var v; try{ if (el.type==='checkbox') v=(el.checked?'1':'0'); else if (scale!==1){ var n=parseFloat(el.value); v=(isFinite(n)?String(Math.round(n*scale*1000)/1000):''); } else v=encodeURIComponent(String(el.value)); }catch(e){ continue; } if (v!=='') q.push(dst+'='+v); } a.href=c.page+(q.length?'?'+q.join('&'):''); }); } if (document.readyState==='loading') document.addEventListener('DOMContentLoaded',install); else install(); window.CalcExport={open:openExport, validEmail:validEmail, isTempMail:isTempMail, sanitizeForPdf:sanitizeForPdf, buildCalcHtml:buildCalcHtml, scanTool:scanTool, buildPdf:buildPdf, bridgeApply:bridgeApply, bridgeRefresh:bridgeRefresh, makeShareUrl:makeShareUrl, invalidGuardScan:invalidGuardScan, _modal:mkModal}; })();
Questions about a duty, a specification, or transparent sourcing? Contact our application engineers →

Cite this tool / 引用此工具

If you use this result in a report, specification or client document, please cite it as below. It takes one line and lets engineers find us. 如果您把计算结果用于报告、规格书或客户文件,请按下列方式引用。

Jiuyuhub. "4–20 mA Loop & Signal-Cable Sizing". Jiuyuhub, https://jiuyuhub.com/instrument-loop-design.html

Licensed for internal and commercial technical use (CC BY 4.0). 内容可用于内部及商业技术用途。 Questions? Ask our engineers