2023.10.18 날짜로 업데이트 된 v.1.5.830 버전부터 원격(REMOTE) 통신에 의한 제어가 추가 제공됩니다. 여기서 제공되는 통신 방식은 TCP/IP 혹은 RS-232 을 사용한 것을 의미합니다. 또한 이 원격 통신 기능은 editor 데모 프로젝트들에서 모두 사용되고 있습니다.
// Initialize sirius2 library
EditorHelper.Initialize();
...
// Create remote control
EditorHelper.CreateRemote(siriusEditorUserControl1, out var remote);
// Assign remote control into usercontrol
siriusEditorUserControl1.Remote = remote;
...
위와 같이 라이브러리 초기화 후 원격 통신을 제공하는 객체(IRemote)를 생성합니다. 초기화 과정을 좀 더 자세히 살펴보면 아래와 같이 설정 파일(ini)에 의해 2가지 통신 방식들중 선택하게 되어 있습니다.
remote = RemoteFactory.CreateTcpServer(index, siriusEditorUserControl, tcpPort);
//or
remote = RemoteFactory.CreateSerial(index, siriusEditorUserControl, serialPort, serialBaudRate);
...
remote.Start();
만약 설정 파일(ini)에 다음과 같이 지정하였다면 서버 포트 5001에 해당하는 TCP/IP 통신이 준비됩니다.
[REMOTE0]
; ENABLE(1)/DISABLE(0)
ENABLE = 1
; TCP
; SERIAL
PROTOCOL=TCP
; TCP SERVER CONFIG
TCP_PORT=5001
; SERIAL PORT CONFIG
SERIAL_PORT=1
SERIAL_BAUDRATE=57600
통신 프로토콜에 대한 자세한 설명은 프로토콜 참고 문서(https://github.com/labspiral/sirius2/blob/main/doc/Sirius2_Remote.pdf)를 참고해 주시기 바랍니다. 여기에서는 간단한 예제를 통해 통신 과정을 살펴보겠습니다.
아래와 같이 editor_basic 데모 프로젝트를 실행하면 설정 파일에 의해 TCP/IP 서버가 활성화 됩니다.

적절한 테스트용 TCP 클라이언트를 사용해 IP 주소 및 TCP 포트 번호를 사용해 서버에 연결을 시도합니다.
(무료 클라이언트 프로그램 : https://www.hw-group.com/software/hercules-setup-utility)

테스트를 위해 Arc1 이름을 가지는 원 개체를 생성해 줍니다.

통신 프로토콜 문서에 나와 있는 것처럼 Arc1 이란 개체에 대한 속성 목록을 가져오는 명령(Entity, Name, Properties;) 을 사용합니다.

Arc1 에 대한 다양한 속성값들 중 반지름(Radius) 값을 변경해 보겠습니다.


그럼 제어 명령을 통해 가공을 진행하겠습니다. 이때 사용되는 명령은 Control,Start; 입니다.


이번에는 바코드 개체를 생성후 데이타를 변경하면서 가공하는 예를 살펴보겠습니다.




또한 레시피(작업파일) 변경, 복수개의 위치(오프셋) 이동 후 가공, 상태(Ready, Busy, Error 여부) 확인, 펜(Pen) 파라메터 변경 등 다양한 기능을 원격 통신을 통해 제어가 가능합니다. 자세한 명령 목록은 통신 프로토콜 문서를 참고해 주시기 바랍니다.
통신 프로토콜 문서 링크 : https://github.com/labspiral/sirius2/blob/main/doc/Sirius2_Remote.pdf
원격 통신 탭(Remote) 에는 원격 제어 명령에 의한 처리를 허용할지 여부를 선택할 수 있습니다. 즉 조회(Query)만 허용할지 아니면 실제 변경등 명령들(Commands)을 허용할지 여부를 Local/Remote 상태로 선택이 가능합니다. (기본 상태는 Remote 입니다)
