Simple AESRow filter changing
Search
-
NikolayLevchenko
- Posts: 74
- Joined: Wed May 10, 2017 3:34 pm
Simple AESRow filter changing
Hi,
I would like to implement a very simple functionality: when I click on any "device" on a panel, I want to open a popup with alarms for this device.
The popup is a simple panel with AESRow object in it which I configured to use custom-made filter datapoint "_AESProperties_0005".
So, on-click of the "device" I want to use a simple script to change the "_AESProperties_0005.Alerts.Filter.DPList" and then open the popup panel. I assumed that the AESRow on this panel would take the new filter config but this does not seem to work. I poked around the famous "aes.ctl" and there seems to be some stuff around cache that might be the problem here (?).
What is the proper way of achieving what we need? Why is AESRow ignoring the filter setting when I open it?
PS: We prefer to use a simple AESRow rather than a full-blown AEScreen to prevent any operator (or engineer) messing around with all the config options AEScreen has
I would like to implement a very simple functionality: when I click on any "device" on a panel, I want to open a popup with alarms for this device.
The popup is a simple panel with AESRow object in it which I configured to use custom-made filter datapoint "_AESProperties_0005".
So, on-click of the "device" I want to use a simple script to change the "_AESProperties_0005.Alerts.Filter.DPList" and then open the popup panel. I assumed that the AESRow on this panel would take the new filter config but this does not seem to work. I poked around the famous "aes.ctl" and there seems to be some stuff around cache that might be the problem here (?).
What is the proper way of achieving what we need? Why is AESRow ignoring the filter setting when I open it?
PS: We prefer to use a simple AESRow rather than a full-blown AEScreen to prevent any operator (or engineer) messing around with all the config options AEScreen has
Re: Simple AESRow filter changing
If you want to change the settings during runtime you have to modify the runtime datapoints.
The name for the runtime datapoint of an AESRow is _AESPropertiesRTRow___Top.
The datapoint for the AESRow default settings is _AESProperties_0003. _AESProperties_0005 is used for the AEScreen.
If you want to open the AESRow with a pre defined configuration it would be better to create an own configuration using the System Management --> Settings --> A&E Row/Screen. Then you do not have to modify the default settings for all AESRows.
Best Regards
Leopold Knipp
Senior Support Specialist
The name for the runtime datapoint of an AESRow is _AESPropertiesRTRow___Top.
The datapoint for the AESRow default settings is _AESProperties_0003. _AESProperties_0005 is used for the AEScreen.
If you want to open the AESRow with a pre defined configuration it would be better to create an own configuration using the System Management --> Settings --> A&E Row/Screen. Then you do not have to modify the default settings for all AESRows.
Best Regards
Leopold Knipp
Senior Support Specialist
-
NikolayLevchenko
- Posts: 74
- Joined: Wed May 10, 2017 3:34 pm
Re: Simple AESRow filter changing
Hi Leopold, thank you for your response.
I think you might be wrong about "_AESProperties_0005", in a brand new empty project we only have up to "_AESProperties_0004".
We are NOT trying to modify default settings for all AESRows. We did exactly like you suggested: went to "System Management --> Settings --> A&E Row/Screen -> Edit Row" and created a new Alertrowconfiguration" and then a new Properties configuration. Doing this created a new DP's: "_AEScreen_0005" ("alarmSummary") and "_AESProperties_0005" ("propAlarmSummary").
On our new popup panel we placed a AESRow object from the library and selected configuration "alarmSummary".
If I understand your suggestion correctly, we should NOT change the filter values under the "_AESProperties_0005" datapoint but we should change the filter values under the relevant _AESPropertiesRTRow___Top datapoint, is that correct?
We tried this right now and this doesn't seem to work.
We write our filer values (DPName) into "_AESPropertiesRTRow___Top.Alerts.Filter.DPList" and then open the new popup with the AESRow on it. This actually DOES NOT work. We can see that the value in "_AESPropertiesRTRow___Top.Alerts.Filter.DPList" gets OVERWRITTEN bu something. We assumed that it gets overwritten by the value of "_AESProperties_0005" but this does not seem to be the case because even if we change the value in "_AESProperties_0005", it does NOT go into "_AESPropertiesRTRow___Top.Alerts.Filter.DPList" until we RESTART the UI.
There seems to be some sort of caching going on and we have no idea how to use it properly. Please, advise.
I think you might be wrong about "_AESProperties_0005", in a brand new empty project we only have up to "_AESProperties_0004".
We are NOT trying to modify default settings for all AESRows. We did exactly like you suggested: went to "System Management --> Settings --> A&E Row/Screen -> Edit Row" and created a new Alertrowconfiguration" and then a new Properties configuration. Doing this created a new DP's: "_AEScreen_0005" ("alarmSummary") and "_AESProperties_0005" ("propAlarmSummary").
On our new popup panel we placed a AESRow object from the library and selected configuration "alarmSummary".
If I understand your suggestion correctly, we should NOT change the filter values under the "_AESProperties_0005" datapoint but we should change the filter values under the relevant _AESPropertiesRTRow___Top datapoint, is that correct?
We tried this right now and this doesn't seem to work.
We write our filer values (DPName) into "_AESPropertiesRTRow___Top.Alerts.Filter.DPList" and then open the new popup with the AESRow on it. This actually DOES NOT work. We can see that the value in "_AESPropertiesRTRow___Top.Alerts.Filter.DPList" gets OVERWRITTEN bu something. We assumed that it gets overwritten by the value of "_AESProperties_0005" but this does not seem to be the case because even if we change the value in "_AESProperties_0005", it does NOT go into "_AESPropertiesRTRow___Top.Alerts.Filter.DPList" until we RESTART the UI.
There seems to be some sort of caching going on and we have no idea how to use it properly. Please, advise.
-
NikolayLevchenko
- Posts: 74
- Joined: Wed May 10, 2017 3:34 pm
Re: Simple AESRow filter changing
Leopold, any advice?
Re: Simple AESRow filter changing
Hi
Did you used dpSetCache or dpSet? You need to use dpSetCache otherwise it will not work.
Example from help
>BR
Alex
Did you used dpSetCache or dpSet? You need to use dpSetCache otherwise it will not work.
Example from help
Code: Select all
main()
{
string dp = _AES_DPTYPE_PROPERTIES + "RTRow_" + myManNum() + "_" + myModuleName()+"_Top";
//find out the current alert row
DebugN("Setting an alarm filter for AES property", dp);
aes_doStop(dp);
dpSetCache(dp+".Alerts.Filter.DpList",makeDynString("ExampleDP_AlertHdl2."));
//the alert of the data point ExampleDP_AlertHdl2. is shown
aes_doStart(dp);
}
Alex
Re: Simple AESRow filter changing
have you seen this post?: https://portal.etm.at/index.php?option= ... =3101#4449
Re: Simple AESRow filter changing
Hi everybody,
I'm a new WinCC developer and I am experiencing problem with same issue.
I applied the script as above to set runtime the datapoints for which alerts are shown by an alertrow.
I followed these steps:
- from SysMgt -> Setttings -> AE - Row/Screen -> Edit ROW, I created my own AlertRowConfiguration ("aes_myAlertRow")
- from Properties edit button, I created my own Properties of alert panel ("aes_mypropAlertRow"). I left filter tab empty (DPE filter option selected). I can see from Para a new _AESProperties _0005 datapoint: its Alerts.Filter.DpList is empty
- I drew a panel ref of type alertRow on a panel, and set Configuration parameter ($AESREGDOLAR_SCREENTYPE) to "aes_myAlertRow"
- then put the script with dpSetCache(dp+".Alerts.Filter.DpList",...) in the Initialize callback of the panel
- I run in Quicktest the panel: the alertRow properties dp results "_AESPropertiesRTRow_1__Quicktest__Top"
- The script doesn't work: if I runtime look from Para in _AESPropertiesRTRow_1__Quicktest__Top.Alerts.Filter.DpList, it results empty
If I set the Filter.DpList in design mode with SysMgt -> Setttings -> AE - Row/Screen -> Edit ROW -> Properties Configuration menu, it works and from Para I can see dplist both in _AESProperties _0005 and _AESPropertiesRTRow_1__Quicktest__Top datapoints (together with "-Config" entry).
My WinCC OA version is 3.14.
Can you help me?
I'm a new WinCC developer and I am experiencing problem with same issue.
I applied the script as above to set runtime the datapoints for which alerts are shown by an alertrow.
I followed these steps:
- from SysMgt -> Setttings -> AE - Row/Screen -> Edit ROW, I created my own AlertRowConfiguration ("aes_myAlertRow")
- from Properties edit button, I created my own Properties of alert panel ("aes_mypropAlertRow"). I left filter tab empty (DPE filter option selected). I can see from Para a new _AESProperties _0005 datapoint: its Alerts.Filter.DpList is empty
- I drew a panel ref of type alertRow on a panel, and set Configuration parameter ($AESREGDOLAR_SCREENTYPE) to "aes_myAlertRow"
- then put the script with dpSetCache(dp+".Alerts.Filter.DpList",...) in the Initialize callback of the panel
- I run in Quicktest the panel: the alertRow properties dp results "_AESPropertiesRTRow_1__Quicktest__Top"
- The script doesn't work: if I runtime look from Para in _AESPropertiesRTRow_1__Quicktest__Top.Alerts.Filter.DpList, it results empty
If I set the Filter.DpList in design mode with SysMgt -> Setttings -> AE - Row/Screen -> Edit ROW -> Properties Configuration menu, it works and from Para I can see dplist both in _AESProperties _0005 and _AESPropertiesRTRow_1__Quicktest__Top datapoints (together with "-Config" entry).
My WinCC OA version is 3.14.
Can you help me?
Re: Simple AESRow filter changing
Hi Giorgio,
Probably you have a race condition between your panel's init sequence and AES Row init. AES row itself manipulating the cache (based on a cache of global AES properties) and I think that you are setting the cache with your values right before AES overwriting it. Try to put your code on a button or with some delay to see if that's the case.
Unfortunately, all that AES properties stuff is not described anywhere at all, so that's just my guess based on testing done some time ago.
BR Leo
Probably you have a race condition between your panel's init sequence and AES Row init. AES row itself manipulating the cache (based on a cache of global AES properties) and I think that you are setting the cache with your values right before AES overwriting it. Try to put your code on a button or with some delay to see if that's the case.
Unfortunately, all that AES properties stuff is not described anywhere at all, so that's just my guess based on testing done some time ago.
BR Leo
Re: Simple AESRow filter changing
Thank you Leopold,
it's exactly as you wrote: with a simple delay, the script works.
I would like to avoid, at panel initialization, the annoying effect due to delayed filter change, with a reload of alerts list.
I was figuring to make not visible the AESRow, delay the initialization and change the filter with panel initialize script, and make it visible.
But I can't find "visible" property for AESRow, or I can't put a solid rectangle above that covers it.
Any advice?
I have another issue (maybe needs a new topic?). The panel with AESrow, developed on my 3.14 WinCC-OA station, has been installed on the customer legacy project (same 3.14 version), but opening from GEDI it gives the following error:
Module: Gedi_1
Panel: C:\WinCC_OA\SMATH2O\panels\Fast\plant.pnl []
Object: 11 named: "ax_gauge" of type: LGAUGE_LGaugeCtrl_1
In reference: vision/aes/AESRow.pnl Group: 1 named: ""
used in: objects/STD_PANELS/AESRow.pnl Group: 12 named: "AE_PANEL"
, Could not initialize ActiveX Object "LGAUGE.LGaugeCtrl.1"
Maybe the AESRow object is older version?
Thank you.
it's exactly as you wrote: with a simple delay, the script works.
I would like to avoid, at panel initialization, the annoying effect due to delayed filter change, with a reload of alerts list.
I was figuring to make not visible the AESRow, delay the initialization and change the filter with panel initialize script, and make it visible.
But I can't find "visible" property for AESRow, or I can't put a solid rectangle above that covers it.
Any advice?
I have another issue (maybe needs a new topic?). The panel with AESrow, developed on my 3.14 WinCC-OA station, has been installed on the customer legacy project (same 3.14 version), but opening from GEDI it gives the following error:
Module: Gedi_1
Panel: C:\WinCC_OA\SMATH2O\panels\Fast\plant.pnl []
Object: 11 named: "ax_gauge" of type: LGAUGE_LGaugeCtrl_1
In reference: vision/aes/AESRow.pnl Group: 1 named: ""
used in: objects/STD_PANELS/AESRow.pnl Group: 12 named: "AE_PANEL"
, Could not initialize ActiveX Object "LGAUGE.LGaugeCtrl.1"
Maybe the AESRow object is older version?
Thank you.
Re: Simple AESRow filter changing
Hi Giorgio,
To avoid flickering of alarm, you can maybe use a specific aes filter that you will configure on your navigation click (before opening table). Then your table use this filter and you dont need to modifiy the RT datapoints as they already use good values.
BR
Alexandre
To avoid flickering of alarm, you can maybe use a specific aes filter that you will configure on your navigation click (before opening table). Then your table use this filter and you dont need to modifiy the RT datapoints as they already use good values.
BR
Alexandre