Обновлённый SimInTech-1.3.1.32

Здравствуйте, уважаемые коллеги и пользователи среды динамического моделирования SimInTech.

Коллектив разработчиков предоставляет вашему вниманию последнюю версию 2015 года — SimInTech-1.3.1.32 от 31 декабря 2015, работающую со старым ключом (выданным для ПО с номером продукта 91FCCAF34BF ,загрузить), а также в ближайшем будущем будет доступна для загрузки и обновления новая версию 2016 года, SimInTech-1.6.0.1, о чём будет выпущено дополнительное сообщение.

В SimInTech проведены значительные доработки и оптимизация расчётного ядра, теплогидравлического расчётного кода HydroSolver (HS), внесено множество улучшений по схемам автоматики, библиотеке Сетей переменного тока, добавлена библиотека блоков Нечёткая логика, исправлены ошибки.

Также на сайте www.simintech.ru доступна для скачивания 64-битная версия; версия под семейство ОС UNIX/Linux доступна по отдельному запросу на адрес info@3v-services.com

Для SimInTech-1.3.1.32 действуют ключи, выданные во второй половине 2015 года (для ПО с номером продукта 91FCCAF34BF). Ключи со старым номером продукта будут работоспособны только для соответствующих версий SimInTech-1.3.1.х, 1.3.0.у, 1.2.х и более ранних.

Заявки на обновление ключей следует присылать на адрес info@3v-services.com

Также, для ускорения процесса желательно письмо на бланке Вашего предприятия в наш адрес с официальным запросом на перевыпуск N кол-ва ключей для ПО SimInTech-1.3.1.

Ниже приведены все основные исправления, изменения, дополнения и улучшения, и что нового появилось в SimInTech-1.3.1.32 от 2015.12.31 по сравнению с SimInTech-1.3.0.222 от 2015.07.16:

1) Оптимизация расчетного ядра, новое в расчетном слое «Автоматика»

1.1) Сделана оптимизация отрисовки графиков для того, чтобы при построении зависимостей от времени не происходило лишнего копирования данных из кэша в буфер графика.

1.2) Сделан вывод несовпадающих контрольных сумм при удалённой отладке алгоритмов на контроллерах.

1.3) Сделана проверка деления на 0 при операции деления. Добавлены дополнительные свойства в блок деления и блок «Язык программирования».

1.4) Расширена область видимости некоторых системных функций, для того, чтобы их можно было использовать из блока «Язык программирования» (в частности getstrformat).

1.5) Сделана обработка изменения флагов синхронизации с реальным временем и коэффициента ускорения расчёта, для того, чтобы при их изменении на ходу программа не останавливала счёт и не зависала.

1.6) Исправлен недочёт в ядре, связанный с оптимизацией повторного использования локальных переменных в генерируемом коде (для того, чтобы не было повторного использования переменных блока, который соединён с приоритетным блоком, блоком имеющим пост-секцию или блоком, имеющим алгебраические или динамические переменные (т.к. они вычисляются в отдельном вызове)).

1.7) Скорректировано автоматическое определение флага переменной (для динамических переменных) при расчёте в языке программирования.

1.8) Добавлен поиск блока по полному пути в пределах проекта (для упрощения поиска блоков на схеме и сопоставления их со сгенерированным кодом).

1.9) В библиотеке блоков для блока типа «Счётчик» добавлен порт сброса. Для счётчика задействован при моделировании флагf_UpdateOuts. Внесены изменения в генерацию кода для блока «Счётчик».

1.10) Выведены в отладочную информацию дополнительные счётчики производительности для ядра автоматики.

1.11) Добавлен новый блок «Циклограмма» для возможности задания периодических функций произвольного вида.

1.12) Добавлена библиотека для работы с джойстиком. Добавлен новый блок «Джойстик» в библиотеку блоков.

1.13) Добавлено два блока в библиотеку «Ключи» — интерактивные (управляемые вручную в процессе расчета) ключи, типа «контакт» и «перекидной». Кнопка в библиотеке «Ключи» перенесена на первое место, и для неё добавлен обрамляющий прямоугольник, который появляется в процессе наведения мыши для указания интерактивности блока. Аналогично сделано и у двух новых ключей.

1.14) Добавлены два блока в библиотеку Электромашины (Редуктор и Сервопривод в виде субмоделей). Блок типа Робот (точнее «Многозвенный манипулятор») переименован в «ЭМ — Многозвенный манипулятор».

1.15) Xalg и Falg добавлены в вывод для блоков-решателей НАУ.

1.16) Сделана нормальная индикация алгебраических контуров в модели. Теперь подсвечиваются все блоки в цепочке.

