Пока нельзя, пишите всё на ST и вставляйте одно в другое, так можно.
Вид для печати
Добрый день,настал тот день когда дело дошло до тестирование связи ПР102 с ЛИРом-915.
Ранее было много проделано большой объем работы по осуществлению связи ПР-102 с ЛИРом-915,ничего не вышло пока не заказал фирменный кабель для ЛИРА с названием "Лир-967 "и то связь начала осуществляется после работой с тех.поддержкой ЛИРА.
Нужен Ваш совет по реализации выдачи оборотов двигателя.
По совету тех поддержки СКБ ИС было выполнена настройка считывания 0 регистра т.е считывания абсолютной координаты.Т.е грубо говоря сейчас считается угол отклонения от 0.Вопрос в том что как сейчас реализовать полученные данные с ЛИР-915 в обороты?Получается мне нужно делить полученные данные на 360?
чтобы получить обороты в минуту ?
или все же лучше использовать относительны координаты?
Ниже прилагаю скриншоты.
как мне выполнить реализацию?
Сейчас как я понял за один оборот происходит значения угла от 0 до 65000+.
Если нужно могу сходить и подключится к ПР102 и показать данные в программе которые приходят от Лира.Направьте пожалуйста меня.За ранее извиняюсь что так надолго пропал.
Последний скриншот это настройка на данный момент Лира как мне сказал сделать СКБ ИС(завод изготовитель).
Вложение 70487Вложение 70488Вложение 70489Вложение 70490Вложение 70491
Вот пожалуйста,все что есть. Ни слова как перевести угол в скорость нет.
- Датчик ЛИР-158Б-1-Т-256-05-ПИ-7 https://skbis.ru/catalog/rotary/incr...oders/lir-158b Документация на датчик https://skbis.ru/datasheet/lir-158b.pdf
- Модуль интерфейса ЛИР-915-485-СП2 https://skbis.ru/catalog/interface/modules/lir-915 Документация на сам модуль https://skbis.ru/products/lir-915/fi...dbus%20RTU.pdf
Максимальная скорость вращения 5000 об/мин двигателя.
65535 как я понял,но это не точно.
к сожалению не могу сюда прикрепить видео.Но вот скриншоты.
Если начинаю в обратную сторону крутить двигатель показания идут на уменьшения Вложение 70492Вложение 70493Вложение 70494Вложение 70495Вложение 70496
В данном случае я крутил в ручную сам датчик и были эти показания в одну сторону.Это грубо говоря путь который прошел вал соединенный с датчиком в одну сторону.Пока технически нет возможности соединить вал датчика с валом двигателя чтобы проверить пока в ручную все пробую.Ремень между валами снят.
Аппаратуру выбирал не я.Что заказали с тем и работаю.Мое ТЗ состояло в том чтобы соединить все это воедино.В теории ЛИР нужен для цикла программы для слежения за оборотами двигателя.
Но сейчас получается что если мы крутим ЛИР у него считаются координаты(в данном случае пусть будет путь ),если допустим я сделаю задание привода на определенную скорость,то координаты так и будут увеличиваться.
У меня есть мысль чтобы попробовать написать программу чтобы двигатель останавливался на конкретной координате.Других мыслей пока нет.
Этот ЛИР просто относительный АВ-энкодер с нулевой меткой. Тут вопрос в том, что в регистрах выдаёт модуль интерфейса. Он же не просто количество импульсов выдаёт, он внутри себя (судя по даташиту) может имитировать абсолютный энкодер, т.к. в регистрах есть как относительная, так и абсолютная "координата?". Что под словом "координата" имеется в виду знает только производитель.
К слову, используется 32-битное значение количества импульсов, переполнения по 65535 не должно быть.
Полагаю, нужно записать перед стартом нули в 2 и 3 регистры (относительная координата). А потом считывать значение количества импульсов и делить на 256 (разрешение датчика). Получим количество оборотов в секунду/минуту/час (смотря как часто считываем). Отсюда можно даже посчитать угол поворота и расстояние чего он там меряет.
Еще проще - считать количество срабатываний нуль метки (Coils 0 в документации) в секунду/минуту. Это прям сразу обороты.
Так Вам уже насоветовали, как дешевле и проще, в смысле, лучше: тахометр + индуктивный(оптический) или датчик Холла, всё! Я так понимаю Вам нужна скорость вращения, вот и будут Вам обороты в минуту! Зачем вся это катавасия мне пока совсем не понятно!
https://owen.ru/product/tx01rs
Вложение 70515
Извиняюсь, ввел в заблуждение.За один оборот в районе 1024.Вложение 70517
Это точно.
Если я правильно понимаю то 256 импульсов за 1 оборот вала двигателя должно быть, тогда получаем 256*4=1024 как раз и есть координата.
То есть на 1 импульс Лира есть 4 точки выходит.
Все просто. Читаете абсолютное значение. Через минуту - читаете еще раз. Разность значений делите на 1024 (256*4 - количество импульсов на оборот). Результат - количество оборотов в минуту.
Как делать запрос раз в минуту или 10 секунд или 1 секунду по модбас в ПР я не знаю.
Или читать достаточно часто, а скорость измерять по таймеру.
Сейчас попробую реализовать,что Вы написали.Огромное спасибо за советы.
Не совсем понимаю как это сделать.
вот что выходит.Вложение 70520
Например так Вложение 70526 в работе Вложение 70527
Или так, с автоматическим перезапуском Вложение 70528
Так вроде писали, что диапазон счётчика 0-65535, при 5000 оборотах в минуту счётчик будет переполнен менее чем за 0,8 секунды, в смысле, мне кажется это надо учитывать, иначе будет лабуду показывать. И, даже если с этим моментом "разобраться", в смысле, учитывать переполнение счётчика, всё равно будет лабуду показывать, потому, что время надо для чтения показаний. Тогда для получения корректных показаний необходимо для показаний иметь метку времени, в смысле, знать время между измерениями. Короче, необходимый параметр(скорость вращения (об/мин)) проще вычислять в устройстве к которому подключен энкодер, а по сети передавать уже готовый результат, например использовать ПР103(ПР205).
Всё равно косяк будет, в смысле, переполнится через 14 часов и тогда лабуду покажет! Хорошо, это маленький косяк будет, в смысле, для товарища, и так сойдёт, а как выкручиваться с задержкой считывания, в смысле, она может плавать или тоже сойдёт плюс-минус лапоть, в смысле, за что боролись, на то и напоролись?! С таким энкодером можно измерять скорость с точностью до многих знаков после запятой, при передаче по сети значений счётчика эти потенциальные возможности исчезают, в смысле, лучше тахометр поставить с индуктивным датчиком и то точнее будет, для чего вся эта катавасия, чтобы никто не понял что разумные люди делали?
Уже всё проверено, при переходе через 0, от 4294767296 до 200001 ( разница 400000) Вложение 70533 и от 0 до 400000 обороты считает одинаково правильно. Вложение 70532
А на счёт тахометра, тоже писал, но тут ничего не сделаешь, оборудование уже куплено. Поэтому работаем с тем что есть)
Объясните пожалуйста.Почему в симуляции программы работает только первый цикл,а остальные нет ?Вложение 70550
Если вы в эмуляции, то каждый цикл ( в течении 10 сек) вы вручную должны менять значения, например прибавлять по 100 000 - 200 000, если не меняете, то энкодер стоит. Обороты 0 или около 0.
Если вал крутится, то значения всё время меняются. Если стоит то не меняются.
Если например понадобится крутить в обратную сторону, то внизу где расчёт, надо поменять местами конечный и начальный.
Тогда и в эмуляции надо каждый цикл убавлять на входе.
Понял,спасибо огромное не знал про симуляцию и один цикл.
Чтобы отправить данные на ИПП120 с ПР102.Взамен сетевой переменной Лира,ставлю переменную оборотов?Вложение 70559Вложение 70560
До этого ИПП оставался на значениях 999999 и все так и не снижался.
Как записать переменную в фб? Во вложении скриншот, сетевая переменная, которая задаётся либо с экрана ПР, либо через модбас.
В такой компоновке она не передаётся в фб таймера никак. Вроде работало раньше, но с каких то изменений в проекте перестало работать. Не понимаю почему.
https://drive.google.com/file/d/1CN0...usp=drive_link
В подписи "Причина редактирования" указано почему ссылка, а не изображение.
Сейчас вот загрузилось.
Вложение 70571