Abstract
Modbus protocol does not identify which the SCU response message is corresponding to the service request message because the SCU response messages include only the response value. Also the Modbus protocol can transmit a service request message after transmitting the previous service request message. In this paper, we propose a Modbus application protocol communication class with index code definition table to solve the above problems. As a experimental result, the proposed protocol shows that service request messages can be transmitted without processing the previous request messages, and, it is possible to identify which type of error occurred by using the index code definition table when a communication error occurred. And when simultaneous multiple service requests are generated, the proposed protocol shows that the processing time can be improved about 56% compared to the Modbus protocol.
모드버스(Modbus) 프로토콜에서는 SCU의 상태 값을 읽는 서로 다른 서비스 요청 메시지에 대해 값만을 응답하기 때문에 어떤 전송 메시지에 대한 응답인지 식별할 수 없다. 따라서 하나의 서비스 요청 메시지를 전송하고 이를 처리한 후에 다음 메시지를 전송할 수 있다. 본 논문에서는 통신 클래스 내부에 전송 메시지의 전송 순서를 관리하는 인덱스 코드 정의 표(ICDT)를 작성하여 모드버스 통신을 사용하는 환경에서 서로 다른 SCU에 다중의 동시적인 메시지를 전송할 수 있는 통신 클래스를 제안하였다. 실험 결과, MCU에서 전송한 서비스 요청 메시지에 대한 처리가 완료되지 않은 상태에서 다음 서비스 요청 메시지의 전송이 가능하였으며, ICDT의 인덱스 코드를 이용하여 SCU에서 응답한 메시지의 서비스 유형을 식별 및 통신 에러 발생 시 에러가 발생한 SCU 위치를 식별할 수 있었다. 또한, MCU 통신 프로그램에서 동시적인 다중의 서비스 요청이 발생한 경우에 전송 메시지들의 처리시간이 약 56% 정도의 성능 향상을 보였다.