Modbus란? - 심화편
·
툴, 프레임워크, 기술
지난 글에서는 Modbus란 무엇인가에 대해 간단히 알아봤다. 이번 글에서는 Modbus의 상세한 명세에 대해서 설명하고자 한다.통신 과정Modbus의 통신은 요청-응답 형식으로 이루어진다.요청 처리요청은 다음과 같은 과정을 거쳐 처리된다.정상통신이 원활하게 이루어지고 요청을 처리하는 데에 이상이 없으면 요청과 같은 function code와 응답 데이터를 반환한다.오류Modbus의 오류 상황은 크게 통신 오류와 요청 처리 오류로 분류할 수 있다. 통신 오류의 경우 통신 계층에서 처리하며, 이 경우 Modbus에서는 응답을 보내지 않으며 클라이언트에서는 타임아웃을 통해 통신에 오류가 발생했음을 감지할 수 있다.반면 요청 처리에 이상이 있다면 function code의 최상위 비트를 1로 바꾸고 예외 코드..
Modbus란? - 기본편
·
툴, 프레임워크, 기술
센서, 모터 등 컴퓨터가 아닌 기기의 상태를 보고 제어하기 위한 프로토콜에는 여러가지가 있다. 하지만 이중 가장 많이 쓰이는 프로토콜로는 Modbus를 꼽을 수 있다. 이번에는 이 사실상 표준(de facto standard) 프로토콜인 Modbus에 대해서 설명하고자 한다.정의Modbus는 OSI 7계층 중 응용 계층에서 사용되는 프로토콜로 여러 종류의 버스 혹은 네트워크에 있는 장치들 간 서버-클라이언트 통신을 할 때 쓰이는 프로토콜이다. 여기서 재밌는 점은 Modbus에서는 장치가 서버 역할이라는 점이다. 즉 장치를 제어하는 서버를 개발한다고 해도 Modbus에서는 서버가 클라이언트이고 연결된 장치가 서버이다. 펌웨어(혹은 PLC) 개발자와 소통할 때 헷갈리지 않도록 주의해야 한다.모델Modbus에..
[Go with TDD] TDD를 위한 go test 기초
·
툴, 프레임워크, 기술
[Go with TDD] TDD란? 소프트웨어 공학, 개발 방법론 등에 관해 조금이라도 알고 있다면 TDD(Test-driven development, 테스트 주도 개발)라는 용어를 들어봤을 것이다. 잘 아는 사람도 많겠지만 모르는 사람들을 위해서 우선 simplear.tistory.com 이번 글에서는 Go언어에 TDD를 적용할 때 사용하는 테스트 프레임워크 go test에 대해 설명하겠다. go test란? go test는 Go언어에 자체적으로 내장된 테스트 프레임워크이다. 테스트 케이스를 형식에 맞춰서 작성하고 go test를 실행하면 자동적으로 테스트가 이루어진다. 절차 go test를 이용해 TDD를 적용하는 방법을 간단한 예시를 통해 설명하겠다. 0. 테스트할 간단한 프로그램 만들기 테스트하기..