ВРЕМЯ ЦИКЛА или что убивает ваш проект.

ecoins
Полковник
Сообщения: 2923
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#41

Сообщение ecoins » 16.09.2021{, 21:50}

sergserg писал(а):
16.09.2021{, 21:16}
если завести таймер/ы на первой плате и по ним запускать другие платы - это же равнозначно диспетчеру задач вашему? принцип тот же?
Это уже хороший шаг.
rw6cm писал(а):
16.09.2021{, 01:21}
ESP32 Штатный дисплей 1.zip
В этом тесте с точки зрения использования времени процессора почти все сделано очень плохо.

Отправлено спустя 3 минуты 40 секунд:
Dryundel писал(а):
16.09.2021{, 21:24}
Приостановите слегка полет мыслей.
Если Вы что-то не понимаете в наших разработках, это совсем не значит что там "полет мыслей".
Dryundel писал(а):
16.09.2021{, 21:24}
ecoins, было бы не плохо, если бы Вы сделали вариант проекта из первого поста со штатными блоками дисплея и диспетчером задач и выложили здесь.
Завтра попробую сделать.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#42

Сообщение edyapd » 17.09.2021{, 08:13}

Я конечно не очень силён в C, но мне кажется, что доработать родной блок для автора программы будет не так уж и сложно, чтобы он не так тормозил.
К примеру я это вижу так:
Убрать очистку дисплея. А вместо неё вставить функцию, которая бы добавляла пробелы, если новая строка оказалась короче старой.
При неактивном входе En не очищать строку, а просто игнорировать этот блок. Очистку же строки делать подачей пустой строки на вход.
Убрать сравнение на длину строки при выводе константы. И так понятно, что она одна и та же.
Возможно вставить сравнение строк. И если они равны, то пропускать вывод на дисплей.
Единственное неудобство я вижу только в том, что если будут помехи и на экран будет выводится мусор. Но думаю это тоже решаемо.

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#43

Сообщение aidar_i » 17.09.2021{, 09:37}

Я тоже задаюсь таким вопросом
ecoins писал(а):
16.09.2021{, 21:54}
Что такое 6cm мне понятно.
Это размер носа или .... :)

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#44

Сообщение Dryundel » 17.09.2021{, 10:00}

edyapd писал(а):
17.09.2021{, 08:13}
но мне кажется, что доработать родной блок для автора программы будет не так уж и сложно, чтобы он не так тормозил.
К примеру я это вижу так:...
edyapd, скорей изучайте С++ и Редактор ПБ. У Вас отличные идеи. Надо воплощать.
А Автор пусть 8-ю версию допиливает. В этом гораздо больше пользы.

aidar_i
Полковник
Сообщения: 3120
Зарегистрирован: 24.12.2016{, 16:55}
Репутация: 674
Откуда: Уфа
Имя: Айдар
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#45

Сообщение aidar_i » 17.09.2021{, 10:17}

eduard писал(а):
17.09.2021{, 10:00}
доработать родной блок для автора
Dryundel писал(а):
17.09.2021{, 10:00}
А Автор пусть 8-ю версию допиливает
А допилить lcd можно и с помощью пользовательских блоков.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#46

Сообщение Sancho » 17.09.2021{, 11:59}

Dryundel писал(а):
15.09.2021{, 11:01}
Реальное сравнение вывода информации:
DISP - примерно 5мс
LCD 2.18 - примерно 6 мс
.
Так в чем же фишка? А все дело в том, что штатный блок из цикла в цикл выводит информацию на дисплей. Т.е. берет данные со входа, стирает все что ранее было выведено (весь дисплей ) и пишет заново и это каждый цикл, независимо от того изменилась информация на входе или нет.
Еще по причине того, что стирается вся информация, любое изменение на дисплее приводит к его мерцанию. Попробуйте например вывести показания часов с мигающим двоеточием или мигающий символ для навигации по меню. Получите весьма неприглядную картинку.
Пример кода - инкрементируемую переменную _gtv2 unsigned long integer на дисплей

