AS6 performance of mappView visualization drop down

Hi,

I transfer project from AS4.12 t oAS6. After transfer I noticed a sudden drop in performance. PLC (X20CP0484-1) and HMI 6PPT50.0702 (or PC). The PLC go from 40% to 60-80% of CPU usage in normal. After I change the cache to 500 of 500, that’s go better, but not fast as AS4.12. When I click to some menu button I must wait 5s, than the screen has been loaded. With AS4.12 was not take so long anytime. Cyclic task don’t go over 1% os cpu use from profiler.

Occasionally it will also say that the connection has dropped out and the HMI will reload.

I also noticed, that there is lot of errors in log. But I don’t understand it. The values are displayed on the screen.

I am also attaching the examle screens of my project. The bottom button panel is only buttons for content changing. I am trying using only A widgets.



Hi, I think the first of all you have to solve all errors you have in the logger. Using mappVIew server diagnostic, you can also check all events and actions connected to page navigation/loading and resolve error from action execution.

Hi,

To give a bit of help about your errors in the loggers, it’s not about the value that mappView is complaining, it’s about EURange. Im sure that Status given is BadNodeUnknown and ref of the node has an #EURange.

This is possibly due to a wrong binding on a numeric input, if you bind a node to a numeric input, the widget will try to get Min and Max from EURange of the OpcUa server.

To avoid this you have to bind the value of the OpcUa variable not the node. If you do this you had to manually configure in the widget the Min and Max values accepted, default is 0-100

Hope this can help.

Regards,
Florent

Hello, thanks for response. But I think, thats no the answer.

I have Numeric output and I need node mapping, because I use units. The EURange I don’t set. I attach my settings fot it. I see this messages only on vars, where I set oneWay biding (reading). On twoWay binding (on main screen - i was lazy to change it) I don’t see any problems.

<Binding mode="oneWay">
    <Source xsi:type="opcUa" refId="::AsGlobalPV:VictronMeas.I_In[1]" attribute="node" />
    <Target xsi:type="brease" contentRefId="VictronContent" widgetRefId="NO_curr_in_L1" attribute="node" />
</Binding>

Hi,

I think my first message wasn’t clear.

Based on your screenshot of the logger :

This message said that mappView server failed to subscribe to EURange of the OpcUa node “::AsGlobalPV:VictronMeas.I_In[1]”, it’s EURange because of “#EURange” after the OpcUa node. I’m pretty sure that Status is “BadNodeIdUnknown”, we don’t get it on your screenshot, this is because EURange on the OpcUa node isn’t configured. I see that on your configuration of OpcUa there is nothing configured on EURange.
image

Please check about Numeric Input and Output help :
https://help.br-automation.com/#/en/4/visualization/mappview/widgets/numeric/numericoutput/numericoutput.html

Even if it’s a oneWay or twoWay binding, widget will try to get EURange from OpcUa if it’s a Node binding.

Please configure EURange High and Low in OpcUa configuration of your variables, I’m pretty sure that Errors in the logger will disappear.

And this Errors write in the loggers are maybe the source of your lack of performance, writing in the logger is really Cpu consuming.

Hope this is more precise and that can help

Regards,
Florent

1 Like

Just a wild guess … But did you follow the migration guide, especially for the OPC-UA area?

If you have assigned units to your nodes, you should not need to configure the EURange, too, as the compiler will add the EURange, based on the data type, automatically.
In your case you get a lot of failed bindings to #EURange - which indicates that this did not happen here.

So either the nodes have no unit assigned - or the uad file was not properly migrated.

I would suggest to do the following:

  • Go back to your project in 4.12 - open the uad file, make any small change (to get the file in “modified” state), and store it again. This will prepare the file for 6.0.
  • Ensure that you are using (in 4.12) OPC-UA information model 2.0! If this is not yet the case, adjust accordingly.
  • Ensure that the unit is configured for each node you intend to use a node-binding.
  • re-import to 6.0
1 Like

@hobi I discard old and create new configuration, so I can discard this problem.
@florent.boissadier Yes, I know it. But there is much more. I need the node bindig for unit system. Some vars dont have problem without range and some vars have problem without range. And how @hobi write, when I attach the unit, the range take from unit based on datatype.

I tried to dig further and found this difference:

  • Array of DDT (structure): There is option “Common Properties”, when I set it, the whole array is set and no problem with WERange.

br_mappview_OPCUA_array_of_ddt

  • DDT with array: There is problem, when I attach this only to array. When I attach unit for all items in array, thats OK. I don’t see this problem in AS4.12. Maybe I just don’t have another problem to search this. But the unit system is OK, when I attach it to array and not for items. This is right? Because it’s very annoying for all of this vars.

br_mappview_OPCUA_ddt_with_array_mb
br_mappview_OPCUA_ddt_with_array_sb

In addition to Florent’s post:

if you want to use datatype’s min and max values as EURange you can leave it empty and select EU Range Violation=Reject
grafik

If you do a NodeBinding to your NumericInput / Output you won’t get these logger errors anymore.

Didn’t try this in AS6 but in my AS4.12 version behavior is the same.

However, I don’t know if this will affect your CPU usage.
:face_with_open_eyes_and_hand_over_mouth:

2 Likes

After update to mapp Services and mapp View to V6.1, there is significant change in CPU usage. It was approximately from 70% to 35%. The update I obtain from support (pre-release).

PS: I noticed in the Profiler, that there is task iIATRDebug which take lot of CPU and investigation led to the fact that it causes some one line of bit shifting (there is much more bit shifting in code, but only one line caused it), so it’s AR problem.

There is still slowly loading page “Pojistky”, but it’s maybe caused by 40*Image list widget, because another pages are much faster with the approximate number of widgets.

1 Like

I think it would be nice if it was easier to port from AS4 to AS6, for example, an official migration tool to assist us in checking the necessary items for porting, in short, the simpler the better.
@kovarj

AS6 can migrate automatically lots of part of the project. But there are parts of project where it is not easy to make decision what or how it should be migrate (either it is not supported any more or are done completely new, etc.). And for this user action is need it. This is just general answer from me, Im not so deep inside of differences :slight_smile: @jayD

1 Like