Краткое описание предыдущей темы: Был проект выполненный в версии 6.06, в которой не корректно работал ОТ. Вы мне посоветовали перейти на версию 6.08, после чего ОТ стал корректно работать, но появилось так называемое "притормаживание" всего проекта. Где я просил Вас произвести кое-какой эксперимент. В итоге Вы попросили, цитирую "Уточните, пожалуйста, каким образом мы можем провести предлагаемый Вами эксперимент в режиме эмуляции - при условии отсутствия реального PLC с объектом управления."
Теперь я Вам высылаю новый проект выполненном в релизе 6.08, от отличается от ранее высланного - уменьшением количества элементов в экранах, отключение ненужных программ-обработчиков экранов.
Когда Вы получите и откроете проект. После его компиляции и запуска, Вы увидите экран Мнемосхема, на котором (слева посередине) имеется поле (над ним будет надпись "Счетчик") которое отображает число циклов программы-обработчика.
Такие счетчики также установлены на экране "Дозатор", "Карман" и "Тех. карта" и которые ведут подсчет ЗНАЧИТЕЛЬНО медленне чем счетчик "Мнемосхемы".
При этом в релизе 6.06. Данные счетчики отрабатываются с одинаковой (по крайней мере так кажется) скоростью
С чем это связано и как это исправить?????????????? Может это связано из-за большого числа использования функций в программах????????????
Также нашел одну неприятную особенность в релизе 6.08. Если в одном из аргументов экрана будет привязка к несуществующему аргументу другого экрана (или программы) или канала, то данный экран перестает отрабатываться (атридут 45 не изменяется). При этом во время компиляции НЕ ПОЯВЛЯЕТСЯ НИ ОДНОГО СООБЩЕНИЯ ОБ ОШИБКЕ, мол все нормально работайте дальше. А ты потом сиди и ломай голову почему не отрабатывает экран.
Когда проект маленький, то конечно можно "пробежаться" по нему вручную и выяснить что не так. А если проект большой, то проверять все это вручную становится довольно накладно.
Сообщения / Posts 41 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
1. В программах, циклы пересчета которых Вы считаете и выводите на экраны, есть условные операторы с выходом RETURN. В счетчики стоят в конце программы. В результате, в зависимости от конкретных условий в программах счетчики в каких-то вызовах программ не считают. Перенесите счетчики в начало каждой программы - все счтечики будет показывать количество вызовов своих программ.
2. Надо при запуске узла посмотреть в протокол профайлера и в файл tm6_log.txt. Ошибки, указываюшие на неправильные привязки аргументов в этих протоколах должны указываться. После компиляции проекта такие ошибки должны отмечаться в файле типа to_05_03_13_16_alpha_0.txt
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Ширинкин Андрей
Forum Member / Участник форума
Участник № / Member № 3320
отправлено / posted
По второму пункту все ясно
По первому пункту...
Все верно программа и правда отрабатывает эти RETURNы. Но они мне необходимы для отслеживания закрытия экрана по крестику (расположен в верхнем правом углу).
в версии 6.06 я смотрел в атрибут 45 (время изменения) и 88 (миллисекунды) и в зависимости от их изменения или наоборот не изменения я делал вывод о закрытии экрана.
В версии же 6.08 Вы почему то отключили атрибут 88, т.е. при открытии экрана данный атрибут равен НУЛЬ. При этом атрибут 88 у программ функционирует
Вопрос: Это ошибка программистов? Или Вы это специально сделали и если да, то зачем Вы это сделали?
Сообщения / Posts 41 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Обработка каналов, вызывающих экраны, осуществляется в отдельном асинхронном потоке низкого приоритета. Измерение периодов обработки таких каналов с высокой точностью не имеет смысла. Вы в своих программах вполне удовлетворительно контролируете состояние экрана по атрибуту 45. Но описанная выше проблема якобы "замедления счетчиков" функционированием атрибута 88 не определяется. Счетчики показывают правильно, адекватно работе программ.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Ширинкин Андрей
Forum Member / Участник форума
Участник № / Member № 3320
отправлено / posted
Все разобрался как сделать пошустрее.
Но остается одна нерешенная проблема:
Когда вы сделаете полноценный контроль закрытия экрана. А то если честно Вы это обещаете из версии к версии, а результатов не видно.
Или хотя бы сделайте возможность отключения верхней панели у экранов, где расположен "Х" (крестик). И тогда пользователь сможет закрыть экран только по соответствующей кнопке, которую я ему создам.
Сообщения / Posts 41 | Из / From: Российская Федерация
| IP / IP: IP адрес / IP address |
отправлено / posted
Атрибут 88 у CALL.SCREEN восстановлен не будет. Надо адаптировать программу к контролю по атрибуту 45.
Сообщения / Posts 17316 | Из / From: Россия
| IP / IP: IP адрес / IP address |