Да, понимаю, подрядные работы и оплата неизбежна.
Понимаю, что общение со мной, требует терпения со стороны Мастера(сенсея), требует времени и молока (за вредность, как в СССР)
Да, с Codesys 3.5, с СПК.
Время для меня не имеет значения, имеет значение - жизнь!
Ввёл такую структуру, согласно инструкции, мотор ожил, но пока хаотично(прямо в каналах Codesys ввожу Биты)
01 06 62 00 00 01 57 B2 Set PR0 mode to absolute position mode (изменил)
01 06 62 01 00 03 87 B3 Set PR0 position high
01 06 62 02 0D 40 32 D2 Set PR0 position low
01 06 62 03 02 58 66 E8 Set PR0 speed value
01 06 62 04 00 32 56 66 Set PR0 acceleration
01 06 62 05 00 32 07 A6 Set PR0 deceleration velocity
01 06 60 02 00 10 37 C6 Trigger PR0 motion Send when you need to stop:
01 06 60 02 00 40 37 FA Emergency stop
Хотя первая строка другая: 01 06 62 00 00 00 01 57 B2 -здесь контрольный CRC не тот, а вот так правильнее 01 06 62 00 00 01 57 B2 (без октета лишних нулей).
Вопрос: почему в инструкции заведомо неправильно (именно в первой строке много раз в примерах)? Или я что-то упустил? С Modbus`ом знаком как медведь с музыкой.
Последний раз редактировалось Test_driver; 28.12.2023 в 09:51.
Да, там много опечаток. И этот косяк мне тоже в глаза бросился.
Тут тоже запятую забыли... в3.png
Да я смотрю вы справляетесь.
Но если подключитесь как к модбас устройству, то достаточно только адресами и тем, что в них пишется, оперировать, остальное (CRC, формирование строки запроса и пр. codesys сам делать должен).
С модбасом все до невозможности просто:
01 06 62 00 00 01 57 B2
01 - адрес железяки
06 - команда записи (на чтение регистров 03)
62 00 - адрес первого регистра, куда писать или с какого читать
00 01 - для команды записи 06 это то число, которое надо записать в регистр 62 00 (0062 если правильно, сначала младший потом старший)
00 01 - для команды чтения 03 это то число читаемых регистров начиная с 62 00
57 B2 - контрольная сумма для модбас протокола
И для вас главное это: 01 06 62 00 00 01 57 B2
Последний раз редактировалось МихаилГл; 28.12.2023 в 09:59.
В принципе "циферки" я гоняю в канале, мне не понятна сама политика управления, скажем - Homing, у меня мотор ушёл в бесконечное кручение, причём на другой скорости.
В регистре 0x6200 есть тоже бит на Homing, он тоже сработал.
Как понять абсолютное и относительно позиционирование? Как выставить точку Zero?
Энкодер на моторе 1000, в драйвере 4000, но написано в инструкции CPR=4*PPR (нужно ли перезаписывать?) . Проблема с терминологией. Что к чему?
Понял, что там есть Триггеры - заранее указанные координаты, как их "рулить"? Хотя с первым бы разобраться - Path0.
Вопросов много, программная часть на втором плане(сижу в каналах, на экран вывожу пока только контрольные регистры), понять бы принципы, заложенные в "железке".
В регистре 0x6002 ввожу в канале в десятичном виде 64(0x40) - стоп, 16 (0x10) - старт, 32(0x20) - Homing, 33(0x21) - сброс(типа выполнено).
Последний раз редактировалось Test_driver; 28.12.2023 в 10:28.
Команды как я понимаю надо выполнять последовательно, это типа G-code, или как там правильно.
И если это CNC, то сначала нужно настроить постоянные, координаты дома и пр. Датчики завести... Он у вас ищет дом по концевому или по энкодеру... Это наверное от настроек зависит. Тут надо курить мануал...
Вот, например, настройки дискретных входов: z1.png
Последний раз редактировалось МихаилГл; 28.12.2023 в 10:22.
Да, ввожу три скорости(старт, крейсерская,стоп), пики(от балды - 0х6202), режим позиционирования (0х6200), пауза между командами и старт по 0х6002 (Ctrl + F7).
Как искать дом по энкодеру? Подскажите? В группе Pr8.xx есть регистры отслеживания пройденных пиков. Как вернуть домой? Не получается, куча режимов и принципов "Домой".
Структуру набивал по Pr9.00, придерживался (картинка)/ CN3(SI1-SI7) не использовал(Pr4).
Последний раз редактировалось Test_driver; 28.12.2023 в 11:11.
Если бы я знал... Вам надо сначала все читаемые переменные вывести на отображение в визуализации, и по одной команде проверять. Я с CNC имел дело раз, когда собирал китайский станок 4 года назад из отдельных комплектующих. А тут модбас адаптированная штука, явно рассчитана на профессионалов в создании станков. Там столько настроек, и много взаимосвязанных. Только по одной команде проверять... Больше никак.
И команды скорее надо посылать разово, а не сразу все по Ctrl + F7...
Да, сначала записываю по одной, вижу их на экране (считываю), по Ctrl + F7 последняя на 0х6002 для старта.
Ну, что же, придётся стать профессионалом. Буду информировать о продвижении, если не против. Сниму видео и напишу свой мануал, так как вижу, что тема ещё никем толком не освоена. Все крутят "шаговики" Ардуинками и из Math3, домашние варианты. А я сделаю промышленный вариант.
Освоим станкостроение, товарищи! Забыл добавить - c аппаратурой от Owen!
Только благодаря Owen`у я вошёл в этот дивный мир "программирования микроконтроллеров" и этот путь долгий и тернистый!
Последний раз редактировалось Test_driver; 28.12.2023 в 13:06.
Пришла мысль, пока сижу на работе.
Моя ошибка, возможно, в Hominge, заключается в том, что я отправляю Домой без изменения направления вращения (0: CW,1: CCW) и мотор начинает "идти Домой" через 65535 (предельная позиция), поэтому кажется, что бесконечно.
Вечером и ночью буду тестить.
Драйвер измеряет напряжение, индуктивность обмоток, пиковые токи и кучу всего интересного можно отобразить.