Управление ШД по Modbus

Шаговые и серво двигатели, шпиндели, инверторы.
glazastik
Новичок
Сообщения: 21
Зарегистрирован: 21 фев 2022, 11:16
Репутация: 6
Контактная информация:

Re: Управление ШД по Modbus

Сообщение glazastik »

codesys 2.3?
работаете везде с holding register
вот функции в руководстве описаны
2023-08-21_15-16-28.png (3982 просмотра) <a class='original' href='./download/file.php?id=208770&sid=574a29ec71c04cace8b8eea5d300a498&mode=view' target=_blank>Загрузить оригинал (71.76 КБ)</a>
сначала в конфигураторе плк добавить устройство slave и добавить необходимые регистры для чтения, потом для записи.
потом можете написать программу для работы с этой информацией
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Управление ШД по Modbus

Сообщение Ворон226 »

Сегодня есть возможность весь день посвятить этому вопросу. Стенд передо мной.
Что сделал?
1. Переключателями на EM2RS выставил ID = 5, скорость обмена - 9600. В инструкции на EM2RS прочитал, что по умолчанию настройки RS485: число бит - 8, стоп бит - 1, проверки на четность - нет.
2. В CodeSYS 3.5:
2.1. Объявил переменные:
// Переменные для записи в драйвер
xCW: BOOL;
xGOHOME: BOOL;
wADRES1: WORD;
wADRES2: WORD;
xWriteCommand: BOOL;
// Переменные для чтения из драйвера
wStatus: WORD;
wRunning: WORD;
(сразу появился вопрос - а в каком формате записываются и считываются данные драйвера? WORD или REAL?)
Но сделал в WORD.
2.2. Прописал в CodeSYS Modbus COM, в нём прописал номер СОМ-порта и параметры связи.
2.3. В Modbus COM добавил устройство Modbus Master COM, а в нём Modbus Slave COM с адресом слэйв-драйвера 5.

И встал я на создании каналов Modbus Slave для чтения и записи в/из драйвера...
Например, я хочу считать состояние драйвера.
В описании на дравер написано:
"Адрес регистра 0х1901 Наименование STATUS Операция Чтение Единица /
Параметры состояния 0х5555 сохранение параметра выполнено, 0хАААА Сохранение параметра не выполнено"
А мне нужно прописать в CodeSYS при создании канала обмена:
Тип доступа: ???
Регистр READ Сдвиг: ??? (я так понимаю - адрес регистра) и Длина:??? (зависит от типа данных?).

Как расшифровать описание драйвера?
Хочешь быть счастливым? Будь им!
glazastik
Новичок
Сообщения: 21
Зарегистрирован: 21 фев 2022, 11:16
Репутация: 6
Контактная информация:

Re: Управление ШД по Modbus

Сообщение glazastik »

вот список переменных которые использовал я

Код: Выделить всё

TYPE EM2RS :
STRUCT
	PrControl_READ:UINT;
	PrControl_WRITE:UINT;
	WRITE_RTG_PRctlSett:BOOL;
	
	TrigerReg_READ:UINT;
	TrigerReg_WRITE:UINT;
	WRITE_RTG1:BOOL;
	
	Path1_READ:UINT;
	PositionH_READ:UINT;
	PositionL_READ:UINT;
	Speed_READ:UINT;
	Acc_READ:UINT;
	Dec_READ:UINT;
	SuspendTime_READ:UINT;
	SpecialParam_READ:UINT;

	Path1_WRITE:UINT;
	PositionH_WRITE:UINT;
	PositionL_WRITE:UINT;
	Speed_WRITE:UINT;
	Acc_WRITE:UINT;
	Dec_WRITE:UINT;
	SuspendTime_WRITE:UINT;
	SpecialParam_WRITE:UINT;
	WRITE_RTG2:BOOL;
	
	WRITE_RTG3:BOOL;
	ControlWord:UINT;
	
	Direction_READ:UINT;
	Direction_WRITE:UINT;
	
		
	ActualPositionH_READ:UINT;
	ActualPositionL_READ:UINT;
	
	LimitPositiveH_READ:UINT;
	LimitPositiveL_READ:UINT;
	LimitNegativeH_READ:UINT;
	LimitNegativeL_READ:UINT;
	
	LimitPositiveH_Write:UINT;
	LimitPositiveL_Write:UINT;
	LimitNegativeH_Write:UINT;
	LimitNegativeL_Write:UINT;
	
	HomingSpeedHigh_READ:UINT;
	HomingSpeedLow_READ:UINT;
	HomingSpeedACC_READ:UINT;
	HomingSpeedDEC_READ:UINT;
	
	HomingSpeedHigh_Write:UINT;
	HomingSpeedLow_Write:UINT;
	HomingSpeedACC_Write:UINT;
	HomingSpeedDEC_Write:UINT;
	
	
	DI1:BOOL;
	DI2:BOOL;
	DI3:BOOL;
	DI4:BOOL;
	DI5:BOOL;
	DI6:BOOL;
	
END_STRUCT
END_TYPE