Код: Выделить всё

void loop()
{
if (_isNeedClearDisp1) {_lcd1.clear(); _isNeedClearDisp1= 0;}
//Плата:1
if (1) {
_dispTempLength1 = (((String(_gtv2, DEC)))).length();
if (_disp1oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor(1, 0);
_lcd1.print(((String(_gtv2, DEC))));
} else {
if (_disp1oldLength > 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;} 
}
Переменная, флаг _isNeedClearDisp1, взводится при уменьшении длины выводимого содержимого по сравнению с предыдущим циклом, запоминается не вся строка а только её длина.
Так-же она взводится при выключении блока, EN, если в предыдущем цикле было количество символов, отличное от нуля; количество после взвода флага обнуляется для неповторения.
В начале цикла - контроль флага, при true очистка дисплея и сброс флага.
Информация на дисплей выводится в каждом цикле.
Стирание, команда очистки дисплея, при инкрементировании (увеличении на 1) происходить будет только при выводе 0.
Касательно часов и двоеточия - не знаю о чём точно идёт речь, каком конкретно случае, но при отсутствии в строке двоеточия её длинна не изменяется.
Мигающий символ - это интересно, ведь есть мигающий курсор, да много как обозначить.
Способов бороться с тормозами много, один из них я описывал в вышеупомянутой теме - выделение отдельного мк под дисплей(для esp32, возможно, передача задачи второму ядру), отказ от дисплея, и т.п. Не факт, что без дисплея всё ускорится до 10мкс/ц, может что-то другое так-же вносит задержку.
Временные характеристики дисплея описаны, команды разжёваны - всё заканчивается на задаче конкретного пользователя.
Как-то так.

Отправлено спустя 9 минут 56 секунд:
При желании Автора, сделать вариант выбора и дописать код под предложенный выше вариант, периодический вывод, не сложно.
Таким же образом третий вариант можно сделать по изменению, но за счёт оперативки.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#47

Сообщение Dryundel » 17.09.2021{, 12:30}

Sancho писал(а):
17.09.2021{, 11:59}
Сразу понятно - полного анализа кода не было.
Пример кода - инкрементируемую переменную _gtv2 unsigned long integer на дисплей
... и далее по тексту
Sancho, ну зачем столько агресии.
Я уже писал:
Dryundel писал(а):
15.09.2021{, 17:52}
Я все понял. Блок LCD_V2.18 - г...но. Спорить не буду. :)
Предлагай свои версии блоков. На то и тема что бы решить проблему. (О как! Даже в рифму :) )
Те для кого написана статья нифига не поняли о чем ты тут вообще пытаешься сказать.
Пожалуйста, обрати внимание на самую первую строчку в самом первом посте.
А если уж взялся критиковать в данной теме, то попробуй все сказанное перевести на язык обывателя и обратить в простые формы. Слабо?
Sancho писал(а):
17.09.2021{, 11:59}
Мигающий символ - это интересно, ведь есть мигающий курсор, да много как обозначить.
А попробуй ка сделать мигающий курсор используя штатные средства. Вряд ли получится.
Sancho писал(а):
17.09.2021{, 11:59}
Временные характеристики дисплея описаны, команды разжёваны
Это на кого рассчитано? До кого пытаешься донести важную информацию? До новичков?
Или просто бубнишь по стариковски? :D
.
Не обижайся пожалуйста но данная агрессия здесь явно НЕ В ТЕМУ.

Отправлено спустя 2 минуты 46 секунд:
Sancho писал(а):
17.09.2021{, 12:08}
При желании Автора, сделать вариант выбора и дописать код под предложенный выше вариант, периодический вывод, не сложно.
Еще раз.
Dryundel писал(а):
15.09.2021{, 16:42}
Кабы у бабушки был.... Ну вы знаете.
Последний раз редактировалось Dryundel 17.09.2021{, 15:33}, всего редактировалось 3 раза.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#48