1.17) Переделан и оптимизирован алгоритм поиска по индексным файлам. Теперь поисковый индекс не хранится в оперативной памяти, а читается напрямую с диска. Изменён формат файлов индекса. Упрощены настройки индексатора.

1.18) Доработаны процедуры перегрузки и редактирования библиотек блоков. Общетехническая библиотека блоков вынесена в отдельный файл. ClassLib.csl сделана пустой — это будет пользовательская библиотека по умолчанию теперь (чтобы в неё можно было добавлять свои блоки и они не сотрутся при обновлении).

1.19) Сделано сохранение рестарта для дифференциальных переменных блока «Язык программирования».

1.20) Исправлена ошибка с определением размера буфера в блоке «Идеальное транспортное запаздывание» и «Переменное транспортное запаздывание».

1.21) В блоке «Оптимизация» сделана остановка расчёта в случае ошибки при оптимизации для режима «По полному переходному процессу». Для режима расчёта в динамике сообщение об ошибке будет формироваться, но не будет приводить к остановке расчёта. Сделан вывод сообщений о внутренних ошибках алгоритма оптимизации (превышение к-ва итераций, несходимость и т.п.)

1.22) Для блока «двумерная таблица из файла» сделаны разные режимы интерполяции данных. По новой возможности добавлен демо-пример Demo\Automatic\Интерполяция по двумерной таблице.

1.23) В COM-сервере введена новая функция

procedure GetProjectRestartNames(aPrjId: Int64; out aReadRestartFile, aWriteRestartFile: OleVariant;

out aReadRestartFlag, aWriteRestartFlag: Integer; out aNewRestartTime: Double;

out aSetNewTimeFlag: Integer);

позволяющая получить имя файлов рестартов проекта.

1.24) Для блока вычисления среднего значения добавлен режим вывода «Плавающее» когда сумма рассчитывается на каждом шаге по предыдущей выборке за заданное количество отсчётов.

1.25) Сделан блок «Круговой интегратор» с ограничением выходной величины от 0 до 2*pi.

1.26) Сделан блок «Управляемый синусоидальный генератор», с возможностью задания переменной частоты, фазы, сбросом времени генератора, паузой. Добавлен пример «Demo\Automatic\Управляемый синусоидальный генератор.prt», показывающий как применять этот блок.

 

2) Исправлены ошибки:
2.1) Исправлено присвоение цвета для шкал графиков в многошкальном режиме.

2.2) Исправлена ошибка с обработкой флага командной строки /noborder.

2.3) Процедура слияния библиотек блоков (при одновременно подключении нескольких библиотек) изменена, чтобы вкладки «склеивались» (линковались) именно в том порядке, как они заданы в библиотеках, а не наоборот.

2.4) Исправлена работа графиков так, чтобы не стиралась заданная пользователем легенда для фазового портрета и векторной зависимости.

2.5) Исправлены ошибки в генераторе ключей и модуле проверки регистрации. Сделано, чтобы оно не зависело от настроек локалиWindows (т.к. могла сбиваться лицензия при переключении на другую языковую страницу). Файлы запроса изменены и зашифрованы, для того, чтобы они не переконвертировались в браузерах, при переносе между ОС Windows/Linux и при пересылке по электронной почте.

2.6) Исправлена ошибка с определением видимости объекта при редактировании при выключенном флаге Visible.

2.7) Сделано, чтобы при отладке алгоритма в локальном режиме не появлялось окно генератора кода.

2.8) Убрана пара лишних операций, которые могли приводить к сбоям при экспорте в SVG.

2.9) Убран старый режим сохранения в метафайлы, т.к. заменено в итоге на полноценный SVG формат. Теперь сохранение изображений в файл работает нормально и для окон анимации, а не только для окон проекта.

2.10) Закомментирована одна строчка кода, которая давала странный сбой при закрытии некоторых проектов.

2.11) Исправлено поведение блока «Язык программирования» при выходе с ошибкой в скрипте — теперь порты и линии связи в этой ситуации не исчезают.

2.12) Исправлена ошибка в блоке типа «дискретная передаточная функция», связанная с определением типа сортировки для этого блока.

2.13) Исправлены ошибки финализации для групп и блоков.

2.14) Исправлена ошибка отрисовки текста при использовании механизма слоёв.

2.15) В стандартной библиотеке блоков изменён блок типа «Ключ-3» для того, чтобы он не требовал задания размерности в векторном режиме работы. Теперь блок не выдаёт ошибки если у него задана размерность уставки меньше, чем размерность переключающего входа, что позволяет упростить большинство векторных моделей.

2.16) Исправлена ошибка с закрытием проекта в случае если окно анимации вызывалось в режиме управления, когда проект не запущен на старт.

