RobotStudio event

Creating a loop for robtargets and MoveL

Hi, I have some Abb 6400 with M94A , S4 controllers. I have installed Baseware 2.0 + Adv Functions + Rap Communication.

I want to run big programs with them, with more than 50.000 MoveL instructions, and I need to make a program in wich I can skip the robot memory limitation, to be more exact I know that it is possible to make a loop in wich the instructions can be loaded from floppy disk or serial channel.  Let`s skip some steps and get to my questions.

1.How should a program look like in wich the constant robtargets can be loaded from flp1 or serial channel?

To be more specific my program generated by Eureka look like this:

%%%
  VERSION:1
  LANGUAGE:ENGLISH
%%%


MODULE 1
! ------------------------------------------------------------
!  Target declaration
! ------------------------------------------------------------

    CONST robtarget p1:=[[-1060,-266.5,100],[0.707,0,0,-0.707],[-1,-1,0,0],[0,0,0,0,0,0]];
    CONST robtarget p2:=[[-1060,-266.5,-107.5],[0.707,0,0,-0.707],[-1,-1,0,0],[0,0,0,0,0,0]];
    CONST robtarget p3:=[[-1060,-266.5,-110],[0.707,0,0,-0.707],[-1,-1,0,0],[0,0,0,0,0,0]];
! ------------------------------------------------------------
!  Speeddata declaration
! ------------------------------------------------------------

   CONST speeddata vrapid:=[1000,500,5000,1000];
   CONST speeddata vfeed1:=[0.833,0.833,0.833,0.833];
   CONST speeddata vfeed2:=[12.5,12.5,12.5,12.5];
   CONST zonedata zonerapid:=[FALSE,5,5,0,0,0,0];
   CONST zonedata accuzone:=[FALSE,0.05,0.05,0,0,0,0];



PROC Main()
ConfL Off;
  MoveL p1,vrapid,zonerapid,tool1 WObj:=Wobj1;
  MoveL p2,vrapid,zonerapid,tool1 WObj:=Wobj1;
  MoveL p3,vfeed1,accuzone,tool1 WObj:=Wobj1;
 ENDPROC

ENDMODULE

And I know that in theory is possible to make a program like this:

Load Module from flp1,ramdisk,iodevice 
!!The program would load the first group constant robtargets from p1 to p2
MoveL p1 to p(n+1)
!!The program will execute the MoveL instruction from the first "p" to the last "P"
Move to home position
Unload module
Restart the process again

Notice: the firt module will have p1 to p10 or to p100, the second module will have from p11 to p20, or from p101 to p200 and so on.

I can also try to install BaseWare 3.0 with factoryware and multitasking but I will get errors because it requires ethernet boards and my controllers are not equiped with it.

If I install BaseWare 3.0 I know that it is possible to execute the MoveL instruction with the robtargets from the robot memory and meanwhile another routine with another set of robtargets can be loaded.


I need an answer for BaseWare 2.0 if it`s possible or BaseWare 3.0 or both of them to try the program.
 
Any ideas ??

Comments

  • Hi <?: prefix = o ns = "urn:schemas-microsoft-com:office:office" />

     

    Did you try with 50000 instructions? Is it not possible to hold so many instructions? You could also put your positions in an array and do your move instruction in a FOR loop.

     

    You could load it from floppy, but if it is an old controller you might get some errors while reading from floppy because of dirt and dust in the drive. If there is enough space on the Ramdisk it is better to load the module from there. Use:

    Load

    Unload or EraseModule (Unload is only possible for module loaded by Load instruction, EraseModule is only available in newer systems)

    Maybe you have to switch of the reference error detection in the parameters otherwise you might get a reference error after Unloading.

     

    Best regards

     

    Marcel

  • Marcel I am not able to use Load function because I have Robotware 2.0 and this function is only available with Robotware 2.1...
    I knew that it is possible to run program directly from a computer, the robot reads in advance few lines and executes them. 

    I have webware sdk and S4Online with Interlink.

    I don`t have any idea of how I should make this...if you know and can, please help me.

    Regards,
    Alex
  •  Hi

    What are the syntax for the instruction EraseModule, do you have a exsample. Smile

    Best Regards
    Steen
  • Marcel
    Marcel ✭✭
    Hi

    You can find the syntax in the documentation of RobotStudio Help, Rapid Reference, Instructions:

    EraseModule "PART_A";

    Erase the program module
    PART_A from the program memory.
    Best regards

    Marcel