Страница 1 из 15

Тестирование новой версии программы 6.Х

Добавлено: 08.09.2019{, 16:41}
support
С небольшой задержкой выпущена новая бэта версия программы с номером 6.0.
Обсуждаем ёё в этой теме.
Подробнее о релизе здесь
Версия 6.Х основной задачей имеет интеграцию контроллера ESP32. В самом начале работы над этой версией обнаружилось, что текущая реализация системы описания контроллера не позволяет описать этот процессор. В связи с этим пришлось полностью переделывать эту реализации. Под это дело я решил реализовать давно требующуюся функциональность – возможность пользователям создавать собственные описания контроллера. Поэтому архитектура новых описаний контроллеров сразу разрабатывалась с учетом этого функционала, и кроме того я постарался сделать её максимально гибкой, и масштабируемой.

В версии 6.0 в меню «Инструменты» главного окна появился пункт «Редактор описаний контроллеров», который и вызывает этот редактор. В нём можно как с нуля создать новое описание, так и создать новое на базе существующего, и потом отредактировать его под собственные нужды.

Созданные описания и целые библиотеки описаний, можно экспортировать в файл и импортировать из файла.

Более подробно работа с редактором будет описана мною в уроках в ближайшее время.

Создание новой архитектуры описаний контроллера, потянуло за собой коренную переделку программы, что и вызвало задержку в сроках выхода новой версии.

Наиболее большим изменениям подверглась среда программирования на языке LAD. Но мне удалось убрать многолетние «костыли» который были «подставлены», в связи с ошибками в архитектуре сделанными ещё в самом начале разработки программы.



Внимание! В связи с оптимизацией архитектуры проекта LAD в проектах, созданных в более ранних версиях при загрузке в версию 6.0 и выше (в будущем), на входах (контактах) будут сброшены галочки «Включить подтягивающий резистор» и «Защита от дребезга». Обратите на это внимание при редактировании старых проектов.



В остальном переход на новую версию должен происходить прозрачно, но всё-таки, не стоит забывать, что это БЭТА версия, и в работе программы возможны ошибки.

Так же обновлён просмоторщик описания контроллера, и информация, выводимая в нём теперь более полная.

В ближайшее время пока не устаканится новая архитектура описания контроллера, и не уберутся самые грубые ошибки, я не буду интегрировать ESPЗ32. На время первоначального тестирования у меня в качестве основной задачи, запланировано решение давно обещанной и востребованной задачи по реализации поддержки облака Каскады.

Так что приглашаю самых смелых пользователей к тестированию новой версии программы.

P.S. 11.09.2019 Выложил (пока на хабре) первый урок по работе с редактором описаний контроллера

P.S. 22.09.19 Версия обновилась до 6.1. Подробнее здесь


P.S. 29.10.19 Версия обновилась до 6.1.1. Подробнее здесь

P.S. 01.12.19 Тема уже очень большая, я её закрываю. Продолжаем обсуждение версии 6.2.Х здесь

Тестирование новой версии программы 6.Х

Добавлено: 08.09.2019{, 19:39}
DrMario
Огромный размер окна при выборе контроллера и не помещается на экран. Для доступа к кнопке пришлось перемещать панель задач :shok:

Тестирование новой версии программы 6.Х

Добавлено: 08.09.2019{, 20:53}
CraCk
Если речь пошла за esp32, тогда еще бы наручные часы добавить.
TTGO T-Watch
https://www.banggood.com/ru/LILYGO-TTGO ... rehouse=CN

Тестирование новой версии программы 6.Х

Добавлено: 08.09.2019{, 20:59}
Rovki
Что то есп32 не нашел ...

Тестирование новой версии программы 6.Х

Добавлено: 08.09.2019{, 21:05}
Phazz
Rovki,
IMG_20190908_230524.jpg

Тестирование новой версии программы 6.Х

Добавлено: 08.09.2019{, 21:10}
RedSky
LAD. При попытке назначить аналоговый выход вылет.
error.log
(31.28 КБ) 83 скачивания
Не очень удобно каждый раз двигать новые надписи.
Снимок.PNG
Снимок.PNG (1.79 КБ) 5334 просмотра
И вопрос-предложение: нельзя ли для LAD сделать переменные как в FBD?

