Разработки ecoins

Библиотеки для разных контроллеров

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

Разработки ecoins

#481

Сообщение Sancho » 13.12.2019{, 18:39}

ecoins, Энвер, не думал о том, что это будет воспринято как "резкое суждение".
Но в CDS, да и конечно-же не только в ней, есть встроенный диспетчер задач. Изначально.
Вопрос в его использовании конечными пользователями.
Для себя главным в FLProg считаю то, что освоивший его в промышленных програмах будет чувствовать себя отнюдь не новичком!
Как мне кажется, или помнится, это одна из задумок Автора.
Будем ему в этом помогать насколько возможно.
ИМХО.(«In My Humble Opinion», которую можно дословно перевести на русский как «по скромному моему мнению»)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#482

Сообщение ecoins » 13.12.2019{, 19:17}

Sancho писал(а):
13.12.2019{, 18:39}
Для себя главным в FLProg считаю то, что освоивший его в промышленных програмах будет чувствовать себя отнюдь не новичком!
-----
У нас немного разный интерес к FLProg.
Мы надеемся, что FLProg вырастет для уверенного промышленного применения в противовес "тяжеловестным" и в основе "древним" системам проектирования типа CodeSys.
И создавать проекты можно будет не только на контроллерах типа ПЛК ОВЕН, а на STM32F(разных серий), Nano, ESP.
----
Немного резковатое мнение мое (и не только моё): работа только в CodeSys не развивает, а "притупляет" разработчиков по сравнению с открытой (до уровня C++) FLProg.
----
Чем больше погружаюсь в изучении CodeSys 3.5, тем больше укрепляюсь в изложенном представлении.
По совокупности причин делать сейчас конкретные проекты для конкретных заказчиков приходиться пока именно в этой среде.

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

Разработки ecoins

#483

Сообщение Sancho » 13.12.2019{, 20:00}

ecoins писал(а):
13.12.2019{, 19:17}
Немного резковатое мнение мое (и не только моё): работа только в CodeSys не развивает, а "притупляет" разработчиков по сравнению с открытой (до уровня C++) FLProg.
Здесь вопрос упирается только в одно - на каком языка вы работаете в cds.
Так-же очень трудно представить, мне во всяком случае, что немецкая компания творит исключительно для овен :)
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#484

Сообщение ecoins » 13.12.2019{, 20:35}

Языки ST,SFC,FBD.
Немецкая фирма создавала софт не для фирмы ОВЕН, но делалось это в основной части очень давно.
Подходы софта во многом основаны на проектировании SCADA многолетней давности.
В то время не было дешевых и простых контроллеров (всё начиналось от 1000$ и выше).
Простые подходы к проектированию и загрузке программ как у Arduino казались в то время фантастичными.
Дорогое железо сопровождалось еще более дорогим софтом - в нем старались заложить все мыслимые возможности и еще, еще на всякий случай...
В результате само освоение возможностей пакетов требовало усилий и значительных, сама система громоздкой и с глюками, которые исправлялись в течении многих лет (CodeSys 2.3).
Разработчики софта (и контроллеров) во многих случаях не заинтересованы в появлении простых и дешевых систем .
Так было на протяжении всегда при развитии различных вычислительных систем - пример IBM 360/370 , самонадеянность фирмы IBM сломил неожиданный прорыв персональных компьютеров.
-------------
Сенсорная панель ОВЕН на 10 дюймов с процессором на 600 мгц (еще и греется) за 35т.рублей по своим вычислительным возможностям и потребительским свойствам существенно уступает компактным планшетам того же размера, которые и стоят в три раза дешевле.
А появление таких программ как KaScada на Android делают новые решения на дешевой и массовой электроники более привлекательными.
-------------
Если бы Rovki имел бы хотя бы 2-3% бюджета ОВЕН на проектирование, то его устройства просто выдавили бы монстров типа СПК110 ОВЕН (в условиях здоровой конкуренции). Или ОВЕН само бы пришло к нему - или за разработками, или... (второго варианта Rovki стоит и опасаться :smile37: )
-----
Уважаю Rovki за его самоотверженный труд и целеустремленность. Спасибо ему.
Последний раз редактировалось ecoins 14.12.2019{, 02:29}, всего редактировалось 1 раз.

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

Разработки ecoins

#485

Сообщение Sancho » 13.12.2019{, 21:12}

Тогда ответьте мне на один вопрос - почему проект из s7 запросто открывается в 3.5? тоже старый век? Давайте поймём одно - многие могут сделать лекарство для иньекции, но не все захотят это себе вколоть... Понятия сертификации иногда становятся непреодолимым барьером. И специалисты, владеющие этими "древними" инструментами зачастую имеют возможность делать что-то для следующих поколений.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

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

Разработки ecoins

#486

Сообщение Sancho » 13.12.2019{, 21:47}

На обслуживаемом нашей компанией предприятии есть система AMS, которая всего-то и делает, что пишет логи климата и других параметров помещений. А они всегда прикладываются к документации производства лекарственного препарата, фармацевтика, знаете-ли. При этом протокол связи систем закрытый, и носит название NovaNet. SAUTER. Скорость на нём ни о чём. Но это на первый взгляд. На самом деле всё прекрасно работает и выполняет необходимый функционал. Но шанс постороннего вмешательства и подмены данных практически нулевой. Система валидирована разными ведомствами, типа минздрав и минпромторг. Это компания производит лекарственные препараты, которые я рекомендую своей маме. Потому-что я знаю - за этим стоит ответственность многих людей, и в том числе разработчиков ПО, разного, от нашего до того, что установлено в производственном оборудовании.
Но есть у данного оборудования и BacNet - это тоже у нас используется. Всему своё. Не нужно прыгать через головы...

Отправлено спустя 2 минуты 59 секунд:
При этом каждый программист - свой сертификат. Как и у siemens.

Отправлено спустя 4 минуты 40 секунд:
Это называется одним словом - ответственность.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.

Аватара пользователя
Nikan
Майор
Сообщения: 1194
Зарегистрирован: 29.12.2016{, 00:49}
Репутация: 100
Откуда: москва

Разработки ecoins

#487

Сообщение Nikan » 14.12.2019{, 01:47}

ecoins писал(а):
13.12.2019{, 20:35}
Подходы софта во многом основаны на проектировании SCADA многолетней давности.
В то время не было дешевых и простых контроллеров (всё начиналось от 1000$ и выше).
Простые подходы к проектированию и загрузке программ как у Arduino казались в то время фантастичными.
Дорогое железо сопровождалось еще более дорогим софтом - в нем старались заложить все мыслимые возможности и еще, еще на всякий случай...
В результате само освоение возможностей пакетов требовало усилий и значительных, сама система громоздкой и с глюками, которые исправлялись в течении многих лет (CodeSys 2.3).
ну ну, в свое время Буран слетал и приземлился в автомате, имея 64к памяти, а сейчас есть 100500 и не летает
ни хера.
так же и с софтом, что нагенерит CodeSys или степ, панасоникwin, C C++. легко можно верифицировать. чего нельзя сделать на так называемых "современных" системах и платформах.
так же и с железом, что произведено 20-30 лет назад, пашет и пашет, а современное с завода с отказами :shok:
все превратили в треш

Аватара пользователя
dekorator
Лейтенант
Сообщения: 427
Зарегистрирован: 06.09.2015{, 09:39}
Репутация: 7
Откуда: Баку

Разработки ecoins

#488

Сообщение dekorator » 31.01.2020{, 14:58}

ecoins, Можно как то добавить другой контроллер? Работаю с мегой 128 и ваши блоки были бы очень к стати. Может инструкцию какую дадите как самому добавить?

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#489

Сообщение ecoins » 01.02.2020{, 16:24}

Возобновим работу с FLProg в феврале.
---------------
Пока плотно изучали (исследовали) оборудование фирмы ОВЕН - программируемые реле ПР114, ПР200, программируемые логические контроллеры - ПЛК63, ПЛК110-30, ПЛК110-60, панельные контроллеры СПК110, системы программирования OwenLogic, CodeSys 2.3, панели оператора СП310, ИП320, периферийные модули серии МВ110 (RS-485) и МВ210(Ethernet), системы программирования OwenLogic, CodeSys 2.3. Планируем провести испытание CodeSys на контроллере Raspberry.
Сейчас этот этап работа подходит к завершению. Попутно поставили Заказчику несколько шкафов управления на перечисленном оборудовании.
-------------
Результаты работы убедили нас в существенных достоинствах системы программирования FLProg в большом сегменте промышленной автоматизации.Но надо немного поработать, доработать и т.п.
Прежде всего это касается каналов и протоколов связи - Modbus, Can.
Есть пожелания и к KaScadа - после работы с программным конфигуратором для панели СП310 становится понятно, что ещё хотелось иметь при программировании панелей операторов.
-------------

Аватара пользователя
Rovki
Полковник
Сообщения: 4875
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 269
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Разработки ecoins

#490

Сообщение Rovki » 01.02.2020{, 16:36}

ecoins писал(а):
01.02.2020{, 16:24}

Есть пожелания и к KaScadа - после работы с программным конфигуратором для панели СП310 становится понятно, что ещё хотелось иметь при программировании панелей операторов.
-------------
Ждем пожеланий ,может часть их можно реализовать уже сейчас в каскаде через "маленькие хитрости" :smile427:
Электронщик до мозга костей и не только

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

Разработки ecoins

#491

Сообщение Mozgoklui » 16.02.2020{, 18:58}

ecoins, я понимаю, что возможно эта тема не предназначена для своих проектов, но может быть вы посмотрите, что я делаю не так? Я попытался настроить выполнение плат с использованием ваших блоков, но ничего не работает.
Я делаю лампу на светодиодной матрице, с lcd экраном и климатическими датчиками и с управлением через blynk. Проблема в том, что если исключить матрицу из скетча, то датчики и экран работают исправно. Так же если оставить только управление матрицей тоже работает. А всё вместе нет. Вероятно ресурсов МК нехватает из-за ненужных циклов, например обновления экрана или опроса датчиков.. Вот пытаюсь ваши блоки приспособить, пока безрезультатно.
n6exp.flp
(1.02 МБ) 54 скачивания
Железо всё собрано уже, напечатаны все детали ночников, а с программой засада...

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#492

Сообщение ecoins » 17.02.2020{, 01:07}

Завтра посмотрю. Как раз закончил автономно работающую библиотеку для Arduino для работы с временем, задачами и событиями RT_HW_TASK.h В ней реализовано то, что испытано и открыто добавление новых возможностей. Планируем добавить вызов задач аппаратному прерыванию от таймера - сделать эту опцию на C++ просто, а вот адаптировать её в FLProg сложно, поскольку надо работать с указателями на функции...

Отправлено спустя 3 минуты 23 секунды:
——-
С матрицей и стандартным ПБ были проблемы - блок тормозит Процессор. Возможно надо что-то своё писать или матрицу перенести на другой контроллер.

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

Разработки ecoins

#493

Сообщение Mozgoklui » 17.02.2020{, 11:20}

ecoins писал(а):
17.02.2020{, 01:11}
С матрицей и стандартным ПБ были проблемы - блок тормозит Процессор. Возможно надо что-то своё писать или матрицу перенести на другой контроллер.
у меня лишь поверхностные знания о работе программы в контроллере, но по ощущениям, основанным на разных вариантах подключения всех деталей и бесчисленным попыткам, мне кажется в моем случае проблемы связаны с опросами датчика HTU21 и датчика CO2 MH-Z19B и отправкой их данных в интернет (в blynk). Как благодаря вашим блокам можно как можно сильнее замедлить работу МК с этими датчиками? Хоть даже до опроса раз в 5 секунд (и отправку с той же частотой) ? Чтобы все остальные ресурсы процессора спокойно использовались на матрице, которая отдельно прекрасно работает. В частности, грешу на стандартный блок скоростной счетчик, который у меня считает продолжительность импульсов с датчика СО2. Вот бы реализовать чтобы он один-два раз посчитал и затих до следующей итерации через секунд 5-10 :smile37:

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#494

Сообщение ecoins » 17.02.2020{, 16:39}

