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

Modbus TCP를 고르는 이유
LS XGT는 Modbus RTU·TCP·C-NET·F-NET을 지원합니다. 이 중 Modbus TCP는 이더넷 위에서 동작합니다.
| 시리얼 (C-NET·F-NET·Modbus RTU) | Modbus TCP | |
|---|---|---|
| 배선 | RS-485 포설 | 기존 랜 사용 |
| 속도 | 통신 속도에 제약 | 상대적으로 빠름 |
| 거리 | 제한적 | 네트워크가 닿는 곳까지 |
| 노이즈 | 전력선 근처에서 취약 | 상대적으로 강함 |
| 필요한 것 | 국번·통신 속도 | IP·포트·유닛 ID |
랜이 이미 들어와 있는 설비라면 Modbus TCP가 가장 손이 덜 갑니다. 국번과 통신 속도를 맞출 필요 없이 IP만 알면 됩니다.
주의할 점은 유닛 ID입니다. Modbus TCP에도 유닛 ID가 있는데, 시리얼의 국번과 달리 대개 1로 고정해 씁니다. 장비에 따라 다른 값을 요구하기도 하니 문서를 확인하십시오.
이 글은 Modbus TCP로 수집한 값을 MySQL에 저장하는 구성입니다.
빠른 수집이 저장 설계에 주는 부담
이더넷은 시리얼보다 빠릅니다. 그래서 주기를 짧게 잡고 싶어지는데, 저장 쪽에서는 그만큼 부담이 커집니다.
| 주기 | 값 10개 기준 하루 행 수 | 1년 |
|---|---|---|
| 1초 | 86만 | 3억 |
| 10초 | 8.6만 | 3천만 |
| 1분 | 1.4만 | 500만 |
수집이 빠르다고 저장까지 그 속도로 할 필요는 없습니다. "이 값으로 무엇에 답할 것인가" 를 먼저 정하고, 거기서 필요한 만큼만 남기십시오.
실시간 감시가 필요하면 MQTT 발행을 짧은 주기로 병행하고, 저장은 길게 가져가는 조합이 실용적입니다.
Step 1. 준비물
데이터베이스와 HeidiSQL 같은 관리 도구가 필요합니다.



Step 2. PLC Modbus TCP 설정


XG5000에서 PLC의 IP와 Modbus TCP 서버 설정을 잡습니다.


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

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


수집 채널은 Modbus TCP, PLC의 IP·포트·유닛 ID와 읽을 주소·개수를 지정합니다.


Step 4. 저장 확인


HeidiSQL에서 테이블을 조회해 행이 주기적으로 쌓이는지 확인합니다.
동작 영상
잘 안 될 때 확인할 것
- PLC에 연결이 안 된다 — IP로 ping이 가는지, 방화벽이 502 포트를 막지 않는지 확인합니다.
- 응답이 없다 — 유닛 ID를 확인하십시오.
- 데이터베이스에 안 들어간다 — 접속 정보와 테이블 존재 여부를 확인합니다.
- 행이 폭발적으로 늘어난다 — 저장 주기를 다시 보십시오. 위 표를 참고하십시오.
- 점점 느려진다 — 시간 컬럼에 인덱스를 걸어 두십시오.
자주 묻는 질문
주기를 나중에 바꿔도 됩니까? 바꿀 수 있지만, 이미 쌓인 데이터와 밀도가 달라져 집계할 때 주의가 필요합니다. 처음에 정하시는 편이 낫습니다.
저장한 값으로 화면을 만들려면? EASY DASHBOARD를 참고하십시오.
도입을 검토하신다면
현장 조건에 맞는 모델 선정이나 프로토콜 적용 가능 여부가 궁금하시면 문의해 주세요. 사용 중인 PLC 기종과 수집하려는 데이터만 알려주시면 구성안을 잡아 드립니다.
- 제품 라인업 살펴보기 — EASY-LOGGER · EASY-LINK · EASY-RELAY · EASY-TEMP
- 도입 문의
- 기술 블로그 전체 글