Стартовая страница › Форумы › Разработка и интеграция › ModFBDJP
Помечено: FBD
- В этой теме 33 ответа, 3 участника, последнее обновление 1 месяц, 1 неделя назад сделано manjey73.
-
АвторСообщения
-
05.03.2024 в 01:50 #31248JurasskParkУчастник
Небольшой набросок что сейчас готово.
https://www.youtube.com/watch?v=8pIMZA4eUJIСразу оговорюсь, что сама концепция и основа не моя. Пример нашел на GitHub. Код был написан на Framework 4.6. Поэтому на моей совести миграция кода на Net Core, используемая графика. Естественно, это не окончательный вариант.
05.03.2024 в 08:48 #31249manjey73УчастникКак бы все классно, но по списку функциональных блоков печально.
Я про то, что там слева Математические, Логические и т.д.В идеале нужен функционал ST кода и главное с его правилами, когда FBD блок создает сам память для работы блока, Функция просто использует память для работы. В общем все должно быть как в ПЛК, например использование CFC а внутри FBD блока будет либо CFC из готовых элементов либо ST код.
05.03.2024 в 08:50 #31250manjey73УчастникИспользование логики на формулах C# в текущем варианте слабовата, нельзя превратить с разбега работу формулы в аналог ПЛК от слова совсем. Это такой геморрой с взаимосвязями каналов и т.д.
05.03.2024 в 11:57 #31251JurasskParkУчастникFBD блоки разрабатываются какие нужные.
Но самое главное, что можно сразу проверять правильность расчётов.
Это наглядно.
Я же написал, что это версия 0.000001.
Просто Михаил попросил создать тему, а тема без какого-то примера, что это работает в не только бла-бла — не интересна.?
05.03.2024 в 12:01 #31252manjey73УчастникНадеюсь речь не только о расчетах 🙂
таймеры, гистерезисы, ПИД, логика побитовая и т.д. и увеличение входов/выходов с привязкой к каналамВот что сильно требуется для работы в рантайме. Чтобы не скрещивать Scada и SoftPLC на одном ПК, а чтобы SoftPLC был встроен в Scada — мечты 🙂
05.03.2024 в 12:04 #31253JurasskParkУчастник+ самое главное (ну кроме дизайна, который сейчас выглядит отвратительным), это то что клиентом через сервер я умею забирать данные через код модуля (логика) и форму.
А уж специализрованые блоки а-ля TON и другие разработать можно.
Для меня по моей спицифике была давней мечтой написать что-то такое.
Ну как говорится я же просто показываю. ?05.03.2024 в 12:07 #31254JurasskParkУчастникP.S. Мечта была написать, но я как всегда ворую чужой код и дорабатываю под свои нужды. ???
05.03.2024 в 12:22 #31255manjey73УчастникЭто не важно, что основано на чужом коде. Тут более важно, если дадите возможность писать свои блоки, те же TON и прочее по необходимости. И возможность их выкладывать, подгружать.
А народ подтянется. Так как SoftPLC встроенный это гуд.Через формулы + Модуль автоуправления сделать логику можно упариться. Мы сделали ротацию кондиционеров на одном объекте, я упарился формулы состыковывать с модулем автоуправления.
05.03.2024 в 12:44 #31256JurasskParkУчастникТут более важно, если дадите возможность писать свои блоки, те же TON и прочее по необходимости. И возможность их выкладывать, подгружать.
Думаю, что сделать блоки загружаемые из каталога как библиотеки dll — это не так сложно сделать. По крайне мере опыт такой есть, когда писал приложение с плагинами и модулями.
Но как говорит Михаил «это не в приоритетной задаче». Сначала нужно чтобы это заработало и было удобно пользоваться. 🙂
05.03.2024 в 13:04 #31257manjey73УчастникНу, привязка входных и выходных каналов это первое.
Второе, чтобы FBD работали не в общей памяти а под каждый создавалась своя память с переменными.05.03.2024 в 14:37 #31263MikhailМодератор@jurasskpark, напишите краткую концепцию — какие возможности предполагаются и как это будет работать в связке со скадой? По мере проработки модуля концепцию можно будет обновлять.
05.03.2024 в 16:18 #31269JurasskParkУчастник@jurasskpark, напишите краткую концепцию — какие возможности предполагаются и как это будет работать в связке со скадой? По мере проработки модуля концепцию можно будет обновлять.
Это будет модуль сервера (станадртно WinForm и Logic и консольное приложение — сервис).
Проект будет состоять из списка программ FBD, которые выполняются последовательно по очереди. (задумываться о многопоточном выполнении пока не хочу).
Разница в том, что Logic модуля может получить значения напрямую из Сервера, а вот приложению — сервису и форме Модуля,
связь с сервером через подключение через TCP к серверу будет делаться (как у ТрендКлиента).Как @manjey73 писал, постарсь реализовать стандартные блоки FBD (сдвиги, логические, и т.д.) чтобы потом расчёт записывать в рассчетный тег.
Для этого собственно в проекте также будет у каждой программы хранится свой список тегов(каналов) которые перед выполнением программы надо прочитать с сервера, а после выполнения записать в сервер.
06.03.2024 в 00:06 #31271JurasskParkУчастник06.03.2024 в 10:44 #31272manjey73Участник@JurasskPark а огласите весь список, начиная с Logic пжалста 🙂
Вот банальный пример программы. Входов может быть больше, как и выходов (Расход1, Расход 2)
Так же могут быть внутренние переменные для работы программы (Имп_2) или скажем некоторые константы.
Так же внутренние переменные могут быть связаны с каналами (Весь импульса)Входы и выходы соответственно тоже должны иметь возможность связи с каналами.
Ну и самое главное, модуль должен выполнять не одну подобную программу а любое количество. Типа Программа1, Программа2 и т.д. и под каждую программу переменные, входы должны иметь связь со своими каналами.
06.03.2024 в 15:11 #31280MikhailМодераторДля чего нужно отдельное приложение в дополнение к логике модуля?
Варианты выполнения нескольких программ параллельно:
1. Модуль запускает отдельный поток, в котором она будет выполняться программа независимо от других.
2. Модуль вызывает выполнение шага итерации для каждой программы из одного потока. -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.