вот адреса
2023-08-22_11-43-43.png (3962 просмотра) <a class='original' href='./download/file.php?id=208780&sid=574a29ec71c04cace8b8eea5d300a498&mode=view' target=_blank>Загрузить оригинал (106.94 КБ)</a>
вот привязка
2023-08-22_11-45-32.png (3962 просмотра) <a class='original' href='./download/file.php?id=208783&sid=574a29ec71c04cace8b8eea5d300a498&mode=view' target=_blank>Загрузить оригинал (143.87 КБ)</a>
2023-08-22_11-46-03.png (3962 просмотра) <a class='original' href='./download/file.php?id=208782&sid=574a29ec71c04cace8b8eea5d300a498&mode=view' target=_blank>Загрузить оригинал (136.48 КБ)</a>
2023-08-22_11-46-20.png (3962 просмотра) <a class='original' href='./download/file.php?id=208781&sid=574a29ec71c04cace8b8eea5d300a498&mode=view' target=_blank>Загрузить оригинал (143 КБ)</a>
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Управление ШД по Modbus

Сообщение Ворон226 »

glazastik писал(а): 22 авг 2023, 11:50 вот список переменных которые использовал я

вот адреса
вот привязка
А можно объяснить как из описания на EM2RS получились эти адреса?
Хочешь быть счастливым? Будь им!
glazastik
Новичок
Сообщения: 21
Зарегистрирован: 21 фев 2022, 11:16
Репутация: 6
Контактная информация:

Re: Управление ШД по Modbus

Сообщение glazastik »

эти адреса есть у всех параметров (? вроде у всех?).
2023-08-22_14-55-26.png (3953 просмотра) <a class='original' href='./download/file.php?id=208789&sid=574a29ec71c04cace8b8eea5d300a498&mode=view' target=_blank>Загрузить оригинал (85.26 КБ)</a>
вот из мануала таблица: параметр - адрес - описание
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Управление ШД по Modbus

Сообщение Ворон226 »

glazastik писал(а): 22 авг 2023, 15:01 эти адреса есть у всех параметров (? вроде у всех?).

вот из мануала таблица: параметр - адрес - описание
У меня такой мануал:
Снимок экрана 2023-08-22 151200.png (3951 просмотр) <a class='original' href='./download/file.php?id=208790&sid=574a29ec71c04cace8b8eea5d300a498&mode=view' target=_blank>Загрузить оригинал (157.02 КБ)</a>
Хочешь быть счастливым? Будь им!
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Управление ШД по Modbus

Сообщение Ворон226 »

А вот всё описание (похоже несколько иное)
Вложения
drivery_SHD_Leadshine_seriya_EM2RS_instruction.pdf
(7.4 МБ) 188 скачиваний
Хочешь быть счастливым? Будь им!
glazastik
Новичок
Сообщения: 21
Зарегистрирован: 21 фев 2022, 11:16
Репутация: 6
Контактная информация:

Re: Управление ШД по Modbus

Сообщение glazastik »

ясно....
вот с этим ознакомьтесь
с оф сайта leadshine
EM2RS Series User Manual.pdf
(3 МБ) 134 скачивания
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Управление ШД по Modbus

Сообщение Ворон226 »

glazastik писал(а): 22 авг 2023, 11:50 вот список переменных которые использовал я

Код: Выделить всё

TYPE EM2RS :
STRUCT
	PrControl_READ:UINT;
	PrControl_WRITE:UINT;
	WRITE_RTG_PRctlSett:BOOL;		
END_STRUCT
END_TYPE
А эта "структура" прописывается где в CodeSYS? Я вот переменные прописывал в PLC_PRG... без TYPE и STRUCT
Хочешь быть счастливым? Будь им!
glazastik
Новичок
Сообщения: 21
Зарегистрирован: 21 фев 2022, 11:16
Репутация: 6
Контактная информация:

Re: Управление ШД по Modbus

Сообщение glazastik »

я создавал отдельную структуру для удобства, чтобы работать с массивом структур, потому что у меня в системе 3 таких драйвера
Аватара пользователя
Ворон226
Мастер
Сообщения: 1923
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Управление ШД по Modbus

Сообщение Ворон226 »

glazastik писал(а): 22 авг 2023, 15:26 я создавал отдельную структуру для удобства, чтобы работать с массивом структур, потому что у меня в системе 3 таких драйвера
Ну это я сам попробую разобраться с CodeSYS )
У меня тоже будет 3 драйвера - задача собрать координатный стол на ПЛК. Точность небольшая. Перемещения линейные. Но здорово всё упростится с ПЛК и СП (сенсорной панелью). Большое спасибо за мануал!
Хочешь быть счастливым? Будь им!
glazastik
Новичок
Сообщения: 21
Зарегистрирован: 21 фев 2022, 11:16
Репутация: 6
Контактная информация:

Re: Управление ШД по Modbus

Сообщение glazastik »

в планах по работе написать библиотеку для codesys 3.5 по заданному перемещению с возвращением назад
потом выложу сюда с примером, правда это уже будет для драйвера cs2rs с энкодером но они идентичны с em2rs
test_driver
Новичок
Сообщения: 2
Зарегистрирован: 19 дек 2023, 19:42
Репутация: 0
Контактная информация:

