Расчётная точка и давление [7660]

Где-то косяк, но точно не понятно где. Ситуация следующая:

Создается расчётная точка ХВС и в нее добавляется давление из ГВС (по идее без разницы откуда). Никаких формул, просто указание на давление из ГВС.
В точке ГВС указано, что давление измеряется избыточное и отображается избыточное. В расчётке так же указано, что измеряемое значение избыточное и отображать нужно избыточное, но в результате получается давление на 1 меньше чем должно быть.
Дальше пошли эксперименты, предположили, что ЛЭРС игнорирует какие данные в точке и берет данные напрямую из БД (где значения записываются + 1), выставили в расчётке измеряемое значение абсолютное, а отображаемое – избыточное, но ничего не изменилось.
Вариант с указанием в расчётной точке ХВС абсолютного значения в измеряемых и отображаемых параметров дал необходимое значение, но это явный костыль (у нас то давление избыточное), да и в БД данные записываются на 1 меньше чем в точке ГВС.
Дальше стали экспериментировать с точкой ГВС, если изменить измерения на абсолютные, то ничего в расчётке не изменилось (зато ГВС выдает некорректные данные при считывании), но если изменить отображаемые на абсолютные в расчётке данные изменятся О_О, что имхо лютый бред.
В общем концы с концами не сходятся как не крути, как по мне расчётка берет ОТОБРАЖАЕМЫЕ данные и ей без разницы, что это абсолютное давление или избыточное.

Да, вы правы. Сейчас расчётная точка принимает отображаемое давление исходной точки, хотя должна бы получать исходное значение из БД. То есть, абсолютное значение из БД в исходной точке должно быть скопировано в целевую.

К сожалению, внести это изменение сейчас будет неправильно, поскольку расчётные формулы пользователей уже могут “заложиться” на такое неверное поведение системы. И исправив его мы нарушим работу расчётных точек в других системах.

Мы поставим исправление этой проблемы в план на следующую версию 3.30. Перед её выпуском нужно будет заранее уведомить пользователей и выдать предупреждение при установке обновления.

Пока для обхода вы можете изменить расчётную формулу таким образом, чтобы в расчётную точку попадало избыточное давление.
То есть, если в исходной точке учёта настроено отображение избыточного давления, расчётная формула должна выглядеть как
P1расч = P1исх + 1

После установки обновления версии 3.30 нужно будет исправить формулы, чтобы давление исходных точек принималось как абсолютное.

Может попутно полностью убрать в меню расчётной точки пункт “Измеряемое давление”. Ведь по логике он там лишний и я не могу придумать ситуации когда он бы мог пригодиться (только путает). Правда придется что то делать с пунктом “Отображаемое давление”, но это по идее не проблема.

Проблему мы исправили и включим в следующую версию 3.29.7. Исправление нужно будет включить в конфигурационном файле сервиса. По умолчанию поведение останется прежним.
Когда обновление будет опубликовано, мы выложим в этой теме инструкции.

Измеряемое давление убрать не получится. Некоторые приборы не сообщают какой тип давления у них сохранён в архивах и фактически сохраняют то, что вернул датчик. Если датчик избыточный, то давление избыточное. Если абсолютный, то абсолютное.
Чтобы система “знала” как правильно сохранить давление с таких счётчиков нужно указать это в параметрах точки учёта.

Так я же написал про расчётную точку, а не про обычную (возможно Вы подумали что я про пункт меню). В обычной этот параметр нужен, но для расчётки это не должно иметь значения ведь все записывается в абсолютном виде и смысла это указывать нет.

Да, действительно, это имеет смысл. Но уже только в 3.30.

Версия 3.30 доступна для скачивания.

Спасибо, будем тестировать.

Ожидаем результат.

Есть один нюанс. Мы решили всё-таки не изменять поведение “по умолчанию”, чтобы не “сломать” расчётные формулы для пользователей, которые уже в них учли это поведение.

Вы можете включить использование абсолютного давления для вашего сервера. Для этого нужно:

  1. Открыть на редактирование блокнотом или другим текстовым редактором конфигурационный файл сервера. Обычно это
    c:Program FilesLERSServerLers.Server.xml
  2. Перед строкой нужно вставить блок настроек:
	<modules>
		<data>
			<calc>
				<useAbsolutePressure>true</useAbsolutePressure>
			</calc>
		</data>
	</modules>
  1. В итоге ваш конфигурационный файл должен выглядеть примерно так:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<network>
		<listenPort>10000</listenPort>
		<listenAddress></listenAddress>
	</network>
	
	<dataBase>
		<sqlServer>адрес_сервера_бд</sqlServer>
		<dataBaseName>LERS</dataBaseName>
	</dataBase>
	
	<modules>
		<data>
			<calc>
				<useAbsolutePressure>true</useAbsolutePressure>
			</calc>
		</data>
	</modules>	
</configuration>
  1. Перезапустите сервер ЛЭРС УЧЁТ.

После этого расчётная точка и формулы пользовательской диагностики объектов учёта станут использовать абсолютное давление.

Вроде все работает. Только не понятно как старые данные массово обновить :frowning:

Попробуйте запустить перерасчет данных в таблице с данными расчетной точки, открыв таблицу с данными за нужный период.

Как это сделать для каждой точки понятно, но их несколько сотен и в каждую заходить и жать пересчитать данные долго и нудно. И я не могу понять есть возможность массово это сделать, разом для всех выбранных точек.

Нет, групповой операции пересчета данных не существует.