Сообщение Dryundel » 17.09.2021{, 12:35}

Sancho писал(а):
17.09.2021{, 12:08}
Таким же образом третий вариант можно сделать по изменению, но за счёт оперативки.
А вот это уже конструктивный разговор. Хочешь предложить вариант - излагай. Поместим его в первые посты.

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#49

Сообщение Sancho » 17.09.2021{, 13:27}

цитатаПоказать
Sancho писал(а):
17.09.2021{, 12:08}
Dryundel писал(а):
15.09.2021{, 11:01}
Реальное сравнение вывода информации:
DISP - примерно 5мс
LCD 2.18 - примерно 6 мс
.
Так в чем же фишка? А все дело в том, что штатный блок из цикла в цикл выводит информацию на дисплей. Т.е. берет данные со входа, стирает все что ранее было выведено (весь дисплей ) и пишет заново и это каждый цикл, независимо от того изменилась информация на входе или нет.
Еще по причине того, что стирается вся информация, любое изменение на дисплее приводит к его мерцанию. Попробуйте например вывести показания часов с мигающим двоеточием или мигающий символ для навигации по меню. Получите весьма неприглядную картинку.
Сразу понятно - полного анализа кода не было.
Пример кода - инкрементируемую переменную _gtv2 unsigned long integer на дисплей

Код: Выделить всё

