Application Architecture

Discussion of application development using iX Developer, including but not limited to getting started, using the functions tab, properties, objects and installation.
Post Reply
iMotion
Posts: 1
Joined: Wed Feb 19, 2014 2:21 am

Application Architecture

Post by iMotion »

Hi!

We're trying to implement a complex application, where HMI has to show data read from 16 identical industrial units.

User should have the possibility to choose the "active" unit, and everything shown on screen must refer to the selected unit.

In order to do that, we added 16 stations to the same controller. User can choose the active station using the typical dropdown component. All tags take the value of the active station.

Actually, this approach has some important limitations we cannot fix:

1. Number of stations is dynamic, and user must be able to change IP address of each at runtime (or at least for the first setup). Is it possibile to use C# to set stations IP address? The current controller configuration component seems not to be so friendly.

2. Trend Viewer cannot work properly. Due to the fact that user can change the active station, tags sometimes refers to a unit and sometimes to a different one. This means we are saving on Trend Viewer data from different units. I didn't find any way to reset Trend Viewer through C#.

3. Same for Alarm Viewer. We are receiving alarms only from the active unit, but we'd like to have different histories one for each unit.

Is our multi-station architecture totally wrong for our purpose?
The alternative would be to copy/paste tags for each unit, but the user interface development will be a nightmare!

stuartm
Posts: 61
Joined: Thu Jun 06, 2013 9:21 am

Re: Application Architecture

Post by stuartm »

The only way is to use the action "Show IP Settings". There is no programmatic way. This is the way IX Developer calls this action.

Neo.ApplicationFramework.Common.Service.ServiceContainerCF.GetService<Neo.ApplicationFramework.Interfaces.INetworkService>().ShowIpSettings();

There is a PING function which might help with automation:

Neo.ApplicationFramework.Common.Service.ServiceContainerCF.GetService<Neo.ApplicationFramework.Interfaces.INetworkService>().Ping();

Other than that, some operator involvement is required. Sorry.

** Please keep topic to 1 question so others may reference the information. For feature enhancements please contact Beijer directly so it can be discussed at the next Change Control Board meeting: support@beijerinc.com **

Post Reply