Страница 15 из 25 ПерваяПервая ... 51314151617 ... ПоследняяПоследняя
Показано с 141 по 150 из 245

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

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

    По умолчанию

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

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

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

  2. #142

    По умолчанию

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


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


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

  3. #143

    По умолчанию

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

  4. #144

    По умолчанию

    Цитата Сообщение от pop70 Посмотреть сообщение
    ОЛ ничего не добавляет.
    Вот видеозапись: http://recordit.co/EjrZEKJELy (это же видео в виде анимированного gif: http://g.recordit.co/EjrZEKJELy.gif )
    Макрос NOTD это вход ==> NOT =задержка=> выход

    Очевидно, что вариант "макрос" и "вне макроса" выдают разный ответ.


    Цитата Сообщение от pop70 Посмотреть сообщение
    Отрицание того, что было в прошлом цикле, это ЛЗ+NOT (NOT(вчера)), а не NOT+ЛЗ (Завтра(NOT(???))
    Ой, неужели вас так вводит в ступор линия задержки на выходе?
    Да пёс с ней. Могу сделать такой же пример с задержкой по входу:

    http://recordit.co/D78FxgJAtw (оно же http://g.recordit.co/D78FxgJAtw.gif )

    Результат всё равно один и тот же: вариант с "макросом" требует двух циклов на переключение состояния, а точно такой же вариант (но без макроса) переключается на каждом цикле. Отсюда вывод: в варианте с макросом ОЛ добавляет лишнюю задержку. Иначе как ещё объяснить то, что период генератора меняется?

  5. #145

    По умолчанию

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

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

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

    По умолчанию

    Цитата Сообщение от pop70 Посмотреть сообщение
    Угу. Почему-то
    Вот это - баг.
    Это не баг. Первым обрабатывается верхний вход, а нижний вторым.

  7. #147

    По умолчанию

    Цитата Сообщение от pop70 Посмотреть сообщение
    Вы же хотите, чтобы, при анализе схемы, она анализировалась на наличие циклов без ЛЗ?
    А для этого, придётся макрос вставлять в схему в развёрнутом виде, и заново просчитывать всё дерево связей.
    У Вас полцикла в макросе, а полцикла снаружи. Как проверить на ЛЗ внутри, не развернув и не "перекомпилировав" дерево проекта с развёрнутым макросом?
    Вопрос хороший и он тесно пересекается с вопросом "а как вообще должны вычисляться значения выходов".
    Как вам такой вариант?
    1) Берём выход
    2) Смотрим что к нему подключено
    3) Если подключен ФБ / функция, то пытаемся вычислить этот самый ФБ/функцию. Что для этого нужно? Нужно знать значения входов.
    4) Пытаемся вычислить значение каждого входа:
    4.1) Если на вход подключена линия задержки, то просто берём её значение
    4.2) Если вход подключена простая связь, то пытаемся вычислить значение того, откуда эта связь выходит (точно так же как на шаге 3)
    5) Потом обновляем значения в линиях задержки (не хочу заострять внимание на том как именно)

    Если же на этапе 4.2 наступает цикл, то говорим "ай-яй-яй, взрываем ПР и заканчиваем работу".


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

    Иными словами, при компиляции макроса мы выполняем алгоритм (шаги 1..5) и таким образом мы узнаём какие входы являются "обязательными".

    В конкретном же примере: Макрос DNOT(вход) == NOT(DELAY(вход)). На шаге 4.1 алгоритм понимает, что для вычисления значения макроса будет браться значение из линии задержки. И, таким образом, получается, что "выход 1 не связан напрямую со входом", и, значит, можно без проблем в результирующей программе замыкать выход на вход.

    Если у макроса M входов и N выходов, то дополнительно нужно M*N бит информации, чтобы зафиксировать то, между какими входами-выходами есть прямая связь. Содержимое же макроса уже играет роли.
    Или я чего-то путаю?
    Последний раз редактировалось Владимир Ситников; 03.08.2017 в 20:29.

  8. #148

    По умолчанию

    Цитата Сообщение от Василий Кашуба Посмотреть сообщение
    Это не баг. Первым обрабатывается верхний вход, а нижний вторым.
    O__O
    Что значит "первым обрабатывается верхний вход"? Вы что вкладываете в понятие "обработка входа XOR"?

  9. #149

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    Вот видеозапись: http://recordit.co/EjrZEKJELy (это же видео в виде анимированного gif: http://g.recordit.co/EjrZEKJELy.gif )
    Макрос NOTD это вход ==> NOT =задержка=> выход

    Очевидно, что вариант "макрос" и "вне макроса" выдают разный ответ.



    Ой, неужели вас так вводит в ступор линия задержки на выходе?
    Да пёс с ней. Могу сделать такой же пример с задержкой по входу:

    http://recordit.co/D78FxgJAtw (оно же http://g.recordit.co/D78FxgJAtw.gif )

    Результат всё равно один и тот же: вариант с "макросом" требует двух циклов на переключение состояния, а точно такой же вариант (но без макроса) переключается на каждом цикле. Отсюда вывод: в варианте с макросом ОЛ добавляет лишнюю задержку. Иначе как ещё объяснить то, что период генератора меняется?
    Блин, да. Вставляет.
    Это да - косяк, однако
    Последний раз редактировалось pop70; 03.08.2017 в 21:03.

  10. #150
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,256

    По умолчанию

    Цитата Сообщение от Владимир Ситников Посмотреть сообщение
    O__O
    Что значит "первым обрабатывается верхний вход"? Вы что вкладываете в понятие "обработка входа XOR"?
    да как в javascript: foo && bar, если первое false то второе уже не проверяется
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 15 из 25 ПерваяПервая ... 51314151617 ... ПоследняяПоследняя

Похожие темы

  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

Ваши права

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