[SCADA][스크립트] 10초 단위의 샘플링한 순간값의 시간대별 평균을 구하는 예제

 

안녕하세요.

CIMON 입니다.

10초 단위로 샘플링한 실태그의 순간값을 시간대별로 평균을 구해주는 프로젝트입니다.

 

[ 이럴 사용하시면 됩니다 ]

이 예제는 보고서나 데이터수집 기능 없이 간단히 스크립트 만을 통해 SCADA에 작동시간, 시간대별 샘플링한 실태그 값의 평균을 나타내고 싶으실 때 사용하시면 됩니다.

 

[ 프로젝트 예제 작성 버전 주의사항 ]

SCADA Ver 3.04(R160224)

v3.04에서 작성된 프로젝트는 하위버전에서 열리지 않습니다.

 

[ 예제 설명 ]

샘플프로젝트에는 실태그 대신 가상태그로 작성하였음을 참고하여 주시기 바랍니다.

 

1. 입력 받는 태그가 따로 없어서 프로그램의 실행은 CimonX를 실행시키기만 하면 됩니다. 현재는 실태그를 가상의 “REAL” 태그로 대체하고 값도 100으로 일정하지만 현장에서 시시각각 변화하는 데이터를 읽어들이면 그 변화하는 값이 모두 Virtual 태그에 적산되어 해당 시구간 동안 누적값에 표기됩니다.

또한 현재 시스템의 시간을 볼 수 있도록 해주었고 프로그램 가동시간도 표기해주었습니다. 맨 위의 Count는 설정한 단위 시간이 한 시간 동안 몇 번 카운트 되었는지 알려주고 평균값의 분모 역할을 합니다.

 

2. 다음은 AssignValue 스크립트로 한 루프의 시간을 정해주고(1초) 카운팅이 되는 루프의 횟수를 제어해 단위 주기(10초)를 설정할 수 있게 하였습니다. 또한 각 단위 주기마다 Virtual 태그에 실태그값을 적산하는 기능을 담당합니다.

 

3. 다음은 AverageCalc 스크립트로 각 시단위에 해당하는 태그에 평균값을 써주고 그 이후 초기화하는 역할을 담당하고 있습니다.

 

 

[ 적용 방법 ]

AssignValue 스크립트 중

 

이 부분 중 i 값을 설정함으로써 데이터 수집 주기를 정할 수 있습니다. 한 루프가 1초이기 때문에 0~9까지 10번 루프가 도는 동안 한 번 위의 동작을 실행하도록 하였으니 10초마다 한 번 데이터를 수집하는데, 만약 1분마다 데이터 수집을 원하시면 i=59로 설정하시면 60초마다 한 번 데이터를 수집합니다. 더 나아가 이 i를 태그와 연동시켜 처음 Main 스크립트에서 AssignValue 스크립트와 AverageCalc 스크립트가 동작하기 전에 i값을 사용자에게 입력받아 데이터 수집의 주기를 직접 설정하게 응용할 수도 있습니다.

 

 

첨부 1. AvrPer10Sec.zip

#단위시간데이터#단위시간샘플링#단위시간평균값#사용자데이터수집#스크립트데이터수집#데이터수집샘플#평균값데이터샘플# 프로젝트예제#샘플프로젝트#SCADA프로젝트예제#SCADA샘플프로젝트#SCADA스크립트사용예제#SCADA스크립트사용방법#SCADA스크립트사용샘플#SCADA스크립트