728x90 반응형 CRC-164 Modbus 입문 가이드 2편: CRC-16 생성 원리와 수신 데이터 파싱 이전 글 — Modbus 입문 가이드 1편: 프로토콜 구조 이해1편에서 Modbus RTU 프로토콜의 구조 — 펑션코드, 디바이스 영역, RTU/TCP 프레임 형식까지 살펴보았습니다.이제 버퍼에 담긴 원시 데이터를 실제로 사용할 수 있는 형태로 가공하는 단계입니다.이번 편에서는 세 가지를 다룹니다. WTOB — 워드 데이터를 바이트 단위로 분해하기CRC-16 생성 원리 — 나눗셈·XOR·시프트로 검증값이 만들어지는 과정BTOW + 데이터 추출 — 원하는 값을 워드로 복원하기1. WTOB: 워드를 바이트로 분해하기QJ71C24N 수신 버퍼는 워드 단위로 데이터를 저장합니다.Modbus RTU 프레임은 바이트 단위 구조입니다.이 두 가지가 맞지 않기 때문에 워드로 저장된 수신 데이터를 바이트 단위로 풀어줘야.. 2026. 5. 24. Modbus 입문 가이드 1편: 프로토콜 구조 이해 (RTU · TCP · 펑션코드) 산업 자동화 현장에서 일하다 보면 Modbus 라는 이름을 끊임없이 마주칩니다.인버터, 온도 컨트롤러, 유량계, 압력 트랜스미터, 스마트 센서 — 거의 모든 장비의 통신 사양서 첫 페이지에는 Modbus RTU 또는 Modbus TCP 가 적혀 있죠.그런데 막상 구현을 시작하려고 하면 이런 의문들이 생깁니다.RTU 와 TCP 는 뭐가 다른가?FC03 과 FC04 는 왜 구분되어 있는가?CRC-16 은 어떻게 계산하는가?MBAP 헤더가 뭔가?이 글에서는 Modbus 프로토콜의 구조부터 RTU 와 TCP 의 차이, 펑션코드 체계, 그리고 프레임 구성까지 한 번에 정리합니다.1. Modbus 란 무엇인가Modbus 는 1979년 Modicon (현재 Schneider Electric) 이 자사 PLC 간 통신.. 2026. 5. 22. PLC 범용 CRC-16 함수화 : 다항식 가변으로 CCITT·XMODEM·ARC까지 (함수화 7편) 이전 글 — 함수화 6편: CRC-16/MODBUS 코드 생성미쓰비시 PLC에서 다항식(Poly)·초기값(Init)을 파라미터로 받아 어떤 CRC-16 알고리즘이든 생성하는 범용 함수를 다룹니다.MODBUS 전용에 묶이지 않고 CCITT·XMODEM·ARC 등 공개된 CRC-16 규칙을 그대로 PLC에서 계산할 수 있습니다.지난 6편에서 CRC-16/MODBUS 생성 함수를 만들어, 시리얼 통신으로 MODBUS RTU 교신 시 CRC-16 체크섬을 송수신할 수 있었습니다.하지만 CRC-16 코드는 MODBUS 만 있는 것이 아닙니다. 1. CRC-16 은 MODBUS 만 있는 것이 아니다MODBUS 프로토콜이 사용하는 다항식 0x8005 계열만 봐도 USB, BUYPASS, ARC, MAXIM 등 다양.. 2023. 5. 9. 미쓰비시 PLC CRC-16/MODBUS 함수화: XCALL 재사용 라이브러리 (함수화 6편) 이전 글 — 함수화 5편: 랜덤 문자열 생성미쓰비시 PLC에서 CRC-16/MODBUS 체크코드를 XCALL 재사용 함수로 만들어, MODBUS RTU 시리얼 통신마다 매번 새로 짜지 않고 갖다 쓰는 방법을 다룹니다.CRC-16 은 MODBUS RTU 교신에서 빠지지 않고 등장해 많은 사람의 골머리를 썩게 만드는 주제입니다.한 번 함수로 만들어 두면 국번·어드레스만 바꿔 어느 유닛에서든 재사용할 수 있습니다. 1. 왜 CRC-16 을 함수로 만드는가PLC는 그림 그리듯 래더라는 도식화된 언어와 메이커가 제공하는 펑션·명령어로 프로그램하는 뛰어난 자동화 제어장치입니다.하지만 단점이 있습니다.설비 규모가 커질수록 같은 동작의 프로세스라도 여러 유닛에 맞춰 어드레스를 일일이 변경하거나 복사해가며 번거롭게 코딩.. 2023. 3. 1. 이전 1 다음 728x90 반응형