본문으로 바로가기
homeimage

시리얼

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

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

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

    시리얼 통신 테스트 프로그램 듀얼 화면 jwRsMonitor

    시리얼 통신 테스트 프로그램 jwRsMonitor jwRsMonitor은 jwRsTester와 같은 시리얼 통신 테스터입니다. jwRsTester는 하나의 시리얼 통신 포트로만 테스트할 수 있다면 jwRsMonitor은 화면을 좌우로 나누어 두 개의 통신 포트로 통신 테스트할 수 있습니다. jwRsMonitor는 수신된 데이터를 쉽게 확인할 수 있도록 노력했으며 터미널을 두어 타이핑만으로도 데이터 전송이 가능합니다. 시리얼 포트의 송신·수신·에러 등의 상태를 볼 수 있으며 초 단위로 자동 전송 기능을 갖추었습니다. jwRsMonitor 설치·제거 방법 jwRsMonitor는 설치 파일 대신에 실행 파일만 압축하여 제공합니다. 적당한 폴더에 압축 파일을 풀어서 사용하세요. jwRsMonitor는 실행 중에..
  • thumbnail
    컴퓨터/프로그래밍

    rs485 통신 프로토콜 응답 처리 주의 사항

    rs485 통신 특징에 따른 응답 방법 rs485 통신의 특징은 rs232와 rs422과는 달리 반이중(Half Duplex) 통신 방식입니다. 송수신을 동시에 할 수 없고, 물리적으로 두 개의 선을 연결해도 한 개의 통신 라인이라서 rs485가 멀티 드롭(Multi Drop) 다자간 통신이 된다고 해도 규칙을 정하지 않으면 장치 두 대만 물려도 통신을 원활히 할 수 없습니다. rs485는 대부분의 경우 통신에 물린 장치를 마스터와 슬레이브로 나누고 마스터만이 통신 제어권을 가지고 제어합니다. 마스터의 말이 끝날 때까지 모든 슬레이브는 입을 다물고 있어야 하는데요, 마스터가 요청하는 방법도 중요하지만, 슬레이브가 어떻게 응답해야 하는지도 시스템에 따라서 신중히 선택해야 합니다. rs485 통신은 외부 영..
  • 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
    컴퓨터/프로그래밍

    rs485 시리얼 통신 구성 방법 및 주의 사항

    rs485 시리얼 통신 구현 방법 비교 요즘처럼 인터넷 시대에도 산업 현장에서는 rs232와 rs485 시리얼 통신을 많이 사용합니다. 거리가 멀거나 1:N 통신이 필요한 경우 rs485 통신을 사용하는데요, 한 개의 통신 라인에 여러 장치와 통신을 해야 하다 보니 다양한 아이디어가 나오고 구현 방식도 여러 가지입니다. rs485 시리얼 통신에서 프로토콜을 어떻게 구현하며 어떤 점을 주의해야 하는지 알아보겠습니다. 마스터·슬래이브 통신 rs485는 두 가닥의 라인에 여러 개의 장치를 연결하고 통신합니다. 그러므로 규칙을 정하지 않으면 장치 두 대를 연결해도 통신이 안 됩니다. 이를 해결하기 위해서는 누가 먼저 통신 라인에 패킷을 올려놓을지 규칙을 정해야 하는데, 가장 쉬운 방법은 어느 한 장치에 주도권을..
  • thumbnail
    컴퓨터/유틸리티

    시리얼 통신 테스트 jwRsMonitor 1.1.1

    MODBUS-RTU 지원 jwRsMonitor1.1.1 시리얼 통신 테스터 프로그램 jwRsMonitor를 아래와 같은 내용으로 수정했습니다. crc16 계산을 MODBUS-RTU에 맞추었습니다. 프로토콜 조합에서 crc16을 추가하여 MODBUS 통신을 할 수 있습니다. 통신 설정을 한 번에 지정할 수 있는 팝업 윈도우를 추가했습니다. 간단히 전송 테스트하기 위해 알파벳을 전송하는 [ABC...] 버튼과 숫자를 전송하는 [123...] 버튼을 추가했습니다. crc32 사용성이 별로 없는 것으로 생각돼서 제거했습니다. 기타 화면을 조금 수정했습니다. ▲ jwRsMonitor 1.1.1입니다. 통신 포트 번호에서 Baud, 데이터 비트 크기, 패리티 등을 선택하는 팝업 윈도우를 두었습니다. Baud와 Da..
  • thumbnail
    컴퓨터/유틸리티

    시리얼 통신 테스트 프로그램 jwRsMonitor 1.0.7, jwRsTester 1.0.2

    시리얼 통신 테스터 jwRsMonitor 1.0.7 시리얼 통신 테스트 프로그램 jwRsMonitor 1.0.7와 jwRsTester 1.0.2를 올립니다. jwRsMonitor은 화면이 크고 좌우로 나뉜 화면에 각각 시리얼 포트를 지정해서 테스트하는 구조라서 중복 실행을 막았습니다. 여러 개 띄우면 화면이 복잡할 것 같아서요. 그러나 필요하시다는 분이 계셔서 중복 실행이 가능하도록 수정해서 올립니다. ▲ jwRsMonitor 1.0.7입니다. 사용 설명을 잘 만들어서 올려야 하는데, 아직 준비를 못 했습니다. 대신에 이곳을 클릭하시면 기본 사용법을 보실 수 있습니다. jwRsTester 1.0.2 jwRsTester는 jwRsMonitor보다 기능이 부족하지만, 작은 크기여서 화면에 여러 개 띄워서 테..
  • thumbnail
    컴퓨터/유틸리티

    시스템 리퀘스트 SysRQ 지원 jwRsMonitor 1.0 release 6

    시스템 리퀘스트 SysRQ 지원 jwRsMonitor 1.0 release 6 시리얼 통신 테스트 프로그램 jwRsMonitor에 SysRQ 기능을 추가했습니다. 시리얼 통신을 그렇게 오랫동안 많이도 사용해 왔지만, Break 시그널을 사용해 본 적이 없습니다. 그런데 Break와 코맨드 코드를 조합하여 커널 정보를 얻어 오는 시스템 리퀘스트(SysRQ)에서 사용하는군요. SysRQ가 유용한 것은 시스템이 블록되어도 커널이 죽지 않았다면 커널 정보를 구할 수 있다는 것이죠. 오호~! Putty 같은 터미털 프로그램을 보면 Break 신호를 보낼 수 있는 기능이 있지요. Break 신호를 보내자마자 코맨드 키를 전송하면 그 키에 맞는 커널 정보가 수신됩니다. ▲ jwRsMonitor 1.0 release ..
  • thumbnail
    컴퓨터/유틸리티

    시리얼 통신 테스트 프로그램 jwRsMonitor 1.0.5

    시리얼 통신 테스트 프로그램 jwRsMonitor 1.0.5 시리얼 통신 테스트 프로그램 jwRsMonitor 1.0.5입니다. 이번 jwRsMonitor에는 하드웨어·소프트웨어 흐름 제어 기능과 두 자리 또는 네 자리 카운터 숫자를 보내는 기능을 추가했습니다. ▲ 흐름 제어를 선택하시려면 Flow ctrl을 마우스 클릭하세요. 흐름 제어에서 XON/XOFF는 제대로 작동하는 지 확인했지만, RTS/CTS와 DSR/DTR은 확인을 못 했습니다. 혹시 기능을 확인하신 분은 댓글로 말씀 부탁드립니다. 데이터 변환 특수 문자에 카운터를 넣을 수 있는 :c와 :C를 추가했습니다. :c는 문자 두 개, :C는 문자 네 개입니다. 또한, jwRsMonitor보다 간단한 jwRsTester도 있으니 참고하세요. 실행..
  • thumbnail
    이런저런/수다 떨기

    jwRsTester 0.0 release 1

    jwRsTester은 시리얼 통신에서 사용하는 통신 테스트 프로그램입니다. 이미 이전에 jwRsMonitor을 공개했습니다만, jwRsMonitor은 한 번에 2개의 시리얼 포트를 다룰 수 있을 뿐만 아니라 다양한 기능을 제공하고 있어서 편리한 점도 많습니다만, 단점으로는 매우 복잡하게 보이고 사용하기 어려워 보여 부담이 된다는 점입니다. 이미 복잡한 UI를 가지고 있는 jwRsMonitor를 다시 수정하기 보다는 시리얼 포트 하나에 사용하는 방법을 단순화 시킨 jwRsMonitor을 만들어 보았습니다. 시리얼 통신을 사용하시는 분은 한 번 사용해 보시기를 권합니다. jwRsTester를 실행하면 어떤 시리얼 포트를 사용할지를 선택하게 됩니다. 시리얼 통신 환경에 맞추어 옵션을 선택하면 이후로 송수신 상..
    최근글
    이모티콘창 닫기
    울음
    안녕
    감사해요
    당황
    피폐

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