void loop()
{
if (_isNeedClearDisp1) {_lcd1.clear(); _isNeedClearDisp1= 0;}
//Плата:1
if (1) {
_dispTempLength1 = (((String(_gtv2, DEC)))).length();
if (_disp1oldLength > _dispTempLength1) {_isNeedClearDisp1 = 1;} 
_disp1oldLength = _dispTempLength1;
_lcd1.setCursor(1, 0);
_lcd1.print(((String(_gtv2, DEC))));
} else {
if (_disp1oldLength > 0) {_isNeedClearDisp1 = 1; _disp1oldLength = 0;} 
}
Переменная, флаг _isNeedClearDisp1, взводится при уменьшении длины выводимого содержимого по сравнению с предыдущим циклом, запоминается не вся строка а только её длина.
Так-же она взводится при выключении блока, EN, если в предыдущем цикле было количество символов, отличное от нуля; количество после взвода флага обнуляется для неповторения.
В начале цикла - контроль флага, при true очистка дисплея и сброс флага.
Информация на дисплей выводится в каждом цикле.
Стирание, команда очистки дисплея, при инкрементировании (увеличении на 1) происходить будет только при выводе 0.
Касательно часов и двоеточия - не знаю о чём точно идёт речь, каком конкретно случае, но при отсутствии в строке двоеточия её длинна не изменяется.
Мигающий символ - это интересно, ведь есть мигающий курсор, да много как обозначить.
Способов бороться с тормозами много, один из них я описывал в вышеупомянутой теме - выделение отдельного мк под дисплей(для esp32, возможно, передача задачи второму ядру), отказ от дисплея, и т.п. Не факт, что без дисплея всё ускорится до 10мкс/ц, может что-то другое так-же вносит задержку.
Временные характеристики дисплея описаны, команды разжёваны - всё заканчивается на задаче конкретного пользователя.
Как-то так.

Отправлено спустя 9 минут 56 секунд:
При желании Автора, сделать вариант выбора и дописать код под предложенный выше вариант, периодический вывод, не сложно.
Таким же образом третий вариант можно сделать по изменению, но за счёт оперативки.
Dryundel писал(а):
17.09.2021{, 12:32}
Sancho, успокойся, глотни валерианочки, не надо брызгать слюной в попытке отстоять штатный блок дисплея.
Dryundel писал(а):
17.09.2021{, 12:32}
Не обижайся пожалуйста но данная агрессия здесь явно НЕ В ТЕМУ.
Не понял кому последнее пожелание?
Dryundel писал(а):
17.09.2021{, 12:32}
Те для кого написана статья нифига не поняли о чем ты тут вообще пытаешься сказать.
Пожалуйста, обрати внимание на самую первую строчку в самом первом посте.
А если уж взялся критиковать в данной теме, то попробуй все сказанное перевести на язык обывателя и обратить в простые формы. Слабо?
Содержание темы, содержание постов, давно вышло за рамки новичков.
Критика касается только изложенных слов касательно описания ситуации.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

ecoins
Полковник
Сообщения: 2923
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#50

Сообщение ecoins » 17.09.2021{, 13:30}

edyapd писал(а):
17.09.2021{, 08:13}
Я конечно не очень силён в C, но мне кажется, что доработать родной блок для автора программы будет не так уж и сложно, чтобы он не так тормозил.
Мы не обнаружили приемлемого способа изменения исходного кода C++ встроенных пользовательских блоков автора.
Те же проблемы, если мы сами делаем собственные встроенные блоки - поэтому мы перестали их пока делать. Поэтому блоки нашей разработки размещаем в разделе пользовательские блоки.
------------
Текущая тема "ВРЕМЯ ЦИКЛА" во многом заполнилась значительным кол-вом материала посвященной дисплеев типа HD44780 (лет 40 назад их разработали - удивительно, что так и не появилась модификация с полностью настраиваемым знакогенератором).
Возможно полезно автору темы выделить вопросы по HD44780 в отдельную тему.
------------
Субъективное мнение ecoins по HD44780:
1.Стандартную библиотеку LCD HD44780 следует прекратить - при росте проектов это всегда (ВСЕГДА!!!) источник проблем с быстродействием.
2.Есть библиотека от ecoins с существенно большим функционалом. Её несколько больший размер с лихвой компенсируется тем, что внешних обслуживающих LCD функций становится существенно меньше.
3.Дисплей LCD HD44780 весьма устаревшая конструкция и тратить усилия на бесконечное совершенствование программного обеспечения не стоит - на это справедливо обращает внимание и nalnik (правда в присущей для него "резковатой" форме.
4.Созданная тема "ВРЕМЯ ЦИКЛА" для обсуждения и исследования методов оптимизации про времени проектов для FLProg сама по себе более важная чем тема LCD.
5.Активные участники обсуждения темы довольно-таки поверхностно (прошу не обижаться - намерений таких нет, мнение субъективное) представляют глубину и важность проблемы. Она действительно важная и её разрешение предопределяет уход от разочарования "новичков" по мере усложнения проектов. В начале "магия" возможностей от визуального программирования в FLProg, а затем разочарования от того, что проекты "тормозят". Сами прошли через этого, помогли и некоторым участникам форума.
6.По нашим наблюдениям те участники форума - "новички" - которые освоили простые методы работы со временем, реализованные в проектах ecoins, продолжают их использовать уже естественным образом не испытывая каких-либо проблем и сложностей.
В этом ветке они не размещали своих отзывов - возможно по понятным для меня причинам.
-----------
Успехов с надеждой на сотрудничество.

Аватара пользователя
nalnik
Подполковник
Сообщения: 1324
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 100
Откуда: Кисловодск
Имя: Александр

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#51

Сообщение nalnik » 17.09.2021{, 13:35}

ecoins писал(а):
17.09.2021{, 13:30}
3.Дисплей LCD HD44780 весьма устаревшая конструкция и тратить усилия на бесконечное совершенствование программного обеспечения не стоит - на это справедливо обращает внимание и nalnik (правда в присущей для него "резковатой" форме.
Спасибо что услышали.
:smile9:

Отправлено спустя 5 минут 22 секунды:
Sancho писал(а):
17.09.2021{, 13:27}
Не понял кому последнее пожелание?
Если ваш оппонент перешёл на оскорбления — значит, вы его победили.
Я хочу быть добрее, но люди сами нарываются.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#52

Сообщение Dryundel » 17.09.2021{, 13:58}

nalnik писал(а):
17.09.2021{, 13:40}
Если ваш оппонент перешёл на оскорбления — значит, вы его победили.
Здаюсь! Капитулирую!
Кто следующий?
Есть у кого то злая критика в мой адрес? К барьеру! :smile171:

Отправлено спустя 1 минуту 7 секунд:
Даю слово - дизлайков не будет.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#53

Сообщение edyapd » 17.09.2021{, 14:18}

ecoins писал(а):
17.09.2021{, 13:30}
Мы не обнаружили приемлемого способа изменения исходного кода C++ встроенных пользовательских блоков автора
Можно по пунктам, что из предложенного мной невозможно реализовать? Это мне нужно, так сказать, для собственного развития.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#54

Сообщение Dryundel » 17.09.2021{, 14:58}

Ну хорошо Sancho, с этим согласен.
Sancho писал(а):
17.09.2021{, 12:08}
Переменная, флаг _isNeedClearDisp1, взводится при уменьшении длины выводимого содержимого по сравнению с предыдущим циклом, запоминается не вся строка а только её длина.
Так-же она взводится при выключении блока, EN, если в предыдущем цикле было количество символов, отличное от нуля; количество после взвода флага обнуляется для неповторения.
В начале цикла - контроль флага, при true очистка дисплея и сброс флага.
Очистка производится не в каждом цикле. Давненько я писал блок и кое что запамятовал.
Однако это мало что меняет.
Потому как, не будешь же ты отрицать что:
Sancho писал(а):
17.09.2021{, 12:08}
Информация на дисплей выводится в каждом цикле.
А это не есть гут. И соответственно портит всю картину.
Да, да, да... можно решить эту проблему и не запускать блок в каждом цикле. Но я ведь уже указал на такой вариант в третьем посте.
.
Вот только не надо начинать с этого:
Sancho писал(а):
17.09.2021{, 12:08}
Сразу понятно - полного анализа кода не было.
А то ведь такое можно расценить как оскорбление. :)
.
К стати, nalnik, ради справедливости, поставь те ка дизлайк этому господину за хамство в соответствующем посте. :) А то как то предвзятость чувствуется.
Последний раз редактировалось Dryundel 17.09.2021{, 15:23}, всего редактировалось 1 раз.

Аватара пользователя
nalnik
Подполковник
Сообщения: 1324
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 100
Откуда: Кисловодск
Имя: Александр

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#55

Сообщение nalnik » 17.09.2021{, 15:20}

Dryundel писал(а):
17.09.2021{, 14:58}
К стати, nalnik, ради справедливости, поставь ка дизлайк этому господину за хамство в соответствующем посте. А то как то предвзятость чувствуется.
Во-первых - не "тыкайте".
Во-вторых - "этот господин" не обвинял Вас здесь публично в "греховных связях с Дионисом", и ни чем тут не брызгал.

:smile225:
И заберите свой плюсик!
Я хочу быть добрее, но люди сами нарываются.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#56

Сообщение Dryundel » 17.09.2021{, 15:30}

nalnik писал(а):
17.09.2021{, 15:20}
Во-первых - не "тыкайте".
Извиняюсь. Поправил.
nalnik писал(а):
17.09.2021{, 15:20}
Во-вторых - "этот господин" не обвинял Вас здесь публично в "греховных связях с Дионисом".
Ну как же, а это:
Sancho писал(а):
17.09.2021{, 12:08}
Сразу понятно - полного анализа кода не было.
С чего такое пренебрежение? С какой стати такие выводы? Типа показать кто здесь крут, а кто ничего в коде не понимает?
.
А вообще, лучше потереть последние препирательства и продолжить конструктивную беседу.
Кто ЗА?
Самую обидную фразу, сейчас поправлю. А остальное все по существу было.

Отправлено спустя 8 минут 2 секунды:
nalnik писал(а):
17.09.2021{, 15:20}
И заберите свой плюсик!
Ну уж нет! пусть останется как напоминание о предвзятости. :)

