Перейти к основному содержимому

Вращение с относительной скоростью по таймеру

RI_SDK_exec_RServoDrive_RotateWithRelativeSpeedOverTime

Описание метода

Вращение сервопривода с заданной относительной скоростью до тех пор, пока не поступит команда остановки сервопривода, новая команда на вращение или пока не закончится таймер.

Image

Дает команду сервоприводу вращаться до тех пор, пока не будет вызвана команда остановки или не закончится таймер. Направление поворота задается логическим параметром. Скорость поворота определяется числовым параметром, задающим процент от максимальной скорости поворота. Таймер на вращение устанавливается числовым параметром, показывающим количество миллисекунд, в течении которых выполняется вращение (1000 миллисекунд = 1 секунда).

Блок может работать в синхронном или асинхронном режиме.

При синхронном режиме, программа, которая вызвала данную функцию, ожидает завершение выполнения команды. Вращение выполняется до истечения таймаута, т.к. функцию остановки невозможно (в том же потоке) вызвать раньше завершения текущей команды. При асинхронном режиме ожидания не происходит, и выполнение команды осуществляется параллельно дальнейшей работе программы, вызвавшей данную функцию. И если после функции вращения для используемого сервопривода будет вызвана следующая команда, то вращение будет прервано до истечения таймаута.

Направления движения:

  • «истина» - по часовой стрелке
  • «ложь» - против часовой стрелки

Для своей работы блок вращения сервопривода использует метод библиотеки RISDK.

Примеры

В данном примере осуществляется вращение сервопривода по часовой стрелке в течении 1 секунды на 100% скорости сервопривода.

Image

В результате работы программы будет выведена такая строчка: « Сервопривод вращения №0 | Синхронно вращение по часовой с относительной скоростью 100% и таймаутом 1000 мс. »

В данном примере группа действий является асинхронной и вращение будет остановлено сразу же, несмотря на длительность таймера. Если группа действий "Вращение" будет находилась в синхронном режиме, то блок "вращение с относительной скоростью по таймеру" будет выполняться все выделенное время и только после его окончания очередь дойдет до команды остановки.

Image

В результате работы программы будут выведены такие строчки:

«Асинхронная группа действий "Вращение" началась. »
«Сервопривод вращения №0 | Асинхронно вращение по часовой с относительной скоростью 100% и таймаутом 1000 мс. »
«Сервопривод вращения №0 | Остановлен. »
«Асинхронная группа действий "Вращение" закончилась. »