Ещё вылет при попытке компиляции самопальной платы
error.log
(31.58 КБ) 88 скачиваний
85.zip
(794.82 КБ) 76 скачиваний

Вносит путаницу, что в редакторе контроллеров счёт пинов начинается не с нуля. На схеме получается такое двоякое трактование номера пина.
Снимок.PNG
Снимок.PNG (3.86 КБ) 5302 просмотра
Здесь Pin1 компилируется как 0.

Тестирование новой версии программы 6.Х

Добавлено: 08.09.2019{, 22:30}
dimonsustr
support писал(а):
08.09.2019{, 16:41}
С небольшой задержкой выпущена новая бэта версия программы с номером 6.0.
Обсуждаем ёё в этой теме.
Подробнее о релизе здесь
Глупый вопрос,а когда это (поддержка ESP32) примерно будет? Сейчас вынужден извращаться с Visuino, чтобы хоть как-то приподнять ESP32-Lora, какое же это Визуино тормозное убожество по сравнению с нашим, православным FLProg'ом :smile171: Только что-то простенькое слабать, голова уже трещит. MQTT я там не смог завести, REMOTE тоже.

Тестирование новой версии программы 6.Х

Добавлено: 08.09.2019{, 22:45}
grin-mpx
Проект на Mega 2560. Блок из датчиков температуры - MAX 6675. При открытии более раннего проекта с этим блоком- удаляет пины подключения в настройках. При попытке прописать пины - не сохраняет. Не сохраняет и в новом проекте с "чистым" блоком MAX 6675.
Win XP, портабл 6.0

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 05:53}
DrMario
При компиляции проекта на контроллере DUE вылетает ошибка
Плата arduino_due_x_dbg (платформа sam, пакет arduino) неизвестна
Ошибка компиляции для платы Arduino Due (Programming Port).
Подобная история для контроллера ESP8266. Лечится переустановкой в менеджере плат. Баг тянется с прошлых версий.

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 09:56}
support
DrMario писал(а):
08.09.2019{, 19:39}
Огромный размер окна при выборе контроллера и не помещается на экран. Для доступа к кнопке пришлось перемещать панель задач :shok:
\
Поставил в TODO на следующую версию. Сейчас окно 1024х800. Сделаю 800х600

Отправлено спустя 4 минуты 30 секунд:
RedSky писал(а):
08.09.2019{, 21:10}
Вносит путаницу, что в редакторе контроллеров счёт пинов начинается не с нуля. На схеме получается такое двоякое трактование номера пина.
По умолчанию ставится номера именно ВЫВОДА платы или микросхемы. Это актуально если описывается именно микросхема. А у неё выводы начинаются с первого (от ключа). Если описывается плата, то более правильно записать альтернативное имя именно так как написано на физической плате. Тогда при наличии альтернативного имени выводится будет оно. В следующей версии я переименую это поле как просто имя вывода

Отправлено спустя 43 секунды:
DrMario писал(а):
09.09.2019{, 05:53}
При компиляции проекта на контроллере DUE вылетает ошибка
Плата arduino_due_x_dbg (платформа sam, пакет arduino) неизвестна
Ошибка компиляции для платы Arduino Due (Programming Port).
Подобная история для контроллера ESP8266. Лечится переустановкой в менеджере плат. Баг тянется с прошлых версий.
В следующей версии поправлю, сейчас не успел

