Rockwell AOI 2.0 - Basic Usage

Modified on Tue, 22 Jun 2021 at 11:34 PM

**Attention** : Read this resource material carefully and in its entirety before use, to ensure it is understood and used properly.  Failure to properly follow the instructions in the resource materials DPAM provides may result in damage to your equipment.  As a result, by using the resource materials, you are assuming the risks associated with modifying your equipment. DENSO holds no liability, implied or otherwise, for damage, injury or any legal responsibility incurred, directly or indirectly from the use of the resource materials, including any loss of data or damage to property which may occur by your use of the resource materials. The use of the resource materials are not recommended unless you have technical knowledge and functional experience with the equipment and related software. DENSO is unable to provide support, remote or otherwise, for the information included in the resource material, nor for the ancillary topics relating to the information included in the resource materials. Therefore, if you are not fully comfortable with it, we strongly recommend that you send your unit to one of our Regional Support Centers for repair.  The information contained in the resource materials are subject to change at the sole discretion of DPAM.  



This will cover a basic overview on how to use the AOI library and corresponding data types.

Tools and Parts Needed

  • Studio 5000


Step-by-step guide

Step 1 

First, we will start with the required function blocks to get your project started.

The MC_ReadAxesGroup must go at the very top of your program. This refreshes all the signals coming from the robot controller to your PLC every time the PLC scans.


The MC_WriteAxesGroup must go at the very bottom of your program. This refreshes all the signals going to the robot controller from the PLC every time the PLC scans.


All of your additional function blocks regarding the robot must take place in between these 2 otherwise the current status of bits will not be transmitted correctly.


The MC_Power FB is used to turn the motor on to your DENSO robot. The execute bit must be held on for the motor power to stay on. If the execute bit goes off, so does your motor power.


Step 2

Open up the drop-down menu for Assets and Then Add‐on instructions.

Find the MC_ReadAxesGroup FB and click and drag onto your first program rung.

You will need to create a tag for the first instance. It is possible to control multiple robots via AOI but if only using 1 then you only need 1 tag for this FB.


Open your controller tags and create a new tag. You can call it any name you wish, but it seems easier to just use the same name as the title of the AOI. After naming the tag, select drop down for data type.


You can then select this tag in the FB instance reference of the AOI.


Robot[0] is a tag structure created automatically and refers to whatever robot number you are using. If you are using multiple robots, you would use robot[0] for one robot and robot[1] for the second robot, etc.


Step 3

The process will be the same for the MC_WriteAxesGroup AOI except this one will be entered at the very end of your last sub‐routine.

Step 4

Now we will add our Motor on and error reset commands. Keep in mind, all further added AOI must go in between the MC_ReadAxesGroup and MC_WriteAxesGroup to function properly.


The execute bit for these 2 will be user generated bits.


As you can see here, any time the “Reset_trigger” bit is turned on it will trigger a request to clear any errors the robot may have.


When the “Motor_On” bit comes on the robot power will come on.

You can reference the robot’s status bits from the corresponding Robot[0] tag structure in the PLC Controller’s tag memory.

Step 5

You will notice that when you first uploaded the AOI library, it automatically created an array of 100 positions. You can create more if needed, but these are used to store your position data (XYZ and Joint).


The easiest method for teaching points is to use the pendant to teach a point and save it to a P‐variable location within the controller. You can then read that position data into your PLC and initiate a move.


Let’s assume we have taught 3 points for a basic pick and place motion and stored them in the robot controller at P10, P11 and P12.

We will read these points into the PLC and then initiate a couple of basic move commands via PLC.


First we will need to create some tags for use with the MC_ReadPosVar FB referencing the data type accordingly. Since there will be multiple instance of this, it is best to create an array.


When chaining FB together like this, it is easiest to use the “done” bit from one to execute the next, as you can only run 1 data AOI at a time.

Step 6

Now that we have our 3 positions stored in the PLC let’s do a move. In this first rung, we will do an “approach” move and then a linear downward move to a pick position.


Position 10 will be our “pick” Position

Step 7

Next we will depart the pickup position (position 10) by 100mm and move to our pass through point at position 11.


We will use the done bit from the depart move to execute the next move.

Step 8

Next Steps

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select atleast one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article