{"id":3636,"date":"2026-10-28T09:00:00","date_gmt":"2026-10-28T01:00:00","guid":{"rendered":"https:\/\/cnbygele.com\/?p=3636"},"modified":"2026-10-27T20:00:17","modified_gmt":"2026-10-27T12:00:17","slug":"modbus-exception-codes","status":"publish","type":"post","link":"https:\/\/cnbygele.com\/ru\/blog\/modbus-exception-codes\/","title":{"rendered":"\u041a\u043e\u0434\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 Modbus \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044f \u043c\u043e\u0449\u043d\u043e\u0441\u0442\u0438: \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430 \u043e\u0442\u043a\u043b\u043e\u043d\u0451\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432"},"content":{"rendered":"<p>Power meter Modbus exception codes indicate that a device received a request but could not carry out the requested operation. They are different from a timeout, a damaged serial frame or a value decoded with the wrong byte order. Start by saving the exact request and response, then check the exception against the register map for the installed meter variant. Do not change protection settings, reset counters or issue write commands simply to make the error disappear. A read-only investigation usually provides a safer, clearer route to the cause.<\/p>\n<p>This guide explains how to recognize an exception response, separate protocol errors from communication failures, and prepare evidence that a meter supplier or integration engineer can actually use. It does not provide a BY194 register map or claim that every device supports every function described in the protocol.<\/p>\n<h2>Identify what actually came back<\/h2>\n<p>A normal response and an exception response have different structures. The <a href=\"https:\/\/www.modbus.org\/file\/secure\/modbusprotocolspecification.pdf\" rel=\"noopener nofollow\" target=\"_blank\">Modbus Application Protocol specification<\/a> defines the exception function code as the requested function code with its most significant bit set. The exception data then identifies the reported condition. For example, an exception to function 03 uses function 83 hexadecimal. That example describes protocol framing, not an address or a capability of a particular meter.<\/p>\n<p>First confirm that the response belongs to the request under investigation. On a serial bus, compare device identity and the captured frame. Across a TCP gateway, retain transaction identifiers and routing details as well. A gateway may report its own problem rather than return an exception generated by the meter. The distinction matters because a valid gateway response does not prove that the downstream instrument was reachable.<\/p>\n<p>A timeout contains no valid response to classify. A CRC failure means the received serial message failed an integrity check and should not be accepted as an application response. A valid normal response containing an implausible measurement raises different questions: address, type, scaling, units and data freshness. Keep those categories separate in the incident record.<\/p>\n<p><figure><img decoding=\"async\" alt=\"Disconnected CNBYG BY194 exterior beside response-review materials \u2014 inspection\" class=\"wp-image-3634\" height=\"1254\" loading=\"lazy\" src=\"https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-inspection-20261027.png\" style=\"max-width:100%;height:auto\" width=\"1254\" srcset=\"https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-inspection-20261027.png 1254w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-inspection-20261027-300x300.png 300w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-inspection-20261027-1024x1024.png 1024w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-inspection-20261027-150x150.png 150w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-inspection-20261027-768x768.png 768w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-inspection-20261027-12x12.png 12w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-inspection-20261027-500x500.png 500w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-inspection-20261027-600x600.png 600w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-inspection-20261027-100x100.png 100w\" sizes=\"auto, (max-width: 1254px) 100vw, 1254px\" \/><figcaption>Product-reference illustration of the disconnected BY194 exterior with response-review materials. Context objects illustrate a review process; they do not establish installed interfaces, wiring, register formats, error diagnostics or measurement capabilities.<\/figcaption><\/figure>\n<\/p>\n<h2>Read the code without overdiagnosing it<\/h2>\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\">Exception<\/th>\n<th style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Protocol meaning<\/th>\n<th style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Useful first check<\/th>\n<th style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">What the code does not establish<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">01<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Illegal function<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Compare requested function with the device manual<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">That the meter hardware is defective<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">02<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Illegal data address<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Check starting offset and complete requested range<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">That changing only the device address will help<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">03<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Illegal data value<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Check request structure and permitted quantity or field values<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">That the measured voltage or current is outside range<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">04<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Server device failure<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Preserve evidence and follow manufacturer diagnostics<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">A specific failed component<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">05 or 06<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Acknowledge or server device busy<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Check whether that operation and response are documented<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Permission to retry indefinitely<\/td>\n<\/tr>\n<tr>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">0A or 0B<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Gateway path or target response problem<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">Investigate the gateway route and downstream link<\/td>\n<td style=\"border:1px solid #d1d5db;padding:10px;text-align:left;vertical-align:top\">That the application register exists<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>The labels and distinctions above follow the application protocol specification. Their occurrence and handling depend on implemented functions and device documentation. Some codes are relevant to operations that a particular power meter may never support. Never build troubleshooting instructions around the assumption that all listed codes can occur on the installed model.<\/p>\n<p>Code 03 is particularly easy to misread. In this context, \u201cdata value\u201d concerns the request field or structure that the server rejected. It is not a general alarm stating that the measured physical quantity is unsafe. Operational electrical alarms must be interpreted using the meter manual and the installation&#8217;s protection arrangements.<\/p>\n<h2>Check the complete read request<\/h2>\n<p>Record the function, starting address and requested quantity together. Checking only the first register can miss a range crossing an unsupported boundary. A read beginning at a valid location may still include a reserved register, exceed a device-specific supported block, or split a value that requires a documented access pattern.<\/p>\n<p>Work from the exact variant&#8217;s manual, including its revision and any communication-option details. Printed register references may use a human numbering convention that differs from the offset transmitted in the message. Use the separate <a href=\"https:\/\/cnbygele.com\/blog\/power-meter-modbus-address-offset\/\">register address offset guide<\/a> to document that conversion explicitly. Do not try a sequence of guessed offsets on a production system without an approved, bounded test plan.<\/p>\n<p>Choose one manufacturer-documented read-only item as a baseline. Verify the requested function and allowed quantity. If the baseline works and the intended block fails, compare the two requests rather than changing baud rate, wiring and register addressing at the same time. One controlled difference provides much stronger evidence than a broad configuration reset.<\/p>\n<p>When the entire integration fails, also verify the basic <a href=\"https:\/\/cnbygele.com\/blog\/power-meter-modbus-communication-setup\/\">power meter communication setup<\/a>. A communications option listed on a product page is not proof that a particular supplied unit includes it, has the expected configuration or uses the map found for a different variant.<\/p>\n<h2>Distinguish meter rejection from gateway rejection<\/h2>\n<p>Document every intermediary between software and instrument. Include the gateway model, communication mode, routing identifier, relevant firmware revision and the ownership of configuration changes. A serial device address can be translated or selected through a gateway setting; a request sent to the wrong downstream route may produce a gateway error even when the network connection is healthy.<\/p>\n<p>Collect gateway logs where available, but avoid assuming undocumented counters or diagnostics exist. Compare the gateway&#8217;s own response with an approved capture at the downstream boundary if the installation supports that procedure. Such work should be performed by the responsible controls team without disrupting a shared bus or exposing an operational network.<\/p>\n<p>An immediate exception and a delayed timeout call for different next actions. The immediate exception may show that the target understood enough of the request to reject it. A timeout may result from routing, device availability, line configuration or a lost response. Neither observation alone identifies a faulty instrument. Preserve timings as observations rather than turning them into unsupported response-time specifications.<\/p>\n<h2>Use bounded retries and escalation<\/h2>\n<p>Repeatedly sending an invalid request does not improve its validity. For illegal function or illegal address responses, stop the affected request and compare it with the manual before retrying. For a documented temporary busy condition, use the manufacturer&#8217;s recommended delay, a maximum attempt count and a clear escalation path. Do not treat a busy response as permission for unlimited polling.<\/p>\n<p>A shared bus may contain several clients or gateways, so coordinate any investigation. Prevent an integration retry loop from overwhelming equipment or hiding the original fault in a large log. Keep the first failure, the controlled changes and the final result. A successful later read should not erase the evidence needed to explain why the first request was rejected.<\/p>\n<p>The <a href=\"https:\/\/www.modbus.org\/file\/secure\/modbusoverserial.pdf\" rel=\"noopener nofollow\" target=\"_blank\">Modbus serial line specification<\/a> helps distinguish message framing and integrity from application exceptions. Use it alongside the device manual, rather than treating a valid serial frame as proof that every requested application operation is supported.<\/p>\n<h2>Build a supplier-ready evidence package<\/h2>\n<p>A useful support request includes the meter model and variant, serial number where appropriate, manual revision, installed communication option, firmware information if available, and the intended measurement. Add the exact register reference as printed in the manual and the actual starting offset and quantity sent by the client.<\/p>\n<p>Attach one request and its corresponding raw response with a timestamp and consistent hexadecimal notation. State whether the capture was taken at the client, gateway or serial interface. Include the expected response based on the manual, the exception observed, the bounded tests already performed and their outcomes. Remove credentials, sensitive network details and unrelated operational data before sharing the package.<\/p>\n<p>For <a href=\"https:\/\/cnbygele.com\/product\/by194-series-multifunctional-power-instruments\/\">CNBYG BY194 multifunctional instruments<\/a>, the public product information identifies optional RS485\/MODBUS communication. Obtain the documentation for the actual ordered configuration before selecting functions or registers. The product photograph cannot establish protocol support, installed options, terminal assignment or exception behavior.<\/p>\n<p><figure><img decoding=\"async\" alt=\"Disconnected CNBYG BY194 exterior beside response-review materials \u2014 records\" class=\"wp-image-3635\" height=\"1024\" loading=\"lazy\" src=\"https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-records-20261027.png\" style=\"max-width:100%;height:auto\" width=\"1536\" srcset=\"https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-records-20261027.png 1536w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-records-20261027-300x200.png 300w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-records-20261027-1024x683.png 1024w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-records-20261027-768x512.png 768w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-records-20261027-18x12.png 18w, https:\/\/cnbygele.com\/wp-content\/uploads\/2026\/10\/modbus-exception-codes-records-20261027-600x400.png 600w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><figcaption>Product-reference illustration of the disconnected BY194 exterior with response-review materials. Context objects illustrate a review process; they do not establish installed interfaces, wiring, register formats, error diagnostics or measurement capabilities.<\/figcaption><\/figure>\n<\/p>\n<h2>Verify the correction before reopening collection<\/h2>\n<p>After a documented correction, repeat the original approved read and compare the response structure with the expected format. Confirm that the result comes from the intended instrument and represents the intended measurement. Check units, scaling and interpretation separately; eliminating an exception does not establish measurement accuracy.<\/p>\n<p>For multi-register values, continue with <a href=\"https:\/\/cnbygele.com\/blog\/power-meter-modbus-byte-order\/\">byte and word order verification<\/a> rather than judging success from a plausible number. Compare readings against an appropriate trusted reference under stable conditions and record the acceptance criteria chosen by the project. A single coincidentally reasonable value is weak evidence.<\/p>\n<p>Restore ordinary collection gradually, review whether exceptions recur, and retain the final request definition in the integration record. If a different exception appears, open a separate diagnostic branch instead of overwriting the previous explanation. This keeps future maintenance work reproducible and makes replacement instruments easier to integrate correctly.<\/p>\n<h2>Further learning: integrity failures versus rejected requests<\/h2>\n<p>The neutral educational lesson below explains how transmission errors can be detected. It supports the distinction made earlier: an integrity failure is different from a validly received application exception. The lesson does not define Modbus exception codes or replace the protocol documents; use it as background for keeping those diagnostic branches separate.<\/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\/-15nx57tbfc\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;border:0\" title=\"Error Detection and Flipping the Bits - Computerphile\"><\/iframe><\/div>\n<p><a href=\"https:\/\/www.youtube.com\/watch?v=-15nx57tbfc\" rel=\"noopener nofollow\" target=\"_blank\">Watch the educational lesson<\/a><\/p>\n<h2>Frequently asked questions<\/h2>\n<h3>Does exception 02 mean the meter address is wrong?<\/h3>\n<p>Not necessarily. Illegal data address concerns the requested application data range. Check the function, transmitted register offset and complete quantity against the installed variant&#8217;s manual, while verifying device identity separately.<\/p>\n<h3>Can a timeout be treated as an exception code?<\/h3>\n<p>No. A timeout means no valid matching response was received within the client&#8217;s waiting period. It needs a communication and routing investigation rather than an invented exception classification.<\/p>\n<h3>Should the integration retry every exception automatically?<\/h3>\n<p>No. Correct invalid functions or addresses before retrying. Retry temporary conditions only when documented, with a delay, an attempt limit and escalation. Avoid repeated requests that load a shared network without resolving the cause.<\/p>\n<h3>Is a normal response enough to approve the measurement?<\/h3>\n<p>No. Confirm identity, data type, byte order, scaling, units and freshness. A successful protocol exchange proves that a request was answered, while measurement acceptance requires separate checks.<\/p>\n<p><script type=\"application\/ld+json\">{\"@context\": \"https:\/\/schema.org\", \"@type\": \"FAQPage\", \"mainEntity\": [{\"@type\": \"Question\", \"name\": \"Does exception 02 mean the meter address is wrong?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"Not necessarily. Illegal data address concerns the requested application data range. Check the function, transmitted register offset and complete quantity against the installed variant's manual, while verifying device identity separately.\"}}, {\"@type\": \"Question\", \"name\": \"Can a timeout be treated as an exception code?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. A timeout means no valid matching response was received within the client's waiting period. It needs a communication and routing investigation rather than an invented exception classification.\"}}, {\"@type\": \"Question\", \"name\": \"Should the integration retry every exception automatically?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. Correct invalid functions or addresses before retrying. Retry temporary conditions only when documented, with a delay, an attempt limit and escalation. Avoid repeated requests that load a shared network without resolving the cause.\"}}, {\"@type\": \"Question\", \"name\": \"Is a normal response enough to approve the measurement?\", \"acceptedAnswer\": {\"@type\": \"Answer\", \"text\": \"No. Confirm identity, data type, byte order, scaling, units and freshness. A successful protocol exchange proves that a request was answered, while measurement acceptance requires separate checks.\"}}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f Modbus \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043e\u0442\u043a\u043b\u043e\u043d\u0451\u043d\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u044f\u0432\u0438\u0442\u0435 \u043d\u0435\u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442\u0438 \u0448\u043b\u044e\u0437\u0430, \u0430\u0434\u0440\u0435\u0441\u0430 \u0438 \u0441\u0432\u044f\u0437\u0438.<\/p>","protected":false},"author":4,"featured_media":3633,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_gspb_post_css":"","footnotes":""},"categories":[1],"tags":[201],"class_list":["post-3636","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-multifunction-power-meter"],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":8}},"acf":[],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/cnbygele.com\/ru\/wp-json\/wp\/v2\/posts\/3636","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cnbygele.com\/ru\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cnbygele.com\/ru\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cnbygele.com\/ru\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/cnbygele.com\/ru\/wp-json\/wp\/v2\/comments?post=3636"}],"version-history":[{"count":1,"href":"https:\/\/cnbygele.com\/ru\/wp-json\/wp\/v2\/posts\/3636\/revisions"}],"predecessor-version":[{"id":3637,"href":"https:\/\/cnbygele.com\/ru\/wp-json\/wp\/v2\/posts\/3636\/revisions\/3637"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cnbygele.com\/ru\/wp-json\/wp\/v2\/media\/3633"}],"wp:attachment":[{"href":"https:\/\/cnbygele.com\/ru\/wp-json\/wp\/v2\/media?parent=3636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cnbygele.com\/ru\/wp-json\/wp\/v2\/categories?post=3636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cnbygele.com\/ru\/wp-json\/wp\/v2\/tags?post=3636"}],"curies":[{"name":"\u0432\u043f","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}