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

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

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

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

    По умолчанию

    Добрый вечер!

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

    0: 0.JPG

    1: 1.JPG

    2: 2.JPG

    3: 3.JPG

    И даже 128: 128.JPG

    Мастер - ПР103 4.JPG, подключен к компу по Eternet'у.
    Слейв - китайский аналог СП307Б.
    Панель с ПР-кой соединены по RS-485.

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

    Чем дальше бит видимости отстоит от бита переключателя, тем больше получается число в сетевой переменной. Например, если бит переключателя PSB256, а бит его видимости PSB257, то получается как на первых 4-х скринах. А если бит видимости сделать PSB263, то получится, как на 5-м скрине.
    Если же сделать бит видимости PSB264, то становится всё нормально.

    Версия ОЛ: 5.JPG

    Сам дискретный выход на ПР-ке при этом работает корректно.

    Это баг или фича? Или я делаю что-то неправильно?

    Проекты прилагаю.
    Вложения Вложения

  2. #2

    По умолчанию

    Цитата Сообщение от Bone Посмотреть сообщение
    Сам дискретный выход на ПР-ке при этом работает корректно.

    Это баг или фича? Или я делаю что-то неправильно?

    Проекты прилагаю.
    Это такая фича, биты обрабатываются как Маска бит в регистре. 1 Седьмой бит Лоджик.jpg
    Если вы не знали, то например включение 0 и 1 бита - даёт число 3, 7 бита даёт число 128, а всех 16 бит в регистре - число 65535.
    Последний раз редактировалось kondor3000; 11.04.2024 в 20:24.

  3. #3

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Это такая фича, биты обрабатываются как Маска бит в регистре. 1 Седьмой бит Лоджик.jpg
    Если вы не знали, то например включение 0 и 1 бита - даёт число 3, 7 бита даёт число 128, а всех 16 бит в регистре - число 65535.
    Ну, это я знал, конечно, и примерно догадывался, что тут так реализовано, но мне не совсем понятно, зачем в онлайн-отладке на дискретном выходе показывать маску, а не бит.
    Получается, что, например, я в отладке вижу на выходе какое-то значение, а по факту он отключен...

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

    По умолчанию

    Цитата Сообщение от Bone Посмотреть сообщение
    Добрый вечер!

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

    0: 0.JPG

    1: 1.JPG

    2: 2.JPG

    3: 3.JPG

    И даже 128: 128.JPG

    Мастер - ПР103 4.JPG, подключен к компу по Eternet'у.
    Слейв - китайский аналог СП307Б.
    Панель с ПР-кой соединены по RS-485.

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

    Чем дальше бит видимости отстоит от бита переключателя, тем больше получается число в сетевой переменной. Например, если бит переключателя PSB256, а бит его видимости PSB257, то получается как на первых 4-х скринах. А если бит видимости сделать PSB263, то получится, как на 5-м скрине.
    Если же сделать бит видимости PSB264, то становится всё нормально.

    Версия ОЛ: 5.JPG

    Сам дискретный выход на ПР-ке при этом работает корректно.

    Это баг или фича? Или я делаю что-то неправильно?

    Проекты прилагаю.
    Давайте рассмотрим две фичи
    1. Адресация битовых сетевых переменных в мастере ПР как бит номер тако-то в регистре таком-то
    2. Интересная фича панели СП3хх

    Про вторую более подробно
    Вы не когда не задумывались, почему в настройках различных элементов панели (дисплеи, функции, кнопки...), там где есть тип данных не бит, а регистр т.е. WORD (DWORD), несмотря на это можно в качестве регистра операнда помимо PSW или PFW дополнительно выбрать PSB.
    ВНИМАНИЕ
    PSB как регистр, а не бит!
    Скрытый текст:

    На самом деле в панели нет памяти для битовых переменных PSB, а есть регистровая память для БАЙТОВ, где в каждом байте упакованы отдельные биты PSB!
    По этому к группе из 16(32) последовательных битов PSB можно обращаться как к одному регистру
    Я про это писал еще десять лет назад, в 2013 https://owen.ru/forum/showthread.php?t=15352
    Скрытый текст:

    Есть одна особенность - адреса РЕГИСТРОВ из PSB должны быть кратными 8

    Теперь про Ваш конкретный случай
    Пусть есть 8 отдельных переключателей PSB256..263
    Захват-01.png
    и дисплей с РЕГИСТРОМ PSB256
    Захват-02.png

    Тогда мы можем наблюдать Ваш "феномен" на дисплее панели
    1: Захват-03.png

    2: Захват-04.png

    3: Захват-05.png

    И даже 128: Захват-11.png

    Из этого следует, что мастер ПР читает не одиночные биты регистра, а сразу целыми байтами(что мы видим на экране отладки в сетевой переменной), а для результата берет только один заданный бит
    Вложения Вложения
    Последний раз редактировалось petera; 12.04.2024 в 03:03.
    Мой канал на ютубе
    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

Ваши права

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