{"id":3616,"date":"2026-10-27T09:00:00","date_gmt":"2026-10-27T01:00:00","guid":{"rendered":"https:\/\/cnbygele.com\/?p=3616"},"modified":"2026-10-26T19:07:24","modified_gmt":"2026-10-26T11:07:24","slug":"power-meter-modbus-address-offset","status":"publish","type":"post","link":"https:\/\/cnbygele.com\/ar\/blog\/power-meter-modbus-address-offset\/","title":{"rendered":"\u0625\u0632\u0627\u062d\u0629 \u0639\u0646\u0648\u0627\u0646 \u0633\u062c\u0644 Modbus \u0644\u0639\u062f\u0627\u062f \u0627\u0644\u0637\u0627\u0642\u0629: \u062f\u0644\u064a\u0644 \u0627\u0644\u062a\u062d\u0642\u0642 \u0644\u0644\u0642\u0631\u0627\u0621\u0629 \u0641\u0642\u0637"},"content":{"rendered":"<p>A power meter Modbus register address offset is the numeric address transmitted inside the protocol request. It can differ from the register reference printed in a manual or entered into monitoring software. Resolve the difference by identifying the register table, function code and numbering convention, then checking one documented read-only value against the actual request. Do not apply a universal \u201csubtract one\u201d rule to every driver. Some drivers already perform that conversion; others expect the transmitted offset directly. A correct response alone does not prove that the intended measurement was selected.<\/p>\n<p>This guide concerns address interpretation. For serial settings and physical communication, start with the <a href=\"https:\/\/cnbygele.com\/blog\/power-meter-modbus-communication-setup\/\">power meter Modbus setup guide<\/a>. For interpreting the returned bytes, use the separate <a href=\"https:\/\/cnbygele.com\/blog\/power-meter-modbus-byte-order\/\">byte and word order guide<\/a>.<\/p>\n<h2>Separate the three addresses on the commissioning sheet<\/h2>\n<p>A useful integration record has three different fields: the manual&#8217;s printed reference, the address entered into the client application, and the address actually transmitted. Calling all three \u201cregister number\u201d creates avoidable confusion. Keep the notation and number base beside each value. A hexadecimal entry copied into a decimal field can select an entirely different location while still producing a legitimate reply.<\/p>\n<p>The <a href=\"https:\/\/www.modbus.org\/file\/secure\/modbusprotocolspecification.pdf\" rel=\"noopener nofollow\" target=\"_blank\">Modbus Application Protocol specification<\/a> distinguishes its data model from protocol addressing. Protocol data addresses start at zero. The relationship between application data and a device&#8217;s internal implementation is device dependent. Traditional references such as 40001 are a documentation convention; they are not necessarily the literal number that belongs in the two-byte starting-address field.<\/p>\n<p>The CNBYG <a href=\"https:\/\/cnbygele.com\/product\/by194-series-multifunctional-power-instruments\/\">BY194 instrument family<\/a> provides a relevant product context because its published description offers an optional RS485\/MODBUS interface. The product image and family description do not establish the register map of every supplied variant. Obtain the exact model, firmware and communication manual before building tags. Do not copy a register from another manufacturer&#8217;s meter merely because both products use Modbus.<\/p>\n<h2>Read the table heading before entering a number<\/h2>\n<p>First identify whether the source describes holding registers, input registers, coils or discrete inputs. A number without its data table is incomplete. Function 03 and function 04 select different read operations in the standard protocol. A driver may combine table selection with a printed address prefix, or expose the function as a separate setting. Record both decisions.<\/p>\n<p>Next find the manual&#8217;s explanation of addressing. Look for worked requests, hexadecimal columns, statements about base zero or base one, and examples supplied for the recommended client. A worked packet is often more decisive than a column simply labelled \u201caddress.\u201d If two sections disagree, pause the affected tag and ask for clarification rather than changing every address in the project.<\/p>\n<div style=\"overflow-x:auto;max-width:100%\">\n<table style=\"border-collapse:collapse;width:100%;min-width:560px\">\n<thead>\n<tr>\n<th style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Evidence in the documentation<\/th>\n<th style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">What to establish<\/th>\n<th style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Commissioning record<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">A traditional register reference<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Which table the prefix denotes<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Reference and selected function<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">A zero-based address column<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Whether the client expects that exact offset<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Client entry and transmitted address<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">A one-based register number<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Where the client applies conversion<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Conversion rule with one worked example<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">A hexadecimal starting address<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Whether the client field accepts hexadecimal<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Both decimal and hexadecimal notation<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">A measurement spanning several words<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">First address and required word count<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Start, length and representation<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>This table is an interpretation checklist based on the protocol&#8217;s addressing model. It is not a BY194 register map. No addresses or supported functions for an individual CNBYG variant can be inferred from it.<\/p>\n<p><figure><img decoding=\"async\" alt=\"Disconnected CNBYG BY194 exterior beside register mapping verification materials \u2014 inspection\" class=\"wp-image-3613\" height=\"1024\" loading=\"lazy\" src=\"https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-inspection-20261026.png\" style=\"max-width:100%;height:auto\" width=\"1536\" srcset=\"https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-inspection-20261026.png 1536w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-inspection-20261026-300x200.png 300w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-inspection-20261026-1024x683.png 1024w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-inspection-20261026-768x512.png 768w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-inspection-20261026-18x12.png 18w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-inspection-20261026-600x400.png 600w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><figcaption>Product-reference illustration of the disconnected BY194 exterior. Context materials illustrate the review process; this image does not establish interface options, register formats, security capabilities or measurement specifications.<\/figcaption><\/figure>\n<\/p>\n<h2>Work through a hypothetical conversion<\/h2>\n<p>Suppose a hypothetical manual explicitly says that its holding-register reference 40001 corresponds to transmitted offset zero. Under that stated convention, reference 40010 corresponds to offset nine. A client configured to accept traditional references might therefore need 40010, while a client configured for raw offsets might need 9. These are two ways of selecting the same documented starting location, not interchangeable entries for the same input field.<\/p>\n<p>Now suppose another hypothetical manual prints hexadecimal address 0010 and says the column already contains protocol offsets. The decimal equivalent is 16. Subtracting one would select offset 15 and introduce an error. The rule comes from the column definition and the client configuration, not from the appearance of the number.<\/p>\n<p>A real project should attach the relevant manual page and a saved client configuration to this calculation. Include the register quantity as well. For a hypothetical two-register measurement starting at offset nine, requesting one register returns only part of the representation. Reading the correct start with the wrong length is a different fault from using the wrong base.<\/p>\n<h2>Verify with the smallest safe read<\/h2>\n<p>Begin on an approved maintenance connection with permission to access the instrument. Select a documented, read-only value that is available on the exact variant. Prefer a value with an independent comparison or recognizable identity. A measured current can be useful only when the relevant wiring, scaling and display interpretation are already understood. Zero under no load is weak evidence because many unrelated locations can also contain zero.<\/p>\n<p>Disable automatic writes, time synchronization writes and configuration discovery that changes settings. Confirm the destination identity and unit identifier. Save the client mode, function, start address and count before transmitting. A read-only test should remain read-only even if a software wizard suggests fixing an unexpected response by writing a value.<\/p>\n<p>Capture the request through a client log or an authorized protocol capture. Compare the transmitted starting address with the calculation on the commissioning sheet. For Modbus RTU, also retain the destination address and relevant serial parameters. The <a href=\"https:\/\/www.modbus.org\/file\/secure\/modbusoverserial.pdf\" rel=\"noopener nofollow\" target=\"_blank\">Modbus Serial Line guide<\/a> explains the transport framing; it does not replace the product&#8217;s application register map.<\/p>\n<h2>Distinguish a valid reply from a valid measurement<\/h2>\n<p>A normal reply demonstrates that a request was accepted at some level. It does not demonstrate that the selected register is voltage, current, power or accumulated energy. A plausible number can result from an adjacent measurement, the wrong data type or a scaling coincidence. Validate meaning separately from transport success.<\/p>\n<p>Compare the decoded value with a stable display reading or another approved reference. Record the time and operating condition so that a changing load does not look like an address fault. If there is a discrepancy, retain the raw returned words before changing decoding settings. Raw evidence lets the next engineer distinguish an offset error from word order, signedness, multiplier or CT-ratio problems.<\/p>\n<p>An exception reply also needs careful interpretation. An illegal-address exception can be caused by an unsupported range or a request that crosses a permitted boundary. It does not prove that every address in the request is wrong. A timeout is a separate observation and should lead back to transport and destination checks before altering the map.<\/p>\n<h2>Use adjacent checks without blind scanning<\/h2>\n<p>After proving one documented value, validate another nearby documented measurement. Keep its expected word count and type separate. This checks that the chosen convention works across a meaningful part of the map. It is more useful than confirming the same zero reading repeatedly.<\/p>\n<p>Do not scan undocumented register ranges simply to find numbers that look reasonable. Scanning can consume bus capacity, trigger unusual device behavior or create misleading confidence. Follow the manufacturer&#8217;s permitted request sizes and site access procedures. Use the <a href=\"https:\/\/cnbygele.com\/blog\/power-meter-polling-interval\/\">polling interval guide<\/a> when returning the verified tags to a shared acquisition schedule.<\/p>\n<p>If a multi-register group fails, test smaller documented groups without splitting a value that must be read together. Record the boundary that causes the exception. The outcome may reveal a device range restriction rather than a base-numbering problem. Any conclusion about coherent snapshots still requires explicit device documentation.<\/p>\n<h2>Build a register crosswalk that survives a software change<\/h2>\n<p>For every approved tag, retain the engineering name, manual revision, printed reference, table, function, transmitted offset, quantity, type, byte order, scale and unit. Keep configuration version and verification date alongside the data. An exported tag database without the driver&#8217;s addressing mode can be insufficient to reproduce the installation.<\/p>\n<p>When changing gateways or monitoring platforms, rerun the canary read before importing the complete tag list. Two products can label their input fields similarly while expecting different representations. Avoid mass subtraction or addition in a spreadsheet until the target driver&#8217;s behavior has been demonstrated with an actual request.<\/p>\n<p><figure><img decoding=\"async\" alt=\"Disconnected CNBYG BY194 exterior beside register mapping verification materials \u2014 records\" class=\"wp-image-3614\" height=\"1024\" loading=\"lazy\" src=\"https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-records-20261026.png\" style=\"max-width:100%;height:auto\" width=\"1536\" srcset=\"https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-records-20261026.png 1536w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-records-20261026-300x200.png 300w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-records-20261026-1024x683.png 1024w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-records-20261026-768x512.png 768w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-records-20261026-18x12.png 18w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/power-meter-modbus-address-offset-records-20261026-600x400.png 600w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><figcaption>Product-reference illustration of the disconnected BY194 exterior. Context materials illustrate the review process; this image does not establish interface options, register formats, security capabilities or measurement specifications.<\/figcaption><\/figure>\n<\/p>\n<h2>Acceptance and purchasing questions<\/h2>\n<p>Accept the integration only when the selected value, raw request and independent comparison agree within the limits of the comparison method. This is a communication mapping acceptance, not a calibration certificate. Keep measurement accuracy assessment in the separate <a href=\"https:\/\/cnbygele.com\/blog\/power-meter-accuracy-verification\/\">meter accuracy verification procedure<\/a>.<\/p>\n<p>Before ordering, request the exact interface option, register-map revision, supported read functions, addressing examples and available configuration export. Ask whether firmware changes can alter the map. Require the supplier to identify any reserved ranges and restrictions on grouped reads. A sample request and expected reply for the ordered variant can prevent substantial commissioning work later.<\/p>\n<h2>Educational background: binary representation<\/h2>\n<p>The educational lesson below explains how computers interpret ordered bytes. It supports the distinction between selecting a register and interpreting its contents; it does not define meter addresses or substitute for a manufacturer&#8217;s register map. Address selection must be verified before changing representation settings.<\/p>\n<div style=\"position:relative;padding-bottom:56.25%;height:0;overflow:hidden\"><iframe allowfullscreen=\"\" loading=\"lazy\" src=\"https:\/\/www.youtube-nocookie.com\/embed\/NcaiHcBvDR4\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;border:0\" title=\"Endianness Explained With an Egg - Computerphile\"><\/iframe><\/div>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=NcaiHcBvDR4\" rel=\"noopener nofollow\" target=\"_blank\">Watch the educational lesson<\/a><\/p>\n<h2>Frequently asked questions<\/h2>\n<h3>Should I always subtract one from a Modbus register number?<\/h3>\n<p>No. Establish whether the manual and client use references, one-based numbers or raw zero-based offsets. Some clients already convert the entry. Verify one documented read through the transmitted request before applying a rule to other tags.<\/p>\n<h3>Does reference 40001 always mean I should enter 40001?<\/h3>\n<p>No. Under a traditional holding-register convention it may identify offset zero, but the client can expect either a traditional reference or a raw offset. Use the exact driver documentation and the meter&#8217;s worked request example.<\/p>\n<h3>Can the wrong offset still return a believable reading?<\/h3>\n<p>Yes. An adjacent valid location can contain another measurement or a value that decodes plausibly. Confirm the engineering meaning against a stable independent comparison and preserve the raw returned words.<\/p>\n<h3>Can the BY194 product photograph establish its register map?<\/h3>\n<p>No. The photograph identifies the exterior reference only. Obtain the communication manual for the ordered model, interface option and firmware before assigning any measurement address, function, length or scaling rule.<\/p>\n<p><script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"Should I always subtract one from a Modbus register number?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. Establish whether the manual and client use references, one-based numbers or raw zero-based offsets. Some clients already convert the entry. Verify one documented read through the transmitted request before applying a rule to other tags.\"}}, {\"@type\": \"Question\", \"name\": \"Does reference 40001 always mean I should enter 40001?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. Under a traditional holding-register convention it may identify offset zero, but the client can expect either a traditional reference or a raw offset. Use the exact driver documentation and the meter's worked request example.\"}}, {\"@type\": \"Question\", \"name\": \"Can the wrong offset still return a believable reading?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Yes. An adjacent valid location can contain another measurement or a value that decodes plausibly. Confirm the engineering meaning against a stable independent comparison and preserve the raw returned words.\"}}, {\"@type\": \"Question\", \"name\": \"Can the BY194 product photograph establish its register map?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. The photograph identifies the exterior reference only. Obtain the communication manual for the ordered model, interface option and firmware before assigning any measurement address, function, length or scaling rule.\"}}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0639\u0627\u0644\u062c \u0625\u0632\u0627\u062d\u0627\u062a \u0639\u0646\u0627\u0648\u064a\u0646 Modbus \u0644\u0639\u062f\u0627\u062f \u0627\u0644\u0637\u0627\u0642\u0629 \u0628\u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u062a\u0646\u0633\u064a\u0642\u0627\u062a \u0645\u0631\u062c\u0639\u064a\u0629 \u0645\u0648\u062b\u0642\u0629 \u0648\u0637\u0644\u0628\u0627\u062a \u062e\u0627\u0645 \u0648\u0641\u062d\u0648\u0635\u0627\u062a \u0642\u0628\u0648\u0644 \u062a\u0642\u062a\u0635\u0631 \u0639\u0644\u0649 \u0627\u0644\u0642\u0631\u0627\u0621\u0629 \u0641\u0642\u0637.<\/p>","protected":false},"author":4,"featured_media":3612,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[1],"tags":[231],"class_list":["post-3616","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-power-factor-correction"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"acf":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/cnbygele.com\/ar\/wp-json\/wp\/v2\/posts\/3616","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cnbygele.com\/ar\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cnbygele.com\/ar\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cnbygele.com\/ar\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/cnbygele.com\/ar\/wp-json\/wp\/v2\/comments?post=3616"}],"version-history":[{"count":1,"href":"https:\/\/cnbygele.com\/ar\/wp-json\/wp\/v2\/posts\/3616\/revisions"}],"predecessor-version":[{"id":3618,"href":"https:\/\/cnbygele.com\/ar\/wp-json\/wp\/v2\/posts\/3616\/revisions\/3618"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cnbygele.com\/ar\/wp-json\/wp\/v2\/media\/3612"}],"wp:attachment":[{"href":"https:\/\/cnbygele.com\/ar\/wp-json\/wp\/v2\/media?parent=3616"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cnbygele.com\/ar\/wp-json\/wp\/v2\/categories?post=3616"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cnbygele.com\/ar\/wp-json\/wp\/v2\/tags?post=3616"}],"curies":[{"name":"\u0644\u0639\u0628 \u062c\u064a\u062f\u0629","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}