fbd язык программирования

Тема в разделе "ESP8266, ESP32", создана пользователем Evgenykoresh, 9 ноя 2017.

  1. Evgenykoresh

    Evgenykoresh Нуб

    Подскажите, существует ли FBD язык программирования( среда разработки поддерживающая её) для программирования ESP32 и ESP8266&
     
  2. ИгорьК

    ИгорьК Гуру

    Почти все есть здесь: esp32.net
     
  3. Igor68

    Igor68 Гуру

    Круто:)... ну прям как ПЛК. И не то, что IL, LD, SFC, SP, CFC... а сразу FBD. Ну коли дело так пошло... нафига мне Си и Ассемблер... Пойду ка я стишок для Дедушки Мороза учить, чего и Вам советую:D
     
    parovoZZ нравится это.
  4. Sasha_erky

    Sasha_erky Нуб

    Существует только пока для ESP8266& в бета версии программы FLProg
    https://flprog.ru/category/downloads/distrutives/bjeta-versija-programmy/
     
  5. Igor68

    Igor68 Гуру

    ... Вот точно говорят: "А нафига мне что-то знать? Проще пальцы пошире расставить, ничего не знать... и стать крутым"
    Шучу конечно, многие используют это. Но уж больно тесно в этих кирпичиках... и места занимают больше, чем надо. Да тот же степ и т.п.
    О вкусах не спорят...
     
    parovoZZ нравится это.
  6. parovoZZ

    parovoZZ Гуру

    Этот FBD как сорняк. Хочется ST, а тебе дают только FBD...
     
    Igor68 нравится это.
  7. Igor68

    Igor68 Гуру

    Не могу сказать ни "за" ни "против". но ST ещё проще, но менее функционален.
    Пример FB(параметры):
    Код (Text):
    FUNCTION_BLOCK RealCompare
    VAR_INPUT
        VAL1:REAL;
        VAL2:REAL;
        HIST:REAL;
        FIX_ON:BOOL;
    END_VAR

    VAR_OUTPUT
        VAL1_UP_VAL2:BOOL;
        VAL1_EQUALS_VAL2:BOOL;
        VAL1_DOWN_VAL2:BOOL;
    END_VAR

    VAR
    END_VAR
    Ну и собственно исполнение:
    Код (Text):
    IF FIX_ON = FALSE THEN
        (*áåç ôèêñàöèè*)
        IF VAL1 > (VAL2 + HIST) THEN
            VAL1_UP_VAL2            := TRUE;
            VAL1_EQUALS_VAL2        := FALSE;
            VAL1_DOWN_VAL2        := FALSE;
        ELSIF (VAL1- HIST) <  VAL2 THEN
            VAL1_UP_VAL2            := FALSE;
            VAL1_EQUALS_VAL2        := FALSE;
            VAL1_DOWN_VAL2        := TRUE;
        ELSE
            VAL1_UP_VAL2            := FALSE;
            VAL1_EQUALS_VAL2        := FALSE;
            VAL1_DOWN_VAL2        := FALSE;
        END_IF;
    ELSE
        (*ñ ôèêñàöèåé*)
        IF VAL1 >  (VAL2 + HIST) THEN
            VAL1_UP_VAL2            := TRUE;
            VAL1_EQUALS_VAL2        := FALSE;
            VAL1_DOWN_VAL2        := FALSE;
        ELSIF VAL1 < ( VAL2 - HIST)  THEN
            VAL1_UP_VAL2            := FALSE;
            VAL1_EQUALS_VAL2        := FALSE;
            VAL1_DOWN_VAL2        := TRUE;
        END_IF
    END_IF
     
    Можно описать функциональный блок... и есть некоторая свобода. А потом в схеме программы он квадратик с входами и выходами. Соединяй их как надо и куда надо... НО:
    но всё равно это не всем удобно. И из имеющихся "стандартных" кирпичиков обычно и делают. Не утруждаясь создать нужный. А зачем ведь есть LEGO. А потом ковыряясь с таким...
     
  8. parovoZZ

    parovoZZ Гуру

    Ну вот на том же овене в регистрах портов могут лежать коды ошибок. Как их прочитать вне ST и так же изящно, как на ST - не понимаю.
     
  9. Igor68

    Igor68 Гуру

    ХЗ... потому и предпочитаю Си как в segnetics или moxa. Уж больно всё ограничено... да и привязано к специфическому стандарту. Хотя если есть возможность обращения по адресам, то и там наверное можно.