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)