Отправлено спустя 24 минуты 19 секунд:
grin-mpx писал(а):
08.09.2019{, 22:45}
Проект на Mega 2560. Блок из датчиков температуры - MAX 6675. При открытии более раннего проекта с этим блоком- удаляет пины подключения в настройках. При попытке прописать пины - не сохраняет. Не сохраняет и в новом проекте с "чистым" блоком MAX 6675.
Win XP, портабл 6.0
. Добавил в TODO на версию 6.1

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 11:15}
Sancho
support, Сергей, по моему, нужно отображать наоборот, альтернативное - по желанию и в скобках...
СпойлерПоказать
2019-09-09_11-10-54.png
Думал сделать для стм сразу в проге, что-бы своими ПБ не пользоваться - увы, опять только цифры, РА, РВ не вставляются при компиляции. На кой мне искать инфу всякую, кто и чего значит, если ide спокойно переваривает РА0, РА1 и т.д. в своих функциях, и эти названия практически везде на платах и схемах?

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 11:15}
Phazz
support, В проекте при использовании блоков Nextion совместно с RemoteXY падает программа при компиляции

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 11:43}
support
Sancho писал(а):
09.09.2019{, 11:15}
support, Сергей, по моему, нужно отображать наоборот, альтернативное - по желанию и в скобках...
А какое писать? Вот смотрите, вывод может быть аналоговым входом, или цифровым входом / выходом. При этом его номера как аналогового или цифрового отличаются. Что конкретно писать например при выборе его в качестве пина в ультразвуковом датчике расстояния? А ещё он может одновременно быть например SPI или I2C. Поэтому я принял решение дать возможность пользователю самому написать как он будет отображаться. С моей точки наиболее оптимальное решение - называть его так, как написано на плате. И в случае чего искать и подключать будет проще. Например у WeMos названия на плате одни, а номер цифрового пина - совершенно другие.

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 12:15}
Sancho
support, Как теперь я понял - имя у пина, по умолчанию, "Вывод 1", "Вывод 2".
Соответственно, альтернативное заменит его. Стало понятнее.

Отправлено спустя 5 минут 11 секунд:
Будет ли возможность писать имя пина, которое потом вставится в код, например, для STM вместо ардуновских 32 вписать PC13.
Или вписывать вчитываясь в картинку?
СпойлерПоказать
STM32F103_v03.png

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 13:40}
ecoins
На заметку разработчику (возможно это уже реализовано)
1. В новых контроллерах если использовать некоторые пины не по назначению -приводит к фатальным последствиям. Например ШИМ в STM32.
2. DUE виснет если выполнить отдельно команду analogWrite на пины 66,67. С ESP32 схожие проблемы.
3. Наверное надо хранить во флэш номера пинов по каждому типу пина. Для ESP32 ещё и для сенсорного входа.
4. ESP8266 - максимальное значение считываемое со входа A0 командой analogRead равно не 1023, а 1024. В своих проектах я обрезаю сверху.
——-
ВОПРОС КО ВСЕМ КТО ЗНАКОМ С ТЕМОЙ: умею идентифицировать контроллеры ESP8266 и ESP32 по макросам. Но не могу идентифицировать их разновидности -Wemos, Lolin и т.д. C STM32 - в Arduino IDE под каждый тип STM указан макрос.
Как решить эту проблему?

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 13:56}
support
Sancho писал(а):
09.09.2019{, 12:21}
Будет ли возможность писать имя пина, которое потом вставится в код, например, для STM вместо ардуновских 32 вписать PC13.
Или вписывать вчитываясь в картинку?
Идея неплохая, но вот реализовать её будет очень сложно. Во первых в компиляторе везде переписывать методы вывода в скетч (сейчас используется printString - это для цифровых типов данных, а придётся использовать displayString - это для строк). Во вторых при использовании этих пинов в датчиках, сенсорах и подобном, я боюсь их библиотеки не поймут если при их инициализации к ним прилетит вместо типа данных byte тип данных CharArray со значением PC13. В общем мороки много, но я над этим подумаю. Пока как вариант, можно сделать пользовательский блок, в параметрах которого задавать номер пина, а внутри писать в нужный регистр. Загрузить его в описание контроллера (там есть специальная ветка), и этот блок появится в стандартной библиотеке при использовании этого описания.

