User Tools

Site Tools


level2:creating_advanced_reports_in_level2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
level2:creating_advanced_reports_in_level2 [2021/02/12 14:53] – ↷ Page moved from creating_advanced_reports_in_level2 to level2:creating_advanced_reports_in_level2 atolstovlevel2:creating_advanced_reports_in_level2 [2022/01/14 16:06] (current) – ↷ Links adapted because of a move operation emozolyak
Line 10: Line 10:
  
 It is very easy to create these condition using visual blocks: It is very easy to create these condition using visual blocks:
-{{:event-conditions.jpg?nolink|}}+{{network:event-conditions.jpg?nolink|}}
  
 Events can be two different types: Events can be two different types:
Line 27: Line 27:
   - Show event on Timeline. This option is available only when you save data to Report.   - Show event on Timeline. This option is available only when you save data to Report.
  
-{{:event-actions.jpg?nolink|}}+{{network:event-actions.jpg?nolink|}}
  
 Report basically is a dataset which describes what was happening during the event. Data is being collected from registers and you can pick any available register to get data from. In addition to raw register value you can use some preprocessed values based on register value: Report basically is a dataset which describes what was happening during the event. Data is being collected from registers and you can pick any available register to get data from. In addition to raw register value you can use some preprocessed values based on register value:
Line 45: Line 45:
  
 To see collected events data you can open its report under **Reports** menu item. It will look something like this one: To see collected events data you can open its report under **Reports** menu item. It will look something like this one:
-{{:dosing-report.jpg?nolink|}}+{{network:dosing-report.jpg?nolink|}}
  
 Here you can see basic fields for parent event (start time, end time, recipe name, etc) plus links to child events (Component 1, Component 2, etc). Here you can see basic fields for parent event (start time, end time, recipe name, etc) plus links to child events (Component 1, Component 2, etc).
Line 52: Line 52:
  
 If you will click on child event link, you will see details of this event. For example: If you will click on child event link, you will see details of this event. For example:
-{{::dosing-report-child.jpg?nolink|}}+{{network:dosing-report-child.jpg?nolink|}}
  
 Timeline is a way to visually see order and duration of your events. It is available under **Reports**->**Timeline** menu. It shows only events with enabled timeline option. You can drag and zoom it to see more details. Here is example: Timeline is a way to visually see order and duration of your events. It is available under **Reports**->**Timeline** menu. It shows only events with enabled timeline option. You can drag and zoom it to see more details. Here is example:
-{{::event-report-timeline.jpg?nolink|}}+{{network:event-report-timeline.jpg?nolink|}}
  
 So, now we know how to collect all needed data and check if it was collected correctly. Now it is time to build custom reports for them in Level 2 system. So, now we know how to collect all needed data and check if it was collected correctly. Now it is time to build custom reports for them in Level 2 system.
Line 62: Line 62:
 Lets take a look on real-life example how events can be used to track work of dosing system on mixed fodder plant. Lets take a look on real-life example how events can be used to track work of dosing system on mixed fodder plant.
  
-{{:dosing-plant.jpg?nolink|}}+{{network:dosing-plant.jpg?nolink|}}
  
 In our example plant has 8 tanks with variable components. Operator can fill them using noria and remotely-controlled valves. Once tanks are full he selects product that needed to be produced. Basically this is a recipe with set of weights for each component and total weight of batch. After that operator starts weighting process by pressing "Weighting" button. When needed amount was put on weights product goes to crusher, then to mixer and then it can be passed to packaging or pellet machines. In our example plant has 8 tanks with variable components. Operator can fill them using noria and remotely-controlled valves. Once tanks are full he selects product that needed to be produced. Basically this is a recipe with set of weights for each component and total weight of batch. After that operator starts weighting process by pressing "Weighting" button. When needed amount was put on weights product goes to crusher, then to mixer and then it can be passed to packaging or pellet machines.
Line 71: Line 71:
  
 To track weighting process master event "Weighting process" was created. It starts when **Weighting start** flag is set and ends once it clear. Here is how we setup this condition: To track weighting process master event "Weighting process" was created. It starts when **Weighting start** flag is set and ends once it clear. Here is how we setup this condition:
-{{:event-conditions.jpg?nolink|}}+{{network:event-conditions.jpg?nolink|}}
  
 ---- ----
Line 80: Line 80:
  
 To help users see the parent-child relation between events we display them in tree view:  To help users see the parent-child relation between events we display them in tree view: 
-{{:child-events.jpg?nolink|}}+{{network:child-events.jpg?nolink|}}
  
 ---- ----
  
 To build up informative report we will need to collect following fields for master event: Start time, End Time, Recipe Name, Dosing Duration, Target Weight, Error Flag. Error flag will let us know that this batch has error and we will highlight such event in report later. To build up informative report we will need to collect following fields for master event: Start time, End Time, Recipe Name, Dosing Duration, Target Weight, Error Flag. Error flag will let us know that this batch has error and we will highlight such event in report later.
-{{:event-actions.jpg?nolink|}}+{{network:event-actions.jpg?nolink|}}
  
 Additionally we created child events for each components: Additionally we created child events for each components:
-{{:child-events.jpg?nolink|}}+{{network:child-events.jpg?nolink|}}
  
 They have very simple conditions. We will collect data when correct motor is running. Here is example: They have very simple conditions. We will collect data when correct motor is running. Here is example:
-{{:event-child-condition.jpg?nolink|}}+{{network:event-child-condition.jpg?nolink|}}
  
 In action tab we instructed WebHMI to collect following data: In action tab we instructed WebHMI to collect following data:
Line 102: Line 102:
   * Weight error flag. This flag will allow us to highlight component if there was dosing error.   * Weight error flag. This flag will allow us to highlight component if there was dosing error.
  
-{{:event-child-actions.jpg?nolink|}}+{{network:event-child-actions.jpg?nolink|}}
  
 Once events were setup we can check that they collect correct data under **Reports** page. Here is how master event looks. Once events were setup we can check that they collect correct data under **Reports** page. Here is how master event looks.
-{{:dosing-report.jpg?nolink|}}+{{network:dosing-report.jpg?nolink|}}
  
 And individual component subreport should look like: And individual component subreport should look like:
-{{::dosing-report-component.jpg?nolink|}}+{{network:dosing-report-component.jpg?nolink|}}
  
 If WebHMI was connected to Level2 correctly, all collected events data are being automatically sent to Level2 periodically. If WebHMI was connected to Level2 correctly, all collected events data are being automatically sent to Level2 periodically.
Line 117: Line 117:
 Lets take a look on report that we will create. Lets take a look on report that we will create.
  
-{{::level2-report-list.jpg?nolink|}}+{{network:level2-report-list.jpg?nolink|}}
  
 Here we see list of all dosing batches in table view. We see very basic info of each dosing cycle: start and end time, duration, recipe name and error flag. If any error was occurred during dosing process row is being highlighted with red background and red Error icon appears. Here we see list of all dosing batches in table view. We see very basic info of each dosing cycle: start and end time, duration, recipe name and error flag. If any error was occurred during dosing process row is being highlighted with red background and red Error icon appears.
Line 125: Line 125:
 Here is how detailed view looks like. Here is how detailed view looks like.
  
-{{:level2-report-details.jpg?nolink|}}+{{network:level2-report-details.jpg?nolink|}}
  
 Here we have much more information on dosing process. Timing table show start time, end time and overall dosing duration. Recipe table shows overview on target weights of individual components. Components table gives us detailed info on dosing each component: time, target and actual weight, difference between them and error flag. Error flag is added here just for usability purposes. It helps operator quickly identify component that were dosed with problems. Here we have much more information on dosing process. Timing table show start time, end time and overall dosing duration. Recipe table shows overview on target weights of individual components. Components table gives us detailed info on dosing each component: time, target and actual weight, difference between them and error flag. Error flag is added here just for usability purposes. It helps operator quickly identify component that were dosed with problems.
Line 133: Line 133:
 Report Builder provides easy to use visual tools to build such reports. Lets take a look on how this report was set up. Report Builder provides easy to use visual tools to build such reports. Lets take a look on how this report was set up.
  
-{{::level2-report-basic.jpg?nolink|}}+{{network:level2-report-basic.jpg?nolink|}}
  
 On basic tab we entered report title, selected node (WebHMI device) "Mixed fodder plant" from which we want to show events data, and selected master event "Weighting process". On basic tab we entered report title, selected node (WebHMI device) "Mixed fodder plant" from which we want to show events data, and selected master event "Weighting process".
Line 139: Line 139:
 List tab configures how overall list of all dosing events will look. List tab configures how overall list of all dosing events will look.
  
-{{::level2-report-edit-list.jpg?nolink|}}+{{network:level2-report-edit-list.jpg?nolink|}}
  
 We can group events by day. This will visually group events that happened in one date within individual tables with date header. We can group events by day. This will visually group events that happened in one date within individual tables with date header.
Line 153: Line 153:
 Column value can get value not only from master event but from child events too. If there are multiple child events with specified id happened system will get value from last one. Column value can get value not only from master event but from child events too. If there are multiple child events with specified id happened system will get value from last one.
  
-{{::level2-report-edit-details.jpg?nolink|}}+{{network:level2-report-edit-details.jpg?nolink|}}
  
 Details tab contains WISIWYG editor that allows user to create report with rich formatting and with custom layout. Details tab contains WISIWYG editor that allows user to create report with rich formatting and with custom layout.
Line 162: Line 162:
  
 Here is small video showing basic layout editing techniques: Here is small video showing basic layout editing techniques:
-{{ ::editor-layout-editor.mp4?912x548 | }}+{{ network:editor-layout-editor.mp4?912x548 | }}
  
  
 Another option to restructuring data is to use tables. Report builder provide reach possibilities to create and edit tables. Here is small video showing basic table editing techniques: Another option to restructuring data is to use tables. Report builder provide reach possibilities to create and edit tables. Here is small video showing basic table editing techniques:
-{{ ::editor-table-editor.mp4?912x548 | }}+{{ network:editor-table-editor.mp4?912x548 | }}
  
 Once you understand how to structure your data lets take a look on available options on displaying data. Once you understand how to structure your data lets take a look on available options on displaying data.
  
-{{::event-data-toolbar.jpg?nolink|}}+{{network:event-data-toolbar.jpg?nolink|}}
  
 ==== Register value ==== ==== Register value ====
 The most simple way to display data from events is insert is as plain text. You can use "Register's value" tool for this. This tool allows you to select event, register from it and format of data to be displayed: The most simple way to display data from events is insert is as plain text. You can use "Register's value" tool for this. This tool allows you to select event, register from it and format of data to be displayed:
-{{::register-value.jpg?nolink|}}+{{network:register-value.jpg?nolink|}}
  
 Once you will add such value into report template you will see yellow placeholder in format [E2.1]: Once you will add such value into report template you will see yellow placeholder in format [E2.1]:
-{{:events-registers-in-report.jpg?nolink|}}+{{network:events-registers-in-report.jpg?nolink|}}
  
 This means that system will show at this place value of register #1 from event #2. Where these numbers are coming from? You can see them in every event edit page nearby each register added to report: This means that system will show at this place value of register #1 from event #2. Where these numbers are coming from? You can see them in every event edit page nearby each register added to report:
-{{::event-edit-reg-number.jpg?nolink|}}+{{network:event-edit-reg-number.jpg?nolink|}}
  
 ==== Alert flag ==== ==== Alert flag ====
 Alert flags are simple red icons that supposed to attract user's eye to data with some problems. System will show red icon if there will be non-zero value in selected register. Here we show that there was and error with dosing of Fishmeal: Alert flags are simple red icons that supposed to attract user's eye to data with some problems. System will show red icon if there will be non-zero value in selected register. Here we show that there was and error with dosing of Fishmeal:
-{{::flag-icon-in-report.jpg?nolink|}}+{{network:flag-icon-in-report.jpg?nolink|}}
  
 In report editor these flags will be displayed as red placeholder in format [E4.6]: In report editor these flags will be displayed as red placeholder in format [E4.6]:
-{{::flag-icon-placeholder.jpg?nolink|}}+{{network:flag-icon-placeholder.jpg?nolink|}}
  
 ==== Timeline ==== ==== Timeline ====
 Timeline allows you visually see events' start and end time, duration. Also it is easy to see order of running different events. Timeline allows you visually see events' start and end time, duration. Also it is easy to see order of running different events.
-{{::level2-events-timeline.jpg?nolink|}}+{{network:level2-events-timeline.jpg?nolink|}}
  
 It is very easy to select what events to display on timeline. Simply clink on needed checkbox, pick a color and enter title (or register id in format [E1.2] instead of title to show value from this register) and all these events will be displayed on timeline automatically. It is very easy to select what events to display on timeline. Simply clink on needed checkbox, pick a color and enter title (or register id in format [E1.2] instead of title to show value from this register) and all these events will be displayed on timeline automatically.
-{{::level2-events-timeline-setup.jpg?nolink|}}+{{network:level2-events-timeline-setup.jpg?nolink|}}
  
 If you have many events or their duration is short, you can drag, pan and zoom on timeline to see more details. If you have many events or their duration is short, you can drag, pan and zoom on timeline to see more details.
Line 202: Line 202:
  
 Basic settings tab includes graph title, height of graph in pixels, Start and end of graphs's timeframe should be taken from event timings. You can get start time from one event and end time from another event if needed. But usually we get them from master event. Also here you can specify minimal and maximum value on Y axis. Basic settings tab includes graph title, height of graph in pixels, Start and end of graphs's timeframe should be taken from event timings. You can get start time from one event and end time from another event if needed. But usually we get them from master event. Also here you can specify minimal and maximum value on Y axis.
-{{::level2-events-graphs-example-edit-1.jpg?nolink|}}+{{network:level2-events-graphs-example-edit-1.jpg?nolink|}}
  
 On Regsiters tab you can pick registers that you want to display on current graph. Please note that here you will see not all registers on WebHMI, but only registers with storing graph data enabled and marked to send this data to Level2. You can override their title and color if needed. On Regsiters tab you can pick registers that you want to display on current graph. Please note that here you will see not all registers on WebHMI, but only registers with storing graph data enabled and marked to send this data to Level2. You can override their title and color if needed.
-{{::level2-events-graphs-example-edit-2.jpg?nolink|}}+{{network:level2-events-graphs-example-edit-2.jpg?nolink|}}
  
 On Events tab you can highlight some events on graphs with color background. Usually this is used to display some parts of technical process on graph. On Events tab you can highlight some events on graphs with color background. Usually this is used to display some parts of technical process on graph.
-{{::level2-events-graphs-example-edit-3.jpg?nolink|}}+{{network:level2-events-graphs-example-edit-3.jpg?nolink|}}
  
 Here is how graph can look in report editor. It shows sine waves and random event timings as sample data to see colors, etc. Here is how graph can look in report editor. It shows sine waves and random event timings as sample data to see colors, etc.
-{{::level2-events-graphs-example-edit.jpg?nolink|}}+{{network:level2-events-graphs-example-edit.jpg?nolink|}}
  
 And here is how real graph will look inside report: And here is how real graph will look inside report:
-{{::level2-events-graphs-example.jpg?nolink|}}+{{network:level2-events-graphs-example.jpg?nolink|}}
 Here we can see 2 temperatures over 13 minutes during our sample report. From 4 till 7 minutes we see red color zone - heating process, and from 10 till 12 minutes we see blue zone - cooling process.  Here we can see 2 temperatures over 13 minutes during our sample report. From 4 till 7 minutes we see red color zone - heating process, and from 10 till 12 minutes we see blue zone - cooling process. 
  
Line 223: Line 223:
 For mobile laboratory applications it might be useful to see location in reports. For such situation Map Location control can be used. This control can get Latitude and Longitude from event registers and display them as marker on map. For mobile laboratory applications it might be useful to see location in reports. For such situation Map Location control can be used. This control can get Latitude and Longitude from event registers and display them as marker on map.
  
-{{::level2-map-events.jpg?nolink|}}+{{network:level2-map-events.jpg?nolink|}}
  
 ==== Specifying time formats in Report builder ==== ==== Specifying time formats in Report builder ====
  
-Please refer to the following [[l2_report_time_formats#duration| link]]+Please refer to the following [[:l2_report_time_formats#duration| link]]
  
  
level2/creating_advanced_reports_in_level2.1613141610.txt.gz · Last modified: 2021/02/12 14:53 by atolstov

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki