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

Тестирование

Это мой личный форум. Здесь я буду задавать вопросы пользователям, проводить опросы, и тому подобное. Темы в этом форуме могу создавать только я, Вы можете создавать комментарии и отвечать на опросы.
Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

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

#801

Сообщение Phazz » 13.01.2019{, 20:40}

Стала очень сильно тормозить :(

Аватара пользователя
ussrsrtru
Рядовой
Сообщения: 36
Зарегистрирован: 27.02.2018{, 14:33}
Репутация: 19
Имя: Sergey

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

#802

Сообщение ussrsrtru » 13.01.2019{, 21:03}

Версия 4.2.4
Мелочь, но отметить нужно:
Если клемма в проекте одна - то при ее присоединении на вход она не отмечается, как подключенная.

Если больше одной - все штатно.
"Зри в корень!" К. Прутков.

whitevip
Лейтенант
Сообщения: 492
Зарегистрирован: 01.04.2017{, 20:25}
Репутация: 5
Имя: Имя

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

#803

Сообщение whitevip » 13.01.2019{, 21:40}

ussrsrtru, что такое клемма?
:smile37:

vovka1973
Майор
Сообщения: 1060
Зарегистрирован: 14.02.2016{, 14:16}
Репутация: 42
Откуда: kazahstan

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

#804

Сообщение vovka1973 » 14.01.2019{, 03:09}

whitevip писал(а):
13.01.2019{, 21:40}
что такое клемма?
это фишка новая ,мне нравится ,чтоб переменные не создавать :smile9:,
СпойлерПоказать
Снимок.JPG
Изображение

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 787
Откуда: Астрахань
Имя: Сергей
Контактная информация:

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

#805

Сообщение support » 14.01.2019{, 06:35}

Plastimo писал(а):
13.01.2019{, 17:19}
PCA9685 так-же как и раньше отсутствует в микросхемах расширений если проект на контроллере ESP8266. :( :( :( Пичалька.
Ребята, ну не успеваю я всё :moil: Да и хочу пока всё таки стабильную версию сделать, прежде чем выкатывать сильно бэту с номером 5 (там изменения планируются просто грандиозные, включая обновление версии языка программирования на котором написана программа).
Так что я пока стараюсь не сильно эксперементировать :umnik:
Автор программы FLProg.

SSSergeich
Капитан
Сообщения: 708
Зарегистрирован: 06.02.2016{, 11:01}
Репутация: 37
Откуда: Ярославль
Имя: Сергей

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

#806

Сообщение SSSergeich » 14.01.2019{, 09:31}

Sancho писал(а):
06.01.2019{, 11:49}
Нашёл существенную ошибку в блоке приёма с панели Nextion числовых данных:
При отключении связи с панелью переменная сбрасывается в 0, при соединении - восстанавливается.
Ошибка здесь:
if(_nextionTempLissen.code = 'q') {_nextionGetValue1_outputValue = _nextionTempLissen.number;};
Необходимо:
if(_nextionTempLissen.code == 'q') {_nextionGetValue1_outputValue = _nextionTempLissen.number;};
support писал(а):
05.01.2019{, 15:48}
Sancho писал(а): ↑
05.01.2019{, 12:04}

support писал(а): ↑
05.01.2019{, 10:55}
Немного попозже, сейчас со временем туго. На днях выложу новую версию, а потом буду занят с головой (по основной работе припахали((( )

Временное решение:
Найти строку в IDE, внизу программы,
temp.number = (cmd[4] << 24) | (cmd[3] << 16) | (cmd[2] << 8) | (cmd[1]);
Заменить на
temp.number = uint32_t(cmd[4]) << 24 | uint32_t(cmd[3]) << 16 | uint32_t(cmd[2]) << 8 | uint32_t(cmd[1]);

Отправлено спустя 1 минуту 11 секунд:
Сергей, может успеете в новую версию вставить?

Уже нет, я уже собрал релиз, сегодня вечером буду заливать на сервер. Через пару недель сделаю. Единственно чем смогу помочь, после 9-го сделаю патчик (именно по решению этой проблеммы) и пришлю Вам. Мне просто до 9-го по основной работе необходимо много сделать (а то уволят к черту)))) )
Ошибки на месте :(

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 787
Откуда: Астрахань
Имя: Сергей
Контактная информация:

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

#807

Сообщение support » 14.01.2019{, 09:58}

SSSergeich писал(а):
14.01.2019{, 09:31}
Sancho писал(а):
06.01.2019{, 11:49}
Нашёл существенную ошибку в блоке приёма с панели Nextion числовых данных:
При отключении связи с панелью переменная сбрасывается в 0, при соединении - восстанавливается.
Ошибка здесь:
if(_nextionTempLissen.code = 'q') {_nextionGetValue1_outputValue = _nextionTempLissen.number;};
Необходимо:
if(_nextionTempLissen.code == 'q') {_nextionGetValue1_outputValue = _nextionTempLissen.number;};
support писал(а):
05.01.2019{, 15:48}
Sancho писал(а): ↑
05.01.2019{, 12:04}

support писал(а): ↑
05.01.2019{, 10:55}
Немного попозже, сейчас со временем туго. На днях выложу новую версию, а потом буду занят с головой (по основной работе припахали((( )

Временное решение:
Найти строку в IDE, внизу программы,
temp.number = (cmd[4] << 24) | (cmd[3] << 16) | (cmd[2] << 8) | (cmd[1]);
Заменить на
temp.number = uint32_t(cmd[4]) << 24 | uint32_t(cmd[3]) << 16 | uint32_t(cmd[2]) << 8 | uint32_t(cmd[1]);

Отправлено спустя 1 минуту 11 секунд:
Сергей, может успеете в новую версию вставить?

Уже нет, я уже собрал релиз, сегодня вечером буду заливать на сервер. Через пару недель сделаю. Единственно чем смогу помочь, после 9-го сделаю патчик (именно по решению этой проблеммы) и пришлю Вам. Мне просто до 9-го по основной работе необходимо много сделать (а то уволят к черту)))) )
Ошибки на месте :(
То же не успел)))) я поправил только очень критичные ошибки (и то пришлось по ночам делать, днём на работе не получалось). Всё менее критичное позже..... Сейчас вон даже новость написать некогда, пашем в поте лица на плановом обслуживании турбины.
Автор программы FLProg.

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

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

