본문 바로가기
디지털 전환 솔루션/HMI & SCADA

HMI와 LS·미쓰비시 PLC 통신

by eplus 2026. 8. 19.

HMI에서 LS PLC와 미쓰비시 PLC를 지원하려면 제조사별 통신 드라이버를 분리해서 개발하는 것이 좋습니다.

1. 권장 통신 방식
제조사1순위2순위시리얼
LS ELECTRIC XGT Ethernet Modbus TCP XGT Cnet·Modbus RTU
Mitsubishi MC Protocol Modbus TCP Computer Link·Modbus RTU

초기 HMI 개발에서는 다음 구성이 적합합니다.

  • LS: XGT 전용 Ethernet
  • 미쓰비시: MC Protocol 3E Binary
  • 공통: Modbus TCP
  • 시리얼 통신은 2단계에서 추가

Modbus TCP는 구현하기 쉽지만 모든 PLC가 같은 주소체계를 제공하지 않습니다. 전문 HMI 제품으로 만들려면 제조사 전용 드라이버가 필요합니다.


2. LS PLC 통신

지원 대상

LS PLC는 다음 계열을 고려해야 합니다.

  • XGK
  • XGI
  • XGR
  • XGB
  • XEC

PLC 계열에 따라 디바이스 주소 표현이 다릅니다.

주요 주소 예

XGK·XGB 계열

영역예용도
P P0000 입출력
M M0000 내부 비트
L L0000 링크
K K0000 유지 비트
F F0000 특수 영역
D D0100 데이터 레지스터
R R0100 파일 레지스터
T T000 타이머
C C000 카운터

XGI·XEC 계열

IEC 주소 형식을 사용합니다.

%IX0.0.0
%QX0.0.0
%MX100
%MW100
%MD100
 

따라서 LS 드라이버에는 PLC 계열과 주소 형식을 함께 저장해야 합니다.

제조사: LS ELECTRIC
PLC 계열: XGK
프로토콜: XGT Ethernet
주소: D100
자료형: WORD
 

Ethernet 설정

XG5000에서 다음 항목을 설정합니다.

  • PLC IP 주소
  • 서브넷마스크
  • Ethernet 모듈 또는 내장 포트
  • 서버 동작
  • XGT 전용 프로토콜
  • TCP 또는 UDP
  • 통신 포트
  • 접속 허용 대상
  • 연결 수

포트 번호는 PLC 및 Ethernet 모듈 설정과 HMI 설정을 동일하게 맞춰야 합니다.

고정값으로 프로그램에 넣기보다 장치 설정에서 사용자가 입력하도록 해야 합니다.

LS 통신 처리

HMI가 다음 요청을 전송합니다.

HMI → PLC: D100부터 10워드 읽기
PLC → HMI: D100~D109 데이터 반환
 

쓰기 예:

HMI → PLC: M100 ON
PLC → HMI: 정상 처리 결과
HMI → PLC: M100 상태 재읽기
 

쓰기 성공 응답만으로 설비가 운전됐다고 판단하지 말고 실제 상태 태그를 다시 읽어 확인해야 합니다.


3. 미쓰비시 PLC 통신

지원 대상

  • FX3·FX5
  • Q 시리즈
  • L 시리즈
  • iQ-F
  • iQ-R

신규 개발에서는 다음을 우선 지원하면 좋습니다.

  • FX5U
  • Q 시리즈
  • iQ-R

주요 디바이스 주소

영역예용도
X X10 입력
Y Y20 출력
M M100 내부 비트
L L100 래치 비트
D D100 데이터 레지스터
W W100 링크 레지스터
R R100 파일 레지스터
T T10 타이머
C C10 카운터
ZR ZR100 파일 레지스터

주의할 점은 X와 Y 주소의 진법입니다. PLC 계열과 디바이스에 따라 8진수 또는 16진수 표현을 사용할 수 있으므로 주소 파서에서 별도로 처리해야 합니다.

MC Protocol

미쓰비시 PLC의 대표적인 Ethernet 통신 방식입니다.

MC Protocol 프레임은 다음 방식으로 구분됩니다.

  • 1E Frame
  • 3E Frame
  • 4E Frame
  • ASCII
  • Binary
  • TCP
  • UDP

HMI 초기 버전에서는 3E Frame Binary TCP가 적합합니다.

