RobotStudio event

bind to an complex controller object

I have a complexe datatype in RAPID(V5.13.01), it is a field of RECORDS like this:

RECORD typePlace
  num Base_L;
  num Base_B;
  num Base_H;
  num H_akt;
  num L_Anz;
  num LTyp_Akt;
  bool M_Init;
  bool M_Known;
ENDRECORD

TASK PERS typePlace Place{7}:=[
             [0,0,0,1800,0,0,FALSE,FALSE],
             [0,0,0,1800,0,0,FALSE,FALSE],
             [0,0,0,1800,0,0,FALSE,FALSE],
             [0,0,0,1800,0,0,FALSE,FALSE],
             [0,0,0,1800,0,0,FALSE,FALSE],
             [0,0,0,1800,0,0,FALSE,FALSE],
             [0,0,0,1800,0,0,FALSE,FALSE]
               ];
              
Now i want to watch some of the components in an diagnostic-screen build with screenmaker.
I am able to bind an numEditor.value to an single PERS num-Variable and also to bind to a complete field-element with the index as reference, but how can i connect just to an single record.component like this:

numEditor1.value= place{1}.H_akt
numEditor2.value= place{2}.H_akt

In binding-screen the component-window at the right site down is allways inactive!?

 

Thanks dust2
dust22010-10-08 15:24:43

Comments

  • Hi,

     

    does somebody know what i mean?

    Any chance, that access to arrays will be possible in future versions?

     

    dust2 

     

     

     

     


  • Hello:

    Thank you for the input. Right now it is not supported in ScreenMaker due to complexity in unknown type of RECORD. We will investigate the support for it in future.

    Regards,
    ScreenMaker Team, ABB

  • Hello,

    is there maybe a version in progress, where this problem is solved?

    I tried to bind a numeric variable to an Index of an string-Array (not a record-type), to display it on the Flex-Pendant. But it didn't work.
    I think it is nearly the same problem, which is explained above?!?!

    I'm using "RW5.13.03"

    Thanks for awnsering


  • Hello,
    You could try this workaround. I have used some controls to describe the scenario.
    Controls used:
    NumericUpDown
    - Value property bound to RapidNum which is an index of the array "B"
    DataEditor - Text property bound to application variable of type Num "A"
    ActionTrigger
    - Value property bound to RapidNum which is an index of the array "B"
    Define the following event for Action Trigger - which does a RapidDataRead from array[B] and stores it in "A"
    So when index value changes, ActionTrigger control triggers an event which writes the value from the array[index] into an application variable.
    Since, application variable is bound to text property of DataEditor, the text changes.

    Thanks
  • Dear Abhishek PM,

    I have tried your suggestion, it's not working...Instead, it's getting an unhandled exception, like this:
    image

     

    The array index of Air_T_Off_Begin{Point} is databinded to Application Variable Current_Spray_Point (having type RAPID Num)...Even I have set the default value to "1" like this:

    image

    Still it is resulting in array indexing to "0"...I don't understand why...

     

     

    Best Regards,

     

     

    Giovanni Sutanto
    -Best Regards-

    Giovanni Sutanto
    ABB Indonesia Robotics Application and Service Engineer
  • Hello,

     

    The default index of array item is 1.

    Have you used all the controls that has been mentioned in the above example ? In the example mentioned Rapid Data, Application Variable of Type Num is used along with Rapid Array.

     

    If your scenario is little different could you describe how it has been done ?

     

    Thanks
  • Hello,
     

    I tested it .

    it works but only with  simple  arrays, for example

    num myarray{2,3}:=[[1,2,3],[4,5,6]];

     

    but not wiht records like

     

    RECORD myrecordtype

         string mystring;

         pos  mypos

    ENDRECORD

     

    myrecordtype my record{2}:=[["hello",[1,2,3]],...

     

     

     

     

     
    BR
    Oscar Ferrrato