Re: Управление ШД по Modbus

Сообщение test_driver »

Здравия всем!
Купил CS2RS-D507 драйвер Leadshine, управление по Modbus.
Купил СПК от Owen, прошёл обучение у них же, понятие имею (Modbus 3.5).
Через RS232 и Motion_Studio компьютером заставляю крутить шаговик с энкодером по пульсам и назад, меняя скорость.
Вижу, что по инструкции группа управляющих регистров имеет Pr9.0
Создал несколько каналов, считал информацию, сверил с параметрами по умолчанию - соответствует, значит Modbus работает.
А вот запустить - никак. Туго у меня с английским. Не врубаюсь какие регистры за что отвечают, там их больше сотни.
Какие то три режима управления двигателем, типа по пульсам, вручную и ещё какоё-то, не врубаюсь.
Понимаю, что принцип разгон - движение - тормоз идёт по рампе.
Кто- нибудь может со мной пообщаться, буду благодарен за посвящение.
Вложения
CS2RS_Series_User_Manual_V1.5.pdf
Мануал с официального сайта
(3.49 МБ) 4758 скачиваний
test_driver
Новичок
Сообщения: 2
Зарегистрирован: 19 дек 2023, 19:42
Репутация: 0
Контактная информация:

Re: Управление ШД по Modbus

Сообщение test_driver »

glazastik писал(а): 12 апр 2022, 15:57 Проверил:
записал 1 в 0х6200
положение в старших битах записал 10
скорость 100
Здравия Всем!
Будьте добры, а не подскажите, в какой именно Bit нужно записать единицу?
Вложения
20231223_225104-2.jpg (1408 просмотров) <a class='original' href='./download/file.php?id=210120&sid=574a29ec71c04cace8b8eea5d300a498&mode=view' target=_blank>Загрузить оригинал (404.4 КБ)</a>
ag2651335
Новичок
Сообщения: 1
Зарегистрирован: 16 апр 2024, 06:54
Репутация: 0
Настоящее имя: Александр
Контактная информация:

Re: Управление ШД по Modbus

Сообщение ag2651335 »

glazastik писал(а): 11 апр 2022, 15:48 нет не достаточно
туда это куда вы записываете единицу или 3? в 0x6200?
для вашей задачи
PR0 настраивается на движение вперёд в 0x6200 при этом надо записать в 14 бит единицу а в битах 8-13 надо указать PR на который он должен перескочить когда закончит движение
а ещё в регистр 0x6206 надо указать время паузы
в другом PR вы либо указываете задание движение домой либо в позицию старших и младших битах 0 чтобы вернуть его в начало движения
при этом Jump должен быть уже выключен

ну или кстати можно и без jump сделать но просто смысл? каждый раз менять параметры PR0 перед вызовом, ну можно в принципе, просто зачем если можно использовать jump


кстати а вы следите за текущим положение через регистры?
Добрый день.

подскажите пожалуйста как я могу из делфи передать команды по компорту для перемещение в pr0-15
или хотя бы список этих команд в HEX формате

заранее огромное спасибо
glazastik
Новичок
Сообщения: 21
Зарегистрирован: 21 фев 2022, 11:16
Репутация: 6
Контактная информация:

Re: Управление ШД по Modbus

Сообщение glazastik »

test_driver писал(а): 23 дек 2023, 22:58
glazastik писал(а): 12 апр 2022, 15:57 Проверил:
записал 1 в 0х6200
положение в старших битах записал 10
скорость 100
Здравия Всем!
Будьте добры, а не подскажите, в какой именно Bit нужно записать единицу?
Надеюсь удалось разобраться и запустить, в 0 бит записывать если что
glazastik
Новичок
Сообщения: 21
Зарегистрирован: 21 фев 2022, 11:16
Репутация: 6
Контактная информация:

Re: Управление ШД по Modbus

Сообщение glazastik »

ag2651335 писал(а): 16 апр 2024, 06:59
glazastik писал(а): 11 апр 2022, 15:48 нет не достаточно
туда это куда вы записываете единицу или 3? в 0x6200?
для вашей задачи
PR0 настраивается на движение вперёд в 0x6200 при этом надо записать в 14 бит единицу а в битах 8-13 надо указать PR на который он должен перескочить когда закончит движение
а ещё в регистр 0x6206 надо указать время паузы
в другом PR вы либо указываете задание движение домой либо в позицию старших и младших битах 0 чтобы вернуть его в начало движения
при этом Jump должен быть уже выключен

ну или кстати можно и без jump сделать но просто смысл? каждый раз менять параметры PR0 перед вызовом, ну можно в принципе, просто зачем если можно использовать jump


кстати а вы следите за текущим положение через регистры?
Добрый день.

подскажите пожалуйста как я могу из делфи передать команды по компорту для перемещение в pr0-15
или хотя бы список этих команд в HEX формате

заранее огромное спасибо
Ну делайте всё чётко по мануалу, там порядок же есть да и тут выше описывал. В мануале так то вроде все команды в 16-тиричном указаны с этим проблем не должно быть.
Ответить

Вернуться в «Двигатели и шпиндели»