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

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

Добавлено: 08 сен 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 сен 2019, 19:39
DrMario
Огромный размер окна при выборе контроллера и не помещается на экран. Для доступа к кнопке пришлось перемещать панель задач :shok:

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

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

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

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

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

Добавлено: 08 сен 2019, 21:05
Phazz
[ref=#ff8000]Rovki[/ref],
IMG_20190908_230524.jpg

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

Добавлено: 08 сен 2019, 21:10
RedSky
LAD. При попытке назначить аналоговый выход вылет.
error.log
Не очень удобно каждый раз двигать новые надписи.
Снимок.PNG
И вопрос-предложение: нельзя ли для LAD сделать переменные как в FBD?

Ещё вылет при попытке компиляции самопальной платы
error.log
85.zip

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено: 09 сен 2019, 11:15
Phazz
[ref=#00aa00]support[/ref], В проекте при использовании блоков Nextion совместно с RemoteXY падает программа при компиляции

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

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

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

Добавлено: 09 сен 2019, 12:21
Sancho
[ref=#00aa00]support[/ref], Как теперь я понял - имя у пина, по умолчанию, "Вывод 1", "Вывод 2".
Соответственно, альтернативное заменит его. Стало понятнее.

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

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

Добавлено: 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 сен 2019, 14:08
support
Sancho писал(а): 09 сен 2019, 12:21 Будет ли возможность писать имя пина, которое потом вставится в код, например, для STM вместо ардуновских 32 вписать PC13.
Или вписывать вчитываясь в картинку?
Идея неплохая, но вот реализовать её будет очень сложно. Во первых в компиляторе везде переписывать методы вывода в скетч (сейчас используется printString - это для цифровых типов данных, а придётся использовать displayString - это для строк). Во вторых при использовании этих пинов в датчиках, сенсорах и подобном, я боюсь их библиотеки не поймут если при их инициализации к ним прилетит вместо типа данных byte тип данных CharArray со значением PC13. В общем мороки много, но я над этим подумаю. Пока как вариант, можно сделать пользовательский блок, в параметрах которого задавать номер пина, а внутри писать в нужный регистр. Загрузить его в описание контроллера (там есть специальная ветка), и этот блок появится в стандартной библиотеке при использовании этого описания.

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

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

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

Добавлено: 09 сен 2019, 16:08
User8
[ref]ecoins[/ref], зачем это? При указании константы на вход, тоже самое происходит что и define делает, просто щас в пользовательских блоках баг, что указанные на вход даже константы создают глобальные переменные, что не правильно и занимает динамическую память постоянно, если это вход String, то это очень критично, особенно для uno, nano.

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

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

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

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

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

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

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