RobotStudio event

Work Object Synchronisation to VC

Hi,
 

I scratching my head to work out where I'm going wrong when I make changes to a work object in my virual station and then Synchronise to VC via the offline tab.

 

The changes to the work object do not take effect when I re run my program.

 

Is there a simple step by step process I need to go thru to get the Work Object changes active in my programs after a Sync to VC?

 

Not sure if it makes a difference but my robot is using Pickmaster 5 option.

 

Thanks in advance

 

Tim
timoreardon2010-12-22 18:43:18

Comments

  • Hello Tim,
     

    I get the same result.

    If you sync to VC the value of the work object updates in the pmRCuser module but the Virtual FlexPendant does not update the value.

    The value in the FlexPendant also does not update if you type a number directly via the offline programming editor.

    It looks like the work object needs to be updated dircetly via the FlexPendant.

     

    BR Jim Proulx
  • I have had issues previously where a workobject or robtarget would not update if it wasn't used in the program. (or atleast not used in the module your working on in robotstudio).

    it would work if you add one line that uses the workobject in your module, then it would update it. But this problem was a few versions ago so it might not be the same thing.
  • Hi Tim,
    If you mail me a Pack & Go with a station and system where I can reproduce the problem, I will take a look at it, and report it as a bug.


     

    anders.spaak@se.abb.com
    Best regards,
    Anders Spaak
    ABB Robotics
  • Hi Anders,
     

    Thanks for the reply, I have sent you an email with a pack and go file.

     

    Just to add to my initial post and the reply from Jim Proulx I too can see the changes to the work object values in the Home tab of RS, the values are updated in the pmrcUser file but the values shown for the work object on the virtual Flexpendant do not reflex those changes.  The pmrcUser file on the flexpendant shows the changes so I thought I should do something on the pendant to make those changes active?

     

    The rest of the programs and the Pickmaster side of things all works fine and I can use the Pickmaster IO panel simulator to trigger the simulation to start.

     

    I've only been using RS for a month or so and although I've been on the RS course at ABB in Milton Keynes, UK there are still plenty gaps in my knowledge.

     

    Thanks for all your help.

     

    Tim

     

     

     
    timoreardon2010-12-27 20:41:03
  • We will investigate the problem. Thank you for bringing this to our attention. The problem might be related to lack of synchronization of persistent variables (PERS) in system modules. (But this is only a guess, our investigation will show.) When a persistent variable is changed, it must be syncronized with the internal database in the controller in which the persistent variables are stored.
    Henrik Berlin
    ABB
  • [Quote=mattdavis]I have had issues previously where a workobject or robtarget would not update if it wasn't used in the program. (or at least not used in the module your working on in RobotStudio).


    It would work if you add one line that uses the workobject in your module, then it would update it. But this problem was a few versions ago so it might not be the same thing.
    [/QUOTE]

     

    Starting with RS 5.13 you can select individual (unreferenced) data (tooldata, workobject) to be synchronized to Station or VC. This is done by checking the data in the Synchronization dialog box. To enabled individual targets to be synchronized, you need to double-click the containing path to expand the referenced targets.
    Henrik Berlin
    ABB
  • I really haven't used 5.13 for much so my particular problem may already be fixed (sounds like the synchronization got upgraded anyway).

    For some more detail on it though. It would occur when we setup touch sensing programs. We usually have a theoretical point where we expect to find the object. This point is never actually used in a movement, its only used to compare to the found point to determine the shift. If we adjusted this expected point in robstudio it would never get synchronized even if we specifically selected it. If i wrote a small routine that had a movj line to each expected point they would all get synchronized just fine.

  • I have had the opposite problem of changes to a workobject made during RAPID execution in the program editor or Virtual pendant not being transferred to the station when executing 'Synchronise to Station' with all boxes checked.

    After reading Henrik's comment above about persistent variables in system modules possibly not being synchronised, I moved my wobj declaration from a system module to my program module. The synchronisation then worked OK.

    I then moved the declaration back to the system module ... and synchronisation still works!

    Edit:
    After re-starting RS, synchronisation no longer works until the wobj is moved back to the program module.

    Kevin

    Kevin2011-01-07 09:40:53
  • [Quote=j_proulx]If you sync to VC the value of the work object updates in the pmRCuser module but the Virtual FlexPendant does not update the value.
    The value in the FlexPendant also does not update if you type a number directly via the offline programming editor.
    It looks like the work object needs to be updated dircetly via the FlexPendant.
    [/QUOTE]

    We have investigated the problem of non-updated workobjects. This is neither a bug in RobotStudio, nor RobotWare, but is an effect of how RobotWare is designed to handle PERS variables in multiple tasks. The problem appears when a variable is declared (with initial value) as PERS in two or more tasks of a multitask system. Then the same data is shared across all tasks. As the controller is currently designed, it is not possible to affect the 'global' value of a PERS with several intial values by editing RAPID code or SyncToVC from RS. This is documented in the RAPID Kernel manual section 14.4, see attached extract.


     

    The recommendation to avoid this kind of problem is to provide the initial value of the PERS in one task only, and declare the PERS variable in the other tasks without initial value. This will also eliminate the problem of unintentionally assigining different values to the variable in the different tasks.

     

    Henrik Berlin
    ABB