브랜드

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.

슈나이더 일렉트릭 Korea

자세히 알아보기
제품군
자세히 알아보기
제품군

도움이 필요하신가요?

  • 제품 선택기

    애플리케이션에 적합한 제품과 액세서리를 빠르고 쉽게 찾을 수 있습니다.

  • 견적 받기

    영업 관련하여 온라인으로 문의하시면 전문가가 연락드립니다.

  • 구매처

    해당 지역의 가장 가까운 슈나이더 일렉트릭 대리점을 쉽게 찾을 수 있습니다.

  • 지원 센터

    한 곳에서 모든 요구 사항에 대한 지원 리소스를 찾아보십시오.

  • 제품 문서
  • 소프트웨어 다운로드
  • 제품 선택기
  • 제품 대체 및 교체
  • 지원 및 연락처 센터
  • 영업소 검색
  • 견적 받기
  • 슈나이더 일렉트릭 커뮤니티
  • 채용
  • 회사 소개
  • 부정 행위 보고
  • 접근성
  • 뉴스룸
  • 투자자
  • Ecostruxure
  • 작업 검색
  • 블로그
  • 개인정보 취급방침
  • 쿠키 공지
  • 사용 약관
  • Change your cookie settings