2.17) Сделано применение скрипта если закрыть окно редактора с активной страницей «Скрипт». Сделаны запросы на применение изображений блоков\групп при закрытии окна схемы, для того, чтобы не терять изменения, сделанные пользователем.

2.18) Исправлены файлы реестра – переделаны в кодировке UTF16, для того, чтобы правильно писались русские буквы если программа устанавливается на систему с нерусской кодовой страницей.

2.19) Исправлено автоматическое определение ширины для блока «Вход-выход алгоритма».

2.20) Блок «Сервер UDP» теперь нормально переключает порт при изменении значения порта в проекте и не требует повторного открытия проекта. Сделана возможность изменения номера порта блока приёма UDP пакета для UDP клиента и UDP сервера на ходу без остановки расчёта.

 

3) Теплогидравлический код HydroSolver (HS):
3.1) Сделана возможность задавать в узлах в качестве основного параметра (задающего начальные и граничные условия) либо энтальпию, либо температуру.

3.2) Выбор «Температура или энтальпия?» добавлен также и для каналов.

3.3) Исправлен блок для стенки с излучением.

3.4) Добавлены свойства для теплоносителей: насыщенный амин, регенерированный амин, аргон.

3.5) Сделан вывод КПД в ступени турбины в процентах.

3.6) Добавлена модель рекуперативного типового теплообменника аминного типа труба в трубе в демо-примеры.

3.7) Окно редактора канала сделано не Single а Sizeable, чтобы при маленьком разрешении экрана оно вмещало все кнопки, расположенные в правой части (Ок, Отмена, Автозаполнение).

3.8) Восстановлена работоспособность блока типа двухслойная стенка.

3.9) Сделана возможность задавать в стенках и каналах нецелое число стержней.

3.10) Исправлен выбор шага по времени для корректной работы блока «Зазор между стенками».

3.11) В блок «Зазор между стенками» добавлена возможность выбрать метод решения при помощи встроенного метода решения ОДУ.

3.12) В блок «Отладочная информация» добавлено вычисление суммарного объёма теплоносителя в контуре.

3.13) Добавлена примерная таблица свойств для стали ЭП302.

3.14) Добавлен вывод параметров в «Подпитку» и «Местное сопротивление».

3.15) В модели насоса с параболической характеристикой можно задавать 0.0 <= w_otn <= 2.0.

3.16) Добавлен расчёт общей массы теплоносителя в каналах, и общей массы топлива и оболочке в твэлах.

3.17) Сделана возможность ссылаться при помощи подпитки на блок «ссылка на объект», ссылающийся на узел.

3.18) Сделано вычисление координат и высотных отметок центров и границ ячеек.

3.19) В бак со свободным уровнем добавлен вывод суммы входящих и выходящих расходов.

3.20) Сделана возможность связи пароводяного компенсатора давления с несколькими (до 10) трубными пучками. В модели пароводяного сосуда под давлением учтено положение уровня относительно трубных пучков

3.21) Сделана возможность изменять kAlfa в каналах в процессе расчёта.

3.22) Добавлен блок вычисления местного сопротивления по Идельчику.

 

4) Графическая подсистема:

4.1) Добавлена выдача предупреждения о том что не найдено изображение для соответствующих примитивов.

4.2) Порты блока сделаны видимыми в графическом редакторе изображения блока, для удобства подгонки надписей и картинок под порты.

4.3) В графическом редакторе сделана функция «Подогнать размер окна под размер блока», при этом изменяются размеры окна и соотношение ширина/высота окна приводится к соотношению для блока.

4.4) Исправлена отрисовка эллиптических сегментов и секторов при зеркальном отражении (при отрицательной высоте).

4.5) Радикально доделан редактор свойств примитивов в графическом редакторе блоков. Теперь он немодальный и может размножаться, что удобно при редактировании сложных групповых картинок.

4.6) Для редактора изображений групп сделан пункт меню «Применить изображение», чтобы не делать просмотр результата, не закрывая его. 4.7) Окна выбора примитивов по имени и по типу также сделаны немодальными.

4.8) Сделана опция управления способом воспроизведения анимации — многопоточная или однопоточная (Файл-Параметры-Вид —  Многопоточный рендер; если эту галочку снять, то графика пересчитывается и отрисовывается строго в основном потоке приложения). По умолчанию используется многопоточность.

4.9) Сделан флаг для окон анимации\управления REG_MODAL_FLAG, если этот влаг присвоить в секции initialization, то окно управления будет открываться в модальном режиме.

4.10) Изменён вывод на пошаговый режим для анимации.

4.11) Сделана опция для настройки увеличения при вращении колеса мыши.

4.12) Сделана возможность выгрузки в SVG дополнительных данных графической системы ПК SimInTech. Сделана соотвествующая настройка.