Отправлено спустя 2 минуты 11 секунд:
Вы же, уважаемый nalnik, не собираетесь забирать свой минусик.

Аватара пользователя
nalnik
Подполковник
Сообщения: 1324
Зарегистрирован: 14.05.2016{, 17:12}
Репутация: 100
Откуда: Кисловодск
Имя: Александр

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#57

Сообщение nalnik » 17.09.2021{, 15:47}

Dryundel писал(а):
17.09.2021{, 15:40}
Вы же, уважаемый nalnik, не собираетесь забирать свой минусик.
И не собираюсь!
Вы как ребенок - думаете что если "затерли" свое хамство - то стали лучше?
:nono: Вы просто запутали теперь всех окончательно.
Я хочу быть добрее, но люди сами нарываются.

com
Капитан
Сообщения: 831
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 83
Откуда: Санкт-Петербург
Имя: Ринат

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#58

Сообщение com » 17.09.2021{, 15:54}

Тема очень нужная и полезная, но как то... очень агрессивно что ли....

Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25.12.2015{, 17:32}
Репутация: 590
Откуда: Ярославль.
Имя: Александр
Контактная информация:

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#59

Сообщение Sancho » 17.09.2021{, 16:00}

Для теста, просто железа уже нету никакого под рукой.
LCD 2.18_03.flp
(260.12 КБ) 51 скачивание
Только одна строчка дополнительная.
Остальное штатными средствами.
Вроде почти полный повтор изначального.

