Раньше стоял по умолчанию FBD, сейчас нужно, оказывается, выбирать. Сейчас только увидел
Версия программы 4.х
-
aidar_i
- Полковник
- Сообщения: 3419
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 23 раза
- Поблагодарили: 158 раз
- Контактная информация:
Версия программы 4.х
Версия программы 4.х
Здравствуйте, [ref=#00aa00]support[/ref]!
Спасибо Вам за труды.
Заметил такую вещь: при использовании пользовательских блоков они не заворачиваются в процедуру, а просто копируется код блоков столько раз, сколько раз они используются. Никак нельзя попробовать это реализовать? Ведь программа раздувается от этого.
Вот простой пример:
2 пользовательских блоки и при компилировании - 2 одинаковых фрагмента кода вместо одной процедуры.
Спасибо Вам за труды.
Заметил такую вещь: при использовании пользовательских блоков они не заворачиваются в процедуру, а просто копируется код блоков столько раз, сколько раз они используются. Никак нельзя попробовать это реализовать? Ведь программа раздувается от этого.
Вот простой пример:
2 пользовательских блоки и при компилировании - 2 одинаковых фрагмента кода вместо одной процедуры.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Версия программы 4.х
[ref]ItsMe[/ref], Автор,[ref=#00aa00]support[/ref], здесь при чём?
Для того, что-бы не дублировать код, нужно код завернуть в функцию, блок сделать одноразовым, что-бы имя функции не удрало
, а в остальных - просто вызывать функцию со своими параметрами.
Вопросы к автору блока.
Для того, что-бы не дублировать код, нужно код завернуть в функцию, блок сделать одноразовым, что-бы имя функции не удрало
Вопросы к автору блока.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Версия программы 4.х
Провел эксперимент: Удалил из существующего проекта переменную и заменил ее на клемму. Разница в размере скетча = 0, а разница в используемой переменными памяти исчисляется единицами байт. Не такой уж большой выигрыш в памяти. Может надо проект переписывать полностью или я не так что-то делаю, но факт остается фактом. Пошел дальше. При замене в проекте 3-х переменных типа int и 2 типа boolean на клеммы разница в памяти под переменные = 8 байт., а размер скетча остался неизменным.ussrtk писал(а): 14 янв 2019, 12:00В перечне базовых элементов есть "клемма". Очень прикольный блок: создаете в одной плате переменную и теперь можете подключать к ней блоки в других платах.
Ранее вы подключали саму переменную из другой платы - но тогда компилятор создавал каждый раз новую глобальную переменную и тратил память. А при использовании клемм память расходуется экономнее.
Когда у вас связей между платами немного или вы все делаете в одной плате - это вам не нужно. А в сложных проектах очень и очень кстати.
Версия программы 4.х
Можно на примере? Во вложении был пример. Как там это делается? Буду рад учится. Спасибо.Sancho писал(а): 15 янв 2019, 11:13Для того, что-бы не дублировать код, нужно код завернуть в функцию, блок сделать одноразовым, что-бы имя функции не удрало, а в остальных - просто вызывать функцию со своими параметрами.
Вопросы к автору блока.
Версия программы 4.х
Еще одно маленькое пожелание:
В основном блоке меню сделать переключение целочисленных значений по кругу? 0-1-2-3-0 и т.д.
В основном блоке меню сделать переключение целочисленных значений по кругу? 0-1-2-3-0 и т.д.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Alias
- Лейтенант
- Сообщения: 481
- Зарегистрирован: 27 ноя 2017, 13:15
- Откуда: Rus44
- Имя: Michael
- Контактная информация:
Версия программы 4.х
Я тоже экспериментировал над оптимизацией, загоняя повторяющиеся куски в пользовательские блоки, после того, как сам Автор отметил, что пользовательские блоки вызываются, как функция, что позволяет экономить память. Видимо, неверно понял.
Отправлено спустя 3 минуты 7 секунд:
Вот, кстати, нашел: viewtopic.php?p=60439#p60439
[spoiler]
[/spoiler]support писал(а): 16 дек 2018, 19:18Если использовать пользовательские блоки на FBD или LAD то это именно так и работает. То есть код самого блока вынесен в функцию (при многократном его использовании код не дублируется), а в месте его применения просто вызывается эта функция. Блоки на С немного по другому устроены, но там то же можно подобный функционал написать. Те кто их пишет - поймут какRedSky писал(а): 16 дек 2018, 19:12Внесу предложение в плане развития возможностей программы. Как насчёт создать блок пользователя-функцию. Смысл в том чтобы использовать один и тот же код в разных частях проекта. К примеру расчёт температуры от нескольких терморезисторов с разных аналоговых входов. Сейчас придётся использовать одинаковые блоки на каждый датчик (значительный расход ресурсов для одинаковых действий) или создавать свой блок с функцией на нужное количество датчиков.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Версия программы 4.х
[ref]ItsMe[/ref], Пример здесь и тут
[ref=#404040]Alias[/ref], Речь о коде на С++support писал(а):Блоки на С немного по другому устроены, но там то же можно подобный функционал написать.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- support
- Полковник
- Сообщения: 1936
- Зарегистрирован: 03 янв 2018, 11:45
- Откуда: Астрахань
- Имя: Сергей
- Поблагодарили: 56 раз
- Контактная информация:
Версия программы 4.х
Так клеммы и предназначены для замены переменных (где это возможно), и облегчения коммутации между платами.ItsMe писал(а): 15 янв 2019, 11:18ри замене в проекте 3-х переменных типа int и 2 типа boolean на клеммы разница в памяти под переменные = 8 байт., а размер скетча остался неизменным.
Отправлено спустя 1 минуту 41 секунду:
Это касается блоков FBD и LADAlias писал(а): 15 янв 2019, 11:36что пользовательские блоки вызываются, как функция, что позволяет экономить память
Отправлено спустя 1 минуту 30 секунд:
Ну всё, убегаю на автобус. Три дня в дороге, так что абонент не абонент))))))
Автор программы FLProg.
-
aidar_i
- Полковник
- Сообщения: 3419
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 23 раза
- Поблагодарили: 158 раз
- Контактная информация:
Версия программы 4.х
Этот выигрыш будет существенным, если переменных ну очень много, у меня был проект, где памяти для переменных не хватало около 10 байт(тогда еще не умел оптимизировать код), не полезло в Уно, пришлось купить Леонардо, там памяти для переменных больше.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Версия программы 4.х
Счастливого пути!!!support писал(а): 15 янв 2019, 11:44Ну всё, убегаю на автобус. Три дня в дороге, так что абонент не абонент))))))
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Версия программы 4.х
Вот, спасибо, [ref=#404040]Alias[/ref], помог.
Иногда правильный пинок лучше целого урока.
Надо попробовать переписать блок в формат FBD.
Иногда правильный пинок лучше целого урока.
Надо попробовать переписать блок в формат FBD.
- Alias
- Лейтенант
- Сообщения: 481
- Зарегистрирован: 27 ноя 2017, 13:15
- Откуда: Rus44
- Имя: Michael
- Контактная информация:
Версия программы 4.х
Действительно. У меня версия 303, в ней только и пишу, чтобы хоть что-то сваять без неожиданностей
Да, в FBD и делал, у меня трехканальная система для бойлерной и дублируются по сути основные алгоритмы трижды. Пробовал ради интереса повторяющиеся схемы загонять в пользовательские блоки, чтобы в Нано поместилось, но выгод вообще не заметил, видимо, тот еще ламер. Пришлось много оптимизировать иначе.
Версия программы 4.х
Да, теоретически так и должно быть: тело скетча не изменяется, меняется занятость динамической памяти для переменных. Так что ваш эксперимент, вроде, поучился...ItsMe писал(а): 15 янв 2019, 11:18Провел эксперимент: Удалил из существующего проекта переменную и заменил ее на клемму. Разница в размере скетча = 0, а разница в используемой переменными памяти исчисляется единицами байт. Не такой уж большой выигрыш в памяти. Может надо проект переписывать полностью или я не так что-то делаю, но факт остается фактом. Пошел дальше. При замене в проекте 3-х переменных типа int и 2 типа boolean на клеммы разница в памяти под переменные = 8 байт., а размер скетча остался неизменным.ussrtk писал(а): 14 янв 2019, 12:00В перечне базовых элементов есть "клемма". Очень прикольный блок: создаете в одной плате переменную и теперь можете подключать к ней блоки в других платах.
Ранее вы подключали саму переменную из другой платы - но тогда компилятор создавал каждый раз новую глобальную переменную и тратил память. А при использовании клемм память расходуется экономнее.
Когда у вас связей между платами немного или вы все делаете в одной плате - это вам не нужно. А в сложных проектах очень и очень кстати.
Версия программы 4.х
Скажите пожалуйста когда я открываю проект выходит такая ошибка, из за чего это?
Скрин http://prntscr.com/m7jv5x
Скрин http://prntscr.com/m7jv5x
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Версия программы 4.х
[ref]whitevip[/ref], Поврежден файл с пользовательскими блоками, восстанови из резервной копии
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
- ElectroMechaniC
- Сержант
- Сообщения: 230
- Зарегистрирован: 21 сен 2016, 06:50
- Откуда: Донецк
- Имя: Юрий
Версия программы 4.х
Нет, Вы не один! Давно уже акцентирую внимание на этом)))
-
aidar_i
- Полковник
- Сообщения: 3419
- Зарегистрирован: 24 дек 2016, 16:55
- Откуда: Уфа
- Имя: Айдар
- Благодарил (а): 23 раза
- Поблагодарили: 158 раз
- Контактная информация:
Версия программы 4.х
Ошибка. не влияющая на работу программы:
[spoiler][/spoiler]
[spoiler][/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
Версия программы 4.х
[ref]aidar_i[/ref], 
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость