Запись IR кодов в wb-mir v2

Проблема решена. Может кто подскажет как конвертнуть nec формат в hex? Вопрос к специалистам Wiren board. Поддерживается ли функция 15 Write Multiple Coils для записи в банк ИК-команд?

Добрый день, а можно подробнее, что за “nec”?

http://dune-hd.com/support/rc/

Посмотрите на этой странице , пожалуйста, как кодируется сигнал в наших устройствах, в разделе “Способ представления и хранения сигнала”. Если сможете NEC-команды записать в виде наших последовательностей, тто, наверное, получится. Готовых решений, не знаю, к сожалению.

Поддерживается ли функция 15 Write Multiple Coils для записи в банк ИК-команд?Дело в том, что мы управляем преобразователем из промышленного контроллера. У него при конфигурировании жестко прописываются адреса регистров и максимум 10 функций на одно модбас устройство. Т.е., например мы не можем отправить 15 комманд с разным адресами coil для воспроизведения 15 сигналов. Только 10.

Поддерживается ли функция 15 Write Multiple Coils для записи в банк ИК-команд?Дело в том, что мы управляем преобразователем из промышленного контроллера. У него при конфигурировании жестко прописываются адреса регистров и максимум 10 функций на одно модбас устройство. Т.е., например мы не можем отправить 15 комманд с разным адресами coil для воспроизведения 15 сигналов. Только 10.

Да, в модуль можно записывать по 124 значения командой 15 (0x10). Я разбивал последовательность на 5 кусков и по очереди писал их в оперативный буфер командой 0x10 в регистры 2000, 2123,2246,2369 и остаток в 2496.

Я имею ввиду воспроизведение, адреса битов с 5100. Т.е. сделать одну функцию записи начиная с 5100 и кол-во, например 30?

Хороший вопрос! Нет, не получится – проверил сейчас. Ошибка “ERROR Illegal data value”

вот и у меня так же. Почему бы не сделать на воспроизведение отдельный бит, а на номер коммнды отдельный регистр? Выставляем номер нужной команды в регистр, и фронтом бита воспроизводим. Теперь придется отказаться от этих преобразователей. Хорошо, что взял один на тест, а не 30 как планировалось

Как альтернативный вариант – использовать регистр оперативной памяти, и перед каждой командой перезаписывать его содержимое, если совсем нет других вариантов. Но, конечно, скорость…

Например как у isp-das, там в регистр 41104 записываем значение от 1-512(номер команды) и даже не нужны никакие биты для воспроизведения. Может получится у вас в новых версиях такое реализовать. Ведь действительно с такой адрессацией, очень трудоемкий процесс получается как в записи, так и в воспроизведении. Запутаешься совсем. Вы же как специалисты понимаете, что гораздо проще номер банка с коммандой выбрать записью в один регистр.

Да, хорошая идея! Спасибо!

Почему он трудоёмкий? Вам просто нужно записать единичку одной командой в coil-регистр, соответствующий номеру ИК-команды.

Мне лично куда больше нравится подход “один регистр - одна функция”. Зачем регистры экономить?

Если не секрет, какой именно это ПЛК?

Так дело не в экономии. Для воспроизведения 30 комманд, мне надо сделать 30 функций с разными адресами. Динамически адреса не меняются, я их сразу при конфигурировании контроллера задаю.

modicon m221

вообще, вам не плохо иметь бы свою утилиту для конфигурирования ваших модбас устройств. Очень удобно, не имея, допустим контроллер.Тем более написать такое ПО достаточно легко.

Добрый день!
меня так жене получается записать команды в модуль WB-MIR v2.
в описании на WB-MIR v2 используются термин приемопередатчик, ИК-приемник, ИК-передатчик.
Прошу пояснить это разные устройства? А что идет в комплекте с оборудованием? Там одна какая то штучка :slight_smile:

sasa, добрый день!
Вот описание устройства: https://wirenboard.com/wiki/index.php/WB-MIR_v2_-_Modbus_IR_Remote_Control
Красной стрелкой на рисунке показал приемник сигнала от пульта, зеленой – излучатель. Подробнее можете, пожалуйста, описать, что значит “не получается записать”?
image