#808

Сообщение Sancho » 14.01.2019{, 10:28}

Небольшое уточнение:
temp.number = uint32_t(cmd[4]) << 24 | uint32_t(cmd[3]) << 16 | uint32_t(cmd[2]) << 8 | uint32_t(cmd[1]); // все переменные как uint32_t
_nextionTempLissen.code == сравнение, веде, не только в числовых данных.
Для подтверждения приёма данных допиливаю код - получаю выход на один цикл "Новые данные"
СпойлерПоказать

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

_gtv2=0; // сбрасываем переменную "Новые данные"
if(_nextionGetValue2_isNU){_tempVariable_String = "get page0.va0.val";
_nextionTempLissen = nextionSendCommand(_tempVariable_String.c_str(), 0);
 if(_nextionTempLissen.code == 'q') {_nextionGetValue2_outputValue = _nextionTempLissen.number;
 _gtv2=1;}; // взводим переменную
_nextionGetValue2_isNU = 0;}
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
ussrtk
Рядовой
Сообщения: 36
Зарегистрирован: 06.01.2017{, 12:25}
Репутация: 17

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

#809

Сообщение ussrtk » 14.01.2019{, 12:00}

whitevip писал(а):
13.01.2019{, 21:40}
ussrsrtru, что такое клемма?
В перечне базовых элементов есть "клемма". Очень прикольный блок: создаете в одной плате переменную и теперь можете подключать к ней блоки в других платах.
Ранее вы подключали саму переменную из другой платы - но тогда компилятор создавал каждый раз новую глобальную переменную и тратил память. А при использовании клемм память расходуется экономнее.
Когда у вас связей между платами немного или вы все делаете в одной плате - это вам не нужно. А в сложных проектах очень и очень кстати.

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

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

#810

Сообщение aidar_i » 14.01.2019{, 19:35}

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

ItsMe
Рядовой
Сообщения: 51
Зарегистрирован: 24.09.2015{, 15:43}
Репутация: 1

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

#811

Сообщение ItsMe » 15.01.2019{, 11:02}

Здравствуйте, support!
Спасибо Вам за труды.
Заметил такую вещь: при использовании пользовательских блоков они не заворачиваются в процедуру, а просто копируется код блоков столько раз, сколько раз они используются. Никак нельзя попробовать это реализовать? Ведь программа раздувается от этого.
Вот простой пример:
2 пользовательских блоки и при компилировании - 2 одинаковых фрагмента кода вместо одной процедуры.
Вложения
2 пользовательских блока.flp
(128.56 КБ) 55 скачиваний

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

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

#812

Сообщение Sancho » 15.01.2019{, 11:13}

ItsMe, Автор,support, здесь при чём?
Для того, что-бы не дублировать код, нужно код завернуть в функцию, блок сделать одноразовым, что-бы имя функции не удрало :) , а в остальных - просто вызывать функцию со своими параметрами.
Вопросы к автору блока.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

ItsMe
Рядовой
Сообщения: 51
Зарегистрирован: 24.09.2015{, 15:43}
Репутация: 1

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

#813

Сообщение ItsMe » 15.01.2019{, 11:18}

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

ItsMe
Рядовой
Сообщения: 51
Зарегистрирован: 24.09.2015{, 15:43}
Репутация: 1

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

#814

Сообщение ItsMe » 15.01.2019{, 11:20}

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

ItsMe
Рядовой
Сообщения: 51
Зарегистрирован: 24.09.2015{, 15:43}
Репутация: 1

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

#815

Сообщение ItsMe » 15.01.2019{, 11:25}

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

Аватара пользователя
Alias
Лейтенант
Сообщения: 481
Зарегистрирован: 27.11.2017{, 13:15}
Репутация: 36
Откуда: Rus44
Имя: Michael
Контактная информация:

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

#816

Сообщение Alias » 15.01.2019{, 11:33}

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

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

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

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

#817

Сообщение Sancho » 15.01.2019{, 11:40}

ItsMe, Пример здесь и тут
support писал(а):Блоки на С немного по другому устроены, но там то же можно подобный функционал написать.
Alias, Речь о коде на С++
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
support
Супермодератор
Сообщения: 1900
Зарегистрирован: 03.01.2018{, 11:45}
Репутация: 787
Откуда: Астрахань
Имя: Сергей
Контактная информация:

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

#818

Сообщение support » 15.01.2019{, 11:41}

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

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

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

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

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

#819

Сообщение aidar_i » 15.01.2019{, 11:45}

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

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

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

#820

Сообщение Sancho » 15.01.2019{, 11:45}

support писал(а):
15.01.2019{, 11:44}
Ну всё, убегаю на автобус. Три дня в дороге, так что абонент не абонент))))))
Счастливого пути!!!
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Ответить

Вернуться в «Темы от автора»