장점:

  • 비교적 구조가 명확함
  • 비트·워드 일괄 읽기
  • 비트·워드 일괄 쓰기
  • Q·L·FX5·iQ 계열 지원
  • 네트워크 번호와 PLC 번호 지정 가능

4E Frame은 요청 일련번호를 포함하므로 다중 요청 관리에 유리하지만 초기 구현은 3E Frame으로도 충분합니다.

미쓰비시 Ethernet 설정

GX Works2 또는 GX Works3에서 설정합니다.

  • PLC IP 주소
  • 내장 Ethernet 또는 Ethernet 모듈
  • External Device Configuration
  • Open Setting
  • MC Protocol 또는 SLMP
  • TCP 또는 UDP
  • 포트 번호
  • 접속 방식
  • 통신 대상 허용 설정

설정 후 PLC에 파라미터를 다운로드하고 CPU 재시작이 필요한 경우가 있습니다.


4. 두 제조사의 공통 드라이버 구조

HMI 내부에서는 제조사 차이를 숨겨야 합니다.

 
public interface IPlcDriver
{
string DriverName { get; }
bool IsConnected { get; }
 
Task ConnectAsync(
CancellationToken cancellationToken);
 
Task DisconnectAsync();
 
Task<PlcReadResult> ReadAsync(
IReadOnlyList<PlcReadItem> items,
CancellationToken cancellationToken);
 
Task<PlcWriteResult> WriteAsync(
PlcWriteItem item,
CancellationToken cancellationToken);
}
 

제조사별 구현체를 만듭니다.

 
public sealed class LsXgtDriver : IPlcDriver
{
// LS XGT 전용 프레임 처리
}
 
public sealed class MitsubishiMcDriver : IPlcDriver
{
// Mitsubishi MC Protocol 처리
}
 

Runtime은 PLC 제조사를 직접 판단하지 않고 등록된 드라이버를 호출합니다.

 
IPlcDriver driver = device.DriverType switch
{
"LS_XGT" => new LsXgtDriver(),
"MELSEC_MC3E" => new MitsubishiMcDriver(),
_ => throw new NotSupportedException()
};
 

5. 통신장치 설정화면

LS 설정 예

장치명: LS_PLC01
제조사: LS ELECTRIC
PLC 계열: XGK
프로토콜: XGT Ethernet
전송방식: TCP
IP 주소: 192.168.0.10
포트: PLC 설정값
타임아웃: 1,000ms
재시도: 3회
재접속 간격: 3초
 

미쓰비시 설정 예

장치명: MELSEC_PLC01
제조사: Mitsubishi
PLC 계열: FX5U
프로토콜: MC Protocol
프레임: 3E Binary
전송방식: TCP
IP 주소: 192.168.0.20
포트: PLC 설정값
네트워크 번호: 0
PLC 번호: 255
타임아웃: 1,000ms
 

네트워크 번호와 PLC 번호의 기본값은 모델과 네트워크 구성에 따라 달라질 수 있으므로 편집 가능하게 해야 합니다.


6. 태그 등록 예

태그명장치주소자료형주기
LS_MotorRun LS_PLC01 M100 BOOL 200ms
LS_Temperature LS_PLC01 D100 INT16 500ms
MEL_MotorRun MELSEC_PLC01 M100 BOOL 200ms
MEL_Temperature MELSEC_PLC01 D100 INT16 500ms

화면 오브젝트는 제조사 주소가 아니라 태그명만 사용합니다.

램프 태그 = LS_MotorRun
숫자 표시 = MEL_Temperature
 

이렇게 구성하면 PLC 제조사가 변경되어도 화면 수정이 줄어듭니다.


7. 주소 파서 분리

PLC 주소는 문자열 그대로 처리하지 말고 제조사별 주소 파서로 분석해야 합니다.

 
public sealed class PlcAddress
{
public string DeviceCode { get; init; } = "";
public int Address { get; init; }
public int BitIndex { get; init; }
public PlcDataType DataType { get; init; }
}
 

구현 예:

 
IPlcAddressParser lsParser;
IPlcAddressParser mitsubishiParser;
 

주소 파서가 처리할 내용:

  • 디바이스 코드
  • 주소 진법
  • 비트 위치
  • 워드 주소
  • 읽기 가능 범위
  • 쓰기 가능 여부
  • 연속 읽기 가능 여부

