analogData는 scada의 getAnalogData 함수를 통해 얻어 온 값입니다. 이 데이터에는 아날로그 포인트의 상태, 마지막 데이터, 최대값, 최소값, 평균값, 최대/최소 일 때의 시각, tag, limit, quality 등 다양한 정보를 가지고 있으며 이 다양한 값을 호출할 수 있는 함수가 내장되어 있습니다.
사용 예)
anaData = scada.getAnalogData('포인트 명')
val = anaData.isGood()
|
analogData는 logAnalog와 비슷한 함수로 구성되어 있으나 logAnalog에서 날짜를 지정하여 검색할 수 있는 것과 달리 가져온 시간을 기준으로 데이터를 취득한다는 점이 다릅니다.
Methods
int isGood()
isGood은 데이터의 상태를 결과값으로 반환합니다.
- 결과값이 1일 경우 올바른 데이터입니다.
- 0일 경우 비정상적인 데이터로 서버의 중지, 드라이버의 비정상 상태, 데이터의 오류 등의 의미가 있으며 quality() 함수에 오류 내용을 담고 있습니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val 값이 1일 경우 올바른 데이터이며 val 값이 0일 경우 비정상적인 데이터입니다.
val = ana_Data.isGood();
|
|
|
float lastValue()
lastValue는 아날로그 포인트에 마지막으로 기록된 값(최근 값)을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 마지막으로 기록된 값(최근 값)이 입력됩니다.
val = ana_Data.lastValue();
|
|
|
int scanTime()
scanTime은 포인트의 계측 시간을 반환합니다.
- 반환되는 값은 초 단위로 계산된 수입니다.
- 반환되는 값은 datatime을 통하여 시간 값으로 변환할 수 있습니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# scanTimedata에 아날로그 데이터의 계측 시간이 입력됩니다.
scanTimedata = ana_Data.scanTime();
# 초 단위 숫자를 파이썬 날짜 형식으로 변경할 수 있습니다.
tm = datetime.datetime.fromtimestamp(scanTimedata);
|
|
|
float hourMaxValue()
hourMaxValue는 취득 시간을 기준으로 해당 시간대의 최대값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 시간대의 최대값이 입력됩니다.
val = ana_Data.hourMaxValue();
|
|
|
float hourMinValue()
hourMinValue는 취득 시간을 기준으로 해당 시간대의 최소값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 시간대의 최소값이 입력됩니다.
val = ana_Data.hourMinValue();
|
|
|
float hourAvgValue()
hourAvgValue는 취득 시간을 기준으로 해당 시간대의 평균값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 시간대의 평균값이 입력됩니다.
val = ana_Data.hourAvgValue();
|
|
|
float hourDeltaValue()
hourDeltaValue는 취득 시간을 기준으로 해당 시간대의 변화량 값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 시간대의 변화량 값이 입력됩니다.
val = ana_Data.hourDeltaValue();
|
|
|
datetime hourMaxTime()
hourMaxTime는 취득 시간을 기준으로 해당 시간대에서 최대값일 때의 시간을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 시간대의 최대값일 때의 시간이 입력됩니다.
date = ana_Data.hourMaxTime();
|
|
|
datetime hourMinTime()
hourMinTime는 취득 시간을 기준으로 해당 시간대에서 최소값일 때의 시간을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 시간대의 최소값일 때의 시간이 입력됩니다.
date = ana_Data.hourMinTime();
|
|
|
float dayMaxValue()
dayMaxValue는 취득 시간을 기준으로 해당 일자의 최대값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 일자의 최대값이 입력됩니다.
val = ana_Data.dayMaxalue();
|
|
|
float dayMinValue()
dayMinValue는 취득 시간을 기준으로 해당 일자의 최소값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 일자의 최소값이 입력됩니다.
val = ana_Data.dayMinValue();
|
|
|
float dayAvgValue()
dayAvgValue는 취득 시간을 기준으로 해당 일자의 평균값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 일자의 평균값이 입력됩니다.
val = ana_Data.dayAvgValue();
|
|
|
float dayDeltaValue()
dayDeltaValue는 취득 시간을 기준으로 해당 일자의 변화량 값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 일자의 변화량 값이 입력됩니다.
val = ana_Data.dayDeltaValue();
|
|
|
datetime dayMaxTime()
dayMaxTime는 취득 시간을 기준으로 해당 일자에서 최대값일 때의 시간을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 일자의 최대값일 때의 시간이 입력됩니다.
date = ana_Data.dayMaxTime();
|
|
|
datetime dayMinTime()
dayMinTime는 취득 시간을 기준으로 해당 일자에서 최소값일 때의 시간을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 일자의 최소값일 때의 시간이 입력됩니다.
date = ana_Data.dayMinTime();
|
|
|
float monthMaxValue()
monthMaxValue는 취득 시간을 기준으로 해당 월의 최대값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 월의 최대값이 입력됩니다.
val = ana_Data.monthMaxValue();
|
|
|
float monthMinValue()
monthMinValue는 취득 시간을 기준으로 해당 월의 최소값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 월의 최소값이 입력됩니다.
val = ana_Data.monthMinValue();
|
|
|
float monthAvgValue()
monthAvgValue는 취득 시간을 기준으로 해당 일자의 평균값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 월의 평균값이 입력됩니다.
val = ana_Data.monthAvgValue();
|
|
|
float monthDeltaValue()
monthDeltaValue는 취득 시간을 기준으로 해당 일자의 변화량 값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 월의 변화량 값이 입력됩니다.
val = ana_Data.monthDeltaValue();
|
|
|
datetime monthMaxTime()
monthMaxTime은 취득 시간을 기준으로 해당 월에서 최대값일 때의 시간을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 월의 최대값일 때의 시간이 입력됩니다.
date = ana_Data.monthMaxTime();
|
|
|
datetime monthMinTime()
monthMinTime은 취득 시간을 기준으로 해당 월에서 최소값일 때의 시간을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 월의 최소값일 때의 시간이 입력됩니다.
date = ana_Data.monthMinTime();
|
|
|
float yearMaxValue()
yearMaxValue는 취득 시간을 기준으로 해당 연도의 최대값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 연도의 최대값이 입력됩니다.
val = ana_Data.yearMaxValue();
|
|
|
float yearMinValue()
yearMinValue는 취득 시간을 기준으로 해당 연도의 최소값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 연도의 최소값이 입력됩니다.
val = ana_Data.yearMinValue();
|
|
|
float yearAvgValue()
yearAvgValue는 취득 시간을 기준으로 해당 연도의 평균값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 연도의 평균값이 입력됩니다.
val = ana_Data.yearAvgValue();
|
|
|
float yearDeltaValue()
yearDeltaValue는 취득 시간을 기준으로 해당 연도의 변화량 값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 연도의 변화량 값이 입력됩니다.
val = ana_Data.yearDeltaValue();
|
|
|
datetime yearMaxTime()
yearMaxTime은 취득 시간을 기준으로 해당 연도에서 최대값일 때의 시간을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 연도의 최대값일 때의 시간이 입력됩니다.
date = ana_Data.yearMaxTime();
|
|
|
datetime yearMinTime()
yearMinTime은 취득 시간을 기준으로 해당 연도에서 최소값일 때의 시간을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 해당 연도의 최소값일 때의 시간이 입력됩니다.
date = ana_Data.yearMinTime();
|
|
|
float totalMaxValue()
totalMaxValue는 전체 이력 중 최대값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 전체이력 중 최대값이 입력됩니다.
val = ana_Data.totalMaxValue();
|
|
|
float totalMinValue()
totalMinValue는 전체 이력 중 최소값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 전체이력 중 의 최소값이 입력됩니다.
val = ana_Data. totalMinValue();
|
|
|
float totalAvgValue()
totalAvgValue는 전체 이력의 평균값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 전체이력의 평균값이 입력됩니다.
val = ana_Data. totalAvgValue();
|
|
|
float totalDeltaValue()
totalDeltaValue는 전체 이력의 변화량 값을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 전체이력의 변화량 값이 입력됩니다.
val = ana_Data.totalDeltaValue();
|
|
|
datetime totalMaxTime()
totalMaxTime은 전체 이력 중 최대값일 때의 시간을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 전체이력 중 최대값일 때의 시간이 입력됩니다.
date = ana_Data.totalMaxTime();
|
|
|
datetime totalMinTime()
totalMinTime은 전체 이력 중 최소값일 때의 시간을 반환합니다.
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# val에는 전체이력 중 최소값일 때의 시간이 입력됩니다.
date = ana_Data.totalMinTime();
|
|
|
int tag()
tag는 포인트의 금지 상태 값을 반환합니다.
- 반환값이 0일 경우 금지 설정이 되어있지 않습니다.
- tag 반환값은 사용자가 비교문으로 확인 할 수 있습니다.
- tag 반환값
- scada.ControlInhabit (0x01) : 제어 금지
- scada.AlarmInhibit (0x02) : 경보 금지
- scada.ScanInhabit (0x04) : 수집 금지
- scada.UpdateInhabit (0x08) : 갱신 금지
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# tagdata 에는 아날로그 데이터의 tag 정보가 입력됩니다. tagdata 의 정보가 0이면 금지 설정이 되어있지 않습니다.
tagdata = ana_Data.tag();
if (tagdata & scada.ControlInhabit):
# if문이 참값이면 제어 금지 설정, 거짓이면 제어 금지 설정이 되어 있지 않습니다.
if (tagdata & scada.AlarmInhibit):
# if문이 참값이면 경보 금지 설정, 거짓이면 경보 금지 설정이 되어 있지 않습니다.
if (tagdata & scada.ScanInhabit):
# if문이 참값이면 수집 금지 설정, 거짓이면 수집 금지 설정이 되어 있지 않습니다.
if (tagdata & scada.UpdateInhabit):
# 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) : 비정상 데이터
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData(‘포인트 명’);
# limitdata 에는 아날로그 데이터의 limit 정보가 입력됩니다. limitdata의 정보가 0이면 상한/하한에 대한 정보가 없으며 정상 데이터입니다.
limitdata = ana_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문이 참값이면 비정상 데이터, 거짓이면 정상 데이터 입니다.
|
|
|
int quality()
quality는 아날로그 포인트의 데이터가 비정상적일 때 사유를 반환합니다.
- 반환값이 0일 경우 정상적인 데이터입니다.
- quality 반환값은 사용자가 비교문으로 확인할 수 있습니다.
- quality 반환값
- scada.NonTelemeted (0x01) : Fep 스캔 실패
- scada.ManuallyReplaced (0x04) : 수동 기입상태
- scada.Failed (0x08) : Fep 응답 실패
- scada.OldData (0x20) : 데이터 상태가 변화없이 특정 시간이상 지속됨
- scada.BadData (0x40) : 비정상 데이터
예)
# 입력한 포인트 명에 해당하는 아날로그 포인트의 데이터를 읽어옵니다.
ana_Data = scada.getAnalogData('포인트 명');
# qualitydata에 아날로그 데이터의 quality정보가 입력됩니다. qualitydata의 정보가 0이면 quality 정보가 없으며 정상 데이터입니다.
qualitydata = ana_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문이 참값이면 비정상 데이터, 거짓이면 정상 데이터입니다.
|
|
|