Обучение робота выполнению работ (Глава 7 книги "Роботы и автоматизация производства"), страница 14

4 — разгибание запястья; 5 — вращение запястья по часовой стрелке; 6 — раскрытие захвата; 7 — закрытие захвата; 8 — вращение запястья против часовой стрелки; 9 — сгибание запястья; 10 — опускание- локтевого сустава; 11 — опускание плеча; 12 — вращение основания против часовой стрелки никогда не знает, где находится рука робота. Однако ЭВМ способна сохранять в памяти алгебраическую сумму импульсов, которые она подала на- каждое из звеньев робота. Она хранит результаты подсчета этих импульсов в отдельных регистрах, имеющихся для каждого из приводов осей. Эти регистры можно назвать регистрами положения, однако куда действительно переместится робот в соответствии с показаниями этих регистров, зависит от наличия препятствий на пути робота, превышения скорости перемещения или других причин, способных привести к неотработке шаговым двигателем части импульсов. Программист в любой удобный момент может обнулить регистры положения. Это обнуление можно рассматривать как поверку положения робота, если робот перед обнулением подходит к известной фиксированной точке.

Вместо создания специального языка, подобного языку Бейсик, в языке АРМБейсик применен подход, согласно которому команды роботу подготавливаются в виде подпрограмм на языке Бейсик. Это означает, что программист на языке АРМБейсик должен знать и язык Бейсик. В то же время отсюда следует, что программист может воспользоваться всеми стандартными возможностями, представляемыми языком Бейсик для решения с помощью ЭВМ совершенно других задач, по мере необходимости обращаясь к специфичным программам на языке АРМБейсик. Кроме того, вся программа редактирования, имеющаяся в распоряжении пользователя обычного языка Бейсик, действительна и во время программирования на языке АРМБейсик.

Команды или подпрограммы языка АРМБейсик удивительно немногочисленны и просты. Команд всего шесть:

@ RESET—обнуляет «регистры положения», устанавливая исходное положение для отсчета импульсов всех шаговых двигателей.

@ STEP — обеспечивает перемещения робота, подавая в требуемом режиме управляющие импульсы.

Пример: @ STEP SP, А, В, С, D, Е, F. Эта команда предписывает роботу двигаться со скоростью, задаваемой переменной SP. Переменная А определяет, какое количество импульсов подается на первую ось робота (основание), переменная В — на вторую ось (плечевой сустав), С — на третью ось (локтевой сустав) и т. д. Переменная F относится к захвату робота (шестая ось). Движение программируется «в приращениях», т. е. перемещения по каждой из осей задаются от положения, непосредственно предшествующего команде @ STEP.

@, SET — переключает робот в ручной режим управления по командам с клавиатуры (рис. 7.10). По сути, это режим обучения для каждого звена робота. @ READ —дает команду записать алгебраическую сумму импульсов, выданных  на каждый из шаговых двигателей, начиная с предыдущей команды

@ RESET.

Пример: @ READ А1, А2, A3, А4, А5, А6. По этой команде в регистрах положения записываются импульсы, подаваемые на шаговые двигатели приводов робота по осям, начиная с самой последней команды @, RESET, когда эти регистры были обнулены. В этом примере переменная А1 соответствует алгебраической сумме импульсов, поданных на двигатель основания, А2 — плечевого сустава и т. д. до А6 — захвата. К этим переменным можно позже обращаться, а импульсы могут быть поданы снова, чтобы возвратить робот в прежнее положение по команде @, STEP.

@ CLOSE —дает команду закрыть захват до тех пор, пока датчик не покажет, что рука закрылась с заданным усилием.

@ ARM — выбор номера порта ЭВМ, который будет использован. Применяется при наладке, а не при программировании.

Каждая команда на языке АРМБейсик предваряется знаком @, что отличает ее от обычной команды языка Бейсик. В языке имеется команда @CLOSE, но нет соответствующей команды OPEN (открыть). Открыть или закрыть захват можно, просто посылая серии импульсов на двигатель робота, открывающий и закрывающий захват. Это можно выполнить при помощи команд @STEP или @SET. Отличие от команды @CLOSE состоит в том, что вращение двигателя зажима будет происходить до тех пор, пока двигатель не отключится по команде от датчика на роботе (концевой выключатель на роботе модели «Микробот Минимувер 5»).