This is topic Медленная работа проекта версия 6.08 in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/001151.html

Posted by Ширинкин Андрей (Участник № / Member № 3320) on :
 
Продолжение темы: http://forum.adastra.ru/cgi-bin/ultimatebb.cgi/ubb/get_topic/f/31/t/001131.html?

Краткое описание предыдущей темы:
Был проект выполненный в версии 6.06, в которой не корректно работал ОТ. Вы мне посоветовали перейти на версию 6.08, после чего ОТ стал корректно работать, но появилось так называемое "притормаживание" всего проекта. Где я просил Вас произвести кое-какой эксперимент. В итоге Вы попросили, цитирую "Уточните, пожалуйста, каким образом мы можем провести предлагаемый Вами эксперимент в режиме эмуляции - при условии отсутствия реального PLC с объектом управления."

Теперь я Вам высылаю новый проект выполненном в релизе 6.08, от отличается от ранее высланного - уменьшением количества элементов в экранах, отключение ненужных программ-обработчиков экранов.

Когда Вы получите и откроете проект. После его компиляции и запуска, Вы увидите экран Мнемосхема, на котором (слева посередине) имеется поле (над ним будет надпись "Счетчик") которое отображает число циклов программы-обработчика.

Такие счетчики также установлены на экране "Дозатор", "Карман" и "Тех. карта" и которые ведут подсчет ЗНАЧИТЕЛЬНО медленне чем счетчик "Мнемосхемы".

При этом в релизе 6.06. Данные счетчики отрабатываются с одинаковой (по крайней мере так кажется) скоростью

С чем это связано и как это исправить??????????????
Может это связано из-за большого числа использования функций в программах????????????

Также нашел одну неприятную особенность в релизе 6.08.
Если в одном из аргументов экрана будет привязка к несуществующему аргументу другого экрана (или программы) или канала, то данный экран перестает отрабатываться (атридут 45 не изменяется). При этом во время компиляции НЕ ПОЯВЛЯЕТСЯ НИ ОДНОГО СООБЩЕНИЯ ОБ ОШИБКЕ, мол все нормально работайте дальше. А ты потом сиди и ломай голову почему не отрабатывает экран.

Когда проект маленький, то конечно можно "пробежаться" по нему вручную и выяснить что не так. А если проект большой, то проверять все это вручную становится довольно накладно.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
1. В программах, циклы пересчета которых Вы считаете и выводите на экраны, есть условные операторы с выходом RETURN.
В счетчики стоят в конце программы.
В результате, в зависимости от конкретных условий в программах счетчики в каких-то вызовах программ не считают.
Перенесите счетчики в начало каждой программы - все счтечики будет показывать количество вызовов своих программ.

2. Надо при запуске узла посмотреть в протокол профайлера и в файл tm6_log.txt. Ошибки, указываюшие на неправильные привязки аргументов в этих протоколах должны указываться.
После компиляции проекта такие ошибки должны отмечаться в файле типа
to_05_03_13_16_alpha_0.txt
 
Posted by Ширинкин Андрей (Участник № / Member № 3320) on :
 
По второму пункту все ясно

По первому пункту...

Все верно программа и правда отрабатывает эти RETURNы. Но они мне необходимы для отслеживания закрытия экрана по крестику (расположен в верхнем правом углу).

в версии 6.06 я смотрел в атрибут 45 (время изменения) и 88 (миллисекунды) и в зависимости от их изменения или наоборот не изменения я делал вывод о закрытии экрана.

В версии же 6.08 Вы почему то отключили атрибут 88, т.е. при открытии экрана данный атрибут равен НУЛЬ.
При этом атрибут 88 у программ функционирует

Вопрос: Это ошибка программистов? Или Вы это специально сделали и если да, то зачем Вы это сделали?
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Обработка каналов, вызывающих экраны, осуществляется в отдельном асинхронном потоке низкого приоритета.
Измерение периодов обработки таких каналов с высокой точностью не имеет смысла. Вы в своих программах вполне удовлетворительно контролируете состояние экрана по атрибуту 45.
Но описанная выше проблема якобы "замедления счетчиков" функционированием атрибута 88 не определяется. Счетчики показывают правильно, адекватно работе программ.
 
Posted by Ширинкин Андрей (Участник № / Member № 3320) on :
 
Все разобрался как сделать пошустрее.

Но остается одна нерешенная проблема:

Когда вы сделаете полноценный контроль закрытия экрана. А то если честно Вы это обещаете из версии к версии, а результатов не видно.

Или хотя бы сделайте возможность отключения верхней панели у экранов, где расположен "Х" (крестик). И тогда пользователь сможет закрыть экран только по соответствующей кнопке, которую я ему создам.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Атрибут 88 у CALL.SCREEN восстановлен не будет.
Надо адаптировать программу к контролю по атрибуту 45.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2