remote개체는 통신 드라이버로 명령을 보낼때 사용합니다. 사용자는 remote 개체를 이용해 장치를 제어 하거나 설정 값을 쓰는데 사용할 수 있습니다.
Methods
리턴 값
|
함 수
|
설 명
|
|
analogPoll( rtuName )
|
디바이스에 아날로그 계측 명령을 실행합니다. (HMI 전용)
|
str
|
connectedHost( device )
|
디바이스에 접속한 기기의 IP를 반환합니다. (통신 방식이 TCP/IP Server 일경우에만 동작합니다)
|
|
integrityPoll( rtuName )
|
디바이스에 전체 계측 명령을 실행합니다. (HMI 전용)
|
|
openSetPoint( name, confirm )
|
수치 값을 장치로 write 할때 사용합니다. (HMI 전용)
|
boolean
|
sendCommand( device, cmd, param )
|
드라이버 고유 명령을 내릴 때 사용합니다.
|
boolean
|
setAnalogSequence( device, datas, confirm )
|
여러개의 아날로그 포인트의 값을 동시에 씁니다. (HMI 전용)
|
boolean
|
setAnalogSequence( device, datas, savelog )
|
여러개의 아날로그 포인트의 값을 동시에 씁니다. (Server 전용)
|
boolean
|
setValue( name, value )
|
name이름을 가진 포인트에 설정된 장치의 출력 주소로 값을 Write합니다. (HMI 전용)
|
boolean
|
setValue( name, value, savelog )
|
name이름을 가진 포인트에 설정된 장치의 출력 주소로 값을 Write합니다. (Server 전용)
|
boolean
|
setValueConfirm( name, value )
|
name이름을 가진 포인트에 설정된 장치의 출력 주소로 값을 Write하며 명령전에 사용자 확인 작업을 거칩니다. (HMI 전용)
|
boolean
|
setValueUnConfirmed( name, value )
|
name이름을 가진 포인트에 설정된 장치의 출력 주소로 값을 Write합니다. (HMI 전용)
|
|
setValueUnConfirmed( name, value, savelog )
|
name이름을 가진 포인트에 설정된 장치의 출력 주소로 값을 Write합니다. (Server 전용)
|
|
statusPoll( rtuName )
|
디바이스에 상태 계측 명령을 실행 합니다. (HMI 전용)
|
|
timeSyncCmd( rtuName )
|
디바이스에 시각동기 명령을 실행 합니다. (HMI 전용)
|
|
toggle( name, confirm )
|
현재의 값을 반전 시켜 장치로 값을 Write합니다. (HMI 전용)
|
analogPoll( rtuName:디바이스명 )
|
해당 디바이스에 속한 모든 아날로그 데이터를 계측합니다. (HMI 전용)
- rtuName에는 데이터 익스플로러에 등록되어 있는 디바이스 이름을 입력합니다.
예)
# '10Kv Feeder#1' 디바이스에 속한 모든 아날로그 데이터를 계측합니다.
remote.analogPoll('10Kv Feeder#1');
|
|
|
데이터 익스플로러의 디바이스 화면입니다.
|

|
|
- 제어가 성공하면 완료됨의 메시지를 출력합니다.
|

<정상적으로 제어가 된 경우>
|
|
|

<디바이스가 동작 중이지 않을 때 실패 화면>
|

<존재하지 않는 디바이스명을 입력했을 때 실패 화면>
|

<파워씬 드라이버가 꺼져 있을 때 실패 화면>
|
|
str connectedHost( device:디바이스 명 )
|
디바이스에 접속한 기기의 IP를 반환합니다. ( 통신 방식이 TCP/IP Server 일 경우에만 동작합니다. )
예)
# 'LP-1 RTU' 디바이스에 접속한 기기의 IP를 반환합니다.
deviceAddress = remote.connectedHost('LP-1 RTU')
|
|
|
integrityPoll( rtuName:디바이스 명 )
|
해당 디바이스에 속한 모든 데이터를 계측합니다. (HMI 전용)
- rtuName에는 데이터 익스플로러에 등록되어 있는 디바이스 이름을 입력합니다.
예)
# '10Kv Feeder#1' 디바이스에 속한 모든 데이터를 계측합니다.
remote.integrityPoll('10Kv Feeder#1');
|
|
|
데이터 익스플로러의 디바이스 화면입니다.
|

|
|
- 제어가 성공하면 완료됨의 메시지를 출력합니다.
|

<정상적으로 제어가 된 경우>
|
|
|

<디바이스가 동작 중이지 않을 때 실패 화면>
|

<존재하지 않는 디바이스명을 입력했을 때 실패 화면>
|

<파워씬 드라이버가 꺼져 있을 때 실패 화면>
|
|
openSetPoint( name:포인트 명, confirm:사용자 확인 설정 )
|
사용자가 포인트의 값을 입력할 수 있는 창을 띄웁니다. (HMI 전용)
- name에는 사용자가 값을 입력할 포인트의 명을 입력합니다.
- confirm에는 사용자 확인 창 사용 여부를 입력합니다.
- 1 입력 : 포인트 값을 입력한 후 사용자 확인 창을 띄웁니다.
- 0 입력 : 포인트 값을 입력한 후 사용자 확인 창을 띄우지 않습니다.
예)
# 'PLC.종축목표위치' 포인트의 값을 입력할 수 있는 창을 띄웁니다. 이때 포인트 값을 입력한 후 사용자 확인창은 띄우지 않습니다.
remote.openSetPoint('PLC.종축목표위치', 0);
|
|
|
openSetPoint 사용자 확인 없이 설정하여 제어 성공 예입니다.
|

|
|
openSetPoint 사용자 확인 없이 설정하여 제어 실패 예입니다.
|

|
|
- 사용자 확인창을 사용하지 않고 제어 성공할 경우 값 설정 후 다른 메시지 없음
- 사용자 확인창을 사용하지 않고 제어 실패할 경우 값 설정 후 실패 메시지 창 출력
|
|
예)
# 'PLC.종축목표위치' 포인트의 값을 입력할 수 있는 창을 띄웁니다. 포인트 값을 입력한 후 사용자 확인창을 띄웁니다.
remote.openSetPoint('PLC.종축목표위치', 1);
|
|
|
openSetPoint 사용자 확인 없이 설정하여 제어 성공 예입니다.
|

|
|
openSetPoint 사용자 확인 후 제어 실패 예입니다.
|

|
|
- 사용자 확인창을 사용하고 제어 성공할 경우 값 설정 후 제어 성공 메시지 출력
- 사용자 확인창을 사용하고 제어 실패할 경우 사용자 확인 후 실패 메시지 출력
|
|
boolean setAnalogSequence( device:디바이스 명, datas:포인트명과 값의 리스트, confirm:사용자 확인 설정 )
|
디바이스에 다수의 포인트에 대한 값을 설정합니다. (HMI 전용)
- 디바이스명은 데이터 익스플로러에 입력한 디바이스에서 확인할 수 있습니다.
- datas는 포인트명과 데이터 값들의 리스트 형식입니다.
예) '포인트1', '포인트2', '포인트3' 포인트의 값을 각각 22, 0, 1.1로 설정할 경우 : [ ['포인트1', 22], ['포인트2', 0], ['포인트 3' 1.1] ]
- confirm에는 사용자 확인 창 사용 여부를 입력합니다.
- 1 입력 : 사용자 확인 창을 띄운 후 사용자 인증 절차를 통해 포인트 값을 제어합니다.
- 0 입력 : 사용자 확인 창을 없이 포인트 값을 제어합니다.
예)
valueToWrite = list()
# 'RTU.목표 온도' 포인트의 값을 32.5로 설정합니다.
valueToWrite.append ( ['RTU.목표 온도', 32.5 ] )
# 'RTU.모터 속도' 포인트의 값을 77.5로 설정합니다.
valueToWrite.append ( ['RTU.모터 속도', 77.5 ] )
# 'LP - 1 RTU' 디바이스에 속하는 'RTU.목표 온도', 'RTU.모터 속도' 포인트의 값을 각각 32.5, 77.5로 설정합니다. 이때 사용자 확인 창을 띄운 후 사용자 인증 절차를 통해 포인트 값을 제어합니다.
remote.setAnalogSequence( 'LP - 1 RTU', valueToWrite , 1);
|
|
|
사용자 확인 설정에 1을 입력 시 아래와 같은 사용자 인증 확인창이 팝업됩니다.
|

