자바스크립트 - Device/Connection 객체(응용) 따라하기
자바스크립트 따라하기 - Device/Connection 객체 (응용)
X-SCADA 에서 연결이 바뀔 때 정보를 출력할 수 있다.
1. Device/Connection 샘플 만들어보기
(객체를 생성할 때는 도구를 클릭하고 마우스 커서를 Design 영역으로 옮겼을 때 커서가 십자 표시로 되면 생성할 위치에 클릭한 상태로 드래그하면 된다.)
1) 장치 탐색기에서 장치를 하나 생성한다.
2) 생성한 장치에 네트워크 연결을 두 개 추가한다.
3) 첫 번째 네트워크 연결을 아래와 같이 편집한다
RemotePort 속성을 502 로 설정한다
4) 두 번째 네트워크 연결을 아래와 같이 편집한다
RemotePort 속성을 503 로 설정한다
5) 태그 탐색기에서 아날로그 태그를 하나 생성한다.
6) 생성한 아날로그 태그의 속성을 아래와 같이 설정한다.
7) 페이지 스크립트를 아래와 같이 편집한다.
8) 레이블 객체와 텍스트 객체를 아래와 같이 배치하고 텍스트 객체의
텍스트를 설정한다.
9) 각 레이블에 태그를 바인딩한다.
10) 실행이나 F5 를 눌러 뷰어를 연다.
11) X SCADA 설치 폴더를 열어 M odbusSlave.exe 를 두 번 실행한다.
● 아래 메시지 박스가 나오면 확인을 누른다
12) 한 프로그램의 TCP 포트는 502, 다른 프로그램은 503 으로 설정하고
Start Server 버튼을 클릭해 슬레이브를 실행한다
● 1 번 서버
● 2 번 서버
13) 뷰어를 확인한다 한 쪽 서버를 종료하고 다른 쪽 서버를 실행하면 결과를 확인할 수 있다.
2. 스크립트 코드 해석
1) page_1 페이지
① 이벤트 리스너 추가 코드
$XT("_Devices.device_1.ActiveConnection").addEventListener("change", showInfo);
_D evices. d evice_1.ActiveConnection 태그에 이벤트 리스너를 추가한다
이벤트타입 : change ( 태그 값이 변경될 때 발생
실행할 메서드 : showInfo
② showInfo 메소드
function showInfo(event) { var conn = $XI("device_1").connections.getByName(event.target.value);
console.log(conn.name); console.log(conn.scanTime); console.log(conn.timeout); console.log(conn.enabled); console.log(conn.trialCount); console.log(conn.type); console.log(conn.remoteAddress); console.log(conn.remotePort); console.log(conn.localAddress); } |
(1) var conn = $XI("device_1"). connections.getByName(event.target.value);
device_1 장치의 연결 목록 중 이름이 이벤트를 발생시킨 태그 의 값에 해당하는 연결을
가져온다 이 때 태그는 스크립트의 첫 번째 줄에서 다룬
태그 D evices. d evice_1.ActiveConnection) 이다
● 페이지 콘솔 창 결과 : -
(2) console.log(conn.name)
가져온 연결의 이름을 출력한다
● 페이지 콘솔 창 결과 : network_1
(3) co nsole.log(conn.scanTime);
가져온 연결의 스캔 간격을 출력한다
● 페이지 콘솔 창 결과 : 1000
(4) console.log(conn.timeout)
가져온 연결의 타임아웃을 출력한다
●페이지 콘솔 창 결과 : 1000
(5) console.log(conn.enabled)
가져온 연결의 활성화 여부를 출력한다
● 페이지 콘솔 창 결과 : true
(6) console.log(conn.trialCount);
가져온 연결의 시도 횟수를 출력한다
● 페이지 콘솔 창 결과 : 23
(7) console.log(conn.type);
가져온 네트워크 연결의 통신 타입 TCP/UDP) 을 출력한다
● 페이지 콘솔 창 결과 : "tcp”
(8) console.log(conn.remoteAddress);
가져온 네트워크 연결의 원격지 주소를 출력한다
● 페이지 콘솔 창 결과 : “127.0.0.1”
(9) console.log(conn.remotePort);
가져온 네트워크 연결의 원격지 포트를 출력한다
● 페이지 콘솔 창 결과 : 503
(10) c onsole.log(conn.localAddress)
가져온 네트워크 연결의 로컬 주소를 출력한다
● 페이지 콘솔 창 결과 : ""