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 while dt<de: d1=web.getDateChangeFull(dt,de,tag,val)#Получаем следующее изменение пакетной точки (как целочисленной величины) valNew=web.getVal(d1,tag)#Получаем значение точки в этот момент bitValNew=web.getBitVal(valNew,bit)#Получаем значение бита в данный момент if val!=valNew:#Если значение пакетной точки изменилось обновляем дату начала выборки val=valNew dt=d1 if bitVal != bitValNew: #Определяем, изменился ли нужный нам бит bitVal=bitValNew if bitVal: onDT=d1 else: offDT=d1 print('{0} - {1} [{2}]'.format(onDT,offDT,offDT.timestamp()-onDT.timestamp())) #Выодим полученный результат на экран else: dt=d1 print('finish')
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 offDT = None if bitVal: onDT = ds while dt < de: d1 = web.getDateChangeFull(dt, de, tag, val) valNew = web.getVal(d1, tag) bitValNew = getBitVal(valNew, bit) if val != valNew: val = valNew dt = d1 if bitVal != bitValNew: bitVal = bitValNew if bitVal: onDT = d1 else: offDT = d1 print('{0} - {1} [{2}]'.format( onDT, offDT, offDT.timestamp() - onDT.timestamp())) else: