Страница 8 из 135 ПерваяПервая ... 6789101858108 ... ПоследняяПоследняя
Показано с 71 по 80 из 1349

Тема: Hardella IDE

  1. #71

    По умолчанию

    Цитата Сообщение от rapucha Посмотреть сообщение
    внутри анонимного блока было бы логично требовать уникальности имен полюбому, мне кажется.
    Тут нормально всё.
    Смысл простой: IF TON(...) это не обращение к переменной TON, а "работа с блоком TON, расположенным в конкретном месте кода".
    Ну, примерно так же как в CFC внезапно расположенный TON работает и никого не смущает, что он в переменных не объявлен.

    Т.е. TON(...).Q OR TON(...).Q будут уже два разных TON'а (т.е. под них будут созданы две разные переменные).

    Цитата Сообщение от rapucha Посмотреть сообщение
    Клевая штука. По уму, тестов бы ей, а то..
    Тестов преобразователя?

    Надо придумать в каком формате описывать тесты на программу 61131. Тогда набор таких тестов можно использовать и для тестирования самой среды (ну, куча тестов на простые темы).
    Есть идеи?

    Собственно, вопрос: в какую сторону дальше двигаться?
    1. Выложить сборку "на попробовать"
    2. Импорт библиотек. Сейчас я сигнатуры TON/TOFF внёс вручную ради демонстрации.
    3. Что-то из PLC configuration. Я пока без понятия что из PLC conf чаще используется.
    4. Тесты?
    5. Ещё что-то?
    6. CFC

  2. #72

    По умолчанию

    в смысле, у вас два анонимных блока на каждый таймер? затупил. Я почему-то думал что там прямо и декларация блока, а наверное нет.

    Вот это вот намекает, что можно:
    tmpTON_0 : TON;

  3. #73

    По умолчанию

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

    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 диаграмма", то анонимные блоки могут заиграть новыми красками

  4. #74

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Собственно, вопрос: в какую сторону дальше двигаться?
    Это серьезный вопрос. Смотря сколько у вас времени и какие, кхм, амбиции. Т.е. чего вы от этого хотите.

    Мне кажется, п.2, импорт, самый острый.
    п.3 можно отложить на неопределенное время. предложенный вами подход это дело закрывает и ладно.
    п.1 рано.
    п.6 наверное полезно, но там же еще и графика?
    п.4 суперважно, но надо подумать как их туда воткнуть. Хочется конечно автоматом генерить болванки для юнит-тестов, и гонять все тесты оптом, со списком исключений.
    Вроде, можно при помощи каких-то системных либ дернуть любой POU?

  5. #75

    По умолчанию

    Цитата Сообщение от rapucha Посмотреть сообщение
    п.4 суперважно, но надо подумать как их туда воткнуть.
    Цитата Сообщение от rapucha Посмотреть сообщение
    гонять все тесты оптом, со списком исключений. ?
    Это, думаю, самая простая часть.

    Вопрос в том, как "описывать" тесты.

  6. #76

    По умолчанию

    а вот кстати, можно в вашей схеме работы к готовому CDS проекту уже из Идеи добавить новые блоки? если да, то весь тестовый фреймворк можно внутри Идеи сделать.

  7. #77

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Это, думаю, самая простая часть.

    Вопрос в том, как "описывать" тесты.
    Возможно, я не понял вопрос. Я думал, в лоб: каждый тест - это POU, а то и PLC_PRG, который вызывает тестируемый POU на предмет его какой-то простой единичной функциональности. У каждого теста -- булев результат выполнения. Для каждого тестируемого POU может быть несколько тестов.
    Автогенерилка -- "по запросу", типа выделили выходную переменную -- сгенерили для нее болванку теста. С POU которые изменяют чье-то состояние конечно засада, тут на откуп программиста отдать разумнее.

  8. #78
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    vladimirisitnikov
    прочел от бессонницы ваш пост.
    Наверное правильнее было бы вам потратить время на чтение документации кдс,
    а не изобретение велосипеда..
    многое бы стало бы понятно, много нового открыто.
    Вы просто не умеете пользоваться кдс.

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

    По умолчанию

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

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

  10. #80

    По умолчанию

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

Страница 8 из 135 ПерваяПервая ... 6789101858108 ... ПоследняяПоследняя

Ваши права

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