Страница 41 из 45

Версия программы 4.х

Добавлено: 14 янв 2019, 19:35
aidar_i
support писал(а): 13 янв 2019, 14:15Уфф, разобрался.
Раньше стоял по умолчанию FBD, сейчас нужно, оказывается, выбирать. Сейчас только увидел :)

Версия программы 4.х

Добавлено: 15 янв 2019, 11:02
ItsMe
Здравствуйте, [ref=#00aa00]support[/ref]!
Спасибо Вам за труды.
Заметил такую вещь: при использовании пользовательских блоков они не заворачиваются в процедуру, а просто копируется код блоков столько раз, сколько раз они используются. Никак нельзя попробовать это реализовать? Ведь программа раздувается от этого.
Вот простой пример:
2 пользовательских блоки и при компилировании - 2 одинаковых фрагмента кода вместо одной процедуры.

Версия программы 4.х

Добавлено: 15 янв 2019, 11:13
Sancho
[ref]ItsMe[/ref], Автор,[ref=#00aa00]support[/ref], здесь при чём?
Для того, что-бы не дублировать код, нужно код завернуть в функцию, блок сделать одноразовым, что-бы имя функции не удрало :) , а в остальных - просто вызывать функцию со своими параметрами.
Вопросы к автору блока.

Версия программы 4.х

Добавлено: 15 янв 2019, 11:18
ItsMe
ussrtk писал(а): 14 янв 2019, 12:00В перечне базовых элементов есть "клемма". Очень прикольный блок: создаете в одной плате переменную и теперь можете подключать к ней блоки в других платах.
Ранее вы подключали саму переменную из другой платы - но тогда компилятор создавал каждый раз новую глобальную переменную и тратил память. А при использовании клемм память расходуется экономнее.
Когда у вас связей между платами немного или вы все делаете в одной плате - это вам не нужно. А в сложных проектах очень и очень кстати.
Провел эксперимент: Удалил из существующего проекта переменную и заменил ее на клемму. Разница в размере скетча = 0, а разница в используемой переменными памяти исчисляется единицами байт. Не такой уж большой выигрыш в памяти. Может надо проект переписывать полностью или я не так что-то делаю, но факт остается фактом. Пошел дальше. При замене в проекте 3-х переменных типа int и 2 типа boolean на клеммы разница в памяти под переменные = 8 байт., а размер скетча остался неизменным.

Версия программы 4.х

Добавлено: 15 янв 2019, 11:20
ItsMe
Sancho писал(а): 15 янв 2019, 11:13Для того, что-бы не дублировать код, нужно код завернуть в функцию, блок сделать одноразовым, что-бы имя функции не удрало :) , а в остальных - просто вызывать функцию со своими параметрами.
Вопросы к автору блока.
Можно на примере? Во вложении был пример. Как там это делается? Буду рад учится. Спасибо.

Версия программы 4.х

Добавлено: 15 янв 2019, 11:25
ItsMe
Еще одно маленькое пожелание:
В основном блоке меню сделать переключение целочисленных значений по кругу? 0-1-2-3-0 и т.д.

Версия программы 4.х

Добавлено: 15 янв 2019, 11:36
Alias
Sancho писал(а): 15 янв 2019, 11:13Автор,support, здесь при чём?
Я тоже экспериментировал над оптимизацией, загоняя повторяющиеся куски в пользовательские блоки, после того, как сам Автор отметил, что пользовательские блоки вызываются, как функция, что позволяет экономить память. Видимо, неверно понял.

Отправлено спустя 3 минуты 7 секунд:
Вот, кстати, нашел: viewtopic.php?p=60439#p60439
[spoiler]
support писал(а): 16 дек 2018, 19:18
RedSky писал(а): 16 дек 2018, 19:12Внесу предложение в плане развития возможностей программы. Как насчёт создать блок пользователя-функцию. Смысл в том чтобы использовать один и тот же код в разных частях проекта. К примеру расчёт температуры от нескольких терморезисторов с разных аналоговых входов. Сейчас придётся использовать одинаковые блоки на каждый датчик (значительный расход ресурсов для одинаковых действий) или создавать свой блок с функцией на нужное количество датчиков.
Если использовать пользовательские блоки на FBD или LAD то это именно так и работает. То есть код самого блока вынесен в функцию (при многократном его использовании код не дублируется), а в месте его применения просто вызывается эта функция. Блоки на С немного по другому устроены, но там то же можно подобный функционал написать. Те кто их пишет - поймут как
[/spoiler]

Версия программы 4.х

Добавлено: 15 янв 2019, 11:40
Sancho
[ref]ItsMe[/ref], Пример здесь и тут
support писал(а):Блоки на С немного по другому устроены, но там то же можно подобный функционал написать.
[ref=#404040]Alias[/ref], Речь о коде на С++

Версия программы 4.х

Добавлено: 15 янв 2019, 11:44
support
ItsMe писал(а): 15 янв 2019, 11:18ри замене в проекте 3-х переменных типа int и 2 типа boolean на клеммы разница в памяти под переменные = 8 байт., а размер скетча остался неизменным.
Так клеммы и предназначены для замены переменных (где это возможно), и облегчения коммутации между платами.

Отправлено спустя 1 минуту 41 секунду:
Alias писал(а): 15 янв 2019, 11:36что пользовательские блоки вызываются, как функция, что позволяет экономить память
Это касается блоков FBD и LAD

Отправлено спустя 1 минуту 30 секунд:
Ну всё, убегаю на автобус. Три дня в дороге, так что абонент не абонент))))))

Версия программы 4.х

Добавлено: 15 янв 2019, 11:45
aidar_i
ItsMe писал(а): 15 янв 2019, 11:18Не такой уж большой выигрыш в памяти.
Этот выигрыш будет существенным, если переменных ну очень много, у меня был проект, где памяти для переменных не хватало около 10 байт(тогда еще не умел оптимизировать код), не полезло в Уно, пришлось купить Леонардо, там памяти для переменных больше.

Версия программы 4.х

Добавлено: 15 янв 2019, 11:45
Sancho
support писал(а): 15 янв 2019, 11:44Ну всё, убегаю на автобус. Три дня в дороге, так что абонент не абонент))))))
Счастливого пути!!!

Версия программы 4.х

Добавлено: 15 янв 2019, 11:54
ItsMe
Вот, спасибо, [ref=#404040]Alias[/ref], помог.
Иногда правильный пинок лучше целого урока.
Надо попробовать переписать блок в формат FBD.

Версия программы 4.х

Добавлено: 15 янв 2019, 12:23
Alias
Sancho писал(а): 15 янв 2019, 11:40Речь о коде на С++
Действительно. У меня версия 303, в ней только и пишу, чтобы хоть что-то сваять без неожиданностей :)
support писал(а): 15 янв 2019, 11:44Это касается блоков FBD и LAD
ItsMe писал(а): 15 янв 2019, 11:54Надо попробовать переписать блок в формат FBD.
Да, в FBD и делал, у меня трехканальная система для бойлерной и дублируются по сути основные алгоритмы трижды. Пробовал ради интереса повторяющиеся схемы загонять в пользовательские блоки, чтобы в Нано поместилось, но выгод вообще не заметил, видимо, тот еще ламер. Пришлось много оптимизировать иначе.

Версия программы 4.х

Добавлено: 15 янв 2019, 12:28
ItsMe
[ref=#00aa00]support[/ref], Добавьте функцию LOG, пожалуйста.

Версия программы 4.х

Добавлено: 15 янв 2019, 15:14
ussrtk
ItsMe писал(а): 15 янв 2019, 11:18
ussrtk писал(а): 14 янв 2019, 12:00В перечне базовых элементов есть "клемма". Очень прикольный блок: создаете в одной плате переменную и теперь можете подключать к ней блоки в других платах.
Ранее вы подключали саму переменную из другой платы - но тогда компилятор создавал каждый раз новую глобальную переменную и тратил память. А при использовании клемм память расходуется экономнее.
Когда у вас связей между платами немного или вы все делаете в одной плате - это вам не нужно. А в сложных проектах очень и очень кстати.
Провел эксперимент: Удалил из существующего проекта переменную и заменил ее на клемму. Разница в размере скетча = 0, а разница в используемой переменными памяти исчисляется единицами байт. Не такой уж большой выигрыш в памяти. Может надо проект переписывать полностью или я не так что-то делаю, но факт остается фактом. Пошел дальше. При замене в проекте 3-х переменных типа int и 2 типа boolean на клеммы разница в памяти под переменные = 8 байт., а размер скетча остался неизменным.
Да, теоретически так и должно быть: тело скетча не изменяется, меняется занятость динамической памяти для переменных. Так что ваш эксперимент, вроде, поучился...

Версия программы 4.х

Добавлено: 15 янв 2019, 19:12
whitevip
Скажите пожалуйста когда я открываю проект выходит такая ошибка, из за чего это?


Скрин http://prntscr.com/m7jv5x

Версия программы 4.х

Добавлено: 15 янв 2019, 20:59
AlexCrane
[ref]whitevip[/ref], Поврежден файл с пользовательскими блоками, восстанови из резервной копии

Версия программы 4.х

Добавлено: 15 янв 2019, 21:28
ElectroMechaniC
Sancho писал(а): 14 сен 2018, 12:16увеличения
Нет, Вы не один! Давно уже акцентирую внимание на этом)))

Версия программы 4.х

Добавлено: 16 янв 2019, 17:48
aidar_i
Ошибка. не влияющая на работу программы:
[spoiler]
Снимок_2019_01_16_19_43_30_199.png
[/spoiler]

Версия программы 4.х

Добавлено: 16 янв 2019, 19:59
Sancho
[ref]aidar_i[/ref], :)