Страница 8 из 11 ПерваяПервая ... 678910 ... ПоследняяПоследняя
Показано с 71 по 80 из 103

Тема: ПР + РЕЛЕ С ИНТЕРФЕЙСОМ RS485

  1. #71
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,009

    По умолчанию

    Там чтение 0х01 функцией, на 0х02 такое же поведение? типа булевая, но покажет число 11 ? типа замкнуто 3 входа ?

    А если ее при этом перевести в Int переменную ? bool-to-int и как вариант попробовать FB на ST сделать и попробовать выдернуть число?

    И как бы чтение других битов должно же было приводить к какому-то результату, нет?
    Последний раз редактировалось melky; 25.08.2023 в 14:16.

  2. #72

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Там чтение 0х01 функцией, на 0х02 такое же поведение? типа булевая, но покажет число 11 ? типа замкнуто 3 входа ?

    А если ее при этом перевести в Int переменную ? bool-to-int и как вариант попробовать FB на ST сделать и попробовать выдернуть число?

    И как бы чтение других битов должно же было приводить к какому-то результату, нет?
    С функцией "2" происходит то же самое. Скрины приложу сейчас. Функция 1 читает выходы, а функция 2 - входы.
    Если ее стандартным готовым блоком bool_to_int интовать, то при интовании в единичку конвертируется только значение 1 переменной, значения 0, 2, 4, 8 на выходе блока bool_to_int принимают нулевое значение.
    Пробовали писать функцию на ST с использованием внутри нее встроенной функции bool_to_udint() - тогда при любом положительном значении переменной на выходе функции единица, а при ноле, соответственно, ноль.

    Чтение других битов дает всегда ноль, потому что все биты почему-то упаковываются в нулевой бит нулевого регистра.
    Изображения Изображения
    Последний раз редактировалось TaPX; 25.08.2023 в 14:45.

  3. #73
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,009

    По умолчанию

    Мда, тут явно косяк ОЛ. при значениях 1, 2, 4, 8 (как серым горит) переменная должна становиться true в зависимости какой бит выставлен в функции чтения.

    Ну или реально, чтобы сделали переменную Byte для функций 0х01 и 0х02 и чтобы на поле программы она была как int чтобы уже там применять Extract и Putbit

    И главное же сам ОЛ каким-то чудом выводит ЦИФРЫ
    Последний раз редактировалось melky; 25.08.2023 в 15:16.

  4. #74

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    Мда, тут явно косяк ОЛ. при значениях 1, 2, 4, 8 (как серым горит) переменная должна становиться true в зависимости какой бит выставлен в функции чтения.

    Ну или реально, чтобы сделали переменную Byte для функций 0х01 и 0х02 и чтобы на поле программы она была как int чтобы уже там применять Extract и Putbit

    И главное же сам ОЛ каким-то чудом выводит ЦИФРЫ
    В этом то и парадокс. И самое интересное, выход щелкает только при значении "1" этой переменной.

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

    По умолчанию

    Цитата Сообщение от TaPX Посмотреть сообщение
    С функцией "2" происходит то же самое. Скрины приложу сейчас. Функция 1 читает выходы, а функция 2 - входы.
    Если ее стандартным готовым блоком bool_to_int интовать, то при интовании в единичку конвертируется только значение 1 переменной, значения 0, 2, 4, 8 на выходе блока bool_to_int принимают нулевое значение.
    Пробовали писать функцию на ST с использованием внутри нее встроенной функции bool_to_udint() - тогда при любом положительном значении переменной на выходе функции единица, а при ноле, соответственно, ноль.

    Чтение других битов дает всегда ноль, потому что все биты почему-то упаковываются в нулевой бит нулевого регистра.
    осталось дождаться когда Вы по аналогии с выходами сделаете четыре входных буля и каждому, с помощью 2 функции, выставите в конфигураторе соответствующий бит и после покажете скрин
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

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

  6. #76

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    осталось дождаться когда Вы по аналогии с выходами сделаете четыре входных буля и каждому, с помощью 2 функции, выставите в конфигураторе соответствующий бит и после покажете скрин
    Да пожалуйста:
    Снимок экрана (48).pngСнимок экрана (49).pngСнимок экрана (50).pngСнимок экрана (51).pngСнимок экрана (52).pngСнимок экрана (53).png

    замыкал входы на китайской релюшке.

  7. #77
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,009

    По умолчанию

    p.s. непонятно в какой момент применяется распознавание бита, если вообще применяется, раз первая булевая переменная изменяет свои значения, хотя просто должна быть 0 или 1 в зависимости какой бит проверяется.

  8. #78

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    p.s. непонятно в какой момент применяется распознавание бита, если вообще применяется, раз первая булевая переменная изменяет свои значения, хотя просто должна быть 0 или 1 в зависимости какой бит проверяется.
    парадокс. Мы тут думаем, что проблема в прошивке ПР.

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

    По умолчанию

    Цитата Сообщение от TaPX Посмотреть сообщение
    парадокс. Мы тут думаем, что проблема в прошивке ПР.
    Проблема в прошивке китайского чуда.
    Стандартом https://owen.ru/forum/showthread.php...l=1#post414984 не запрещено в функции 02(01) запрашивать по одному биту, что мастер в ПР и делает. В ответ нормальный слейв должен упаковать в байт ответа всего один бит(младший в байте ответа).
    Китайское чудо упорно запихивает в байт ответа ВСЕ биты входов!!!.

    Поигрался вчера с реальной ПРкой и реальным слейвом по этой картинке
    Захват-01.png

    Из нормального слейва в сетевые переменные Var1..Var3 читаются по одному биту, не зависимо от состояние соседних бит в слейве.
    Если бы мастер в ПР мог делать чтение группы бит, то все бы работало, а так не судьба подружить ПРку с этим китайским чудом.

    ЗЫ.
    Мастер ПР знает, что в ответ на запрос ОДНОГО бита получит результат в младшем бите ответного байта, по этому ПО ПРки не предусматривает просмотр и выделение ВСЕХ бит из байта ответа
    Последний раз редактировалось petera; 25.08.2023 в 16:21.
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Мой канал на РУТУБЕ
    https://rutube.ru/channel/23641433/
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  10. #80
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    13,009

    По умолчанию

    petera как тогда объяснить показания различных значений, которые видны на скринах в первой булевой переменной, 1, 2, 4, 8, 11 ????? 11 - включено 3 бита

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

Похожие темы

  1. СПК207 с интерфейсом CAN
    от dima64 в разделе СПК2xx (архив)
    Ответов: 16
    Последнее сообщение: 13.06.2024, 15:47
  2. ИПП120 +Модуль Реле R421C32 попытка связать по Modbus через RS485
    от Alexteam в разделе Сетевые технологии
    Ответов: 38
    Последнее сообщение: 01.12.2022, 23:53
  3. Непонятки с интерфейсом
    от raiterpl в разделе Облачный сервис OwenCloud
    Ответов: 4
    Последнее сообщение: 09.02.2018, 13:19
  4. Ответов: 1
    Последнее сообщение: 31.08.2017, 12:16

Ваши права

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