원격 스크립트 기능은 기존의 스크립트 ('액션>스크립트' 참조) 를 원격지에서 이더넷을 통해 실행할 수 있는 기능입니다.
C#이나 C++등 프로그래밍 언어를 사용하여 TCP/IP 통신을 통해 원하는 스크립트를 실시간으로 원격 실행할 수 있습니다. 서버 측(HMI 펌웨어) 버전이 최소 3.15 이상이고 CHC 시리즈일 경우만 원격 스크립트 요청을 인식할 수 있습니다.
1. HMI의 설정에서 네트워크 환경 설정을 한 후 원격 제어 서버를 구동(HMI의 런타임 설정>서버>원격 제어 서버 구동)시킨다.
2. PC 등 클라이언트에서 이더넷을 통해 서버에 접속한다.
3. 접속이 맺어진 것을 클라이언트 측에서 확인한 후 서버에게 스크립트를 보낸다.
(응답까지 받기 위해서는 접속을 유지시킵니다. 클라이언트 측에서 접속을 끊지 않는한 서버 측에서 연결을 끊지 않습니다)
클라이언트에서 보낼 스크립트는 XML(아스키) 형식이며 다음과 같은 형식을 가지고 있습니다.
<script>보낼 스크립트의 내용</script>
예) <script>a=b+3</script>
스크립트의 개요과 작성법에 관한 자세한 내용은 다음 내용을 참조하세요 (단, 반복 기능은 원격 스크립트에서 지원 안 함) http://www.comfilewiki.co.kr/ko/doku.php?id=comfilehmi:multiaction10:index
만약 서버에서 원격 제어를 위한 비밀번호를 설정했을 경우 다음과 같은 형식으로 보내야 합니다.
<script password="비밀번호">보낼 스크립트의 내용</script>
예) <script password="1289">$a="안녕하세요"</script>
스크립트 내용 중 한글 등의 다국어가 있을 경우는 UTF-8 포맷으로 보내야 합니다.
클라이언트에서 스크립트를 보내어 서버에서 실행하게 할 뿐 아니라 어떤 응답을 서버측으로부터 받고 싶을 때도 있습니다.
스크립트내에서 특정 함수를 사용하여 보내면 특정한 응답을 서버로부터 받아낼 수 있습니다.
예를 들어 HMI변수 'a'값을 byte화시켜서 클라이언트가 응답으로 받고 싶을 경우 다음과 같이 스크립트 패킷을 보내면 됩니다.
예) <script>write_byte(a);</script>
byte뿐 아니라 워드, 더블 워드, 문자열, 파일 내용 등도 보낼 수 있습니다. 자세한 내용은 다음 링크의 함수 해설을 참조하세요. http://comfilewiki.co.kr/ko/doku.php?id=comfilehmi:hmieditor_function:index
ComfileHMI 에디터에서는 이 원격 스크립트 기능을 직접 테스트해 볼 수 있는 "원격 스크립트 테스트 박스" 기능을 제공합니다. (메뉴의 '도구>고급 기능>원격 스크립트 텍스트 박스') ComfileHMI 에디터(PC)가 클라이언트라고 가정하고 테스트해볼 수 있도록 되어 있습니다.