Здравствуйте, приобрели Вашу продукцию, а именно WB-MIR v.2 для для реализации автоматического вкл/выкл кондиционера. Автоматизацию делаем в codesys, устройством управляем (Работа с ИК-командами в Codesys — Wiren Board) в точности , как написано в руководстве, используем coil регистры для управления записи и воспроизведения сигналов с пульта кондиционера. Но возникают сложности со считыванием и воспроизведением сигнала…
Нет фиксированного вордовского значения в массиве когда сигнал сохраняется в ПЗУ, после удаления всех сигналов из всех банков перезаписываем этот же сигнал, допустим ВКЛ кондиционера и его значение каждый раз отличается от предыдущего. К примеру сигнал ВКЛ может быть 422 или 10 или 228 или 94 и т.д.
После записи сигналов ВКЛ/ВЫКЛ очень редко получается управлять кондиционером, приходится стирать и записывать заново сигналы ВКЛ/ВЫКЛ и каждый раз проверять работают эти рандомные значения или нет.
Пробовали записывать сигналы в ОЗУ, там проблема в следующем, после записи сигнала в регистр 5001 происходит заполнения всех выделенных областей памяти в массиве если выделено ARRAY[0…3] OF WORD, то все ячейки заполняются рандомными значениями, если допустим выделим [0…9], то все они так же заполняются рандомными и каждый раз разными значениями…
Подскажите в чем может быть проблема и что мы делаем не так?
Проест кодесис находится на яндекс диске (ИК — Яндекс Диск).
Не очень понимаю. Какое значение, из какого регистра читаете, чем оно отличается от ожидаемого?
Рекомендую проводить запись там где гарантированно не будет сторонних сигналов ИК.
Ну и - что называете массивами? Покажите пожалуйста значения регистров и чем они отличаются от ожидаемых.
Сделал два скриншота. №1 я записал значения 4 сигналов с пульта кондиционера (вкл; выкл; +; -.), напротив каждой записи сигнала я показываю какая цифра записывается в выделенную область памяти “ROM1,2,3,4” пробую запустить кондиционер этими сигналами и они не работают. Далее я стираю и перезаписываю эти сигналы, но записываются в ROMы совсем другие значения (скриншот №2) и они так же не работают.
Не понимаю, почему не получается запустить кондиционер!? Делаю в точности как в примере работы с codesys.
Значения напротив записей 1,2,3 и 4 это дублирование значений которые записались в ячейку постоянной памяти, другими словами цифры это длина пакета который считался ик-приемопередатчиком, так же прилагаю скриншот на котором видно выделенный массив для 4 банков постоянной памяти
Так, понятно. То есть при записи одного и того же - получаются разные длины.
Для проверки - запишите пожалуйста одну и ту же команду в несколько разных банков.
Ну и прочитайте-покажите значения самих банков, то есть записанную команду.
Или в RAM банк, одну и туже команду несколько раз. Так: Запись команд ДУ в WB-MIR v.2 - #8 от пользователя BrainRoot
И, для проверки - попробуйте использовать другой пульт, от другого устройства. Если с него будет записываться каждый раз одно и то же
Еще - точно ли направляете пульт именно на приемник модуля вплотную?