Добрый день, есть проблема с работой драйвера A-OK LM100.
У меня 4 мотора на отдельной линии. Адреса использовал следующие:0x010080,0x020040, 0x030020, 0x040010
Добавляю 4 новых устройство A-OK LM100 - и еще не прописав им адреса - карточки в разделе устройств начинают получать данные (которые в дальнейшем меняются произвольно(скачет максимальная скорость; бегунки движения рукой, инверсия, медленный старт)).
При изменении скорости работы (с 2400 до 9600 допустим) в настройка одного шаблона мотора - скорость изменяется на всех моторах, при этом не отображаясь в шаблоне (то же самое если поставить флажок со скоростью вращения и задать ее, она применится ко всем моторам- как бродкаст команда).
Если в шаблоне указать десятичное значение (01 или 1) (как в подсказке) - то при нажатии на кнопки открыть\закрыть - будет управление всем моторами, даже теми у которых отдельный адрес
Еще после присвоения адреса - есть ощущения прохождения бродкаст команды, которая как-то влияет на достижение крайних положений - мотор перестает понимать обученные положения и выключается только по защите (тока) (т.е. при первом включение (с пульта, до подключения по RS) он доезжает до крайних положений, запоминал и останавливался до ~1-1,5 см, после присвоения адреса - все моторы забыли положения ( один раз удалось решить данную проблему , но пока второй раз повторить не смог - так как рекомендации производителя - обучить пультом или по сухим контактам - не помогает, такое ощущение, что мотор перешел в какой-то другой режим работы))
Не знаю возможно в вашем сообщении ошибка… но попробовал два варианта с адресами:
подключил 3 мотора (один от центра раздвижка, второй слева направо, третий справо-налево)
1 Вариант.
0x098000
0x098001
0x098002
Сразу все карточки стали получать информацию, на от первого мотора - дальше прописывать адреса на 2-м и 3-ем не стал.
2 Вариант
0x098000
0x090001
0x090002.
Карточки не получают информацию пока не пропишешь всем адреса.
Случилось следующее: два мотора с адресами 0x090001, 0x090002 (те что движутся вправо и влево) начали работать вместе. Пока я нажимал кнопку инверсия, чтобы определить какой из них движется в нужном направлении, а какой нет (потому как напомню, что переключатели постоянно меняют свое значение и не очень очевидно переключение совершилось или нет, я нажимал кнопки открыть\закрыть и инверсию в течении ~ 5 мин), совершилось чудо и моторы начали понимать команды из карточек отдельно, и о чудо еще и вспомнили, что им нужно останавливаться чуточку раньше, а не по перегрузу (причем все три мотора).
Далее я решил посмотреть , что происходит на первом моторе , если я посылаю команду инверсия - мотор на адресе 0x098000 - тоже мигает - следовательно получает команды бродкастом.
Дабы отсеять все сомнения, что это не сами моторы такие, а что-то с драйвером в WB - прошлый раз моторы “потерялись” при смене адресов (обучении), ну и так как адресация с одинаковым ID -09 мне не очень понравилась - решаю вернуться на 0x010080,0x020040, 0x030020 - и та-дам - у меня привязываются два мотора 0x020040, 0x030020 к друг другу, один останавливается раньше и гасит первый (так как длинна штор разная). И теперь как бы я не тер адреса с ИК пульта управления и из карточки - моторы шарашат вместе.
Добрый день. Что называете “карточками”?
Я не очень понимаю по описанию что именно работает не так как ожидается.
Рекомендую для проверки отправить команду вручную и оуенить ответ на нее или действия.
Команды движения рукой, инверсия, медленный старт - рассылаются бродкастом на все моторы. При добавлении устройства в карточке\виджете - значения начинают поступать сразу… Командами (обучить) присвоения адреса, в моторы записываются значения, влияющие на тип работы мотора. Сейчас у меня привязались два мотора друг к другу - работают совместно - я удалял адреса (командой удалить), тер привязку радиопульта, сбрасывал мотот с кнопок на нем. Теперь даже с потертыми адресами, как только я привязываю один из моторов - второй начинает движение совместно первым.
Оставьте на шине один привод - убедитесь что его адрес установлен верно и проверьте что он работает.
Насколько я знаю - широковещание для работы не используется, совсем.
я пробовал уже оставлять один мотор, это никак не влияет на то , что драйвер WB отправляет в неадекватное состояние данные моторы.
Я думал что , возможно поведение странное, с тем что каналы радио пульта могут пересекаться с адресами - поэтому для адресов моторов использовал значения с конца списка. т.е я думал что адрес на Пульте 01 канала - равен адресу 0х010100 - поэтому я взял адрес 0х010080 как для 16-ого канала, для второго мотора на втором радио канале я думал, что пульт на 02 канале занимает, допустим, 0х020100 или 0х020200 - и чтобы точно не пересечься я взял - 0x020040 и т.д - это ни к чему не привело.
Я размотал по полу витую пару - сейчас к каждому мотору могу дотянуться прямым экранированным кабелем, исключая проблемы с линией - не помогает.
Что касается не использования бродкаста - как объяснить, что уже при добавлении устройств - на картинке выше в карточке - присутствуют значения? - часть красным - часть черным.
Как объяснить, что при установке десятичного значения адреса мотора - с его карточки управляются все моторы?
Еще был эксперимент - я для того чтобы привезти в чувство моторы - добавил другое устройство Dauerhaft - но чудо не произошло. Хотят моторы и с этим драйвером работают. Тут точно никто ничего не перепутал в драйвере?
Не знаю что ответить, потому что адреса - задаются, в общем, произвольные. Нужно чтобы (если планируется индивидуальное управление - были уникальными.
Пожалуйста, опишите что такое “неадекватное”.
Включите debug для драйвера и покажите - что отправляется неверно, пожалуйста.
Я не знаю как работает радиопульт и как он связан с адресом. Предлагаю исключить его, для того чтобы он не влиял.
Давайте я опишу своими словами документацию драйвера:
Часть параметров не подразумевают ответа. Соответствено для нихх meta/error не выставляется никак. Для тех запросов которые подразумевают ответ - выставяляется “r” в случае ошибок. То есть параметр “не читается”.
Что такое “десятичный”? Как он представляется в виде адреса привода?
Опишите пожалуйста эксперимент, что им проверялось, каковы были начальные условия?
Нужны уникальные. План конечно управлять всеми отдельно.
Командой инверсия например - можно сделать так, что моторы теряют положение кареток, и ездят от упора до упора, отключаясь по току, при достижении крайних положений.
Командой присвоения адреса - можно объединить моторы в группы.
Пока еще разбираюсь как это сделать (не достиг высот чтобы сразу выдать (место ошибки), разобрать протокол управления и исходящих команд из драйвера). Вопрос про неверно - пока открытый -
исключен
в моем понимании 1,2…9,10, 11,12…100
Тогда не очень понятно - что тут подразумевалось… при таком варианте - команды приходят на все моторы.
Проверялось, как можно сковырнуть параметры моторов выставлением адреса. Начальные условия - один мотор потерял положения, два мотора работают в связке - все это результат работы драйвера A-OK
Должно быть установлено какое-то значение. Формат и вид - в зависимости от того что нужно (с чем работает) драйвер настраиваемого устройства.
То есть вы выставляете один адрес нескольким приводам? То есть выставляете при подключенных нескольких. Поведение вполне логичное - если нескольким указать один адрес - он и запишется.
Предлагаю дальше не развивать тему с адресами, я в первом сообщении написал какие использовал, и что они разные.
Проблему с моторами удалось решить с помощью вендорского софта настройки (я скорректировал все параметры работы моторов ( в выделенных областях, выбрав нужный параметр - теперь моторы не работают в связке, а другие не отключаются по току (а заранее, запомнив крайние положения кареток))). Драйвер от WB точно меняет следующие настройки режима работы мотора, произвольным образом
При формировании режима работы мотора - все моторы в шлейфе получают эти настройки - даже из софта.
Каким образом формируется неверная посылка, предлагаю посмотреть вам - я , к сожалению не обладаю пока такими навыками. Но при нажатии инверсия\движение рукой\медленный старт - меняются параметры синхронизации и точки остановки. Я прошу вас проверить.
По “удалить” - “9a 09 08 07 0a a6 aa” - 0xa6 соответственно.
У меня не получилось отправить, используя реалзацию широковещательный запрос, в любом случае передается адрес привода.
Соответственно - получить может только устройство, адрес уоторого указан. Если не указзывать, конечно, широковещательный в качестве индивидуального.