|
|
boolean setAnalogSequence( device:디바이스 명, datas:포인트명과 값의 리스트, saveLog: 로그 기록 여부 )
|
디바이스에 다수의 포인트에 대한 값을 설정합니다. (Sever 전용)
- 위의 함수와 동일한 기능을 제공하며 사용방법은 동일합니다.
- 위의 함수와 차이점은 다음과 같습니다.
- HMI 전용 : 사용자 확인 여부를 설정
- Server 전용 : 로그 기록 여부를 설정
- saveLog에는 제어 기록을 로그에 기록할 지 여부를 입력합니다.
- 1 입력 : 제어 기록을 로그에 기록합니다.
- 0 입력 : 제어 기록을 로그에 기록하지 않습니다.
- 명령 실행 후 결과값은 다음과 같습니다.
- 성공 시 : 참을 반환합니다.
- 실패 시 : 거짓을 반환합니다.
예)
valueToWrite = list()
# 'RTU.목표 온도' 포인트의 값을 32.5로 설정합니다.
valueToWrite.append ( ['RTU.목표 온도', 32.5 ] )
# 'RTU.모터 속도' 포인트의 값을 77.5로 설정합니다.
valueToWrite.append ( ['RTU.모터 속도', 77.5 ] )
# 'LP - 1 RTU' 디바이스에 속하는 'RTU.목표 온도', 'RTU.모터 속도' 포인트의 값을 각각 32.5, 77.5로 설정합니다. 이때 제어 기록을 로그에 기록합니다.
remote.setAnalogSequence( 'LP - 1 RTU', valueToWrite , 1);
|
|
|
boolean setValue( name:포인트 이름, value:설정 값 )
|
포인트에 설정한 값을 드라이버에 쓸 때 사용합니다. 다른 진행 과정없이 스크립트 실행 시 제어 명령이 나갑니다. (HMI 전용)
- name에는 사용자가 설정할 포인트 명을 입력합니다.
- value에는 포인트의 설정 값을 입력합니다.
예)
# 'PLC.자동운전START' 포인트의 값을 0으로 설정합니다.
remote.setValue('PLC.자동운전START', 0);
|
|
|
경보창에 성공 메시지 출력 예입니다.
|

|
|
제어 실패에 따른 메시지 출력 예입니다.
|

|
|
- 제어 성공에 따른 메시지를 출력하지 않습니다.
- 제어 실패에 관한 메시지만 출력합니다.(실패 이유를 출력합니다)
|
|
제어 진행 창 예입니다.
|

