예제 #1
0
import config
import datetime
import time
from webAPI import EdsWebApi

#Сценарий для получения всех периодов когда точка была сработана (с опредлением длительности)

web = EdsWebApi()
web.connect()
web.logger.debug('lalalala')

ds = datetime.datetime(2020, 2, 3)
de = datetime.datetime(2020, 2, 7)
#tag='25VT_EA5010DM-103.UNIT0@SCADA'


def getData(tag, tagVal):
    print(tag)
    web.initOut(tag)
    dt = ds
    dt1 = ds
    dt2 = ds
    data = []
    #определяем значение точки в начале интервала)
    valStart = web.getVal(ds, tag)
    web.outString(tag, 'Включение;Отключение;Работа;уровень')
    print(valStart)
    if (valStart > 0
        ):  #Если точка сработана, то определяем сначала, когда она стала 0
        dt1 = ds
        dt2 = web.getDateChange(dt1, de, tag, 'F_INTOUNDER_DT', [0.5])
예제 #2
0
import config
import datetime
import time
from webAPI import EdsWebApi


def getBitVal(val, bit):
    s = bin(val)
    if (len(s) - 2) > bit:
        b = int(s[-bit - 1])
        return b == 1
    return False


web = EdsWebApi()
web.connect()
web.logger.debug('lalalala')

ds = datetime.datetime(2018, 10, 1)
de = datetime.datetime(2018, 10, 18)
tag = '07VT_AM01P-47.MCR@GRARM'
tag = '07VT_AM03P-01.MCR@GRARM'
bit = 14

dt = ds
data = []
val = web.getVal(ds, tag)
bitVal = getBitVal(val, bit)
#val=0.1
#bitVal=False
onDT = None
import config
import datetime
import time
from webAPI import EdsWebApi


#Скрипт для определения всех изменений бита пакетной точки за заданный интервал
web=EdsWebApi()
web.connect()
web.logger.debug('lalalala')

ds=datetime.datetime(2019,3,1)
de=datetime.datetime(2019,4,25)
#tag='62VT_UB1B8T-FP.UNIT0@SCADA:B1' 
tag='72VT_SP03SP-005.UNIT0@SCADA' 
bit=3




dt=ds
data=[]
val=web.getVal(ds,tag)#Получаем значение точки
bitVal=web.getBitVal(val,bit)#Получаем значения бита 
print(bitVal)
#val=0.1
#bitVal=True
onDT=None
offDT=None
if bitVal:#Если бит взведен, то инициализируем значение точки onDT
	onDT=ds
예제 #4
0
import config
import datetime
import time
from webAPI import EdsWebApi

#Простой сценарий для запуска получения аггрегированных данных массива точек с заданным шагом
#Если диапазон очень большой может иметь смысл раздробить интервал на подзапросы и выполнить их в цикле
web = EdsWebApi()
web.connect()
web.logger.debug('lalalala')

ds = datetime.datetime(2019, 4, 1, 0, 0)
de = datetime.datetime(2019, 5, 1, 0, 0)

#Массив точек для анализа
tags = {'11VT_GP00AP-125.MCR@GRARM', '10VT_GC00A-105.UNIT09@BLOCK5'}
#tags={'61VT_UB16D-206.UNIT0@SCADA' }

#ID запроса
reqId = None
items = []
for tag in tags:
    item = {
        'function':
        'VALUE',  #Функция аггрегации (минимум, максимум, среднее) см документацию
        'pointId': {
            'iess': tag
        }
    }
    items.append(item)
예제 #5
0
import config
import datetime
import time
from webAPI import EdsWebApi

#Простой сценарий для запуска получения аггрегированных данных массива точек с заданным шагом
#Если диапазон очень большой может иметь смысл раздробить интервал на подзапросы и выполнить их в цикле
web = EdsWebApi()
web.connect()
web.logger.debug('lalalala')

ds = datetime.datetime(2019, 4, 25, 10, 21)
de = datetime.datetime(2019, 4, 25, 10, 23)

#Массив точек для анализа
tags = {'02VT_TC03A-011.UNIT01@BLOCK1', '07VT_TC01A-06.MCR@GRARM'}
#tags={'61VT_UB16D-206.UNIT0@SCADA' }

#ID запроса
reqId = None
items = []
for tag in tags:
    item = {
        'function':
        'VALUE',  #Функция аггрегации (минимум, максимум, среднее) см документацию
        'pointId': {
            'iess': tag
        }
    }
    items.append(item)
예제 #6
0
import config
import datetime
import time
from webAPI import EdsWebApi



web=EdsWebApi()
web.connect()
web.logger.debug('lalalala')

ds=datetime.datetime(2018,10,1,0,0)
de=datetime.datetime(2018,10,23,0,0)
#tags={'07VT_LP01AO-03.MCR@GRARM','07VT_TW00AI-05.MCR@GRARM','04VT_AM01P-47.MCR@GRARM' }
tagF='07VT_EX01SD-15.MCR@GRARM'
tagS='07VT_AM03P-01.MCR@GRARM'
bit=14

reqId=None
items=[]

item={
	'function':'AVG',
	'pointId':{
		'iess':tagF 
		}
	}
items.append(item)
item={
	'function':'MIN_VALUE',
	'pointId':{
예제 #7
0
import config
import datetime
import time
from webAPI import EdsWebApi

web = EdsWebApi()
web.connect()
web.logger.debug('lalalala')

ds = datetime.datetime(2017, 9, 1)
de = datetime.datetime(2018, 11, 27)
tag = '04VT_AC31D-22.MCR@GRARM'

dt = ds
data = []
while dt < de:
    dt1 = web.getDateChange(dt, de, tag, 'F_INTOOVER_DT', [0.9])
    if dt1 < de:
        dt2 = web.getDateChange(dt1, de, tag, 'F_INTOUNDER_DT', [0.1])
        len = dt2.timestamp() - dt1.timestamp()
        record = {'start': dt1, 'end': dt2, 'len': len}
        data.append(record)
        web.out.info('{start} - {end}: {len}'.format(**record))
        dt = dt2
    else:
        break
예제 #8
0
import config
import datetime
import time
from webAPI import EdsWebApi



web=EdsWebApi()
web.connect()
web.logger.debug('lalalala')

ds=datetime.datetime(2018,10,15,10,21)
de=datetime.datetime(2018,10,15,10,23)
#tags={'07VT_LP01AO-03.MCR@GRARM','07VT_TW00AI-05.MCR@GRARM','04VT_AM01P-47.MCR@GRARM' }
tags={'61VT_UB16D-206.UNIT0@SCADA' }

reqId=None
items=[]

for tag in tags:
	item={
		'function':'VALUE',
		'pointId':{
			'iess':tag 
			}
		}
	items.append(item)


request=web.createRequest(ds,de,1,items)