본문으로 건너뛰기
블로그›2026. 8. 28.

LS PLC Modbus RTU 데이터를 MySQL에 저장하기

LS PLC Modbus RTU 데이터를 MySQL에 저장하기

Modbus RTU를 고르는 이유

LS XGT는 여러 프로토콜을 지원하지만, Modbus RTU는 그중 가장 널리 쓰이는 산업 표준입니다.

C-NET·F-NET은 LS 전용이라 LS PLC끼리는 편하지만, 다른 회사 장비가 섞이면 각각 다른 방식을 써야 합니다. Modbus RTU는 PLC·인버터·전력량계·유량계·온도조절기가 모두 같은 규칙을 쓰므로, 한 라인에 여러 제조사 장비를 섞어 물릴 수 있습니다.

C-NET · F-NETModbus RTU
지원 장비LS 전용제조사 무관
다른 장비와 혼재어려움가능
주소 체계LS 방식Modbus 표준
설정 항목국번·속도국번·속도·펑션 코드

펑션 코드를 먼저 확인하십시오

Modbus에서는 어느 영역을 읽느냐가 펑션 코드로 정해집니다.

펑션대상쓰기
01 · 05Coil (접점 출력)가능
02Discrete Input불가
03 · 06Holding Register가능
04Input Register불가

나중에 원격 제어를 붙일 생각이라면 읽기 전용 영역(02·04)에 값을 두지 마십시오. PLC 프로그램 설계 단계에서 Holding Register로 잡아 두셔야 합니다.

이 글은 Modbus RTU로 수집한 값을 MySQL에 저장하는 구성입니다.

여러 장비를 한 테이블에 담을 때

Modbus RTU의 장점은 한 라인에 여러 제조사 장비를 물릴 수 있다는 것입니다. 그런데 이 값들을 어떻게 저장할지는 따로 생각하셔야 합니다.

장비별로 테이블을 나누는 방식 — 구조가 단순하고 항목이 늘어도 서로 영향이 없습니다. 다만 여러 장비를 한꺼번에 조회하려면 조인이 필요합니다.

한 테이블에 장비 구분 컬럼을 두는 방식 — 조회가 편하지만 장비마다 항목 수가 다르면 빈 컬럼이 생깁니다.

장비 수가 적고 항목이 비슷하면 한 테이블, 성격이 다른 장비가 섞여 있으면 나누는 편이 낫습니다.

어느 쪽이든 국번과 컬럼의 대응표는 문서로 남겨 두십시오. 반년 뒤에 "이 컬럼이 몇 번 장비였지"를 알아낼 방법이 그것뿐입니다.

Step 1. 준비물

데이터베이스와 HeidiSQL 같은 관리 도구가 필요합니다.

Step 2. PLC 연결 및 Modbus 설정

RS-485로 연결하고 XG5000에서 Modbus RTU 설정을 잡습니다. 통신 속도·국번을 EASY-LINK와 맞추십시오.

Step 3. EASY-LINK 데이터베이스 설정

통신 프로토콜에서 데이터베이스 저장을 선택하고 접속 정보를 입력합니다.

수집 채널은 Modbus RTU, 펑션 코드와 시작 주소·개수를 지정합니다.

Step 4. 저장 확인

HeidiSQL에서 테이블을 조회해 행이 주기적으로 쌓이는지 확인합니다.

잘 안 될 때 확인할 것

  1. 응답이 없다 — 국번·통신 속도·패리티·스톱비트를 확인합니다.
  2. 데이터베이스에 안 들어간다 — 접속 정보와 테이블 존재 여부를 확인합니다.
  3. 일부 장비 값만 빠진다 — 그 장비의 국번이 겹치거나 전원이 빠졌을 수 있습니다.
  4. 점점 느려진다 — 시간 컬럼에 인덱스를 걸어 두십시오.
  5. 행이 군데군데 없다 — 라인에 장비가 많으면 한 바퀴 도는 시간이 길어집니다. 저장 주기를 늘려 보십시오.

자주 묻는 질문

한 라인에 몇 대까지 붙일 수 있습니까? 규격보다는 주기가 한계를 정합니다. 대수가 늘면 순차적으로 읽으므로 한 바퀴 시간이 그만큼 길어집니다.

실시간 감시도 필요합니다. MQTT 발행을 병행하시면 됩니다.

저장한 값으로 화면을 만들려면? EASY DASHBOARD를 참고하십시오.


도입을 검토하신다면

현장 조건에 맞는 모델 선정이나 프로토콜 적용 가능 여부가 궁금하시면 문의해 주세요. 사용 중인 PLC 기종과 수집하려는 데이터만 알려주시면 구성안을 잡아 드립니다.

관련 글

← 목록으로 돌아가기