본문으로 바로가기
homeimage

모드버스

해당되는 글 9
  • thumbnail
    컴퓨터/프로그래밍

    모드버스 프로토콜 작성 방법 및 주의사항

    이 글은 모드버스 프로토콜을 처음 접하면서 프로그램을 구현해야 하는 분을 위한 글입니다. 모드버스 질의에 대한 응답을 어떻게 구현하는지에 대한 설명이며, 코드를 작성하기 전에 미리 알고 있으면 헷갈리거나 헛수고를 줄일 수 있을 것으로 생각합니다. 아울러 모드버스 프로그램 작성에 도움이 되는 팁을 소개합니다. 모드버스 프로토콜 작성 시 주의 사항 모든 모드버스 Function Code를 작성해야 하나요? 결론부터 말씀드리면 아닙니다. 만일 내 장비가 온도계이고 어떤 설정도 없이 현재 온도 값만을 제공한다면 읽기 Function code 4만 작성해도 됩니다. 또는 내 장비가 조명 시스템이고 10개의 조명이 달려 있는데, 번호에 따라 On/Off를 할 수 있다면 Function code 6만 작성해도 됩니다..
  • thumbnail
    컴퓨터/프로그래밍

    모드버스 통신 오류 시 응답 방법

    모드버스 통신 패킷 오류 시 응답? 무시? 한 개의 통신 라인에 여러 개의 디바이스가 물린 rs485에서 통신 패킷이 깨진 데이터를 수신했을 경우 다시 보내 달라고 요청해야 할까요? 아니면 무시하고 기다려야 할까요? 답부터 말씀드리면 요청하거나 응답해서는 안 됩니다. 어? rs485 통신의 대표 프로토콜인 모드버스에는 예외 상황 코드로 응답하는 내용이 있는데?라고 반문하실 수 있습니다. 그러나 모드버스의 예외 상황 코드에는 통신 패킷 오류에 대한 내용이 없습니다. 즉, 수신된 데이터가 올바른지 CRC 값을 확인했더니 틀렸다면 그 통신 패킷은 무시해야 합니다. 1:1 통신인 rs232에서는 다시 보내 달라고 요청할 수 있어도 1:N에서는 걸러내야 합니다. 이유는 통신 패킷에 오류가 있다면 슬레이브 주소가 ..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 rs232 시리얼 통신 프로토콜 주의 사항

    시리얼 통신 패킷에 데이터 길이? 업체로부터 rs232 시리얼 통신 장비를 받았는데요, 프로토콜 문서에 언급된 패킷 구성을 보니 걱정스러운 부분이 있네요. 바로 데이터의 바이트 개수를 알려 주는 길이(Length) 요소인데요, 외부 영향에 약한 시리얼 통신에서 데이터의 크기를 알려 주고 그만큼 받으라는 것은 옳지 않다고 생각합니다. 시리얼 통신에서 길이를 넣어도 문제없다면 ETX를 사용할 이유가 없습니다. 만일 길이는 데이터 검증용이라고 한다면 CRC가 있으므로 이것도 이유가 못 됩니다. 그러나 LEN을 사용하는 시리얼 장비가 의외로 많습니다. 데이터가 모두 텍스트라면 더욱 이해가 안 되는데요, 이런 경우 굳이 LEN을 알려주지 않아도 ETX까지만 받으면 되거든요. 그렇다면 통신에서는 LEN을 사용해서는..
  • thumbnail
    컴퓨터/프로그래밍

    모드버스 통신 테스트 프로그램 추천

    마스터 모드버스 통신 테스트 프로그램 ModbusPoll 모드버스 통신 테스트 프로그램은 읽기·쓰기를 요청하는 마스터(Master)와 마스터의 요청을 실행하고 응답하는 슬래이브(Slave)로 나뉩니다. 마스터가 클라이언트이라면 슬레이브가 서버인 것이죠. 모드버스 마스터 통신 테스트 프로그램으로는 ModbusPoll을 추천합니다. 잘 만들기도 했지만, 무엇보다도 공신력이 있어서 다른 개발자와 언쟁하는 불상사를 줄여줍니다. 내가 만든 장비와 통신이 안 된다라고 문의가 오면 ModbusPoll로 확인하라고 하면 끝입니다. ModbusPoll로는 되는데 그 개발자의 프로그램에서는 안 된다면 그분의 코드에 버그가 있는 것입니다. 계속해서 자기 쪽은 이상이 없다고 고집하면 ModbusPoll을 모르냐고 반박하면 됩..
  • thumbnail
    컴퓨터/프로그래밍

    rs485 모드버스 어드레스 맵 정리

    Modbus-RTU address map 모드버스는 슬레이브 장치의 메모리 맵 구성에 따라 읽기·쓰기하여 통신하는 방식입니다. 모드버스 메모리 맵은 코일과 레지스터로 구성되며 메모리 번호에 따라 크기와 접근 방법이 다릅니다. 코일은 비트, 레지스터는 2 바이트 워드로 생각하면 이해하기 쉬운데요, 코일과 레지스터는 읽기·쓰기 모두 되는 영역과 읽기만 가능한 영역으로 나뉩니다. ▲ 모드버스 메모리 맵 영역에 따라 코일·레지스터의 번호 구분과 제어 함수 번호를 정리한 테이블입니다. 어드레스 지정 시 주의 사항 ▲ 서버로 요청하는 모드버스 RTU 프로토콜의 패킷 구성입니다. 메모리 맵에 따라 함수 번호와 주소를 지정해야 하는데, Holding Register 값을 읽겠다고 해서 30001, 30002처럼 만 단..
  • thumbnail
    컴퓨터/프로그래밍

    아리송한 MODBUS-RTU 특이점

    MODBUS-RTU 왜 이렇게 만들었을까? 통신으로 장비를 제어하는 시스템을 개발한다면 모드버스(MODBUS) 프로토콜이 편한데요, 다뤄야 할 장비가 모드버스를 지원한다면 반가울 정도입니다. 그런데 이렇게 편한 모드버스 프로토콜을 처음 접했을 때는 정말이지 왜 이렇게 만들었나 이해가 안 되는 부분이 한둘이 아니었습니다. 정리하면 이렇습니다. 시리얼 통신인데 STX·ETX가 없다? 바이트 순서가 CRC만 다르다? 읽기 함수는 레지스터 개수, 응답은 byte 개수? 레지스터와 어드레스의 시작은 0번? 1번? 32bit 데이터의 바이트 전송 순서는? MODBUS-RTU에 STX·ETX가 없다? 모드버스 통신에는 전송하는 바이트 형식에 따라 MODBUS-RTU와 MODBUS-ASCII가 있습니다. 이름에서 예상..
  • thumbnail
    컴퓨터/프로그래밍

    MODBUS 통신 프로그램 테스트에는 ModbusPoll 강력 추천

    MODBUS 프로토콜의 장점 장치 제어를 위한 통신 프로그램을 작성한다면 MODBUS 프로토콜을 강력하게 추천합니다. MODBUS 프로토콜이 완벽해서가 아니라 꽤 오랫동안 사용해 와서 지원하는 장비가 많고 개발에 도움을 주는 프로그램이 다양하기 때문입니다. 만일 여럿이 함께 개발하거나 다른 업체와 협업한다면 더욱 MODBUS 프로토콜을 권합니다. 통신 프로그램의 어려운 점 하나는 잘잘못을 따지는 것입니다. 서로 협의하에 프로토콜을 결정하겠지만, 문제는 각자가 프로토콜을 작성한다는 것입니다. 물론 자기가 만든 프로그램이니까 오류 없이 잘 만들었다고 생각하겠지만, 개발 단계에 버그 없는 프로그램은 거의 없습니다. 디버깅 중에 이상한 증상이 발생해서 상대방에게 얘기하면 개발자 대부분은 어떻게 테스트했는지 물어..
  • thumbnail
    전자·생활제품/기타 제품

    rs485 리피터 기산 KC522 사용법

    기산 KC522 rs485 리피터 사용법 rs485 통신 범위를 넓히거나 잡음에 의한 통신 불량·두절을 해결하기 위하여 사용하는 rs485 리피터 제품 중 기산 KC522 사용법을 정리합니다. rs485 통신 문제를 해결하기 위하여 모드버스 TCP 게이트웨이를 보다는 rs485 리피터를 사용하면 네트워크 설정을 맞출 필요 없고 모드버스와 같은 특정 프로토콜에 맞출 필요가 없으며 소프트웨어를 변경하지 않아도 되는 장점이 있습니다. 이 부분에 대해서 좀 더 자세히 알아보겠습니다. rs485 통신 특성 rs485 통신은 산업 현장에서 매우 많이 사용하는 통신이지만, 개발자나 설치 업자의 속을 많이 썩히기도 합니다. 통신 방식은 단순해도 소프트웨어 개발자의 경험과 노하우, 설치 장소와 배선하시는 분의 경험에 따..
  • thumbnail
    컴퓨터/주변 장치·부속품

    모드버스 게이트웨이 기산 KG30X 사용 방법

    MODBUS RTU to MODBUS TCP Gateway 여러 가지 장비와 통신하는데 rs485 라인에 MODBUS RTU를 많이 사용하는데요, 주변 환경에 따라 통신이 안 되면 정말 답답하죠. 어느 장비까지 통신이 되는지 확인하고 어떤 장비를 연결할 때부터 통신이 안 된다면 원인을 찾아서 케이블 위치를 옮기거나 심하게는 다른 곳으로 돌리기도 하는데요, 물려 있는 모든 장비와 원활히 통신하기 위해서 다음 장비, 다음 장비 반복 작업을 계속하다 보면 매우 지칩니다. rs485 통신이 최대 1.2km까지 통신할 수 있고 이론 상으로는 노이즈에 강하다고 해도 rs232보다 좋다는 것이지 주변 영향을 많이 받습니다. 이런 경우 rs484 to rs485 리피터를 사용하는데요, 주변에 HUB가 있다면 MODBU..
    최근글
    이모티콘창 닫기
    울음
    안녕
    감사해요
    당황
    피폐

    이모티콘을 클릭하면 댓글창에 입력됩니다.