PDA

Просмотр полной версии : ПЛК-110-30 управление серводрайвером



Владимир32
04.02.2022, 11:12
Здравствуйте.

Подскажите, пожалуйста, каким образом в codesys2.3 можно решить следующую задачу:
контроллер ПЛК110-30(М02) управляет серводрайвером Delta по RS-485 modbas RTU. Серводрайвер работает а режиме внутреннего позиционирования.
Для перемещения вала серводвигателя в нужную позицию необходимо из ПЛК в соответствующий регистр серводрайвера (регистр 1542 и регистр 1543)
записать необходимую координату: размер данных 32бит, диапазон значений -2147483648...+2147483647 (например число 150000).

glazastik
04.02.2022, 11:33
глянь вложение

kondor3000
04.02.2022, 11:33
А в чём проблема? Добавляете в конфигурации 32 бит Output, типа DWORD даёте ему имя, например Zad_Kt и адрес 1542
В переменную пишите ваше число, например 150000 и отправляете в нужный адрес.

Владимир32
04.02.2022, 13:41
А в чём проблема? Добавляете в конфигурации 32 бит Output, типа DWORD даёте ему имя, например Zad_Kt и адрес 1542
В переменную пишите ваше число, например 150000 и отправляете в нужный адрес.

Я так и сделал. Проблема в том, что в серводрайвер приходит не 150000 а 1240465410.

Тоже самое происходит и при считывании координаты из серводрайвера: на пульте управления серводрайвером задаем 150000, а читается 1240465410.

kondor3000
04.02.2022, 14:00
Я так и сделал. Проблема в том, что в серводрайвер приходит не 150000 а 1240465410.

Тоже самое происходит и при считывании координаты из серводрайвера: на пульте управления серводрайвером задаем 150000, а читается 1240465410.

Так поставьте в UMD последнюю строку Native. Вам даже пример выложили.
При переставленных регистрах в DWORD как раз и получается 1240465410. Смотри скрин 59121

Владимир32
04.02.2022, 19:38
глянь вложение


Так поставьте в UMD последнюю строку Native. Вам даже пример выложили.
При переставленных регистрах в DWORD как раз и получается 1240465410. Смотри скрин 59121

Ребята, всем большое СПАСИБО. Разобрался, теперь все записывается и читается правильно!