LG 시스템에어컨 모드버스메모리맵 사용법 | 노드레드 연동
이전글 : LG 시스템에어컨 스마트홈 연동 | 모드버스 RTU 연동 | 노드레드 연동
LG 시스템에어컨 노드레드 연동 글에 이어서 LG 모드버스메모리맵의 사용법에 대해 간단하게 올려보고자 합니다.
모드 버스 RTU 프로토콜은 RS485 하드웨어를 이용해서 통신하는 국제적인 표준 프로토콜입니다. 각 제조사마다 통신 패킷들이 자체적인 개발로 일치하지 않으니 각 시스템 간 쉽게 연동할 수 있게 표준의 프로토콜을 사용해서 통신을 하는 목적으로 사용이 되고 각종 산업에서 많이 사용하는 프로토콜로 알고 있습니다.
그리고 이 표준 프로토콜에 맞춰서 각 제조사는 해당 기기가 줄 수 있는 정보들이나 혹은 설정 관련한 내용을 정형화된 규격 안에 번지수를 정해놓습니다. 이게 바로 모드버스 메모리맵이라고 하는 것이죠.
그래서 이 기기에 설정된 모드버스 메모리맵만 제공하면 다른 시스템에서 해당 기기에 통신을 할 수 있게 되는 겁니다.
모드버스 프로토콜에 대한 내용을 모두 알 필요 없이 우리가 노드레드에서 에어컨 제어와 상태 조회를 위한 노드를 구성할 때 필요한 정보만 습득하면 되겠죠? LG 모드버스 메모리맵의 규칙만 어느 정도 알면 쉽게 적용이 가능합니다.

우선 메모리맵을 보면 총 4가지 분야로 나눠져있습니다.
Coil Register, Discrete Register, Holding Register, Input Register
- Coil Register의 값들은 0 아니면 1의 값을 통해 정보를 제공하거나 제어할 수 있고 노드레드에서 사용할 FC(펑션 코드)는 해당 정보를 읽을 때는 FC1(Read Coil Status)를 사용하고 해당 정보에 관한 제어를 할 때는 FC5(Write Single Coil)를 사용합니다.
- Discrete Register는 읽기 전용 레지스터입니다. 해당 정보를 읽을 때는 FC2(Read Input Status)를 사용합니다.
- Holding Register는 0과 1 이상의 값들을 제공하거나 제어할 수 있는 레지스터입니다. 정보를 읽을 때는 FC3(Read Holding Registers)를 사용하고 해당 정보에 관한 제어를 할 때는 FC6(Write Single Holding Registers)를 사용합니다.
- Input Register는 읽기 전용 레지스터입니다. 해당 정보를 읽을 때는 FC4(Read Input Registers)를 사용합니다.
위 메모리 맵에서 Register 항목을 보시면 N * 16 + No 수식은 실내기 중앙제어 주소를 이용해 계산해서 해당 정보를 조회하거나 제어할 수 있는 Address(번지수)를 확인할 수 있습니다.
예를 들면 2대의 실내기 중앙제어 주소가 01, 02로 설정되어 있다고 가정하고 1번 실내기의 Coil Register에 있는 첫 번째 항목 운전 상태를 조회하려면 1 * 16 + 0 = 16, Address는 16번지가 됩니다.
첫번째 항목은 1로 되어있는데 0을 더해야 되는 부분의 이유는 일반적으로 모드버스는 0-Based주소를 사용합니다. PLC기반의 주소에서는 1-Based로 1번부터 시작하게 되는데요. 모드버스는 0부터 시작해서 1번항목이 모드버스에서는 0이됩니다.
2번 실내기의 운전 상태를 조회한다면 2 * 16 + 0 = 32, Address는 32번지가 됩니다.
마찬가지로 1번 실내기의 Holding Register에 있는 운전 모드 상태를 읽어올 때는 1 * 20 + 0 = 20, Address는 20번지가 되고 바람 세기를 읽어올 때는 1 * 20 + 1 = 21, Address는 21번지가 됩니다.
Holding Register는 읽기/쓰기가 모두 가능하기 때문에 기능 코드에 FC3, 어드레스를 20번지로 세팅하면 1번 실내기 운전 모드 상태를 받을 수 있고 기능 코드 FC6으로 어드레스 20번지 설정 후 0~3의 값을 전달해 주면 송풍, 냉방, 자동 등 운전 모드를 제어할 수 있게 됩니다.
위 규칙을 이해하면 메모리 맵 분석은 끝났습니다. 실내기 중앙제어 주소(00~FF)를 이용해 각 항목마다 해당 Address를 계산해서 적용해주면 메모리 맵에 있는 데이터를 얻거나 제어할 수 있게됩니다.
아래는 몇가지 예제를 캡처했습니다.






실내기 중앙제어 주소가 02라면 32, 40, 3번 실내기라면 48, 60 등 실내기 중앙제어 주소를 이용해서 조회하거나 제어하려는 항목의 번지수를 뽑아내면 됩니다.
이렇게 노드 레드를 이용해서 LG 시스템에어컨 제어 방법에 대해 간단하게 알아봤습니다. 활용하실 분이 많이 없으실 것 같지만 그래도 로컬 연동이라는 강점이 있기에 WI FI 연동에 문제가 있다면 라즈베리 파이나 미니 PC 등에 노드 레드를 설치와 EW11을 구매해서 한번 도전해 보면 좋을 것 같습니다.