8. 자료형 변환

두 PLC 모두 16비트 워드를 기본으로 사용하는 경우가 많지만 32비트와 실수는 워드 순서를 반드시 확인해야 합니다.

지원 자료형:

  • BOOL
  • INT16
  • UINT16
  • INT32
  • UINT32
  • FLOAT
  • DOUBLE
  • BCD
  • STRING

특히 다음 항목을 PLC별로 시험해야 합니다.

  • Byte 순서
  • Word 순서
  • 32비트 정수
  • 실수
  • 문자열
  • 문자열 Byte Swap
  • 비트 묶음

PLC 프로그램과 HMI에서 동일한 시험값을 사용해 검증하는 것이 좋습니다.

16진수 시험값: 0x1234
32비트 시험값: 0x12345678
실수 시험값: 123.456
문자열 시험값: ABCD1234
 

9. 통신 성능 개선

태그마다 요청을 한 번씩 보내면 통신이 느려집니다.

잘못된 방식:

D100 읽기
D101 읽기
D102 읽기
D103 읽기
 

권장 방식:

D100부터 4워드 일괄 읽기
 

통신 엔진에서 연속 주소를 묶어야 합니다.

D100, D101, D102, D105
→ D100~D102 한 번
→ D105 한 번
 

또한 태그를 주기별로 그룹화합니다.

  • 고속: 100~200ms
  • 일반: 500ms
  • 저속: 1~5초
  • 화면 활성화 태그: 현재 화면에서만 빠르게 읽기

10. 통신 장애 처리

PLC 통신이 끊기면 다음 순서로 처리합니다.

  1. 요청 타임아웃
  2. 재시도
  3. 연결 종료
  4. 통신상태 오류 설정
  5. 태그 품질을 Bad로 변경
  6. 화면 오브젝트 회색 표시
  7. 쓰기 명령 차단
  8. 일정 시간 후 자동 재접속
  9. 통신 복구 이력 기록

태그에는 값 외에 품질과 시간이 필요합니다.

 
public sealed class TagValue
{
public object? Value { get; init; }
public TagQuality Quality { get; init; }
public DateTime Timestamp { get; init; }
}
 

통신이 끊겼을 때 마지막 값을 정상값처럼 표시하면 안 됩니다.


11. 쓰기 명령 처리

PLC 쓰기는 읽기보다 엄격하게 관리해야 합니다.

작업자 입력
→ 권한 확인
→ 입력범위 확인
→ 운전조건 확인
→ 확인 메시지
→ PLC 쓰기
→ 응답 확인
→ 상태 다시 읽기
→ 작업이력 저장
 

권장 설정:

  • 읽기 전용 태그
  • 쓰기 허용 태그
  • 관리자 전용 태그
  • 최소·최대값
  • 쓰기 확인
  • 중복 클릭 방지
  • 쓰기 제한시간
  • 감사로그

12. 개발 우선순위

1단계

  • 공통 IPlcDriver
  • TCP 연결 관리
  • LS XGT Ethernet
  • Mitsubishi MC 3E Binary
  • 비트·워드 일괄 읽기
  • 비트·워드 쓰기
  • 자동 재접속
  • 통신 로그

2단계

  • 32비트·실수·문자열
  • 연속 주소 자동 묶기
  • 다중 PLC
  • 통신 진단화면
  • 태그 품질관리
  • 통신 시뮬레이터

3단계

  • Modbus TCP
  • LS Cnet
  • Mitsubishi Serial
  • Modbus RTU
  • UDP
  • MC 4E Frame

결론

HMI에서 LS와 미쓰비시 PLC를 지원하려면 하나의 통신 코드에 조건문을 계속 추가하면 안 됩니다.

다음처럼 제조사별 드라이버를 분리해야 합니다.

  • LsXgtDriver
  • MitsubishiMcDriver
  • ModbusTcpDriver

화면은 제조사 주소를 직접 사용하지 않고 태그를 통해 통신하도록 구성합니다.

첫 번째 개발 범위는 LS XGT Ethernet과 Mitsubishi MC Protocol 3E Binary가 적합합니다. 이후 공통 Modbus TCP와 시리얼 통신을 추가하면 중소 제조업 현장에서 사용하는 주요 PLC 통신을 상당 부분 지원할 수 있습니다.

반응형