Камрады, тут еще другая проблема, никак не связанная с этой - почему может вылезать табличка во время онлайн-отладки "Устройство было сброшено"?
предположение
"приведение X-I происходит по 0-му биту контейнера содержащего буль"
получило подтверждение.
+ определение самого буля по 0-му биту. Что вообще странно для тех кто "if(x){....}", но конкретно здесь может (не обязано) помочь после выяснения вопроса ниже
"Не получится" - это утверждение или предположение для данного случая?
Попытка прочитать c 1-ого (не 0-ого) бита - была?
Конкретно это никак ни на что не влияет. Тут мастеру сказали функцию, адрес бита и, видимо, неявно какое-то количество (8/16/32?) битов. Совмещены ли у слейва области или нет - мастеру абсолютно пофиг.
Есть ли у слейва биты 1..8/16/32 (не 0..7/15/31 !!) - это вопрос illegal adress
Может ли слейв прислать биты с любого адреса - это вопрос реализации самого слейва. В рамках протокола хоть с 13-ого 69 штук. Вот тут овен-слейв вроде чудит. Но разговор за китайцев-слейвцев, а овена - мастера.
Последний раз редактировалось Валенок; 17.04.2025 в 16:38.
Выше уже все ответил, на эти вопросы, приходит булевая, в ней число. Извлечь это число не возможно в ОЛ (кроме 0 бита), потому что переменная булевая.
1 работает, больше 1 для буля в ОЛ это 0. Конвертация в целое не работает. ТС уже не первый, у кого ничего не вышло.
Разрабы могли бы исправить работу, маска же приходит, но так ничего и не сделали.
Последний раз редактировалось kondor3000; 17.04.2025 в 17:28.
kondor3000, так и я ответил. Для возможного решения проблемы в рамках текущей версии ОЛ/ПР нужно точно сказать - читается ли с 1-ого (не 0-ого) бита.
Точно, а не где-то когда то.
Не больше 1 не работает, а для буля юзают 0-й бит. Хоть и похоже, но есть смысловая разница. Но это же и можно использовать если прочитается с 1-ого. Это будет 1-й бит слейва на месте 0-ого в другой переменной мастера - это же очевидно.
А для нормализации таких булей желательно просто X—I - - - I—X
Или стонать и ждать другой версии ОЛ. Проверит ли ТС свой всего лишь шанс - мне лично побоку.
Последний раз редактировалось Валенок; 17.04.2025 в 18:58.
попытка прочитать с первого (не нулевого) бита была. я специально сделал несколько переменных и попривязывал их к 0.0, 0.1, 1.0, 1.1, 2.0 (регистр.бит). Везде, кроме первого варианта, при замыкании входов нолики. Если внимательно посмотреть на первый скриншот в моем стартовом сообщении, там видно куда привязаны остальные переменные. И на остальных скриншотах так же видно, что при замыкании входов китайца в этих переменных нолики
Последний раз редактировалось TaPX; 18.04.2025 в 08:48.
1.jpg2.jpg
Добрый день. Не совсем понятный случай.
1 рисунок. Беру сетевую переменную, передаю значение в стандартную переменную, затем использую ее в ФБ, то она не передается внутри блока в переменную.
2 рисунок Если использую стандартную переменную или константу, то значение передается
Вначале в ФБ использовал сетевую и не мог понять проблему. В данном случае передаю в переменную для наглядности.
Преобразователь совсем не причем - пробовал как вариант
Вот скрин, сетевая входит и выходит без проблем. 1Передача сетевой.jpg можно в сетевую или в обычную, главное, чтобы последняя не перезаписывалась ниже по программе и передавалась в блоке. У вас на входе разные значения, поэтому и выход может переключиться.
На вашем скрине видно, что открыты несколько программ, да ещё запущена отладка. Этого делать не стоит, только для переноса программы, потом зарыть лишнее, сохранить и работать. При открытии и работе нескольких программ, они могут влиять друг на друга.
Или выкладывайте проект.
Последний раз редактировалось kondor3000; 18.04.2025 в 18:52.