LG 시스템에어컨 모드버스메모리맵 사용법 | 노드레드 연동 bg
스마트홈

LG 시스템에어컨 모드버스메모리맵 사용법 | 노드레드 연동

이전글 : LG 시스템에어컨 스마트홈 연동 | 모드버스 RTU 연동 | 노드레드 연동

LG 시스템에어컨 노드레드 연동 글에 이어서 LG 모드버스메모리맵의 사용법에 대해 간단하게 올려보고자 합니다.

모드 버스 RTU 프로토콜은 RS485 하드웨어를 이용해서 통신하는 국제적인 표준 프로토콜입니다. 각 제조사마다 통신 패킷들이 자체적인 개발로 일치하지 않으니 각 시스템 간 쉽게 연동할 수 있게 표준의 프로토콜을 사용해서 통신을 하는 목적으로 사용이 되고 각종 산업에서 많이 사용하는 프로토콜로 알고 있습니다.

그리고 이 표준 프로토콜에 맞춰서 각 제조사는 해당 기기가 줄 수 있는 정보들이나 혹은 설정 관련한 내용을 정형화된 규격 안에 번지수를 정해놓습니다. 이게 바로 모드버스 메모리맵이라고 하는 것이죠.

그래서 이 기기에 설정된 모드버스 메모리맵만 제공하면 다른 시스템에서 해당 기기에 통신을 할 수 있게 되는 겁니다.

모드버스 프로토콜에 대한 내용을 모두 알 필요 없이 우리가 노드레드에서 에어컨 제어와 상태 조회를 위한 노드를 구성할 때 필요한 정보만 습득하면 되겠죠? LG 모드버스 메모리맵의 규칙만 어느 정도 알면 쉽게 적용이 가능합니다.

LG 시스템에어컨 모드버스메모리맵 사용법 | 노드레드 연동 memorymap
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를 계산해서 적용해주면 메모리 맵에 있는 데이터를 얻거나 제어할 수 있게됩니다.

아래는 몇가지 예제를 캡처했습니다.

LG 시스템에어컨 모드버스메모리맵 사용법 | 노드레드 연동 memory
Modbus Read노드 이용, FC3 설정 후 1 * 20 + 0 으로 어드레스 20번지 세팅
LG 시스템에어컨 모드버스메모리맵 사용법 | 노드레드 연동 memory2
결과값은 2로 현재 송풍모드임을 알 수 있다
LG 시스템에어컨 모드버스메모리맵 사용법 | 노드레드 연동 memory3
Modbus Write 노드 이용, FC6 설정 후 1 * 20 + 0 으로 어드레스 세팅 후 3의 값을 넣어주면 자동모드로 변경된 걸 디버그로 확인
LG 시스템에어컨 모드버스메모리맵 사용법 | 노드레드 연동 memory4
Modbus Read 노드를 이용, FC4 설정 후 1 * 20 + 1 으로 어드레스 21세팅 하면 현재온도 228(온도 * 10)의 값을 받을 수 있다.
LG 시스템에어컨 모드버스메모리맵 사용법 | 노드레드 연동 memory5
Modbus Read 노드를 이용, FC3 설정 후 1 * 20 + 2 으로 어드레스 22 세팅 하면 설정온도 값 180(온도 * 10)을 받을 수 있다.
LG 시스템에어컨 모드버스메모리맵 사용법 | 노드레드 연동 memory6
Modbus Write 노드를 이용, FC6 설정 후 1 * 20 + 2 으로 어드레스 22 세팅 후 220값(설정온도 * 10)을 전달해주면 설정온도가 바뀐 걸 디버그로 확인

실내기 중앙제어 주소가 02라면 32, 40, 3번 실내기라면 48, 60 등 실내기 중앙제어 주소를 이용해서 조회하거나 제어하려는 항목의 번지수를 뽑아내면 됩니다.

이렇게 노드 레드를 이용해서 LG 시스템에어컨 제어 방법에 대해 간단하게 알아봤습니다. 활용하실 분이 많이 없으실 것 같지만 그래도 로컬 연동이라는 강점이 있기에 WI FI 연동에 문제가 있다면 라즈베리 파이나 미니 PC 등에 노드 레드를 설치와 EW11을 구매해서 한번 도전해 보면 좋을 것 같습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다