Показано с 1 по 10 из 1349

Тема: Hardella IDE

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А можно вот такой анонимный блок ?

    IF TON(IN := NOT TON.Q, PT := T#0s, ET => et).Q and TON(IN := NOT TON.Q, PT := T#0s, ET => et).Q then
    Жесть какая.
    На самом деле, нельзя.
    Синтаксически у меня IF TON(...) это обращение к блоку TON. И TON это не название переменной, а именно ссылка на функциональный блок TON.
    Т.е. конструкцию "NOT TON.Q" просто физически не получится ввести в том смысле, что TON это не переменная.

    Если хочется "пощупать", могу либо сборку среды выложить, либо давайте примеров -- ещё примеров/картинок запишу.


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


    Другое дело, что можно сделать такую конструкцию. Т.е. когда вводим "второй" TON, то автоматически появляются скобки после TON и убрать их невозможно. Либо убирать второй TON целиком, либо указывать параметры.
    Код:
    IF TON(IN := NOT(TON(IN := v1, PT := T#4s).Q), PT := T#3s, ET => et).Q THEN 
      complex.cstm.bingo := TRUE; 
    END_IF;
    И сейчас она раскрылась в такое:
    Код:
      tmpTON_0 : TON;
      tmpTON_1 : TON;
    END_VAR
      tmpTON_1(IN := v1, PT := T#4s);
      tmpTON_0(IN := NOT tmpTON_1.Q, PT := T#3s, ET => et);
      IF tmpTON_0.Q THEN
        complex.cstm.bingo := TRUE;
      END_IF;
    С точки зрения ST, вложенные FB выглядят, конечно, стрёмно.
    Но если сделать "IF тут небольшая CFC диаграмма", то анонимные блоки могут заиграть новыми красками

  2. #2
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,054

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    . И TON это не название переменной, а именно ссылка на функциональный блок TON. ...Т.е. конструкцию "NOT TON.Q" просто физически не получится ввести в том смысле, что TON это не переменная.)
    TON - фб ?
    Страшно произнести, но любой фб - это просто переменная. Отсюда и TON - просто переменная.
    TON1 := TON2; //пжста.
    И даже анонимная переменная - переменная.
    Ну а поля ФБ - это переменные сам бог велел.

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Ну, примерно так же как в CFC внезапно расположенный TON работает и никого не смущает, что он в переменных не объявлен.
    Это где так есть ?

  3. #3

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    TON - фб ?
    Страшно произнести, но любой фб - это просто переменная.
    Переменная - это экземпляр ФБ.

  4. #4
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    3,054

    По умолчанию

    Цитата Сообщение от rapucha Посмотреть сообщение
    Переменная - это экземпляр ФБ.
    А фб без экземпляра это вообще ничто. Просто NOP.
    Какой смысл тогда от "просто" вызова кода ФБ ? Нужно просто занять чем-то проц ?
    Для полноценной и независимой работы с 2-мя анонимными фб нужно создавать 2 набора переменных (in1,in2,pt1,pt2,et1,et2,q1,q2) ? (А есть фб у которых 100500 переменных в интерфейсе)
    И зачем тогда нужен вообще фб с его инкапсуляцией, когда кучки из наборов однотипных переменных сгребли в просто структурые переменные - фб, а опосля сделали их анонимными и добавили еще такие же кучки..
    "Море, на море суша, на суше поп сидит и видит - море, на море.."
    Даже в авторском примере за ради экономии 1 (одной) переменной введено 2 (две) переменные.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •