When using the ARMBASIC program language you will only need to know the following commands:
- @RESET – Initializes the positioning variables, establishing what is referred to as a home reference marker for the motor iterations.
- @STEP – Delivers pulses to specific stepper motors. This command is used to move the robot at a speed defined in its variable. Variables relating to the number of step pulses to be used, which axis is to be advanced and how fast the robot is to move are defined. Incremental motion is used which mean the axis steps taken are relative to its position following the previous command.
- @SET – This command switches the control of the robot to the keyboard, so the machine can be operated manually. This command is used prior to entering a teach process for the robot.
- @READ – This command records the sum of pulses sent to each stepper following the @RESET command. It is vital that the position register of the stepper pulses are recorded, relative to the number in the previous command. This data can then be manipulated to return the robot to previous positions without having to re-learn the steps.
- @CLOSE – This command will close the gripper to the point a sensor is triggered, indicating a certain degree of resistance.
- @ARM – When configuring a robot it is important the correct port number is selected. The @ARM command carries out this process.
As you can see from above, each command is prefixed with the @ sign, which is used to distinguish the ARMBASIC commands from BASIC commands. You may also notice that there is a command for closing the set of instructions but none for opening it. This can be done automatically, by sending a series of pulses that action the opening of the gripper, which can be done using the @STEP or @SET command. The @CLOSE command is required because the gripper motor will continue until it is powered off by one of the sensors.
From what I have discussed so far, it is easy to presume that the software engineer is required to make complex calculations on robotic dimensions and angular displacement but this is simply not true. All the programmer has to do is move the robot using the @SET command and in conjunction with the @READ command , the required pulse data is recorded. Following this, if the engineer wants to make the robot return to that position they simply use the @STEP command with the specific pulse count. The trajectory of motion is smooth because the programming language pulses each motor at a controlled rate.
This path is usually not a straight line but this makes very little difference to the motion of the automated machine. The engineer does not have to carry out calculations and is often not aware of the values used. The program calculates this and deals with these values. When the software engineer names the variables, he is assigning memory to hold the pulse data and has no underlying knowledge of what that data actually is. The final premise to take from this is that the entire process is an open-loop process, meaning the program can not react to blockages in the motion path.