Что анализирует скрипт: Скрипт проверяет все полученные значения от аналоговых датчиков за последние 30 суток на то, что они лежат в пределах тарировки. Проверяются все аналоговые (активные) датчики с тарировкой за последние 30 суток. Датчики без тарировки не проверяются совсем.
Что выводит скрипт: Скрипт выводит информацию в виде таблицы: 1. Гаражный номер 2. Номер Прибора 3. Номер аналогового датчика 4. Название датчика как он указан в программе 5. Полученное от датчика значение - оно должно быть в пределах граф 6,7 6. Минимальное значение в тарировке 7. Максимальное значение в тарировке
Почему это важно: Значения от датчика, выходящие за предела тарировки программой не отображаются ни на графике, не учитываются в отчетах (занижение заправок, не отображение уровня топлива). Так же может быть не правильно проведена тарировка персоналом.
Как исправлять:
Скрипт: select distinct o.ObjectGarNum ГаражныйN,d.code АТ,sens.num ДатчикN,sens.description Название,round(sens_value,0) as значение,MinValue_Real as мин_тар,MaxValue_Real as макс_тар from bn.dbo.SYS_DEV_Sensor as Sens inner join bn.dbo.SYS_DEV_Device as D on d.id=sens.device_id inner join bn.dbo.FLEET_Object as O on O.Device_ID=Sens.device_id inner join (SELECT IDSensor,min(MinValue_Real) MinValue_Real ,max(MaxValue_Real) MaxValue_Real FROM [BN].[dbo].[FLEET_AnalogTarirovka] group by IDSensor) as Tar on Tar.IDSensor=Sens.id inner join (SELECT [tele_time],[sens_value],[sens_num],[ObjectID] FROM [BN].[dbo].[FLEET_AnalogData] as AD where ad.tele_time between dateadd (dd,-30,getdate()) and getdate()) as AD on ad.sens_num=Sens.num and ad.ObjectID=o.ObjectID and (round (ad.[sens_value],1)<MinValue_Real or round(ad.[sens_value],0)>MaxValue_Real) where sensor_type_id=0 and SensorActive=1 and d.DeviceActive=1 and O.ObjectActive=1
Источник: CyberFleet |