ModFBDJP

Помечено: 

Просмотр 15 сообщений - с 1 по 15 (из 34 всего)
  • Автор
    Сообщения
  • #31248
    JurasskPark
    Участник

    Небольшой набросок что сейчас готово.
    https://www.youtube.com/watch?v=8pIMZA4eUJI

    Сразу оговорюсь, что сама концепция и основа не моя. Пример нашел на GitHub. Код был написан на Framework 4.6. Поэтому на моей совести миграция кода на Net Core, используемая графика. Естественно, это не окончательный вариант.

    #31249
    manjey73
    Участник

    Как бы все классно, но по списку функциональных блоков печально.
    Я про то, что там слева Математические, Логические и т.д.

    В идеале нужен функционал ST кода и главное с его правилами, когда FBD блок создает сам память для работы блока, Функция просто использует память для работы. В общем все должно быть как в ПЛК, например использование CFC а внутри FBD блока будет либо CFC из готовых элементов либо ST код.

    #31250
    manjey73
    Участник

    Использование логики на формулах C# в текущем варианте слабовата, нельзя превратить с разбега работу формулы в аналог ПЛК от слова совсем. Это такой геморрой с взаимосвязями каналов и т.д.

    #31251
    JurasskPark
    Участник

    FBD блоки разрабатываются какие нужные.
    Но самое главное, что можно сразу проверять правильность расчётов.
    Это наглядно.
    Я же написал, что это версия 0.000001.
    Просто Михаил попросил создать тему, а тема без какого-то примера, что это работает в не только бла-бла — не интересна.

    ?

    #31252
    manjey73
    Участник

    Надеюсь речь не только о расчетах 🙂
    таймеры, гистерезисы, ПИД, логика побитовая и т.д. и увеличение входов/выходов с привязкой к каналам

    Вот что сильно требуется для работы в рантайме. Чтобы не скрещивать Scada и SoftPLC на одном ПК, а чтобы SoftPLC был встроен в Scada — мечты 🙂

    #31253
    JurasskPark
    Участник

    + самое главное (ну кроме дизайна, который сейчас выглядит отвратительным), это то что клиентом через сервер я умею забирать данные через код модуля (логика) и форму.

    А уж специализрованые блоки а-ля TON и другие разработать можно.

    Для меня по моей спицифике была давней мечтой написать что-то такое.
    Ну как говорится я же просто показываю. ?

    #31254
    JurasskPark
    Участник

    P.S. Мечта была написать, но я как всегда ворую чужой код и дорабатываю под свои нужды. ???

    #31255
    manjey73
    Участник

    Это не важно, что основано на чужом коде. Тут более важно, если дадите возможность писать свои блоки, те же TON и прочее по необходимости. И возможность их выкладывать, подгружать.
    А народ подтянется. Так как SoftPLC встроенный это гуд.

    Через формулы + Модуль автоуправления сделать логику можно упариться. Мы сделали ротацию кондиционеров на одном объекте, я упарился формулы состыковывать с модулем автоуправления.

    #31256
    JurasskPark
    Участник

    Тут более важно, если дадите возможность писать свои блоки, те же TON и прочее по необходимости. И возможность их выкладывать, подгружать.

    Думаю, что сделать блоки загружаемые из каталога как библиотеки dll — это не так сложно сделать. По крайне мере опыт такой есть, когда писал приложение с плагинами и модулями.

    Но как говорит Михаил «это не в приоритетной задаче». Сначала нужно чтобы это заработало и было удобно пользоваться. 🙂

    #31257
    manjey73
    Участник

    Ну, привязка входных и выходных каналов это первое.
    Второе, чтобы FBD работали не в общей памяти а под каждый создавалась своя память с переменными.

    #31263
    Mikhail
    Модератор

    @jurasskpark, напишите краткую концепцию — какие возможности предполагаются и как это будет работать в связке со скадой? По мере проработки модуля концепцию можно будет обновлять.

    #31269
    JurasskPark
    Участник

    @jurasskpark, напишите краткую концепцию — какие возможности предполагаются и как это будет работать в связке со скадой? По мере проработки модуля концепцию можно будет обновлять.

    Это будет модуль сервера (станадртно WinForm и Logic и консольное приложение — сервис).
    Проект будет состоять из списка программ FBD, которые выполняются последовательно по очереди. (задумываться о многопоточном выполнении пока не хочу).
    Разница в том, что Logic модуля может получить значения напрямую из Сервера, а вот приложению — сервису и форме Модуля,
    связь с сервером через подключение через TCP к серверу будет делаться (как у ТрендКлиента).

    Как @manjey73 писал, постарсь реализовать стандартные блоки FBD (сдвиги, логические, и т.д.) чтобы потом расчёт записывать в рассчетный тег.

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

    #31271
    JurasskPark
    Участник

    Что сделал по дизайну.=)
    FBDJP

    #31272
    manjey73
    Участник

    @JurasskPark а огласите весь список, начиная с Logic пжалста 🙂

    пример программы

    Вот банальный пример программы. Входов может быть больше, как и выходов (Расход1, Расход 2)
    Так же могут быть внутренние переменные для работы программы (Имп_2) или скажем некоторые константы.
    Так же внутренние переменные могут быть связаны с каналами (Весь импульса)

    Входы и выходы соответственно тоже должны иметь возможность связи с каналами.

    Ну и самое главное, модуль должен выполнять не одну подобную программу а любое количество. Типа Программа1, Программа2 и т.д. и под каждую программу переменные, входы должны иметь связь со своими каналами.

    #31280
    Mikhail
    Модератор

    Для чего нужно отдельное приложение в дополнение к логике модуля?

    Варианты выполнения нескольких программ параллельно:
    1. Модуль запускает отдельный поток, в котором она будет выполняться программа независимо от других.
    2. Модуль вызывает выполнение шага итерации для каждой программы из одного потока.

Просмотр 15 сообщений - с 1 по 15 (из 34 всего)
  • Вы должны авторизироваться для ответа в этой теме.