statusData는 scada의 getStatusData 함수를 통해 얻어 온 값입니다.
이 데이터에는 상태 포인트의 상태, 마지막 데이터, on/off 시간, on/off 횟수, tag, limit, quality 등 다양한 정보를 가지고 있으며 이 다양한 값을 호출할 수 있는 함수가 내장되어 있습니다.
사용 예)
staData = scada.getStatusData('포인트 명')
val = staData.isGood()
|
statusData는 logStatus와 비슷한 함수로 구성되어 있으나 logStatus에서 날짜를 지정하여 검색할 수 있는 것과 달리 가져온 시간을 기준으로 데이터를 취득한다는 점이 다릅니다.
몇 가지 함수 외에 대부분이 함수가 같은 정보를 반환합니다.
Methods
int isGood()
isGood은 데이터의 상태를 결과값으로 반환합니다.
- 결과값이 1일 경우 올바른 데이터입니다.
- 0일 경우 비정상적인 데이터로 서버의 중지, 드라이버의 비정상 상태, 데이터의 오류 등의 의미가 있으며 quality() 함수에 오류 내용을 담고 있습니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val 값이 1일 경우 올바른 데이터이며 val 값이 0일 경우 비정상적인 데이터입니다.
val = sta_Data.isGood();
|
|
|
float lastValue()
lastValue는 상태 포인트에 마지막으로 기록된 값(최근값)을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에는 마지막으로 기록된 값(최근 값)이 입력됩니다.
val = sta_Data.lastValue();
|
|
|
int scanTime()
scanTime은 포인트의 계측 시간을 반환합니다.
- 반환되는 값은 초단위로 계산된 수입니다.
- 반환되는 값은 datatime을 통하여 시간값으로 변환할 수 있습니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# scanTimedata에 상태 데이터의 계측 시간이 입력됩니다.
scanTimedata = sta_Data.scanTime();
# 초단위 숫자를 파이썬 날짜 형식으로 변경할 수 있습니다.
tm = datetime.datetime.fromtimestamp(scanTimedata);
|
|
|
int timeOnDuration()
timeOnDuration은 취득 시간을 기준으로 해당 시간대의 on 값일 때의 기간을 읽어옵니다.
예를 들어 취득 시간이 10시 20분일 경우 10시부터 10시 20분까지의 on값일 때 기간을 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# secTime에 현재 시간대의 on 상태 기간이 입력됩니다.
secTime = sta_Data.timeOnDuration();
|
|
|
int timeOffDuration()
timeOffDuration은 취득 시간을 기준으로 해당 시간대의 off 값일 때의 기간을 읽어옵니다.
예를 들어 취득 시간이 10시 20분일 경우 10시부터 10시 20분까지의 off값일 때 기간을 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# secTime에 현재 시간대의 off 상태 기간이 입력됩니다.
secTime = sta_Data.timeOffDuration();
|
|
|
int timeOnCount()
timeOnCount는 취득 시간을 기준으로 해당 시간대의 on횟수를 읽어옵니다.
예를 들어 취득 시간이 10시 20분일 경우 10시부터 10시 20분까지의 on횟수를 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 현재 시간대의 on 횟수가 입력됩니다.
val = sta_Data.timeOnCount();
|
|
|
int timeOffCount()
timeOffCount는 취득 시간을 기준으로 해당 시간대의 off 횟수를 읽어옵니다.
예를 들어 취득 시간이 10시 20분일 경우 10시부터 10시 20분까지의 off횟수를 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 현재 시간대의 off 횟수가 입력됩니다.
val = sta_Data.timeOffCount();
|
|
|
float timeOnRatio()
timeOnRatio는 취득 시간을 기준으로 해당 시간대의 on, off 비율을 읽어옵니다
예를 들어 취득 시간이 10시 20분일 경우 10시부터 10시 20분까지의 on, off 비율을 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 현재 시간대의 on, off 비율이 입력됩니다.
val = sta_Data.timeOnRatio();
|
|
|
int todayOnDuration()
todayOnDuration은 취득 시간을 기준으로 해당일의 on 값일 때의 기간을 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# secTime에 당일 on 상태의 기간이 입력됩니다
secTime = sta_Data.todayOnDuration();
|
|
|
int todayOffDuration()
todayOffDuration은 취득 시간을 기준으로 해당일의 off 값일 때의 기간을 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# secTime에 당일 off 상태의 기간이 입력됩니다
secTime = sta_Data.todayOffDuration();
|
|
|
int todayOnCount()
todayOnCount는 취득 시간을 기준으로 해당일의 on 횟수를 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 당일 on 횟수가 입력됩니다
val = sta_Data.todayOnCount();
|
|
|
int todayOffCount()
todayOffCount는 취득 시간을 기준으로 해당일의 off 횟수를 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 당일 off 횟수가 입력됩니다
val = sta_Data.todayOffCount();
|
|
|
float todayOnRatio()
todayOnRatio는 취득 시간을 기준으로 해당일의 on, off 비율을 읽어옵니다
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 당일 on, off 비율이 입력됩니다.
val = sta_Data.todayOnRatio();
|
|
|
int monthOnDuration()
monthOnDuration은 취득 시간을 기준으로 해당 월의 on 값일 때의 기간을 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# secTime에 당월 on 상태의 기간이 입력됩니다
secTime = sta_Data.monthOnDuration();
|
|
|
int monthOffDuration()
monthOffDuration은 취득 시간을 기준으로 해당 월의 off 값일 때의 기간을 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# secTime에 당월 off 상태의 기간이 입력됩니다
secTime = sta_Data.monthOffDuration();
|
|
|
int monthOnCount()
monthOnCount는 취득 시간을 기준으로 해당 월의 on 횟수를 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 당월 on 횟수가 입력됩니다
val = sta_Data.monthOnCount();
|
|
|
int monthOffCount()
monthOffCount는 취득 시간을 기준으로 해당 월의 off 횟수를 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 당월 off 횟수가 입력됩니다
val = sta_Data.monthOffCount();
|
|
|
float monthOnRatio()
monthOnRatio는 취득 시간을 기준으로 해당 월의 on, off 비율을 읽어옵니다
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 당월 on, off 비율이 입력됩니다.
val = sta_Data.monthOnRatio();
|
|
|
int yearOnDuration()
yearOnDuration은 취득 시간을 기준으로 해당 연도의 on 값일 때의 기간을 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# secTime에 해당 연도의 on 상태의 기간이 입력됩니다
secTime = sta_Data.yearOnDuration();
|
|
|
int yearOffDuration()
yearOffDuration은 취득 시간을 기준으로 해당 연도의 off 값일 때의 기간을 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# secTime에 해당 연도의 off 상태의 기간이 입력됩니다
secTime = sta_Data.yearOffDuration();
|
|
|
int yearOnCount()
yearOnCount는 취득 시간을 기준으로 해당 연도의 on 횟수를 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 해당 연도의 on 횟수가 입력됩니다
val = sta_Data.yearOnCount();
|
|
|
int yearOffCount()
yearOffCount는 취득 시간을 기준으로 해당 연도의 off 횟수를 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 해당 연도의 off 횟수가 입력됩니다
val = sta_Data.yearOffCount();
|
|
|
float yearOnRatio()
yearOnRatio는 취득 시간을 기준으로 해당 연도의 on, off 비율을 읽어옵니다
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 해당연도의 on, off 비율이 입력됩니다.
val = sta_Data.yearOnRatio();
|
|
|
int totalOnDuration()
totalOnDuration은 전체 누적 on 값일 때의 기간을 읽어옵니다.
예).
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# secTime에 전체 누적 on 상태의 기간이 입력됩니다
secTime = sta_Data.totalOnDuration();
|
|
|
int totalOffDuration()
totalOffDuration은 전체 누적 off 값일 때의 기간을 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# secTime에 전체 누적 off 상태의 기간이 입력됩니다
secTime = sta_Data.totalOffDuration();
|
|
|
int totalOnCount()
totalOnCount는 전체 누적 on 횟수를 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 전체 누적 on 횟수가 입력됩니다
val = sta_Data.totalOnCount();
|
|
|
int totalOffCount()
totalOffCount는 전체 누적 off 횟수를 읽어옵니다.
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 전체 누적 off 횟수가 입력됩니다
val = sta_Data.totalOffCount();
|
|
|
float totalOnRatio()
totalOnRatio는 취득시간을 기준으로 전체 누적 on, off 비율을 읽어옵니다
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# val에 전체 누적 on, off 비율이 입력됩니다.
val = sta_Data.totalOnRatio();
|
|
|
int tag()
tag는 포인트의 금지 상태 값을 반환합니다.
- 반환값이 0일 경우 금지 설정이 되어있지 않습니다.
- tag 반환값은 사용자가 비교문으로 확인 할 수 있습니다.
- tag 반환값
- scada.ControlInhabit (0x01) : 제어 금지
- scada.AlarmInhibit (0x02) : 경보 금지
- scada.ScanInhabit (0x04) : 수집 금지
- scada.UpdateInhabit (0x08) : 갱신 금지
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# tagdata 에는 상태 데이터의 tag 정보가 입력됩니다. tagdata 의 정보가 0이면 금지 설정이 되어있지 않습니다.
tagdata = sta_Data.tag();
if (tagdata & scada.ControlInhabit):
# if문이 참값이면 제어금지 설정, 거짓이면 제어금지 설정이 되어 있지 않습니다.
if (tagdata & scada.AlarmInhibit):
# if문이 참값이면 경보금지 설정, 거짓이면 경보금지 설정이 되어 있지 않습니다.
if (tagdata & scada.ScanInhabit):
# if문이 참값이면 수집금지 설정, 거짓이면 수집금지 설정이 되어 있지 않습니다.
if (tagdata & scada.UpdateInhabit):
# if문이 참값이면 갱신금지 설정, 거짓이면 갱신금지 설정이 되어 있지 않습니다.
|
|
|
int quality()
quality는 상태 포인트의 데이터가 비정상적일 때 사유를 반환합니다.
- 반환값이 0일 경우 정상적인 데이터 입니다.
- quality 반환값은 사용자가 비교문으로 확인 할 수 있습니다.
- quality 반환값
- scada.NonTelemeted (0x01) : Fep 스캔 실패
- scada.ManuallyReplaced (0x04) : 수동 기입상태
- scada.Failed (0x08) : Fep 응답 실패
- scada.OldData (0x20) : 데이터 상태가 변화없이 특정 시간이상 지속됨
- scada.BadData (0x40) : 비정상 데이터
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# qualitydata에 상태 데이터의 quality정보가 입력됩니다. qualitydata의 정보가 0이면 quality 정보가 없으며 정상 데이터입니다.
qualitydata = sta_Data.quality();
if (qualitydata& scada.NonTelemeted):
# if문이 참값이면 Fep 스캔을 실패한 데이터, 거짓이면 정상 데이터입니다.
if (qualitydata& scada.ManuallyReplaced):
# if문이 참값이면 수동 기입상태의 데이터, 거짓이면 정상 데이터입니다..
if (qualitydata& scada.Failed):
# if문이 참값이면 Fep 응답 실패 데이터, 거짓이면 정상 데이터입니다.
if (qualitydata& scada.OldData):
# if문이 참값이면 데이터 상태가 변화없이 특정시간 이상 지속된 데이터, 거짓이면 정상 데이터입니다.
if (qualitydata& scada.BadData):
# if문이 참값이면 비정상 데이터, 거짓이면 정상데이터 입니다.
|
|
|
int limit()
limit는 상태 포인트의 상한치 하한치 값을 반환합니다.
- 반환값이 0일 경우 상한/하한에 대한 정보가 없으며 정상 데이터입니다.
- limit 반환값은 사용자가 비교문으로 확인할 수 있습니다.
- limit 반환값
- scada.LowHi (0x01) : Hi Low 초과
- scada.LowLowHiHi (0x02) : HiHi LowLow 초과
- scada.UnReasonable (0x04) : 범위 초과 데이터
- scada.Roc (0x08) : 변화 비율 초과 데이터
- scada.Abnormal (0x10) : 비정상 데이터
예)
# 입력한 포인트 명에 해당하는 상태 포인트의 데이터를 읽어옵니다.
sta_Data = scada.getStatusData('포인트 명');
# limitdata 에는 상태 데이터의 limit 정보가 입력됩니다. limitdata의 정보가 0이면 상한/하한에 대한 정보가 없으며 정상 데이터입니다.
limitdata = sta_Data.limit();
if (limitdata & scada.LowHi):
# if문이 참값이면 상한/하한 범위 설정 초과, 거짓이면 상한/하한 설정내의 데이터입니다.
if (limitdata & scada.LowLowHiHi):
# if문이 참값이면 상한/하한 범위의 상/하한치, 최하/최상한치 초과 데이터, 거짓이면 설정내 데이터입니다..
if (limitdata & scada.UnReasonable):
# if문이 참값이면 범위 초과 데이터, 거짓이면 범위를 초과하지 않은 데이터입니다.
if (limitdata & scada.Roc):
# if문이 참값이면 변화 비율을 초과한 데이터, 거짓이면 정상 변화 비율 데이터입니다.
if (limitdata & scada.Abnormal):
# if문이 참값이면 비정상 데이터, 거짓이면 정상데이터 입니다.
|
|
|