Mozgoklui писал(а):
17.02.2020{, 11:20}
у меня лишь поверхностные знания о работе программы в контроллере, но по ощущениям, основанным на разных вариантах подключения всех деталей и бесчисленным попыткам, мне кажется в моем случае проблемы связаны с опросами датчика HTU21 и датчика CO2 MH-Z19B и отправкой их данных в интернет (в blynk). Как благодаря вашим блокам можно как можно сильнее замедлить работу МК с этими датчиками? Хоть даже до опроса раз в 5 секунд (и отправку с той же частотой) ? Чтобы все остальные ресурсы процессора спокойно использовались на матрице, которая отдельно прекрасно работает. В частности, грешу на стандартный блок скоростной счетчик, который у меня считает продолжительность импульсов с датчика СО2. Вот бы реализовать чтобы он один-два раз посчитал и затих до следующей итерации через секунд 5-10
Посмотрел проект.
Диспетчер вы используете правильно. Однако используете только 4-медленные задачи - их номера будут меняться 1 раз в секунду (250мс - период медленных задач установленный в диспетчере х 4).
Можно задействовать и другие выходы диспетчера (fast10 -10ms, fast-25ms, back100 - 100мс).
----------------------------
Можно получить дополнительные номера, которые будут меняться 1 раз в 5 сек следующим образом:
на плате 2 (там диспетчер) нужно добавить два блока:
1) стандартный блок сравнения - на один вход подать значение переменной "номер медленной задачи(она есть на плате), на второй вход значение 1. На выходе блока сравнения будут появляться события каждые 1сек при "медленной задачи" с номером 1.
2) блок RT_Задача - такой уже есть на плате. Вход en соединить с выходом блока сравнения, вход qnt=5. На выходе блока каждую секунду будут меняться значения от 1 до 5. Т.е. выход будет =1 (или 2,3,4,5) каждые 5 сек.
----------------------------
У Вас много плат (номера 1, 7-11) вызываются в каждом цикле. Какая-то из этих задач "тормозит".
----------------------------
Рекомендации по Blynk. Работать с этой системой не приходилось и потому не могу пояснить какие блоки и как значительно используют ресурсы процессора, есть ли в них операторы delay(), можно ли обращаться к этим функциям периодически и т.п.
Независимо от этого будет верным весь обмен с Blynk собрать на одной или нескольких платах и вызывать их циклически через диспетчер.
Если к выходу fast10 диспетчера через T-триггер подключить пин со светодиодом, то можно визуально наблюдать торможение работы (при нормальной светодиод должен мерцать каждые 10ms -100Гц).
Остальные платы должны только принимать или записывать переменные из/для Blynk.
------------------------------
Все задачи должны вызываться по условию через переменные, устанавливаемые в диспетчере задач (плата 2).
-----------------------------
Успехов.

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Разработки ecoins

#495

Сообщение edyapd » 17.02.2020{, 18:50}

ecoins, есть такой вопрос. Скажем все платы выполняются по условию с диспетчера задач. При вхождении в плату, она выполнится от начала до конца? Или в какой-то момент прервётся для того, чтобы выполнилась быстрая задача?
Просто если скажем плата выполняется от начала и до конца и при этом на выполнение платы требуется, по каким-то причинам, больше 10мсек, то тогда период быстрых задач не будет выполняться вовремя.

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

Разработки ecoins

#496

Сообщение Mozgoklui » 17.02.2020{, 19:13}

ecoins, большое спасибо за ответ! И я присоединяюсь к вопросу eduard, а заодно мне не понятно как быть с платами, и так работающими по условию? Вот у меня там блоки матрицы с выбором целой кучи режимов, каждый из которых - плата (в примере только огонь пока). То есть плату выбора режимов я сажаю на диспетчер, следовательно когда эта плата обрабатывается - она тащит за собой все связанные условием выполнения по переменной? Или они как-то иначе будут выполняться?

edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20.09.2019{, 11:38}
Репутация: 65
Имя: Эдуард

Разработки ecoins

#497

Сообщение edyapd » 17.02.2020{, 19:31}

Mozgoklui писал(а):
17.02.2020{, 19:13}
она тащит за собой все связанные условием выполнения по переменной? Или они как-то иначе будут выполняться?
Не важно на какой плате переменная была установлена. Если плата выполняется по переменной, то она будет выполняться, не смотря на то, что плата, где устанавливается эта переменная на данный момент не выполняется.
В ЭТОЙ теме немного обсуждалось подобное.

Mozgoklui
Сержант
Сообщения: 109
Зарегистрирован: 11.10.2019{, 23:19}
Репутация: 0
Имя: Виталий

Разработки ecoins

#498

Сообщение Mozgoklui » 17.02.2020{, 19:32}

ecoins, Уррааааааааааааа!!!!! Переделал по вашим рекомендациям! За последние несколько недель впервые у меня работает всё вместе!!! Ваш диспетчер - вещь!!! Очень годно, как для ни в чем не шарящих типа меня! С удовольствием бы задонатил в ваш проект, если есть paypal, С.Глушенко удалось задонатить только таким образом, я просто за кордоном..
Здесь тема с моей лампой viewtopic.php?f=63&t=6106&p=85127#p85127

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#499

Сообщение ecoins » 17.02.2020{, 20:13}

edyapd писал(а):
17.02.2020{, 18:50}
ecoins, есть такой вопрос. Скажем все платы выполняются по условию с диспетчера задач. При вхождении в плату, она выполнится от начала до конца? Или в какой-то момент прервётся для того, чтобы выполнилась быстрая задача?
Просто если скажем плата выполняется от начала и до конца и при этом на выполнение платы требуется, по каким-то причинам, больше 10мсек, то тогда период быстрых задач не будет выполняться вовремя.
Поскольку обычно быстрых задач несколько (обычно мы делаем 4, период вызова 25мс по умолчанию), то даже если одна задача и выйдет за границы 25 мс, на последующих задачах период будет восстановлен.
Конечно, если в задаче стоит что-во вроде delay(1000), то здесь помочь нечем. Именно поэтому мы дорабатываем (или пишем заново) библиотеки под интересующие нас устройства.
Опасно использовать без проверки и некоторые встроенные возможности и блоки FLProg -так чтение дискретного входа с защитой от дребезга (в блоке чтения дискретного входа флажок устанавливается) приводит к тому, что выполняется delay(50) при каждом чтении входа.
Задача fast10 (периодичность 10мс) обычно используется для очень быстрых блоков.
-----------
Диспетчер - это очень компактный и быстрый планировщик задач (с открытым кодом) и ждать от него автоматического решения всех проблем на Arduino не стоит. Это только один из возможных инструментов, а качество планирования выполнения задач все же остается на разработчике.
----------
Очень хорошо при наладке помогает использование логических анализаторов - простые на 8-входов стоят менее 500 руб.

Отправлено спустя 5 минут 39 секунд:
edyapd писал(а):
17.02.2020{, 19:31}
Mozgoklui писал(а):
17.02.2020{, 19:13}
она тащит за собой все связанные условием выполнения по переменной? Или они как-то иначе будут выполняться?
Не важно на какой плате переменная была установлена. Если плата выполняется по переменной, то она будет выполняться, не смотря на то, что плата, где устанавливается эта переменная на данный момент не выполняется.
В ЭТОЙ теме немного обсуждалось подобное.
Диспетчер выполнен таким образом, что после его выполнения только один выход активен и только один номер задачи не равен 0.
Таким образом, как много бы не было плат в проекте, если они все выполняются по условию от диспетчера, то в каждом цикле loop() выполняется только одна плата с диспетчером (на Nano со средним набором дополнительных условий это 50-60mcs,на ESP32 4-6 mcs) и одна пользовательская плата.

ecoins
Полковник
Сообщения: 2932
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

Разработки ecoins

#500

Сообщение ecoins » 17.02.2020{, 20:20}

Mozgoklui писал(а):
17.02.2020{, 19:32}
ecoins, Уррааааааааааааа!!!!! Переделал по вашим рекомендациям! За последние несколько недель впервые у меня работает всё вместе!!! Ваш диспетчер - вещь!!! Очень годно, как для ни в чем не шарящих типа меня! С удовольствием бы задонатил в ваш проект, если есть paypal, С.Глушенко удалось задонатить только таким образом, я просто за кордоном..
Здесь тема с моей лампой viewtopic.php?f=63&t=6106&p=85127#p85127
Рад Вашим результатам. Если настрой поддержать проект останется, поддержите FLProg.

Закрыто

Вернуться в «Команда ecoins»