analogData는 scada의 getAnalogData 함수를 통해 얻어 온 값입니다. 이 데이터에는 아날로그 포인트의 상태, 마지막 데이터, 최대값, 최소값, 평균값, 최대/최소 일 때의 시각, tag, limit, quality 등 다양한 정보를 가지고 있으며 이 다양한 값을 호출할 수 있는 함수가 내장되어 있습니다.


 사용 예)

anaData = scada.getAnalogData('포인트 명')

val = anaData.isGood()


 analogData는 logAnalog와 비슷한 함수로 구성되어 있으나 logAnalog에서 날짜를 지정하여 검색할 수 있는 것과 달리 가져온 시간을 기준으로 데이터를 취득한다는 점이 다릅니다.

Methods


리턴 값

함 수

설 명

int

isGood()

데이터가 올바른 데이터인지 아닌지 얻어옵니다.

float

lastValue()

포인트의 마지막으로 기록된 최근 값을 얻어옵니다.

int

scanTime()

포인트의 계측시간을 얻어옵니다.

  float

hourMaxValue()

취득 시간 기준 최대값을 얻어옵니다.

  float

hourMinValue()

취득 시간 기준 최소값을 얻어옵니다.

  float

hourAvgValue()

취득 시간 기준 평균값을 얻어옵니다.

  float

hourDeltaValue()

취득 시간 기준 변화량 값을 얻어옵니다.

  datetime

hourMaxTime()

취득 시간 기준 최대값일 때의 시간을 얻어옵니다.

  datetime

hourMinTime()

취득 시간 기준 최소값일 때의 시간을 얻어옵니다.

  float

dayMaxValue()

취득 시간 기준 일간 최대값을 얻어옵니다.

  float

dayMinValue()

취득 시간 기준 일간 최소값을 얻어옵니다.

  float

dayAvgValue()

취득 시간 기준 일간 평균값을 얻어옵니다.

  float

dayDeltaValue()

취득 시간 기준 일간 변화량 값을 얻어옵니다.

  datetime

dayMaxTime()

취득 시간 기준 일간 최대값일 때의 시간을 얻어옵니다.

  datetime

dayMinTime()

취득 시간 기준 일간 최소값일 때의 시간을 얻어옵니다.

  float

monthMaxValue()

취득 시간 기준 월간 최대값을 얻어옵니다.

  float

monthMinValue()

취득 시간 기준 월간 최소값을 얻어옵니다.

  float

monthAvgValue()

취득 시간 기준 월간 평균값을 얻어옵니다.

  float

monthDeltaValue()

취득 시간 기준 월간 변화량 값을 얻어옵니다.

  datetime

monthMaxTime()

취득 시간 기준 월간 최대값일 때의 시간을 얻어옵니다.

  datetime

monthMinTime()

취득 시간 기준 월간 최소값일 때의 시간을 얻어옵니다.

float

yearMaxValue()

취득 시간 기준 연간 최대값을 얻어옵니다.

float

yearMinValue()

취득 시간 기준 연간 최소값을 얻어옵니다.

float

yearAvgValue()

취득 시간 기준 연간 평균값을 얻어옵니다.

float

yearDeltaValue()

취득 시간 기준 연간 변화량 값을 얻어옵니다.

datetime

yearMaxTime()

취득 시간 기준 연간 최대값일 때의 시간을 얻어옵니다.

datetime

yearMinTime()

취득 시간 기준 연간 최소값일 때의 시간을 얻어옵니다.

  float

totalMaxValue()

전체 누적 이력 중 최대값을 얻어옵니다.

  float

totalMinValue()

전체 누적 이력 중 최소값을 얻어옵니다.

  float

totalAvgValue()

전체 누적 이력 중 평균값을 얻어옵니다.

  float

totalDeltaValue()

전체 누적 이력 중 변화량 값을 얻어옵니다.

  datetime

totalMaxTime()

전체 누적 이력 중 최대값일 때의 시간을 얻어옵니다.

  datetime

totalMinTime()

전체 누적 이력 중 최소값일 때의 시간을 얻어옵니다.

  int

tag()

포인트의 금지 설정 정보를 얻어옵니다.

  int

limit()

포인트의 상하한치 설정 정보를 얻어옵니다.

  int

quality()

포인트의 상태정보(품질)을 얻어옵니다.



 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문이 참값이면 비정상 데이터, 거짓이면 정상 데이터입니다.