P.S Только в блок надо делать в предыдущей версии, в 6.0 создание и редактирование пользовательских блоков сломалось(((( В 6.1 исправлю

Отправлено спустя 11 минут 26 секунд:
RedSky писал(а):
08.09.2019{, 21:10}
LAD. При попытке назначить аналоговый выход вылет.
error.log
(31.28 КБ) 0 скачиваний
Не очень удобно каждый раз двигать новые надписи.

Снимок.PNG (1.79 КБ) 348 просмотров
И вопрос-предложение: нельзя ли для LAD сделать переменные как в FBD?

Ещё вылет при попытке компиляции самопальной платы
error.log
(31.58 КБ) 0 скачиваний
85.zip
(794.82 КБ) 0 скачиваний
Добавил в TODO

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 15:17}
ecoins
Sancho писал(а): ↑Сегодня{, 12:21}
Будет ли возможность писать имя пина, которое потом вставится в код, например, для STM вместо ардуновских 32 вписать PC13.
Или вписывать вчитываясь в картинку?
support писал(а):
09.09.2019{, 14:08}
Идея неплохая, но вот реализовать её будет очень сложно. Во первых в компиляторе везде переписывать методы вывода в скетч (сейчас используется printString - это для цифровых типов данных, а придётся использовать displayString - это для строк).
Вопрос support: нельзя ли предусмотреть для пользовательских блоков (ПБ) тип #definе, так чтобы в DeclareSection появлялась конструкция #define ЗНАЧЕНИЕ СО ВХОДА #define ИМЯ_ЗАДАВАЕМОЕ_ПОЛЬЗОВАТЕЛЕМ.
В этом случае я вроде бы представляю как принимать значения типа PC13,D4 и т.п.
Написанные библиотеки позволяют это делать и сейчас, но огромные строковые переменные на входе в ПБ потребляют много оперативной памяти. И операции присваивания происходят всегда независимо от того, выполняются ли какие-либо действия ПБ. Для Arduino Nano критично и по RAM и по быстродействию - потому пока не реализовывал эту функцию.

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 16:02}
User8
ecoins, зачем это? При указании константы на вход, тоже самое происходит что и define делает, просто щас в пользовательских блоках баг, что указанные на вход даже константы создают глобальные переменные, что не правильно и занимает динамическую память постоянно, если это вход String, то это очень критично, особенно для uno, nano.

Отправлено спустя 6 минут 35 секунд:
К автору пожелание, при указании константы у переменной, запретить изменять эту переменную и при вставке этой переменной на любой вход, не создавать глобальную переменную а создавать константу или дефине (const uint8_t), другими словами добавить константы, как в c++.

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 17:29}
Nikan
support писал(а):
09.09.2019{, 14:08}
Sancho писал(а):
09.09.2019{, 12:21}
для STM вместо ардуновских 32 вписать PC13.
Или вписывать вчитываясь в картинку?
Идея неплохая, но вот реализовать её будет очень сложно.
ну тогда и STM32 не реализуется- IDE для плат STM32(кроме варианта блю пилл) не принимает обозначение портов как в ардуине,
только прямое - PC13, РВ2....

Тестирование новой версии программы 6.Х

Добавлено: 09.09.2019{, 18:28}
support
Nikan писал(а):
09.09.2019{, 17:29}
support писал(а):
09.09.2019{, 14:08}
для STM вместо ардуновских 32 вписать PC13.
Или вписывать вчитываясь в картинку?

Идея неплохая, но вот реализовать её будет очень сложно.
ну тогда и STM32 не реализуется- IDE для плат STM32(кроме варианта блю пилл) не принимает обозначение портов как в ардуине,
только прямое - PC13, РВ2....
До СТМ я ещё доберусь. У меня была идея дать возможность при описании входа дать возможность задавать регистры. Но пока я посчитал это преждевременным, да и сам пока ясно не вижу как это будет выглядеть. Но как я уже сказал, я над этим подумаю

Отправлено спустя 23 минуты 21 секунду:
RedSky писал(а):
08.09.2019{, 21:10}
И вопрос-предложение: нельзя ли для LAD сделать переменные как в FBD?
Вы понимаете, программа позиционируется как обучающая промышленному програмированию. А в "настоящем" ладе не бывает переменных, а есть промежуточные реле. Ведь лад все таки - это отражение реальных релейных схем (он и создавался в дремучие времена для упращения перевода старого релейного оборудования на контроллеры). Я даже немного расширил функционал лада и для остальных типов (реле только для булеановских велеичин) сделал аналоговый соеденитель. Ну и конечно есть именованные соеденения для работы в пределах платы, и клеммы для работы во всём проекте. Ну куда уже больше?