|
|
제어 진행 창은 remote 개체를 이용한 모든 명령에 제어가 있을 경우 나타나는 창으로 드라이버와 명령 송수신이 빠르게 이루어질 경우 사용자에게 잘 보이지 않지만 명령 송수신 과정이 느릴 경우 제어 진행 창이 보입니다.
|
- 제어 - 제어진행창 - 성공
- 제어 - 제어진행창 - 실패
|
|
boolean setValue( name:포인트 이름, value:설정값, saveLog:로그 기록 여부 확인 )
|
포인트에 설정한 값을 드라이버에 쓸 때 사용합니다. (Sever 전용)
- 함수 실행에 따른 화면은 없습니다.
- 포인트 값 설정에 대한 결과값을 다음과 같습니다.
- 성공 시 : 참을 반환합니다.
- 실패 시 : 거짓을 반환합니다.
예)
# 'PLC.자동운전START' 포인트의 값을 0으로 설정합니다.
remote.setValue('PLC.자동운전START', 0);
|
|
|
boolean setValueConfirm( name:포인트 이름, value:설정값 )
|
포인트에 설정한 값을 드라이버에 쓸 때 사용합니다. (HMI 전용)
- setValue와 차이점은 입력한 값을 전송하기 전에 제어 확인 창으로 사용자와 비밀번호를 확인한 후 진행합니다.
예)
# 'LP 2.DI 1 상태' 포인트의 값을 0으로 설정합니다.
remote.setValueConfirm('LP 2.DI 1 상태', 0);
|
|
|
제어 확인창의 사용자 확인 후 제어 성공 예입니다.
|
 
|
|
제어 확인창의 사용자 확인 후 제어 실패 예입니다.
|
 
|
|
- setValue와 다른 점은 제어 확인창을 통해 제어 검증을 다시 하는 것의 차이입니다.
- setValueConfirm은 제어 성공시에 제어 성공창을 출력합니다.
- 제어 실패시에 제어 실패 이유를 출력합니다.
|
|
boolean setValueUnConfirmed( name:포인트 이름, value:설정값 )
|
포인트에 설정한 값을 드라이버에 쓸 때 사용합니다. (HMI 전용)
- setValue와의 차이점은 setValue는 HMI->파워씬 드라이버->디바이스->파워씬 드라이버->HMI 순으로 setValue 명령 후에 디바이스에서 응답이 올 때까지 기다리지만, setValueUnConfimed는 HMI->파워씬 드라이버->HMI 순으로 파워씬 드라이버의 명령 확인 응답만 기다립니다.
- 여러 데이터를 제어할 경우 setValueUnConfirmed를 사용하면 응답 대기 시간이 setValue보다 짧으므로 보다 빠른 시간에 제어를 할 수 있습니다.
- 제어 명령이 정상적으로 전송되면 참을 아니면 거짓을 반환합니다.
예)
# '제품기능A.슬라이더1' 포인트 값을 0으로 설정합니다.
ret = remote. setValueUnConfirmed('제품기능A.슬라이더1', 0);
app.messageBox(ret);
|
|
|
포인트가 없는 경우 메시지 출력 화면입니다.
|

|
- 제어 여부와 관계 없이 메시지를 출력하지 않습니다.
- 단, 포인트가 없는 경우에는 실패 메시지를 출력합니다
setValue 제어 및 응답입니다.
|

|
|
setValueUnConfirmed 제어 및 응답입니다.
|

|
|
setValueUnConfirmed( name:포인트 이름, value:설정값, saveLog: 로그 기록 여부 확인 )
|
포인트에 설정한 값을 드라이버에 쓸 때 사용합니다. (Sever 전용)
- setValue와의 차이점은 setValue는 HMI->파워씬 드라이버->디바이스->파워씬 드라이버->HMI 순으로 setValue 명령 후에 디바이스에서 응답이 올 때까지 기다리지만, setValueUnConfimed는 HMI->파워씬 드라이버->HMI 순으로 파워씬 드라이버의 명령 확인 응답만 기다립니다.
- 여러 데이터를 제어할 경우 setValueUnConfirmed를 사용하면 응답 대기 시간이 setValue보다 짧으므로 보다 빠른 시간에 제어를 할 수 있습니다.
예)
# 제어 내용을 기록하며 제어 내용을 이벤트 창에 출력 합니다.
remote.setValueUnConfirmed('제품기능A.슬라이더1', 0 , 1);
# 제어 내용을 기록하지 않습니다
remote.setValueUnConfirmed('제품기능A.슬라이더1', 0 , 0);
|
|
|
statusPoll( rtuName:디바이스명 )
|
해당 디바이스에 속한 모든 상태 데이터를 계측합니다. (HMI 전용)
- rtuName에는 데이터 익스플로러에 등록되어 있는 디바이스 이름을 입력합니다.
예)
# '10Kv Feeder#1' 디바이스에 속한 모든 상태 데이터를 계측합니다.
remote.statusPoll('10Kv Feeder#1');
|
|
|
데이터 익스플로러의 디바이스 화면입니다.
|

|
|
- 제어가 성공하면 완료됨의 메시지를 출력합니다.
|

<정상적으로 제어가 된 경우>
|
|
|

<디바이스가 동작 중이지 않을 때 실패 화면>
|

<존재하지 않는 디바이스명을 입력했을 때 실패 화면>
|

<파워씬 드라이버가 꺼져 있을 때 실패 화면>
|
|
timeSyncCmd( rtuName:디바이스명 )
|
해당 디바이스의 시간을 파워씬 드라이버 모니터를 실행하는 PC 시간과 맞추는 동기화 작업을 진행합니다. (HMI 전용)
예)
# '10Kv Feeder#1' 디바이스의 시간을 파워씬 드라이버 모니터를 실행하는 PC시간과 동기화합니다.
remote.timeSyncCmd('10Kv Feeder#1');
|
|
|
데이터 익스플로러의 디바이스 화면입니다.
|

|
|
- 제어가 성공하면 완료됨의 메시지를 출력합니다.
|

<정상적으로 제어가 된 경우>
|
|
|

<디바이스가 동작 중이지 않을 때 실패 화면>
|

<존재하지 않는 디바이스명을 입력했을 때 실패 화면>
|

<파워씬 드라이버가 꺼져 있을 때 실패 화면>
|
|
toggle( name:포인트 이름, confirm:사용자 확인 설정 )
|
사용자가 입력한 name 포인트에 toggle(on/off 버튼처럼 하나의 버튼에 두가지 상태를 설정하여 선택 시 현재값의 반전값 설정)기능을 제공합니다. (HMI 전용)
- confirm을 0으로 할 경우 값 입력 후 사용자 확인창을 띄우지 않고 1로 할 경우 사용자 확인창을 띄웁니다.
- toggle은 상태 포인트에 경우에만 사용가능하며 On 상태의 포인트에 toggle을 사용할 경우 Off 명령을 하게되며 Off의 경우 toggle을 사용할 경우 On 명령을 실행합니다.
예)
# 사용자 인증 확인하지 않음
remote.toggle('포인트명', 0);
# 사용자 인증 확인
remote.toggle('포인트명', 1);
|
|
|
toggle버튼 on/off 설정입니다.
|

|
|
boolean sendCommand( device:디바이스 명, cmd:커멘드 명, param:파라미터 )
|
드라이버 고유 명령을 내릴 때 사용합니다.
드라이버마다 커멘드의 종류가 다르며 드라이버 별 커멘드 종류 및 기능은 다음과 같습니다.
드라이버
|
커멘드
|
기능
|
문자나라
|
sendMessage
|
사용자에게 메시지를 보냅니다.
|
|
|
|
|
|
|
|
|
|
|
|
|
- 문자나라 드라이버의 sendMessage 커멘드의 경우 파라미터 형식은 다음과 같습니다.
- 전체 사용자에게 메시지를 보낼 경우 : '보낼 메시지'
- 특정 사용자에게만 메시지를 보낼 경우 : ['보낼 메시지', '사용자 ID']
- 사용자 ID는 데이터 익스플로러의 사용자 탭에서 확인할 수 있습니다.

아래는 문자나라 드라이버의 예시입니다.
예) 사용자 전체에게 메시지를 보낼 경우
remote.sendCommand('www.munjanara.co.kr','SendMessage','위급상황 발생')
|
예) 특정 사용자에게만 메시지를 보낼 경우
message=['위급상황 발생',1']
remote.sendCommand('www.munjanara.co.kr','SendMessage',message)
|
|
|