read robot coordinates

Hi,

I have connected the robot to a PC (IP address - network). I can transfer files over FTP to the robot (ABB IRB 4400).

My question is: is there a way so that I can read the robot coordinates (position and orientation) on my PC (because at the moment I can only read it on the Teach Pendant)?

Thank you very much!

You need a PC application designed to communicate with the robot controller in order to access this type of data. For S4C+ and earlier, you would use WebWare SDK to develop this application, or Robot Application Builder for IRC5 (see these topics elsewhere in this forum for more info). Additionally, the robot controller must have RAP/FactoryWare option for S4 or PC Interface for IRC5.

Thank you.

But what about writting a program in RAPID. I think about you jog to a point read that point with CRobT. Now I want that this point is saved in my program so that I can send the program over FTP to my PC and open that file for example in Notepad. Than I could read the coordinates on my PC. Is there a command to save that point in my program??

Thank you very much!

Which model of robot controller do you have S4C+, IRC5, other?

If you have the option NFS or FTP Client, plus the File/Serial Handling option, then you could write text to a file that could be saved on your PC. Then you could open it in Notepad or similar.

A more powerful application could be implemented using the tools I described earlier. It would not be too difficult to create a tool that could run on your PC that would monitor the current position and update itself automatically.

Also I forgot to mention earlier that on IRC5, the Socket Messaging Option allows you to write messages using TCP sockets to a PC application that is capable of receiving these messages.

Hi Katrin.

Try this:

MODULE MyModule
! Initialization (any value)
PERS robtarget MyPosition := [[…]];

PROC MyProc
MyPosition := CROBT(Tool:=MyToolWobj:=MyWobj);
Save “MyModule”;
! Now the value is ready to be transfered via FTP (MyModule.MOD),
! beacuse the initialization of MyPosition has been updated.
ENDPROC

ENDMODULE

Regards,
Claudio

Hello claudio

MyPosition := CROBT(Tool:=MyToolWobj:=MyWobj);
Save “MyModule”;

I think that this metode will destroy the flash disk in a very short time.

Hello Knud

I imagine it depends on the frequency you need to save. I use this method to allow the user to change position interactively, saving each time the user modify a position. I never had problems.
Usually I have an independent module with all the PERS robtarget in the program. At the beginning of the program I usually put a Save statement to be sure to update the module on the disk if a position has been changed.
If you have any information about the fact that the flash disk can be damaged if frequent writing operations are performed, please write me!

Thanks
Claudio

Hello claudio

In the productmanual for s4p is sayes:

1.4.2 Checking Flash disk capacity

Background

Flash disks use semiconductors to store data. Each sector has a limited amount of

write cycles and will finally be worn out. Flash disk capacity will decrease as sectors

are worn put. The rate of the decrease depends on both the application and how much

of the capacity is used.

Action

Check the flash disk capacity. It must not be less than 50 percent of full capacity. If

the capacity is less than 50 percent, replace with a new flash disk. There are two sizes

of flash disk, 64 Mb and 128 Mb

Recommendation

  • Do not write frequently to the flash disk if it is nearly fully used.

  • Sectors can be worn out and you may loose data.

  • Make sure to upgrade in time / Buy enough memory in time.

But of course it depends on the frequency you need to save :stuck_out_tongue_winking_eye:

Hi Knud.

Extremely intersting. I never read this.
So, writing programs that continously use the disk to interchange data is not a very good idea. I will remember that.

Thank you very much.

Bye
Claudio