![]() |
[왼쪽=단말기(UNIT), 오른쪽=제어기(CONTROLLER)] |
왼쪽이 단말기로 실행한 시찬스멀티클라이언트 , 오르쪽은 제어기로 실행한 시찬스멀티클라이언트두개를 모두 실행한 상태에서 [연결설정] 버튼을 눌러 연결설정화면에서
접속IP 와 PORT 그리고, 각각 다른 MAC주소를 입력합니다.
저는 현재 컴퓨터 한대에서 172.30.1.21 로 접속해서 포트는 기본포트값인 10003을 사용하고
제어기의 MAC주소는 B6417E7B8991 을 사용하고, 단말기의 MAC주소는 B6417E7B8991 번을 사용할 것입니다.
주의 하실점은..
시찬스멀티클라이언트는 같은클라이언트는 한컴퓨터에 한대를 실행하도록 설계되었습니다.
따라서, 여러개의 단말기, 제어기를 테스트하려면 컴퓨터의 대수는 최소한 2대이상이 있어야 합니다.
물론, 필자처럼 단순히 단말기 하나, 제어기 하나를 테스트하고저 한다면 굳이 2대이상의 컴퓨터는 필요치 않겠습니다.
![]() |
[단말기 연결설정] |
![]() |
[제어기 연결설정] |
연결설정이 끝났다면..
다음으로 당연히 #시찬스멀티서버는 아래와같이 컨트롤서버모드로 서버를 실행합니다.
만일, 데이터베이스를 사용한다면 [사용자관리] 버튼을 눌러 아까 등록했던 MAC 주소를 입력해주어야 정상적인 로그인이 가능합니다.
![]() |
[시찬스멀티서버 컨트롤서버 모드로 실행] |
이제 테스트환경이 모두 갖추어졌으므로, 각 기능들의 설명과 함께 하나씩 테스트 해보도록 하겠습니다.
1. 연결(로그인)
단순히 데이터를 송신만 한다면 실제로 연결버튼은 필요하지 않습니다.
특히, 제어기의 일방적인 데이터전송이라면 데이터전송버튼을 누를때 소켓을 열고, 해당 데이터를 전송하고 연결을 닫아주면 되기때문입니다만, 시찬스멀티클라이언트는 채팅기능을 통해 양방향데이터 송/수신을 해야하므로,
제어기든 단말기든 모두 [연결(로그인)] 버튼을 이용해 로그인합니다.
![]() |
[단말기로 로그인 결과 화면, 왼쪽=시찬스멀티클라이언트, 오른쪽=시찬스멀티서버] |
![]() |
[제어기로 로그인 결과 화면, 왼쪽=시찬스멀티클라이언트, 오르쪽=시찬스멀티서버] |
2. 채팅
정상적으로 단말기/제어기가 로그인을 했다면 이제부터 데이터 / 송수신이 가능한상태이므로,
채팅기능의 사용이 가능합니다.
테스트를 위해 제어기에서 "데이터송신" 이라는 문자열을 전송해봅니다.
![]() |
[제어기 문자열 송신] |
상기화면에서 채팅란에 "데이터송신"이라는 문자열을 입력하고 [전송]버튼을 누르면 데이터는 대상MAC주소에 입력한 MAC 주소로 데이터를 송신합니다. 만일, [접속된 단말기에 전체발송(NOACK)] 체크박스가 체크되어 있다면 대상MAC 주소뿐아니라 접속된 모든 단말기에 해당문자열을 모두 전송합니다.
전송된 문자열은 아래 단말기 화면처럼 수신된데이터를 표시하고, 보내준 MAC 주소를 자동으로 [대상MAC주소] 란에 표시하여 줍니다.
![]() |
[단말기 문자열 수신] |
수신된 MAC 주소를 이용해 역으로 단말기에서도 해당 데이터를 송신할 수도 있습니다.
즉, 채팅기능을 이용하면 단말기와 컨트롤간의 데이터통신이 양방향으로 이루어질 수 있음을 확인할 수 있습니다.
시찬스멀티클라이언트에서 [채팅]이라는 기능명을 사용했지만, 앞서 이전장에서설명한대로 이 채팅은 우리가 알고 있는 채팅의 기능보다는 제어기와 단말기간의 양방향 데이터통신이 가능함을 보여주는 샘플용임을 참고하시기 바랍니다. 물론, 기능개선을 통해 일반 채팅방처럼 많은 기능들을 포함할 수도 있겠죠?
3. XML 송/수신
데이터베이스를 단말기에 전송해야 하는경우 XML 을 사용하여 전송 할 수 있습니다.
XML은 파일로 전송할 수도 있겠지만, XML 내용자체를 전송하고저 한다면 XML 송/수신을 이용하면 편리하게 송/수신이 가능합니다.
![]() |
제어기 XML전송화면 |
![]() |
단말기 XML수신화면 |
4.파일 송/수신
단말기의 데이터를 업데이트하거나, 파일을 전송해야 할 경우를 데이터를 어떻게 전송하는지를 보여줍니다.
제어기에서 파일을 전송하고 전송된 파일은 단말기가 수신하며, 이때 [수신한 EXE,BAT 파일실행] 체크박스에 체크가되어 있으면 해당 파일을 자동으로 실행하는 기능도 있습니다. 참고 하시면 좋을듯 합니다.
![]() |
제어기 파일전송화면 |
로그인된 제어기 화면에서 전송할 파일을 선택하고, [전송]버튼을 클릭하면 MAC 주소란에 입력한 단말기로 파일이 전송됩니다. 정상적으로 파일이 전송되었다면, 메세지창에 [전송완료]SEND_FILE 이라고 나올것입니다.
![]() |
단말기 파일수신화면 |
제어기가 정상적으로 송신을 완료했다면 당연히 단말기에도 상기처럼 메세지창에 수신된 파일의 용량을 보여주고, 기본으로 정해져놓은 수신파일의 저장폴더로 파일이 수신되어 저장될것입니다. 이모든 처리가 이루어지면 받은파일리스트에 받은파일의 풀경로가 표시됩니다.
혹 받은파일을 곧바로 실행하고 싶다면 해당 파일을 선택하고 "더블클릭"을 하면 해당 경로로 찾아가지 않아도 곧바로 해당 파일을 실행시킬 수 있습니다. 만일, 수신한 파일이 EXE, BAT 파일이라면 자동으로 실행 체크박스를 선택해 자동으로 실행될 수 있도록도 선택할 수 있습니다.
만일, 정상적인 수신이 이루어지지 않았다면 단말기로 접속했는지 로그인한 MAC주소는 정확한지 확인해보시기 바랍니다.
5. 명령코드 송 / 수신
명령코드는 제어기에서 단말기에게 특정한 명령을 처리하도록 하기위한 코드를 전송하는 기능입니다. 가령, AGV와 같은 구동로봇이 단말기라면 단말기에게 "왼쪽으로 30만큼 이동해 " 라는 명령을 내리려면 기본적으로 AGV 가 동작해야 하는 기본코드 "좌", "우", "전", "후" 와 같은 기본 코드가 있어야 합니다.
이 역활을 바로 명령코드가 처리합니다. 여기서는 테스트를 해보지는 않겠지만, 실제로 "왼쪽" 이라는 코드가 0001 로 정의되고, "30"이라는 데이터를 앞서 테스트한 XML 로 "30"이라는 데이터를 전송했다면 , AGV가 해당데이터로 좌로 30만큼 이동할 수 있을것입니다.
간략히 AGV로 설명드린이유는 실제로 명령코드의 사용은 AGV나 로봇을 제어하기위한 가장 기본적인 코드 송/수신이기 하므로, 이점에 대해서 설명드렸습니다만, 시찬스멀티클라이언트는 PC에서도 이 코드를 어떻게 사용할 수 있는지를 테스트하도록 그기능을 제공합니다.
단말기화면에서 상단의 메뉴스트립 [명령(COMMAND)명령 설정] 버튼을 눌러 해당 이미설정되어 있는 코드들을 설정할 수 있습니다. 각 코드에 대한 설정은 설명과 함께 제공되어 기본설정으로 어렵지 않게 테스트해볼 수 있을것입니다.
![]() |
단말기 명령(COMMAND)코드 설정 |
![]() |
제어기명령 전송 |
일단저는 명령을 테스트하기위해 단말기에서 설정한 COMMAND_NULL [30000] 코드에
프로그램실행 명령인 [PROGRAM_EXECUTE]로 세팅하였으므로, 해당 COMMAND_NULL 로 제어기에서 전송하였습니다. 이때 스크립트를 Windows의 내부명령어인 notepad.exe 를 전송하여 윈도우즈의 노트패드를 실행하도록 하였습니다.
![]() |
단말기 명령수신결과 |
명령코드가 정상적으로 수신되었다면 코드수신리스트에 수신된 코드가 표시되고,
명령코드설정에서 저장한 프로그램실행으로 notepad.exe 가 실행된 모습을 확인할 수 있습니다.
이렇게 시찬스멀티클라이언트의 단말기(UNIT) / 제어기(CONTROLLER)의 사용법과 테스트 과정을 살펴보았습니다. 화면은 복잡해보이지만, 실제로 사용하는것은 생각보다 단순하다는것을 충분히 느꼈으리라 생각됩니다.
다음장에서는 #클라우드 클라이언트의 사용법을 배워보고 테스트를 진행해보도록 하겠습니다.
시찬스멀티서버 다운로드
시찬스멀티클라이언트 다운로드
댓글 없음:
댓글 쓰기