4.13) Сделано, чтобы правильно масштабировалось изображение и правильно определялись координаты курсора, если в системе настроен масштабный коэффициент больше 100% при выставленной опции «Использовать один масштаб для всех дисплеев» (т.е. в режиме масштабирования как в Windows XP).

 

5) Новое по встроенному языку программирования
5.1) Переименованы скалярные функции Бесселя как положено (устранена ошибка старого именования функций типа y1, x1 и т.п. что приводило к конфликтам со скриптами где были такие переменные).

5.2) Сделана функция для изменения порядка перерисовки объектов:

exchangeobjects(<номер объекта в списке 1>,<номер объекта в списке 2>) — поменять местами объекты в списке перерисовки.

5.3) Функции getobjcount и getobj сделаны в варианте с указанием дополнительного параметра — идентификатора графического контейнера.

Синтаксис:

i=getobjcount(<id графического контейнера>) — получить количество объектов в контейнере по указанному графическому контейнеру

i=getobj(<id графического контейнера>,<индекс объекта с единицы>) — получить ссылку объекта по индексу по указанному графическому контейнеру

 

Сделан пример на применение этих функций Demo\Visual\Пример опроса объектов внутри группы.prt

 

5.4) Сделана функция

cont_id = getcurrentcontainer — получить ссылку текущего графического контейнера для этого скрипта

 

5.5) Сделана функция для скриптового языка setdboverride(<имя плагина>,<имя базы>), которая позволяет из скрипта выставить имя базы сигналов и модуля базы сигналов для всего приложения.

 

 

6) Интерфейс пользователя:
6.1) Утилита генерации запросов ключа исправлена и сделана с инсталлятором.

6.2) Сделана кнопка для просмотра лог-файла программы.

6.3) Для утилиты обновления сделана проверка серийного номера загружаемого дистрибутива с выводом соотвествующего предупреждения.

6.4) В дистрибутив добавлен плагин для Git.

6.5) В окне регистрации сделано, чтобы там номер продукта сразу был, т.к. иначе возникает путаница при выдаче ключей.

6.6) Доделано, чтобы открытый через проводник файл проекта или пакета сохранялся в списке ранее открытых файлов.

6.7) Добавлена информация о дате сборки исполняемого файла в информацию об ошибке.

6.8) Добавлены три демо-примера с адаптивными регуляторами и пультами управления.

6.9) Сделана прокрутка по вращению колеса мыши в окошке настроек программы (Файл-Параметры-Вид).

6.10) Для блока типа «Новый блок» сделано форматирование скрипта.

6.11) Улучшено занесение параметров блоков в канал обмена — теперь нормально распознается, пишем мы параметр или читаем.

6.12) Исправлено оперативное переключение режима анимация\отладка.

6.13) Блок «Люфт» добавлен в обновление.

6.14) Алгоритм масштабирования при вращении колеса мыши сделан относительно текущего положения курсора на форме, для того, чтобы увеличивать было удобнее.

6.15) Окно общих настроек программы сделано немодальным.

6.16) В окно оперативного просмотра параметров добавлена кнопка «Создать график» для того, чтобы можно было быстро на ходу создавать график просматриваемого параметра без его вторичного выбора в менеджере данных.

6.17) Исправлен вывод и скрытие окна примитивов.

6.18) В редакторе скрипта и в редакторе текста сделаны дополнительные кнопки для применения изменений без закрытия окна редактора.

6.19) Сделана индикация в статусной строке надписей Привязка и Сетка (при включении свойств данные надписи становятся зелеными), изменены сообщения надписей («Выкл» изменился на «Откл»), расширены поля для отображения.

6.20) Изменён дизайн окна вставки графических примитивов — теперь окно вставки примитивов располагается рядом с кнопками вставки блоков в палитре блоков.

6.21) Улучшена процедура редактирования изображений групп\блоков — сделано, чтобы масштаб редактора графического контейнера не изменялся при его повторном открытии и сохранялся в проекте. При изменении размеров редактора изображений блоков название редактора помечается символом *. Сделана возможность задания масштаба окна по блоку в заданным коэффициентом. Для окна проекта и для окна редактирования изображений блока можно принудительно задавать размеры клиентской области.

6.22) Сделан раздельный вывод текущих и начальных значений (формул) в редакторе свойств блока, редакторе свойств примитивов, редакторе сигналов проекта, редакторе базы данных проекта. В редакторе базы данных проекта доступно раздельное изменение текущих значений и формул для интерпретируемых типов данных.

6.23) Исправлена работа горячих клавиш для окон схемного окна и окна графического редактора изображений. Сделана отмена вставки графических примитивов и блоков по клавише Escape.

6.24) В списке сигналов графического редактора изображений блоков сделано, чтобы показывались номера сигналов.