[제품종류] IEC667
[개발환경] Visual Studio 2008 C#
=============== 질 문 ===============smartmodbus 사용중입니다.
byte[] bReadByte;
eCode = smartModbus1.ReadHoldingRegister(1, 5, out bReadByte);
=> eCode 는 SUCCESS로 반환.
위 코드 실행 시 bReadByte의 길이는 10, 10개 요청시 20, 이런 식으로 반환되며, 배열의 내용은 {0,1,0,0,0 ... } 이렇습니다.
실제 통신 내용을 후킹하여 보면 정상적인 길이와 내용으로 오가는 걸 확인했지만 해당 내용 때문에 진행이 안됩니다.
혹시 관련 내용 해결방안 또는 선례가 있었는지 확인 부탁 드립니다.
=============== 답 변 ===============
안녕하세요. HNS입니다.
Modbus 프로토콜 규약에 따라 Register는 1개당 2Byte 단위로 처리되며, SmartModbus 역시 해당 규약에 맞게 제작되어 요청한 Register 개수에 따라 2Byte씩 반환되는 것이 정상임을 안내드립니다.
자세한 내용은 홈페이지(www.smartx.co.kr) > Reference Guide > Part 3. 하드웨어 장치 제어 컴포넌트 > 4. SmartModbus > 1) RS485 & Modbus Protocol 설명 부분을 참고하시기 바랍니다.
감사합니다.




