User Tools

Site Tools


dashboarding:dashboarding

Dashboarding

When designing a dashboard, there are multiple things to consider:

  • Reporting Method
  • Are calculations required?
  • Does data need to be stored?

This Implementation Table provides details on a variety of methods that could be used when working towards building dashboards.

For Calculations

A number of key areas should be considered when deciding which calculation method should be selected.

Method Scale Limit Responsibility for Scaling Possible Complexity Ease of Replication Experience Required IP Protection Effort to create single dashboard Effort to create many dashboards
Templated Script TagsASC ServerIntelligent PlantLow (Orchestrated)Upload Instances (Easy)Basic Configuration (Select Tags)Tags can be seen by client admin, new instances can be created by adminLowLow (import)
Custom Script TagsASC Server & Code EfficiencyDeveloperLow (Orchestrated)Developer ResponsibleBasic Code (Scripting)Code can be seen and copied/modified by adminLowHigh (Up To Developer)
Custom Script Tags With DLLASC Server & Code EfficiencyDeveloperLow (Orchestrated)Developer ResponsibleMedium Code (Compilation/Linking)DLL code can be obfuscated but decompilation possible.LowHigh (Up To Developer)
Jupyter HubBandwidth & Capacity Of Server InstanceDeveloperMedium (Manually Run)Developer ResponsibleBasic PythonScripts are stored on intelligent plant server - could be accessed by someone if they broke contract.MediumHigh (Up To Developer)
App Implementation (Ext. Host)Bandwidth & Server Host & Code EfficiencyDeveloperHigh (Fully Open)Developer ResponsibleAdvanced CodingNo one else can possibly see how your app does something, but they could attempt to replicate results through reverse engineeringDepends On AppDepends On App
App Implementation (Local Install)Server Host & Code EfficiencyDeveloperHigh (Fully Open)Developer ResponsibleAdvanced CodingA local install would mean anyone with access to the client host could decompile or attempt to reuse code.Depends On AppDepends On App
Power AutomateBandwidth & Azure Limits On Data, Executions Etc..DeveloperVery Low (Orchestrated, Restricted)Developer ResponsibleDrag And DropDepends on sharing levelLow

Script Tags

Through Intelligent Plant’s application – Facit, it is possible to create and configure script tags that perform calculations with your data. There are two ways of creating these script tags:

Templated script tags

Intelligent Plant’s Facit has pre-made script tags available to users. These can perform a variety of calculations already. It is just a matter of configuring the templates with your data. Key features of Templated Script Tags in Facit:

  • Speed – Templated script tags make it quick and easy for the user to create the script tags that they need. Creating multiple script tags is straightforward, with configuration being the only main time sink in this process.
  • No coding – Templated script tags have been coded for the user already, thus no coding experience is required. This method allows anyone with knowledge of the calculations to configure the script tags.

A clear disadvantage of using templated script tags is that if the calculation you require is not performed by any of the templated script tags available, then an alternative method would need to be used.

Custom (Ad-hoc) script tags

If you need or wish to create a custom script tag, this can also be done on Facit. Although the coding experience required to create custom script tags would likely be minimal, the time to make multiple script tags would be considerably longer than with templated script tags. The key features of Custom Script Tags in Facit:

  • More freedom – Being able to code your own script tags means that you are not restricted to the templated script tags available from Intelligent Plant. You have the ability to code any script tag that you require.
  • Easy to create – As long as the developer has basic coding experience, then creating custom script tags should be straightforward.

The effort required to create many script tags will be significantly higher than by using templated script tags, and the efficiency of the code can significantly impact scaling.

Jupyter Hub

Jupyter Hub brings the power of notebooks to groups of users. It gives users access to computational environments and resources without burdening the users with installation and maintenance tasks. Users - including students, researchers, and data scientists - can get their work done in their own workspaces on shared resources which can be managed efficiently by system administrators. Jupyter Hub runs in the Industrial App Store, and makes it possible to serve a pre-configured data science environment to any user in the world. It is customizable and scalable, and is suitable for small and large teams, academic courses, and large-scale infrastructure. Key features of JupyterHub in the Industrial App Store:

  • Customisable – JupyterHub can be used to serve a variety of environments. It supports dozens of kernels with the Jupyter server, and can be used to serve a variety of user interfaces. Available interfaces include the Jupyter Notebook, JupyterLab, RStudio, Python 3 and dotnet.
  • Flexible - The Hub authenticates users with the Industrial App Store so that they can access their live data sources immediately. This prevents the need for large data exports and allows models to be created using the most up to date data. Jupyter Hub uses the same data APIs as other App Store applications. This simplifies the process of developing a prototype into a full application.
  • Scalable - The Intelligent Plant Jupyter Hub is hosted in the cloud which allows it to scale to thousands of users and to be accessed from anywhere.

App Implementation

Creating a custom application to perform your calculations would ultimately provide total freedom on the calculations you wish to create. This could be pushed to an external host or kept as a local install, depending on what is preferred. Key features of creating your own application:

  • Enhanced IP Protection - Nobody could know how your application works, therefore the security of your results may be higher.
  • Specialisation – Creating your own application means total customisation to suit your needs. It can be coded in your preferred coding language, and familiarisation of the application would not be an issue.

Significant resources may be required to produce an in-house application, which may delay completion of the product.

Power Automate

Power Automate is an online tool within the Microsoft 365 applications and add-ins, used for the creation of automated workflows between apps and services to synchronise files, get notifications, and collect data.

Intelligent Plant’s Industrial Automator for Power BI enables interaction with all the different historian data through a unified API.

enables Microsoft’s powerful analytics and visualisations to be applied to real time and historical process data. Thus achieving seamless integration of plant and corporate data that can be shared with any colleague on any device, enabling faster, better, real-time decision making.

Key features of Power Automate:

  • Receive alerts - Power Automate can be set up to automatically send out an alert if a calculated value is outside of a desired range, thus keeping you up to speed on any significant deviations in your plant.
  • Minimal effort - Power Automate allows rapid creation of workflows that perform the tasks you require. No coding knowledge is needed to use it and there is an abundance of information available on how to use Power Automate.

For Displays

Method Shareable with Users Real-time Updates Embeddable User Configurable
PnIDYesYesYesYes
Power BIYesNoNoYes
TrendYesYesYesYes
Jupyter HubNo, this must be run by the developer, but when it works then it could be used as start of appNoNo(Developer Only)No
New AppDeveloper ResponsibleDeveloper ResponsibleDeveloper ResponsibleDeveloper Responsible

For Storage

Storage of Data Write-ability
Client HistorianUnlikely
IP HistYes
Alarm AnalysisYes
dashboarding/dashboarding.txt · Last modified: 2024/01/31 15:00 by su