Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 245

Тема: Критическая ошибка в среде программирования Овен ЛОДЖИК или это я д-ак

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

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

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Посмотрите пример тут: http://www.owen.ru/forum/showthread....l=1#post254263
    Детально же расписано ожидаемое и фактическое поведение.
    Ну так, я же Вам чёрным по белому писал, что ЛЗ - это не для выхода, а для входа.
    А в схеме, ОЛ понятия не имеет о линии задержки внутри макроса. Он делает "трассировку" того, что видит. Макрос для него - такой же элемент, как любой ФБ.
    Забейте на предупреждение и запустите со связью вместо ЛЗ и увидите, что линия задержки в макросе прекрасно работает.

  2. #2

    По умолчанию

    Цитата Сообщение от pop70 Посмотреть сообщение
    А в схеме, ОЛ понятия не имеет о линии задержки внутри макроса. Он делает "трассировку" того, что видит. Макрос для него - такой же элемент, как любой ФБ.
    В этом и есть баг. Как раз ОЛ вполне могло бы смотреть на фактический состав макроса.

  3. #3

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    В этом и есть баг. Как раз ОЛ вполне могло бы смотреть на фактический состав макроса.
    Зачем? Каждый раз перекомпилировать блок, который уже скомпилирован?
    Макрос - это уже не "набор логики с паутиной связей", а готовый блок-подпрограмма/процедура/функция.
    Важно, что ЛЗ в макросе никуда не потерялась. Она работает. Хоть и использована неправильно.
    Последний раз редактировалось pop70; 03.08.2017 в 17:59.

  4. #4

    По умолчанию

    Цитата Сообщение от pop70 Посмотреть сообщение
    Зачем? Каждый раз перекомпилировать блок, который уже скомпилирован?
    Ну, wal79 утверждал, что ОЛ и так перекомпилирует схему на каждый чих.

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

    Цитата Сообщение от pop70 Посмотреть сообщение
    Хоть и использована неправильно.
    Это уже не вам судить. Хочу -- ставлю задержку. Говорить "неправильно" без конкретной решаемой задачи "неправильно".

  5. #5

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Ну, wal79 утверждал, что ОЛ и так перекомпилирует схему на каждый чих.

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


    Это уже не вам судить. Хочу -- ставлю задержку. Говорить "неправильно" без конкретной решаемой задачи "неправильно".
    Перекомпилирует схему, а не все её составляющие.
    Вас напрягает предупреждение, которое можно игнорировать, если знаешь что делаешь?

    "Не правильно" с точки зрения идеи "линии задержки" как "значение входа в прошлом цикле".
    В схеме больше, чем один вход на конец ЛЗ не поставишь.

    Кстати, попал на один косяк в работе ЛЗ.
    В макросе CTMAX.
    В чём дело - хз. Повторить не могу. И в программе, и в новом макросе работает. А в том пришлось константу делать 0 и вставлять инвертор - тогда всё работает.
    Изображения Изображения
    Последний раз редактировалось pop70; 03.08.2017 в 19:29.

  6. #6

    По умолчанию

    Цитата Сообщение от pop70 Посмотреть сообщение
    Перекомпилирует схему, а не все её составляющие.
    И? Я же говорил, что перекомпилировать макросы (если они не менялись) не обязательно.

    Цитата Сообщение от pop70 Посмотреть сообщение
    Вас напрягает предупреждение, которое можно игнорировать, если знаешь что делаешь?
    Меня напрягает то, что ОЛ вставляет лишнюю задержку при "самозамыкании макроса, который внутри уже содержит задержку".
    По-моему, лишней задержки добавляться не должно.

    Цитата Сообщение от pop70 Посмотреть сообщение
    "Не правильно" с точки зрения идеи "линии задержки" как "значение входа в прошлом цикле".
    А вдруг я реально хочу, чтобы у меня блок выдавал "отрицание того, что было на прошлом цикле"?
    Не пойму чего тут неправильного с точки зрения "линии задержки".

  7. #7

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    И? Я же говорил, что перекомпилировать макросы (если они не менялись) не обязательно.


    Меня напрягает то, что ОЛ вставляет лишнюю задержку при "самозамыкании макроса, который внутри уже содержит задержку".
    По-моему, лишней задержки добавляться не должно.


    А вдруг я реально хочу, чтобы у меня блок выдавал "отрицание того, что было на прошлом цикле"?
    Не пойму чего тут неправильного с точки зрения "линии задержки".
    ОЛ ничего не добавляет. Он говорит программисту, что обнаружил сомнительное место. Можешь его тупо послушаться, если плохо понимаешь что делаешь, а можешь оставить как есть.
    Отрицание того, что было в прошлом цикле, это ЛЗ+NOT (NOT(вчера)), а не NOT+ЛЗ (Завтра(NOT(???))
    Сравните результат при запуске
    Изображения Изображения

  8. #8

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    И? Я же говорил, что перекомпилировать макросы (если они не менялись) не обязательн.

    Вы же хотите, чтобы, при анализе схемы, она анализировалась на наличие циклов без ЛЗ?
    А для этого, придётся макрос вставлять в схему в развёрнутом виде, и заново просчитывать всё дерево связей.
    У Вас полцикла в макросе, а полцикла снаружи. Как проверить на ЛЗ внутри, не развернув и не "перекомпилировав" дерево проекта с развёрнутым макросом?

  9. #9
    Пользователь Аватар для Василий Кашуба
    Регистрация
    20.11.2011
    Адрес
    Ставрополь
    Сообщений
    2,525

    По умолчанию

    Цитата Сообщение от pop70 Посмотреть сообщение
    Перекомпилирует схему, а не все её составляющие.
    Вас напрягает предупреждение, которое можно игнорировать, если знаешь что делаешь?

    "Не правильно" с точки зрения идеи "линии задержки" как "значение входа в прошлом цикле".
    В схеме больше, чем один вход на конец ЛЗ не поставишь.

    Кстати, попал на один косяк в работе ЛЗ.
    В макросе CTMAX.
    В чём дело - хз. Повторить не могу. И в программе, и в новом макросе работает. А в том пришлось константу делать 0 и вставлять инвертор - тогда всё работает.
    А поменяйте связи на входах местами и схема заработает.

  10. #10

    По умолчанию

    Цитата Сообщение от Василий Кашуба Посмотреть сообщение
    А поменяйте связи на входах местами и схема заработает.
    Угу. Почему-то
    Вот это - баг.
    Изображения Изображения

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Два вопроса по ОВЕН-Лоджик.
    от Sargon в разделе Среда программирования OWEN Logic
    Ответов: 33
    Последнее сообщение: 06.02.2017, 15:45
  2. ФИЧИ И БАГИ ОВЕН ЛОДЖИК
    от rovki в разделе Программируемые реле
    Ответов: 649
    Последнее сообщение: 29.07.2016, 10:33
  3. Универсальные макросы для ОВЕН ЛОДЖИК
    от rovki в разделе Программируемые реле
    Ответов: 197
    Последнее сообщение: 28.06.2016, 09:53
  4. Пожелания по развитию овен лоджик
    от rovki в разделе Программируемые реле
    Ответов: 146
    Последнее сообщение: 25.04.2013, 23:47
  5. Драйвер для ОВЕН ТРМ210 в среде LabVIEW
    от tzpp в разделе Помощь Разработчикам
    Ответов: 3
    Последнее сообщение: 16.02.2010, 13:06

Ваши права

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