RUS  ENG 

ZuluNetTools. Расчет тепловых сетей.

Страницы: 1
RSS
ZuluNetTools. Расчет тепловых сетей., Программный запуск расчета тепловых сетей.
 
Добрый день!

Пытаюсь программно запустить поверочный расчет тепловой сети. Возникает ошибка "Z005: Отсутствуют данные по объекту", хотя при выполнении поверочного расчета в ZuluThermo ошибок нет. С чем связана данная проблема?


Язык программирования: C#
Версии: ZuluServer: 8.0.0.7290; ZuluNetTools 8.0 Thermo; ZuluThermo 8.0
 
Цитата
Иван Вовченко написал:
Добрый день!

Пытаюсь программно запустить поверочный расчет тепловой сети. Возникает ошибка "Z005: Отсутствуют данные по объекту", хотя при выполнении поверочного расчета в ZuluThermo ошибок нет. С чем связана данная проблема?


Язык программирования: C#
Версии: ZuluServer: 8.0.0.7290; ZuluNetTools 8.0 Thermo; ZuluThermo 8.0
Версии больше девяти месяцев. Обновите. Далее нужно видеть, что в коде написано.
 
Добрый день! Выполнили обновление сервера до версии 8.0.0.7573u. Проблема осталась.
Вот мой код:

Код
ZCNTaskThermo task = new ZCNTaskThermo();
var network = new ZCNNetwork();
network.OpenNetwork(path, 0);

task.Network = network;
task.PoverkaThermoLoss = 0;
task.PoverkaCalcRo = false;
task.PoverkaUseFromNaladka = true;
task.PoverkaUseLeaks = false;
task.Sources.Add(1);
var err = false;
var res = task.Run(2, true);
 int count = task.Errors.Count;
for (int i = 0; i < count; i++)
{
       if (task.Errors[i].Code < 600)                       
            err = true;
       listBox1.Items.Add(task.Errors[i].Text);
}
if(err)
      listBox1.Items.Add("Ошибка расчёта");
 
Цитата
Иван Вовченко написал:
task.Errors.Text
Проверьте, пожалуйста, макрос из Zulu считает? Путь для проверки явно задайте. У мня считает и локальный и серверный слой
Код
Sub NetToolsThermo

Set Out = Zulu.OpenOutputChannel("")

Set task = CreateObject("ZuluComNetOcx.TaskThermo")
Set network = CreateObject("ZuluComNetOcx.Network")

'network.OpenNetwork "zulu://zs.zulugis.ru:6473/Termo/Kvartal/teplosam.zl", 0
network.OpenNetwork "D:\INST\Thermo\Kvartal\teplosam.b00", 0

task.Network = network
task.PoverkaThermoLoss = 0
task.PoverkaCalcRo = false
task.PoverkaUseFromNaladka = true
task.PoverkaUseLeaks = false
task.Sources.Add(1)

res = task.Run(2, true)
 
 count = task.Errors.Count 
 
 
 for i = 0 to count - 1

 OUT.Put task.Errors(i).Text + CHR(10)
   
 Next

End Sub
 
Лог при выполнении макроса для серверного слоя:
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=1):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=8):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=1):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=8):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=2):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=8):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=3):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=12):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=5):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=3):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=4):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=12):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=1):invalid file name. (Код ошибки: 0x8BDE2703).
Предупреждение Z601: ID=58311 Участок не имеет узла
Предупреждение Z601: ID=104021 Участок не имеет узла
Предупреждение Z601: ID=31530 Участок не имеет узла
Предупреждение Z601: ID=103915 Участок не имеет узла
Предупреждение Z601: ID=58311 Участок не имеет узла
Предупреждение Z601: ID=104021 Участок не имеет узла
Предупреждение Z601: ID=31530 Участок не имеет узла
Предупреждение Z601: ID=103915 Участок не имеет узла
Ошибка Z005: ID=1 Отсутствуют данные по объекту

Неясно как выполнить расчёт по локальному пути? Надо клиент запускать на сервере?
 
