Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Язык функциональных блоков FBD
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
Denisvak
Извиняюсь если не в ту тему "влепил"

Может кто подскажет где можно почитать про язык функциональных блоков FBD? В наши устройства закладывается определёная логика работы. Есть тройка групп входов и выходов, между ними "логика" в виде элементов "И", "ИЛИ". Сейчас всё делается на исходниках, и логика заложена в них. Вот в поисках упрощения работы наткнулся на такие фраз "язык функциональных блоков FBD" мож его как-нить можно прикротить под себя?

СпасибА!
CodeWarrior1241
Цитата(Denisvak @ May 2 2007, 09:39) *
Извиняюсь если не в ту тему "влепил"

Может кто подскажет где можно почитать про язык функциональных блоков FBD? В наши устройства закладывается определёная логика работы. Есть тройка групп входов и выходов, между ними "логика" в виде элементов "И", "ИЛИ". Сейчас всё делается на исходниках, и логика заложена в них. Вот в поисках упрощения работы наткнулся на такие фраз "язык функциональных блоков FBD" мож его как-нить можно прикротить под себя?

СпасибА!


Если я правельно понимаю перевод "Functional Block Language", это является языком моделированя систем, где можно выражать структуру обекта (классы, обекты, составные части, и оболочку), поведение обекта (state machine, activity), и соиденения (коммуникации, связи, timing). В той организации где я работую используют UML (unified modeling language) для таких целей. Вся логика "высокого уровня" проекта выражается в UML.
=AK=
Цитата(CodeWarrior1241 @ May 3 2007, 01:58) *
Если я правельно понимаю перевод "Functional Block Language", это является языком моделированя систем

Как говорится, "и даже не однофамилец". Начиная с того, что FBD - это "Function Block Diagram". Дальше Гугль рулит, начните с Википедии

Цитата(Denisvak @ May 2 2007, 23:09) *
В наши устройства закладывается определёная логика работы. Есть тройка групп входов и выходов, между ними "логика" в виде элементов "И", "ИЛИ". Сейчас всё делается на исходниках, и логика заложена в них. Вот в поисках упрощения работы наткнулся на такие фраз "язык функциональных блоков FBD" мож его как-нить можно прикротить под себя?

Почитайте статьи на Софткрафте, может, найдете что-то подxодящее. Например, Реализация алгоритмов логического управления программами на языке функциональных блоков
aforestman
Я так понимаю, что вас интересует получение рабочего кода из формального описания логики работы.
Если вы только выбираете инструмент посмотрите вот это

Нажмите для просмотра прикрепленного файла
Автор предлагает преобразование из описания на языке лестничных диаграмм (релейно-контактные схемы) в байт интерпретируемый код или исходник на C.
Carmack
Цитата(Denisvak @ May 2 2007, 17:39) *
Извиняюсь если не в ту тему "влепил"

Может кто подскажет где можно почитать про язык функциональных блоков FBD? В наши устройства закладывается определёная логика работы. Есть тройка групп входов и выходов, между ними "логика" в виде элементов "И", "ИЛИ". Сейчас всё делается на исходниках, и логика заложена в них. Вот в поисках упрощения работы наткнулся на такие фраз "язык функциональных блоков FBD" мож его как-нить можно прикротить под себя?

СпасибА!


FBD - это один из языков программирования стандарта МЭК 61131.
Реализован в системе программирования Codesys.
Сам Codesys бесплатен , но на целевом контроллере должна
быть реализована система исполнения.
Из книг про FBD описано в
Петров И.В.
Программируемые контроллеры
Denisvak
Спасибо большое. то конечно все хорошо.
Но как бы больше интересует алгоритмы как это сделать нам на своем контроллере, а не описание уже готовых программ тем более сложных и дорогих.

Простые элементы "И", "ИЛИ".
Carmack
Цитата(Denisvak @ May 3 2007, 12:22) *
Спасибо большое. то конечно все хорошо.
Но как бы больше интересует алгоритмы как это сделать нам на своем контроллере, а не описание уже готовых программ тем более сложных и дорогих.

Простые элементы "И", "ИЛИ".


Если Вы решили использовать FBD как язык программирования
то вариант один портировать систему исполнения на свой контроллер,
что конечно дорого.

Другой вариант купить чип с портированной системой исполнения
поищите в гугле или обратитесь к дистрибьютору Codesys Прологу
они помню что то рекламировали.

Если все вышеуказанное не подходит делайте программу без FBD
на любом алгоритмическом языке какой вам нравиться -
ничего сложного в Вашем алгоритме нет такого что бы его нельзя
было реализовать на любом алгоритмическом языке.
Denisvak
Цитата(Carmack @ May 3 2007, 12:37) *
Если Вы решили использовать FBD как язык программирования
то вариант один портировать систему исполнения на свой контроллер,
что конечно дорого.

Другой вариант купить чип с портированной системой исполнения
поищите в гугле или обратитесь к дистрибьютору Codesys Прологу
они помню что то рекламировали.

Если все вышеуказанное не подходит делайте программу без FBD
на любом алгоритмическом языке какой вам нравиться -
ничего сложного в Вашем алгоритме нет такого что бы его нельзя
было реализовать на любом алгоритмическом языке.


Как бы конкретно на этом не зацыклился. Просто примерно это и необходимо.
Вариант с покупкой чипа тоже не катит. Система как бы уже закончена, работает стабильно.

Вот про подсказку о алгоритмических языках спасибо a14.gif . Буду "рыть" в данном направлении.
Denisvak
Чет я туплю сегодня. Ничего путного не найти....по этим алгоритмическим языкам.
aforestman
Цитата
Спасибо большое. то конечно все хорошо.
Но как бы больше интересует алгоритмы как это сделать нам на своем контроллере, а не описание уже готовых программ тем более сложных и дорогих.

Простые элементы "И", "ИЛИ".


Попробую предложить следующее.

Описываем логику работы программы в виде лестничной диаграммы (она же принципиальная схема). Для этой цели подойдет практически любой редактор.

Нажмите для просмотра прикрепленного файла

Затем переводим картинку в совокупность логических уравнений.

Код
// Network 177
E11d0 = Станок_ON & (E2d1 | E2d2 | E3d1 | E3d2 | F3d5)
// Network 178
E11d0 = Станок_ON & (E11b1 | (!Zd2_22 & E11d0) | Zd4)
// Network 179
E11d2 = Станок_ON & (B11b2 | (!Zd1_11 & E11d0) | Zd4)


Приводим эти уравнения к виду понятному вашему компилятору .
Оформляем все это в виде функции и циклически исполняем ее N раз в секунду.

Как результат имеем "программируемый" логический контроллер практически на халяву!
Denisvak
Цитата(aforestman @ May 4 2007, 16:11) *
Приводим эти уравнения к виду понятному вашему компилятору .
Оформляем все это в виде функции и циклически исполняем ее N раз в секунду.

Как результат имеем "программируемый" логический контроллер практически на халяву!


Спасибо a14.gif . Как я понял из исходников примерно так сейчас все и сделано.
Думаю так и останется. Просто все сделано.
Терь надо САПР для этого писать, но эта тема уже не для этого топика.

Всем большое спасибо!!!
Анатолоий
Добрый день, всем!
Думаю, все проще - ишите программное обеспечение для программируемых модулей (контроллеров) типа LOGO!, KINCO и т.п. Там есть LogoSoft Comfort или LRX SW. Выбираете язык FBD и можете писать программы как Вы привыкли И, ИЛИ, И-НЕ, ..., счетчики, таймеры и прочее. Можно транслировать из FBD в LAD и наоборот.
ПЛК Vipa100 идет с бесплатным программным обеспечением. Можно транслировать в Step7 и наоборот.
Дерзайте! wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.