티스토리 뷰

728x90

"모드버스(Modbus) 응용 개발을 위한 준비" 글에서 모드버스 프로토콜과 응용 개발 과정, 그리고 연관된 시뮬레이터 프로그램을 다루었는데 그중의 하나가 RMMS(Radzio! Modbus Master Simulator)라는 프로그램이다. 프로그램 다운로드는 앞선 글을 참조한다.

 

일반적인 개발자에게는 쓸모가 없을 수도 있다. 보통 모드버스 슬레이브 서버를 장착하는 PLC 장비나 기타 임베디드 장비를 개발하는 경우에 장비가 원활하게 모드버스 서비스를 제공하는지 확인하는 용도로 활용할 수 있다. 다른 용도는 스카다 시스템이나 HMI 개발자가 프로그램 개발 전후로 실제 PLC나 시스템과 모드버스로 데이터가 정상적으로 전달되는지 확인하는 도구로 활용할 수도 있다. 개발 중인 스카다 시스템이나 HMI와 다른 도구를 활용해서 데이터를 검증하여 상호 검증에 활용하거나 개발과 시전 검증을 병행할 수도 있다. 의외로 레지스터 불일치 문제가 많이 있다. 또한 PLC에 직접 접속하지 않고 스카다나 HMI 없이도 단순화 시스템 모니터링이나 자료 수집 도구로 활용할 수도 있다.

 

■ 연결 설정

우선 MODBUS RTU와 MODBUS TCP를 동시에 수행할 수는 없다. 또한 MODBUS ASCII 프로토콜은 지원하지 않는다. 프로그램을 실행하고 Connection> Settings 메뉴를 클릭하여 연결 설정 대화창을 띄운다. "Protocol" 영역에서 RTU 또는 TCP를 먼저 선택하고 하단의 각 영역에서 필요한 내용을 입력한다. 상단에서 RTU를 선택하면 하단의 Modbus TCP 영역이 입력 금지되고, 반대로 상단에서 TCP를 선택하면 하단의 RTU영역을 입력 금지한다.

 

■ 레지스터 설정 및 연결

연결 설정이 준비되었으면 File> New 메뉴나 상단 새로 만들기 버튼, Ctrl+N 단축키로 위의 그림과 같은 모니터링 창을 만든다. RMMS는 MDI 응용으로 여러 개의 창을 만들어 동시에 값을 확인할 수 있다. 

 

테이블 이름 주소 범위 유형 동작 방식
discrete_output_coils 1-9999 디지털 입출력
discrete_input_contacts 10001-19999 디지털 입력
analog_input_registers 30001-39999 아날로그 입력
analog_output_holding_registers 40001-49999 아날로그 입출력

"Device Settings"에서 어떤 데이터를 읽을지 지정한다. 모드버스 프로토콜에서는 주소 영역을 위의 표와 같이 크게 네 가지 영역으로 분류하여 테이블(Table)이라 지칭하는데 "Device ID" 옆의 콤보 박스로 테이블을 선택하고 바로 아래에서 주소와 개수를 지정하는 방식이다. 주소를 0부터로 할지 1부터로 할지는 연결 설정에서 지정하므로 해당 값과 일치하도록 맞추어야 한다. 우측의 "Display options"는 아날로그 레지스터에 대해서만 유효한다.

 

연결 설정과 레지스터 설정이 끝났으면 Connection> Connect를 클릭하여 지정 장치와의 연결을 진행한다. 연결이 성공하면 화면 좌측 하단의 상태바에 "Not connected"가 연결 정보로 바뀐다. 연결과 동시에 현재 열린 레지스터 설정 창들은 값을 읽기 시작한다.

 

위의 그림은 아날로그 테이블과 디지털 테이블에서 동시에 값을 읽고 있는 모습이다.  시도 횟수와 성공 및 실패 횟수를 하단에 표시하므로 모니터링에 참고한다. Connection> Disconnect를 클릭하면 모니터링 중인 모든 창이 값 읽기를 중단한다.

 

개별 레지스터 창의 설정은 File> Save Window 또는 Save Window as...로 저장할 수 있고 File> Open으로 창의 위치나 설정을 복원할 수 있다. 데이터 값을 저장하는 것이 아님에 주의한다. 장치 주소와 관계없기 때문에 주소가 동일하다면 이런 방식으로 서로 다른 장치들을 그대로 모니터링할 수도 있다.

 

필자의 경우 Window Set 저장과 로드, CSV export, import 기능, 값 로깅 기능은 정상 동작하지 않았다.

 

■ 기타 기능 사용하기

레지스터 설정 창의 셀을 우측 마우스로 클릭하여 배경색 변경하기나 입체로 보이기를 설정하면 특정 레지스터를 주목하여 볼 수 있는 효과를 부여할 수 있고 "Alias"에 그림과 같이 항목의 이름을 지정해 놓으면 가독성을 높일 수 있다. 어찌 보면 멋있는 그림은 없지만 이러한 창 몇 개를 띄우는 것만으로도 단순한 HMI나 스카다를 대신하는 효과를 볼 수 있다. 레지스터 이름이나 배경색은 "Save Window"로 저장하면 다음에 창을 읽을 때 그대로 불러올 수 있다.

 

값을 표시하는 셀을 더블클릭하면 위의 그림처럼 레지스터를 지정하여 값을 변경할 수 있다. 아날로그와 디지털 테이블의 적용 방식이 다름을 확인할 수 있다.

 

RMMS는 모드버스 슬레이브 서버를 테스트하는 것이 주요 용도로 보이지만, 모드버스 마스터 시뮬레이터가 간단한 스카다나 HMI를 대체할 수 있음을 살펴볼 수 있었다. 약간의 버그 수정과 기능 보완이 있으면 좋겠지만 소스 코드가 없어 아쉽다.

 

728x90
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함