Цитата
Иван Вовченко написал:
Лог при выполнении макроса для серверного слоя:
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=1):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=8):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=1):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=8):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=2):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=8):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=3):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=12):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=5):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=3):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=4):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=12):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=1):invalid file name. (Код ошибки: 0x8BDE2703).
Предупреждение Z601: ID=58311 Участок не имеет узла
Предупреждение Z601: ID=104021 Участок не имеет узла
Предупреждение Z601: ID=31530 Участок не имеет узла
Предупреждение Z601: ID=103915 Участок не имеет узла
Предупреждение Z601: ID=58311 Участок не имеет узла
Предупреждение Z601: ID=104021 Участок не имеет узла
Предупреждение Z601: ID=31530 Участок не имеет узла
Предупреждение Z601: ID=103915 Участок не имеет узла
Ошибка Z005: ID=1 Отсутствуют данные по объекту

Неясно как выполнить расчёт по локальному пути? Надо клиент запускать на сервере?
Если путь локальный, то причем тут сервер?
Потом, не видно кода. Какой метод вызывает ошибку?
Пример, который выше приводился, полностью рабочий.
Расчет всегда выполняет клиент. Он берет для расчета данные локально или с сервера, считает, и записывает ответ локально или на сервер.
 
Цитата
Если путь локальный, то причем тут сервер?
Расчет всегда выполняет клиент. Он берет для расчета данные локально или с сервера, считает, и записывает ответ локально или на сервер.

Спасибо! С этим разобрался, но остался один вопрос для понимания. Специалисты, работающие с ZuluGIS утверждают, что для работы с локальной картой необходимо наличие ключа на машине клиента, так ли это?

Цитата
Пример, который выше приводился, полностью рабочий.
Полностью согласен, поэтому вернулся к проведению расчетов в самом ZuluThermo, т.к. после обновления сервера и клиента, этого не делал. Т.к. большинство пользователей ZuluGIS не успели обновить клиент, для начала был выполнен наладочный расчет на двух клиентах версии 7346u и 7579u. В старой версии расчет выполняется без проблем, в новой возникает ошибка о недостаточном напоре на источнике. А после выполнения поверочного расчета в новой версии, используя результаты наладочного старой - у потребителей параметр "Располагаемый напоp на вводе потpебителя" имеет 18ти разрядное значение. С чем это может быть связано?
 
Цитата
Иван Вовченко написал:
Цитата
Если путь локальный, то причем тут сервер?
Расчет всегда выполняет клиент. Он берет для расчета данные локально или с сервера, считает, и записывает ответ локально или на сервер.

Спасибо! С этим разобрался, но остался один вопрос для понимания. Специалисты, работающие с ZuluGIS утверждают, что для работы с локальной картой необходимо наличие ключа на машине клиента, так ли это?

Цитата
Пример, который выше приводился, полностью рабочий.
Полностью согласен, поэтому вернулся к проведению расчетов в самом ZuluThermo, т.к. после обновления сервера и клиента, этого не делал. Т.к. большинство пользователей ZuluGIS не успели обновить клиент, для начала был выполнен наладочный расчет на двух клиентах версии 7346u и 7579u. В старой версии расчет выполняется без проблем, в новой возникает ошибка о недостаточном напоре на источнике. А после выполнения поверочного расчета в новой версии, используя результаты наладочного старой - у потребителей параметр "Располагаемый напоp на вводе потpебителя" имеет 18ти разрядное значение. С чем это может быть связано?
1. Для работы с локальными данными нужна лицензия на локальную ГИС. Ключ может быть локальный, может быть сетевой. Главное, чтобы нужная лицензия была, и не была занята другим пользователем.

2. 18-разрядное значение говорит о том, что скорее всего регулятор давления включен не в том направлении и полностью закрылся. В старых версиях регулятор можно было включать как попало, что было неправильно. Т.е. он регулировал в ту сторону, куда вода течет. В жизни он работает в одну сторону как регулятор, в обратную сторону запирается.
 
