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')
示例#2
0
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: