서버 스크립트는 서버 프로그램에서 구동되는 스크립트로 데이터 익스플로러를 이용해 작성할 수 있습니다.

 계산식, 이벤트 계산식 메뉴에서 정의할 수 있으며 실행주기, 조건 등을 설정할 수 있습니다.


 



 계산식 스크립트 작성


계산식 스크립트를 주기를 설정하여 정의할 수 있습니다.

  • 이름에서 계산식의 이름을 입력합니다.
  • 설명에서 계산식에 대한 설명을 입력합니다.
  • 사용을 선택하면 설정 주기에 따라 스크립트가 실행됩니다.
  • 주기 설정에서 반복/고정/한 번만 실행 중에 하나를 선택하여 실행 주기를 설정할수 있습니다.
    • 반복 실행 : 입력한 주기에 따라 반복적으로 실행됩니다.
    • 고정 실행 : 정해진 시간에 실행됩니다.
    • 한 번만 실행 : 시스템 구동 시 한번만 실행됩니다.


 예) 건물의 유효전력의 합을 주기(1000:1초)마다 포인트(건물부하.total 유효전력)에 저장하는 계산식입니다.

  


head = scada.getAnalogData('건물부하.분기#1.total 유효전력 - 공통')

conference = scada.getAnalogData('건물부하.분기#2.total 유효전력 - 공통')

test = scada.getAnalogData('건물부하.분기#3.total 유효전력 - 공통')

lounge = scada.getAnalogData('건물부하.분기#4.total 유효전력 - 공통')

lab_south = scada.getAnalogData('건물부하.분기#5.total 유효전력 - 공통')

lab_center = scada.getAnalogData('건물부하.분기#6.total 유효전력 - 공통')

lab_north = scada.getAnalogData('건물부하.분기#7.total 유효전력 - 공통')


total = 0

if(head.isGood()):

        total += head.lastValue()

if(conference.isGood()):

        total += conference.lastValue()

if(test.isGood()):

        total += test.lastValue()

if(lounge.isGood()):

        total += lounge.lastValue()

if(lab_south.isGood()):

        total += lab_south.lastValue()

if(lab_center.isGood()):

        total += lab_center.lastValue()

if(lab_north.isGood()):

        total += lab_north.lastValue()


scada.setValue('건물부하.total 유효전력', total)





 이벤트 계산식 스크립트 작성


이벤트 계산식 스크립트를 조건을 설정하여 정의할 수 있습니다.

  • 이름에서 계산식의 이름을 입력합니다.
  • 설명에서 계산식에 대한 설명을 입력합니다.
  • 우선순위에서 이벤트 계산식의 우선순위를 입력합니다.
  • 사용을 선택하면 설정 주기에 따라 스크립트가 실행됩니다.
  • 조건식에서 스크립트가 실행될 조건을 입력합니다.


 예) SH.H2G 포인트가 0 이 될 때 PLC.가전 제어 관련 포인트값을 일괄 설정하는 계산식입니다.

 


#에어콘

remote.setValue('PLC.가전 제어1',0)

#조명    

remote.setValue('PLC.가전 제어2',0)    

#TV

remote.setValue('PLC.가전 제어3',0)    

#오디오

remote.setValue('PLC.가전 제어4',0)    

#세탁기

remote.setValue('PLC.가전 제어5',0)    

#오븐

remote.setValue('PLC.가전 제어6',0)

#비데

remote.setValue('PLC.가전 제어7',0)

#냉장고

remote.setValue('PLC.가전 제어8',1)