我們的品牌

Impact-Company-Logo-English Black-01-177x54

歡迎造訪施耐德電機全球網站

歡迎訪問我們的網站
		
我们今天能为您提供什么帮助?
Reading %MW2700 Register from a device over Modbus gets communication error code is 16#FE and error detection code 16#03

Modbus native addressing is known also as Modicon addressing, meaning requests refer to four original address spaces:
Discrete Inputs - 1,2,3... 65536, bit size
Output Coils - 1,2,3... 65536, bit size
Input Registers - 1,2,3... 65536, 16 bit word
Holding Registers - 1,2,3... 65536, 16 bit word

Documentation of a device could refer to addresses of registers in these address spaces. Note, they all start from 1, not from 0.
IEC 61131 refers to variables based on %I, %Q %IW, %QW, %MW, %M address spaces. They start from 0.

As you consult documentation of specific device and see register address 2700, then try to read %MW2700 the Holding registry address 2699 is used.
Depending on which of the two addressing options above (Modicon vs IEC) are used the resulting request can be shifted with one.

In your case there is something more - address of holding register 2700 probably refers to the first word of a two-word (32bit) variable. If you read only half of this variable, the specific device warns you with error code 16#03
From Modbus documentation:
"
16#03 - ILLEGAL DATA VALUE - A value contained in the query data field is not an allowable value for server. This indicates a fault in the structure of the remainder of a complex request, such as that the implied length is incorrect. It specifically does NOT mean that a data item submitted for storage in a register has a value outside the expectation of the application program, since the MODBUS protocol is unaware of the significance of any particular value of any particular register.
"
In your case, colloquially : the request surprises the Modbus server - it expected to respond with a complete variable (of two words) but you request only one half plus another word.

So, for the application to be processed correctly - instead of 2700 refer to 2701 and request at least for 2 words (request even amount of words for all two-word variables).

If the shift was the opposite way, using 2699 could solve the problem.


Modbus Server Device in this example can be Power Meter 8000, 5000 or many other devices.

Modbus Client Device can be any PLC or HMI, freely configurable Modbus Gateway.

施耐德電機Taiwan

探索更多
系列:
探索更多
系列:

需要協助?

  • 產品選型工具

    快速輕鬆地為您的應用找到合適的產品和附件。

  • 取得報價

    立即線上提交您的銷售需求,專業團隊將主動聯繫您。

  • 購買地點

    輕鬆在您所在地區找到最近的施耐德電機經銷商。

  • 支援中心

    在同一位置找到滿足您所有需求的支援資源。

  • 產品文檔
  • 軟體下載
  • 產品選型工具
  • 產品替代和替換
  • 幫助和聯絡中心
  • 尋找我們的辦公室
  • 取得報價
  • 人才招募
  • 公司簡介
  • 舉報不當行為
  • 無障礙
  • 新聞中心
  • 投資者
  • 專業洞察
  • 台灣施耐德電機學院
  • 綠色影響力落差調查
  • Schneider Go Green 2025
  • 隱私政策
  • Cookie通告
  • 使用條款
  • Change your cookie settings