Отправлено спустя 29 минут 6 секунд:
Есть при создании проектов, которые будут пользовать другие люди, а и самому тоже никогда не помешает, такое правило - одно дёрганье за цикл и из одного места. siemens-> читаем входы во входные переменные - цикл программы - запись выходов, повтор предыдущих шагов. Прерывания тоже есть, но это отдельные обработчики.
Иначе идём в С++. Пишем и комментируем. Комментариев много не бывает никогда, наоборот - часто, посему печально.
Другими словами, хотим мы, как в нашем конкретном случае, вывести данные на дисплей - нужно собрать необходимое и в одном месте это всё отправить. Выделить плату, две, три под эти цели, как посчитаете сами.
Главное в таком случае - Вы будете всё видеть, в пределах экрана РС, как формируется Ваша строка, переменная.
Иногда посмотришь на проекты - тут выводим одно, выключим, выводим в другом месте - потом запутались, одно поверх другого. Размер кода растёт вместе с блоками на платах.
Подобное часто наблюдается с выходами у новичков - здесь включат, на следующей плате выключат - потом хелп, "Щёлкает, но не работает!"
Касательно самой темы уже писал - можно и супер проц уложить нагрузкой, а можно распределить приоритеты.
Такое направление выбрал ecoins, можно и без его диспетчера для начала, просто выполнением по условию, которое Вы сами должны генерировать.
Как уже убедился - дисплей для момента отладок, настроек - когда конечное устройство работает дисплей не нужен.
Проверенно не раз - рисуешь скаду, даже на примитивах, стараешься, а когда спустя время всё работает то и забываешь о ней, максимум - а чего там было, на графиках гляну. Ну изредка уставку изменить.
Если это станок с несколькими настройками - сделать рецепты, настроить, сохранить, всё.
Я ни разу не видел оператора станка смотрящим на дисплей(экран) продолжительное время - запустил и до свидания.
Так может смотреть только наладчик, и то не продолжительное время - и даже в это время от дисплея не требуется максимальное участие в процессе. Конечно, бывают исключения, но это уже тот случай, когда проще посмотреть на график/лог/ подобное.
Я так вижу.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ingener
Лейтенант
Сообщения: 556
Зарегистрирован: 14.10.2018{, 00:26}
Репутация: 20
Имя: Андрей

ВРЕМЯ ЦИКЛА или что убивает ваш проект.

#60

Сообщение ingener » 17.09.2021{, 16:46}

Sancho писал(а):
17.09.2021{, 16:29}
Для теста,
в углу дисплея еле заметно горит число 128361

Ответить

Вернуться в «Обучающие примеры работы в FLProg»