С регуляторами разобрался. На клиенте в ZuluThermo расчеты выполняются. Пример вашего макроса успешно считает локальный слой, для серверного - завершается с ошибками.
Цитата
Алексей Аширов написал:
Цитата
Иван Вовченко написал:
Лог при выполнении макроса для серверного слоя:
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=1):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=8):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=1):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=8):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=2):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=8):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=3):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=12):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=5):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=3):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=4):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=12):invalid file name. (Код ошибки: 0x8BDE2703).
Ошибка ZB db(zulu:// :6473//SSDPU//Teplo_2019.zl?dbid=1):invalid file name. (Код ошибки: 0x8BDE2703).
Предупреждение Z601: ID=58311 Участок не имеет узла
Предупреждение Z601: ID=104021 Участок не имеет узла
Предупреждение Z601: ID=31530 Участок не имеет узла
Предупреждение Z601: ID=103915 Участок не имеет узла
Предупреждение Z601: ID=58311 Участок не имеет узла
Предупреждение Z601: ID=104021 Участок не имеет узла
Предупреждение Z601: ID=31530 Участок не имеет узла
Предупреждение Z601: ID=103915 Участок не имеет узла
Ошибка Z005: ID=1 Отсутствуют данные по объекту

Неясно как выполнить расчёт по локальному пути? Надо клиент запускать на сервере?
Если путь локальный, то причем тут сервер?
Потом, не видно кода. Какой метод вызывает ошибку?
Пример, который выше приводился, полностью рабочий.
Расчет всегда выполняет клиент. Он берет для расчета данные локально или с сервера, считает, и записывает ответ локально или на сервер.

Программно - та же ситуация.
Код макроса такой же как и в вашем примере, кроме путей к слоям:
Код
...

Set task = CreateObject("ZuluComNetOcx.TaskThermo")
Set network = CreateObject("ZuluComNetOcx.Network")

network.OpenNetwork "zulu://99.99.99.99:6473//SSDPU//Teplo_2019.zl", 0
'network.OpenNetwork "E:\zulu\Teplo.b00", 0

task.Network = network
...
 
Цитата
Иван Вовченко написал:
С регуляторами разобрался. На клиенте в ZuluThermo расчеты выполняются. Пример вашего макроса успешно считает локальный слой, для серверного - завершается с ошибками.
Цитата
Алексей Аширов написал:
Цитата
Иван Вовченко написал:


Неясно как выполнить расчёт по локальному пути? Надо клиент запускать на сервере?
Если путь локальный, то причем тут сервер?
Потом, не видно кода. Какой метод вызывает ошибку?
Пример, который выше приводился, полностью рабочий.
Расчет всегда выполняет клиент. Он берет для расчета данные локально или с сервера, считает, и записывает ответ локально или на сервер.

Программно - та же ситуация.
Код макроса такой же как и в вашем примере, кроме путей к слоям:
Код
 ...

Set task = CreateObject("ZuluComNetOcx.TaskThermo")
Set network = CreateObject("ZuluComNetOcx.Network")

network.OpenNetwork "zulu://99.99.99.99:6473//SSDPU//Teplo_2019.zl", 0
'network.OpenNetwork "E:\zulu\Teplo.b00", 0

task.Network = network
...
 
Сообщите, пожалуйста, Ваш телефон на [email protected]
 
Возник ещё один вопрос. Перед выполнением поверочного расчета хотел программно поменять значение текущей температуры воды в подающем трубопроводе на источнике с помощью метода SetAttrValue объекта ZCNNetwork. Однако на результаты расчёта это никак не влияет. Проверяя значение этого атрибута с помощью GetAttrValue, получаю значение, несоответствующее действительному.
 
Цитата
Иван Вовченко написал:
Возник ещё один вопрос. Перед выполнением поверочного расчета хотел программно поменять значение текущей температуры воды в подающем трубопроводе на источнике с помощью метода SetAttrValue объекта ZCNNetwork. Однако на результаты расчёта это никак не влияет. Проверяя значение этого атрибута с помощью GetAttrValue, получаю значение, несоответствующее действительному.
SetAttrValue работает, только когда не используется слой Zulu, а расчетная модель создается в памяти самостоятельно.
А в случае слоя, это просто редактирование полей таблиц
Страницы: 1