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

Тема: Фичи и баги OWEN Logic

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

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

    По умолчанию

    Цитата Сообщение от goranach Посмотреть сообщение
    Снимок экрана 2024-03-21 114524.png
    Почему не подключенные переменные в блоке AND являются 1?
    Лоджик за вас сделал схему работоспособной, подключите входы сами и будет как вам надо. И не оставляйте входы и выходы пустыми.

  2. #2
    Пользователь
    Регистрация
    09.03.2020
    Адрес
    Новочеркасск
    Сообщений
    45

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Лоджик за вас сделал схему работоспособной, подключите входы сами и будет как вам надо. И не оставляйте входы и выходы пустыми.
    В этом случае Лоджик не прав: 0 должен быть значением по уморлчанию для неинициализированной переменной. И вроде так было всегда: я использую блоки на 4-8 ИЛИ и попрой остаются незанятые входы. Взведение неподключенных в 1 вместо 0 блокировало бы работу всей программы.

  3. #3

    По умолчанию

    Цитата Сообщение от kaftanati Посмотреть сообщение
    В этом случае Лоджик не прав: 0 должен быть значением по уморлчанию для неинициализированной переменной. И вроде так было всегда: я использую блоки на 4-8 ИЛИ и попрой остаются незанятые входы. Взведение неподключенных в 1 вместо 0 блокировало бы работу всей программы.
    Ответ неверен. Поведение OwenLogic сделано аналогичным поведению блоков AND и OR в Siemens Logo. Это поведение является ИСКЛЮЧЕНИЕМ для упрощения создания программ на FBD, чтобы не захламлять константами экран:
    * Для элементов AND все НЕподключенные входы трактуются как TRUE
    * Для элементов OR все НЕподключенные входы трактуются как FALSE
    Ещё раз повторяю: это сделано специально, чтобы упросить разработку программ и действует только на эти элементы. Во всех остальных случаях (для других блоков и элементов) неподключенные входы будут равны FALSE.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  4. #4
    Пользователь
    Регистрация
    09.03.2020
    Адрес
    Новочеркасск
    Сообщений
    45

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Ответ неверен. Поведение OwenLogic сделано аналогичным поведению блоков AND и OR в Siemens Logo. Это поведение является ИСКЛЮЧЕНИЕМ для упрощения создания программ на FBD, чтобы не захламлять константами экран:
    * Для элементов AND все НЕподключенные входы трактуются как TRUE
    * Для элементов OR все НЕподключенные входы трактуются как FALSE
    Ещё раз повторяю: это сделано специально, чтобы упросить разработку программ и действует только на эти элементы. Во всех остальных случаях (для других блоков и элементов) неподключенные входы будут равны FALSE.
    Ну тут я был невежествен, но прав: я использую FBD блоки, в которых триггерами защелкиваю аварийные сигналы. И для неинициализированных переменных, в т.ч. и для блоков это ожидаемо.
    Про специальное поведение атомарных блоков &/|| - не знал, каюсь, теперь знаю, не буду вешать напрасные дефолтные переменые.

  5. #5

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Ответ неверен. Поведение OwenLogic сделано аналогичным поведению блоков AND и OR в Siemens Logo. Это поведение является ИСКЛЮЧЕНИЕМ для упрощения создания программ на FBD, чтобы не захламлять константами экран:
    * Для элементов AND все НЕподключенные входы трактуются как TRUE
    * Для элементов OR все НЕподключенные входы трактуются как FALSE
    Ещё раз повторяю: это сделано специально, чтобы упросить разработку программ и действует только на эти элементы. Во всех остальных случаях (для других блоков и элементов) неподключенные входы будут равны FALSE.
    Это ужасное поведение, которое нарушает все логики стандартных программ.
    Вроде практически во всех языках принято, что если не объявил, то 0.
    Надо в документации прям прописать....

  6. #6

    По умолчанию

    Цитата Сообщение от goranach Посмотреть сообщение
    Это ужасное поведение, которое нарушает все логики стандартных программ.
    Вроде практически во всех языках принято, что если не объявил, то 0.
    Надо в документации прям прописать....
    Ужасно (и бессмысленно) использовать функции (логические элементы в том числе) с неподключенными входами.
    Тот-же кодесис в таком случае даже компилироваться не будет

  7. #7
    Пользователь
    Регистрация
    09.03.2020
    Адрес
    Новочеркасск
    Сообщений
    45

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    Ужасно (и бессмысленно) использовать функции (логические элементы в том числе) с неподключенными входами.
    Тот-же кодесис в таком случае даже компилироваться не будет
    Есть явная инициализация и неявная. В экономии времени программиста/автоматчика есть смысл, но только при 100% уверенности в повторяемости результата/процесса инициализации/объявления. Но, как говорится, есть нюанс... и недавно обновленный программный пакет меняет поведение или, программист по невнимательности упускает мелочь, которая при отладке просто взрывает мозг.

    Потому опытные разработчики думают наперед, обжегшись на таких простых вещах: явно инициализовать все - это правильно и безопасно. Что-то оставлять на стандартное поведение программы - самонадеянно и не 100% повторяемо.

  8. #8
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    4,126

    По умолчанию

    Цитата Сообщение от kaftanati Посмотреть сообщение
    .. И вроде так было всегда: я использую блоки на 4-8 ИЛИ и попрой остаются незанятые входы. Взведение неподключенных в 1 вместо 0 блокировало бы работу всей программы.
    Всегда было - не подключенный вход == 1
    Захват-01.png
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

Похожие темы

  1. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Среда программирования OWEN Logic
    Ответов: 404
    Последнее сообщение: 25.08.2020, 15:17
  2. OWEN Logic v1.7
    от Евгений Сергеевич в разделе Программируемые реле
    Ответов: 401
    Последнее сообщение: 28.07.2016, 19:46
  3. OWEN Logic 1.2.0.14b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 40
    Последнее сообщение: 21.02.2011, 14:16
  4. OWEN Logic 1.1.0.11b
    от Ельцов Андрей в разделе Программируемые реле
    Ответов: 58
    Последнее сообщение: 12.10.2010, 20:55

Ваши права

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