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

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:

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:


Still it is resulting in array indexing to “0”…I don’t understand why…

Best Regards,

Giovanni Sutanto

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]],…